Skip to content

Latest commit

 

History

History
50 lines (32 loc) · 2.38 KB

README.md

File metadata and controls

50 lines (32 loc) · 2.38 KB

Flux ARM

💪️ An experiment to build Flux with BIG MUSCLES I mean, with ARM.

Usage

These images are incredibly slow to build on GitHub actions, so we have several building strategies:

Multi-container Strategy

This strategy builds components separately (and sequentially):

  1. build-deploy-base uses Dockerfile.base to build up openpmix and prrte. (takes appoximately 1 hour 25-37 minutes)
  2. build-deploy-flux-security uses Dockerfile.flux-security to add Flux Security to the base image (1) (only takes 5 minutes)
  3. build-deploy-flux-core uses Dockerfile.flux-core to add Flux Core to (2). (takes approximately 1 hour 30-40 minutes)
  4. build-deploy-flux-sched adds Flux Sched on top of Flux core via the Dockerfile.flux-sched (takes approximately 52 to 1 hour 22 minutes)

Spack

We also wanted to do a test build with spack. This didn't work on GitHub actions - but worked great on AWS! 🙌️ For any of the above images, if you need to test an update, do a test build uncommenting the pull request logic to trigger:

- #  pull_request: []
+   pull_request: []

And if you just want to rebuild as is, you can go to Actions -> (Choose workflow on left) -> Run Workflow (on right) to trigger a build, selected the named workflow.

Single Container Strategy

And if you want a "all in one" build, although we don't use GitHub actions (it takes a LONG time) you can use:

Since this was slow on GHA, I decided to also try it on an AWS instance. You can use the setup instructions from spack and once you are in the instance (from the root here):

$ docker buildx build --platform linux/arm64 --tag ghcr.io/rse-ops/flux-arm:arm64 .

At this point you can tag for the date too, and push both (you'll need to add credentials to the instance)

docker tag ghcr.io/rse-ops/flux-arm:arm64 ghcr.io/rse-ops/flux-arm:june-2023-arm64
docker push ghcr.io/rse-ops/flux-arm --all-tags