How To¶
Add a new machine¶
Adding a new machine can be done directly in this project so that the configuration is shared with all. However, the associated Spack configuration must first be added to radiuss-spack-configs.
The sub-pipeline definition¶
To add a new machine, create a corresponding <machine>-build-and-test.yml
file describing the sub-pipeline. There are two main cases: whether the machine
uses Slurm or LSF Spectrum as a scheduler.
Machines using Slurm scheduler¶
For machines using Slurm scheduler, use ruby (or corona) as a starting
point. Then replace all the instances of “RUBY” and “ruby” with the new machine
name.
Then go to customization/custom-variables.yml and add the variables:
<MACHINE>_BUILD_AND_TEST_SHARED_ALLOCwith allocation options sufficient for the shared allocation (salloc) to contain all the jobs.<MACHINE>_BUILD_AND_TEST_JOB_ALLOCwith allocation options for any of the jobs (srun) the machine will take. The job will run under the shared allocation. Lastly, do not prescribe a number of cores here, as they should be defined at Spack and Make/CMake level.
Note
Use the values we have for ruby and corona as guides, but adapt the partition, number of cpus per task and duration coherently with the machine.
Machines using LSF Spectrum scheduler¶
For machines using LSF Spectrum scheduler, use lassen as a starting point.
Then replace all the instances of “LASSEN” and “lassen” with the new machine
name.
Then go to customization/custom-variables.yml and add the variables:
<MACHINE>_BUILD_AND_TEST_JOB_ALLOCwith allocation options for any of the jobs the machine will take.
Note
Use the values we have for lassen as guides, but adapt the partition and duration coherently with the machine.
Reference the new sub-pipeline¶
In customization/custom-pipelines.yml, add a new section corresponding to
the new machine. This is used by customization/gitlab-ci.yml to control
which sub-pipelines are effectively generated.
Changelog¶
Don’t forget to provide a quick description of your changes in the
CHANGELOG.md.
New tag¶
Once the new machine setup is tested and valid, submit a PR. We will review it
and merge it. We may create a new tag although it is not required for a new
machine. Indeed, using a new machine is a voluntary change for users: they will
have to activate it in customization/custom-pipelines.yml the same way you
did above (which is a suggested template).