Filter async modes
Options for parallelism both in DART and in the model advances
Simplest case, async=0:
This is a single MPI executable, with each call to the model being simply a subroutine call from each MPI task.
Parallel advance, async=2:
The filter executable is one MPI program, and the model is a single, sequential executable. Each MPI task uses the
unix “system()” call to invoke a shell script (advance_model.csh) which runs the models as independent programs.
Other views of how the async=2 option is structured; these may be more or less helpful.
Parallel advance, async=2:
Parallel advance, async=2, second version:
Parallel model advance, async=2, showing how data is communicated between filter and the model thru intermediate
files. IC are ‘initial condition’ files, UD are ‘updated’ files.
Parallel model advance, async=4:
The filter executable is one MPI program, and the model is also an MPI program. The filter executable communicates
with the runme_filter shell script, which sequentially invokes mpirun to advance each of the model runs, one per
ensemble member, still using advance_model.csh.
Parallel model advance, async=4, showing how data is communicated between filter and the model thru intermediate
files. IC are ‘initial condition’ files, UD are ‘updated’ files.