Skip to content

Commit

Permalink
add missing manifest-tool gpu builds
Browse files Browse the repository at this point in the history
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
  • Loading branch information
vsoch committed Jan 23, 2024
1 parent fec9336 commit c6db23e
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 1 deletion.
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,17 @@ Testing builds of lammps across a few:
Note that we take the following approach:

1. Build the containers separately, one per arch, to fit into GitHub actions. This is done via the workflow [.github/workflows/docker-builds.yaml](.github/workflows/docker-builds.yaml)
2. Use a custom tool to emulate the image selection process that is normally done by a container runtime. The reason is because we want to inject randomness - a registry will typically deliver a manifest list, and then the runtime chooses the first match. This doesn't give very interesting experiment results, so instead we are going to select based on platform (what the registry does) and then randomly choose from that set.
2. Extract metadata and put into artifacts we can associate with the images. This is currently provided in a `compspec.json` alongside each image. Ideally this would be extracted at build time (in CI) or by static analysis later. Since this is a fairly simple setup, I'm creating this manually for now.
3. Use a custom tool to emulate the image selection process that is normally done by a container runtime. The reason is because we want to inject randomness - a registry will typically deliver a manifest list, and then the runtime chooses the first match. This doesn't give very interesting experiment results, so instead we are going to select based on platform (what the registry does) and then randomly choose from that set.

Note that if you are interested in the assembled manifest images, we have prepared them, and you can see those specs in [manifests](manifests).

TODO:

- try an automated extraction (interactive or static?) to generate compspec.json
- push them into an artifact
- make a list of image URIs and associated artifacts for the compspec-go tool.

## Vision

Note that for this initial prototype, we are largely doing everything manually. However, these manual steps will eventually be easily automated. Here are the ideal before and after scenarios.
Expand Down
13 changes: 13 additions & 0 deletions manifests/openmpi-ubuntu-gpu-20.04.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
image: ghcr.io/rse-ops/lammps-matrix:openmpi-ubuntu-gpu
tags: ["openmpi-ubuntu-gpu-20.04"]
manifests:
-
image: ghcr.io/rse-ops/lammps-matrix:openmpi-ubuntu-gpu-20.04-arm64
platform:
architecture: arm64
os: linux
-
image: ghcr.io/rse-ops/lammps-matrix:openmpi-ubuntu-gpu-20.04-amd64
platform:
architecture: amd64
os: linux
13 changes: 13 additions & 0 deletions manifests/openmpi-ubuntu-gpu-22.04.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
image: ghcr.io/rse-ops/lammps-matrix:openmpi-ubuntu-gpu
tags: ["openmpi-ubuntu-gpu-22.04"]
manifests:
-
image: ghcr.io/rse-ops/lammps-matrix:openmpi-ubuntu-gpu-22.04-arm64
platform:
architecture: arm64
os: linux
-
image: ghcr.io/rse-ops/lammps-matrix:openmpi-ubuntu-gpu-22.04-amd64
platform:
architecture: amd64
os: linux

0 comments on commit c6db23e

Please sign in to comment.