Setting up Simfactory for a New Machine

From Einstein Toolkit Documentation
Revision as of 09:56, 20 June 2023 by Sbrandt (talk | contribs) (Created page with "# Setting up Simfactory for a New Machine In order to setup a new machine for Simfactory, you will need to create 4 files inside the simfactory repo: * mdb/machines/YourMachi...")
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search
  1. Setting up Simfactory for a New Machine

In order to setup a new machine for Simfactory, you will need to create 4 files inside the simfactory repo:

  • mdb/machines/YourMachine.ini
  • mdb/runscripts/YourMachine.run
  • mdb/submitscripts/YourMachine.sub
  • mdb/optionlists/YourMachine.cfg

In all cases, "YourMachine" should be replaced with whatever name you would like to supply for your machine.

    1. Creating YourMachine.ini

Generally speaking, the name in square brackets at the top and the nickname should match. By convention, they are all in lower case. The name usually matches the nickname, except that name may have capital letters.

The aliaspattern should provide a Python regular expression that identifies your machine by it's hostname. The hostname will be found by SimFactory by calling the /usr/bin/hostname command. Note that if you put a name in ~/.hostname, it will use that instead of the output of /usr/bin/hostname.

 [yourmachine]
 # This machine description file is used internally by simfactory as a template
 # during the sim setup and sim setup-silent commands
 # Edit at your own risk
 # Machine description
 nickname        = yourmachine
 name            = YourMachine
 location        = YourLocation
 description     = SomeLongerDescription
 status          = production
 webpage         = https://SomeWebPage
 # How to access this machine via ssh
 hostname        = slurmjupyter.cct.lsu.edu
 aliaspattern    = PythonRegularExpression
 envsetup = <<EOT
   module load icc
   LD_LIBRARY_PATH=/usr/local/lib64
 EOT
 disabled-thorns = <<EOT
     OpenBLAS
 EOT
 enabled-thorns = <<EOT
    SystemTopology
 EOT
 optionlist      = cori.cfg
 submitscript    = cori.sub
 runscript       = cori.run
 makejobs        = 16
 make            = make -j@MAKEJOBS@
 # Simulation management
 basedir         = /global/cscratch1/sd/@USER@/simulations
 cpu             = Two 2.3 GHz 16-core Haswell processors per node
 cpufreq         = 2.3
 flop/cycle      = 8
 max-num-smt     = 2
 num-smt         = 1
 ppn             = 32
 spn             = 2
 max-num-threads = 64
 num-threads     = 16
 memory          = 131072
 nodes           = 1630
 min-ppn         = 32
 allocation      = NO_ALLOCATION
 queue           = regular
 maxwalltime     = 48:00:00
 submit          = sbatch @SCRIPTFILE@
 getstatus       = squeue -j @JOB_ID@
 stop            = scancel @JOB_ID@
 submitpattern   = 'Submitted batch job (\d+)'
 statuspattern   = '@JOB_ID@ '
 queuedpattern   = ' PD '
 runningpattern  = ' (CF|CG|R|TO) '
 holdingpattern  = '\(JobHeldUser\)'
 scratchbasedir   = /scratch2/scratchdirs/@USER@
 exechost        = hostname
 exechostpattern = (.*)
 stdout          = cat @SIMULATION_NAME@.out
 stderr          = cat @SIMULATION_NAME@.err
 stdout-follow   = tail -n 100 -f @SIMULATION_NAME@.out @SIMULATION_NAME@.err