Running simulations on the TACC Stampede2 - chunshen1987/iEBE-MUSIC Wiki

This page explains the set up on the Stampede2 Cluster at Taxes Advanced Computing Center (TACC).

First time set up

Log in to the Stampede2 using ssh [UserName]@stampede2.tacc.utexas.edu (The login node could be different for different users).

Once you log in to the Stampede2, you can request an interactive node by

idev

Then you can load the essential modules

module load tacc-singularity
  • Download the singularity image of the iEBE-MUSIC framework,
mkdir -p $WORK/singularity_repos/
cd $WORK/singularity_repos/
singularity pull docker://chunshen1987/iebe-music:JETSCAPE
  • Download the iEBE-MUSIC framework code under your work directory,
cd $WORK
git clone https://github.com/chunshen1987/iEBE-MUSIC -b JETSCAPE

Running Simulations

To generate and run a batch of simulations, you need to start from your work directory,

cd $WORK/iEBE-MUSIC/
./generate_singularity_jobs.py -w $SCRATCH/[runDirectory] -c stampede2 --node_type SKX -n 24 -n_hydro 1 -n_th 4 -par [parameterFile.py] -singularity $WORK/singularity_repos/iebe-music_JETSCAPE.sif -b [bayesParamFile]

Here [runDirectory] needs to be replaced with the information collision system. The file [parameterFile.py] need to be replaced by the actual parameter file. You can find example parameter files in the config/ folder. All the model parameters are listed in the config/parameters_dict_master.py file. The training parameters for Bayesian emulator can be specified using the -b option with a parameter file [bayesParamFile].

The option -n specifies the number of jobs to run. On Stampede2, we recommend to set the number of hydro events to simulation per job -n_hydro to 1 so that we can set the shortest walltime for each batch of jobs. With -n_hydro 1, the option -n effectively sets the number of total events one wants to simulate in the batch.

On Stampede2, the option --node_type has the available options, SKX, KNL, and ICX on Stampede2. When using KNL nodes, we recommend to set the number of openMP threads -n_th 16. For SKX and ICX nodes, -n_th 4.

If one sets the singularity image with a different name, you need to replace the iebe-music_JETSCAPE.sif with the your customized name.

The full help message can be viewed by ./generate_singularity_jobs.py -h,

usage: generate_singularity_jobs.py [-h] [-w] [-c] [--node_type] [-n]
                                    [-n_hydro] [-n_th] [-par] [-singularity]
                                    [-exe] [-b] [-seed]

⚛ Welcome to iEBE-MUSIC package

  -h, --help            show this help message and exit
  -w , --working_folder_name 
                        working folder path (default: playground)
  -c , --cluster_name   name of the cluster (default: local)
  --node_type           name of the queue (work on stampede2) (default: SKX)
  -n , --n_jobs         number of jobs (default: 1)
  -n_hydro , --n_hydro_per_job 
                        number of hydro events per job to run (default: 1)
  -n_th , --n_threads   number of threads used for each job (default: 1)
  -par , --par_dict     user-defined parameter dictionary file (default:
                        parameters_dict_user.py)
  -singularity , --singularity 
                        path of the singularity image (default: iebe-
                        music_latest.sif)
  -exe , --executeScript 
                        job running script (default:
                        Cluster_supports/WSUgrid/run_singularity.sh)
  -b , --bayes_file     parameters from bayesian analysis (default: )
  -seed , --random_seed Random Seed (-1: according to system time) (default: -1)

After running this script, the working directory $SCRATCH/[runDirectory] will be created. You can then submit the job by

cd $SCRATCH/[runDirectory]
sbatch submit_MPI_jobs.script

While the jobs are running, you can type squeue -u $USER to check the progress.

After the simulations finish, the final results will be automatically copied from the $SCRATCH/[runDirectory] to $WORK/RESULTS/[runDirectory].