Skip to content

add-sims

add-sims: Perform EXOSIMS simulations, accumulating runs into subdirectories

This is a wrapper around the python driver, sandbox_driver.py.

Typical Usage:

  add-sims.sh [-S | -Z] SCRIPT SEEDS

Most General Usage:

  add-sims.sh [-q] [-A | -S | -Z] [-j JOBS] [-v VERB] [-x SCRIPT] [-O OPTS] SCRIPT SEEDS

Uses the JSON script SCRIPT and performs a series of parallel runs given by SEEDS. * The runs are done on the local computer, from a pool that depends on machine (four less than the number of cores, so for example: mustang2/3 = 68). * If just one SEED is given, Exosims output is sent directly to standard output - useful for checking validity. If more than one SEED, the Exosims output is sent to a set of log files (sims/SCRIPT/log/*), and a summary of current job status is sent to standard output. * To repeat an error-causing run interactively, paste the command-line printed by this script (the one that calls sandbox_driver.py) into your terminal, and add "--interactive" to the options.

Typical Usage: (a) Run a machine-dependent number of jobs spanning 64 seeds on the local machine add-sims.sh Scripts/ExampleScript.json Experiments/seed64.txt (b) Run 100 jobs on mustang and aftac, across 100 deterministic seeds add-sims.sh -Z Scripts/ExampleScript.json Experiments/seed100.txt (c) Do a test run for a single arbitrary seed (we use 777): add-sims.sh Scripts/ExampleScript.json =777 (d) Write cache files for a new script, but do not run a sim: add-sims.sh Scripts/ExampleScript.json =0

Arguments: SCRIPT -- a JSON script suitable for EXOSIMS SEEDS -- either: (1) if a plain integer, that number of randomly-chosen initial seeds. (2) if of the form =SEED, where SEED is an integer, that single integer is the seed. If SEED is 0, only cache warming is done (no run_sim). (3) else, it is a filename giving a list of integer seeds, one per line.

Options:

  -h        => show this help message and exit.
  -0        => generate caches first, then do the requested SEEDS
  -S        => run using Speedy's (mustang2/3/4 -- 24 + 24 + 16 jobs = 64 jobs)
  -Z        => run using all (mustang2/3/4 + aftac1/2/3 -- total of 100 jobs)
  -c        => chatty console output (for debugging) even if #SEEDS > 1

Less-used Options:

  -j JOBS   => runs only JOBS parallel jobs (not used with -A)
  -v VERB   => set verbosity to VERB (0=quiet or 1=verbose)
  -q        => quiet object creation
  -P        => do not show the gnu parallel progress bar (good for scripted batch jobs)
  -x SCRIPT => an extra scenario-specific script loaded on top of the argument SCRIPT
  -p PATH   => EXOSIMS path is PATH instead of the default in your environment.
               If you are in a Python venv, this will be detected and you should not 
               need to specify -p.
               Using PATH=@ abbreviates the command-line default (what you get from
               "python -c import EXOSIMS").
  -O OPTS   => output options, a string of comma-separated tags telling
      which EXOSIMS variables should be written, and to which files.
      See the notes in the python driver file for how it works.
      Default: OPTS = 'drm:pkl,spc:spc'  -- this indicates the DRM
      is stored as a pickle with extension .pkl, and the planet parameters
      are stored as a pickle with extension .spc.

turmon oct 2017, 2018, 2020, 2023