benchpark
benchpark copied to clipboard
New Benchpark command: "system-create"
Add command that can be used to instantiate a new system definition, for example:
$ benchpark system-create --from=HPECray-zen3-MI250X-Slingshot cray1
$ ls configs/cray1
auxiliary_software_files spack.yaml system_definition.yaml variables.yaml
$ benchpark system-create cray2 --template=templates/scheduler/slurm/ --template=templates/generic-system/cray/
$ ls configs/cray2
spack.yaml variables.yaml
This will often require an intermediate editing step, in particular to define auxiliary_software_files
; after that, you could e.g. do:
$ benchpark setup amg2023/rocm cray2...
Broadly:
- You can copy an existing config with
--from
- Or you can assembly a generic configuration using a series of
--template
options
If two templates define Ramble configurations with the same name, this command will use a ramble-python
script to automatically merge them:
$ benchpark system-create cray2 --template=templates/scheduler/slurm/ --template=templates/experiment-deps/cray/ --template=templates/catch-all/
(where here, templates/scheduler/slurm/
and templates/catch-all
both define variables.yaml
)
Current issues:
-
[x] (done as of Jan. 23) Right now, if two templates define the same file name, the last one will overwrite all prior
- (UPDATE Jan. 17) Work is in progress to handle merging these config files together (I plan to add that here before marking this PR as ready to merge)
-
[ ] (New Jan. 23) Right now, I have
benchpark
clone its own Ramble when executingsystem-create
, this means that there can be multiple Ramble installations:- One for
benchpark
itself (to runramble-python
) - One for managing each experiments directory (so there already could be multiple, but in general there would now be at least 2)
It might be better to manage this
ramble
instance as a Git submodule - One for
-
[ ] (New Jan. 23) Tests for
system-create
would be good -
[ ] (possibly for later)
bin/benchpark
is now reaching a size where it would be useful to split it up -
[ ] I've added some initial entries to
templates/
to give a notion of how they are supposed to be used in combination with thesystem-create
command, but there's not enough there to be actually useful yet
@slabasan to migrate boilerplate system_definition.yaml
from https://github.com/LLNL/benchpark/pull/93 to this PR