Imagine you have a cyclus simulation that you would like to run many times with varied parameters or agents. You can use this workflow to generate an input file for each desired simulation and to run those input files simultaneously on the Blue Waters supercomputer.
Login to a MOM node.
$ qsub -I -l walltime=00:30:00 -l nodes=1:ppn=1
Load shifter and check if docker image exists on blue waters.
$ module load shifter $ getDockerImage lookup arfc/cyclus_blue_waters:latest
If the image does not exist, pull from docker hub
$ getDockerImage pull arfc/cyclus_blue_waters:latest
Run the cyclus_blue_waters.py script with appropriate options. This will generate two files, cyclus_script.sh and pbs_script.pbs.
-h, --help
Show help message
--nodes
Number of nodes
--ppn
Processors per node
--walltime
Max time your job can run (hours:minutes:seconds)
-o
Output type ('sqlite' or 'h5')
--in-dir
Inputs directory
--out-dir
Outputs directory
--log-dir
Logs directory
--spec-file
Path of specification file*
* Specification files are Rickshaw input files in which you can define constraints for generation
Submit the job.
$ qsub pbs_script.pbs
The docker image needs to be updated if the cyclus, cycamore or rickshaw installation in the image is to be updated.
The docker image will be automatically updated in docker hub when a commit is pushed to cyclus or cycamore.
As rickshaw doesn't have an automated build, to update the rickshaw installation in the docker image, the image needs to be manually updated.
To manually update the image, go to the docker hub page, then go to Build Settings and trigger a build.