jedi
The uw mode for configuring and running the JEDI framework.
uw jedi --help
usage: uw jedi [-h] [--version] TASK ...
Execute jedi tasks
Optional arguments:
-h, --help
Show help and exit
--version
Show version info and exit
Positional arguments:
TASK
configuration_file
The JEDI YAML configuration file
files_copied
Files copied for run
files_linked
Files linked for run
provisioned_run_directory
Run directory provisioned with all required content
run
A run
runscript
The runscript
validate
Validate the UW driver config
validate_only
Validate JEDI config YAML
All tasks take the same arguments. For example:
uw jedi run --help
usage: uw jedi run --cycle CYCLE [-h] [--version] [--config-file PATH]
[--batch] [--dry-run] [--graph-file PATH]
[--key-path KEY[.KEY...]] [--quiet] [--verbose]
A run
Required arguments:
--cycle CYCLE
The cycle in ISO8601 format (e.g. 2024-05-23T18)
Optional arguments:
-h, --help
Show help and exit
--version
Show version info and exit
--config-file PATH, -c PATH
Path to UW YAML config file (default: read from stdin)
--batch
Submit run to batch scheduler
--dry-run
Only log info, making no changes
--graph-file PATH
Path to Graphviz DOT output [experimental]
--key-path KEY[.KEY...]
Dot-separated path of keys leading through the config to the driver's
configuration block
--quiet, -q
Print no logging messages
--verbose, -v
Print all logging messages
Examples
The examples use a configuration file named config.yaml with contents similar to:
jedi:
configuration_file:
base_file: path/to/config.yaml
update_values:
baz: qux
execution:
batchargs:
nodes: 1
stdout: path/to/runscript.out
walltime: "08:00:00"
envcmds:
- module load some-module
- module load jedi-module
executable: /path/to/jedi
mpiargs:
- "--export=ALL"
- "--ntasks $SLURM_CPUS_ON_NODE"
mpicmd: srun
files_to_copy:
d/f2: /path/to/f2
f1: /path/to/f1
files_to_link:
f3: /path/to/f3
f4: d/f4
run_dir: /path/to/run
platform:
account: me
scheduler: slurm
Its contents are described in section jedi.
Run
jedion an interactive node$ uw jedi run --config-file config.yaml --cycle 2024-05-22T12
The driver creates a runscript.jedi file in the directory specified by run_dir: in the config and runs it, executing jedi.
Run
jedivia a batch job$ uw jedi run --config-file config.yaml --cycle 2024-05-22T12 --batch
The driver creates a runscript.jedi file in the directory specified by run_dir: in the config and submits it to the batch system. Running with --batch requires a correctly configured platform: block in config.yaml, as well as appropriate settings in the execution: block under jedi:.
Specifying the
--dry-runflag results in the driver logging messages about actions it would have taken, without actually taking any.$ uw jedi run --config-file config.yaml --cycle 2024-05-22T12 --batch --dry-run
The
--key-pathoption can be used to navigate from the top of the config to the driver’s configuration block. For example, specifying--key-path foo.barwith configfoo: bar: driver: # driver config block
is equivalent to using config
driver: # driver config block
without specifying
--key-path.