You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
Version 1
Next »
It can keep maintenance simple using a single "task wrapper file", called in multiple contexts, for multiple tasks. It can be seen as a single task in research mode, for example, while it is used to generated multiple tasks in parallel in operation so we can get the expected data faster.
%manual
%end
%include <head.h>
if [[ %PARALLEL:1% == 1 ]]; then
for param in %PARAMS:2t u v rh%; do
# process: create ${param}.grib
done
fi
if [[ %SERIAL:1% == 1 ]]; then
for param in %PARAMS:2t u v rh%; do
# push into fields data base
done
fi
%include <tail.h>
suite example
family parallel
edit PARALLEL 1
edit SERIAL 0
limit count 5
inlimit count
family 2t
edit PARAM 2t
task process
endfamily
family u
edit PARAM u
task process
endfamily
family v
edit PARAM v
task process
endfamily
family rh
edit PARAM rf
task process
endfamily
endfamily # process
family serial
trigger parallel eq complete
edit PARALLEL 0
edit SERIAL 1
task process
A real case example is given by the family ensms (ensenble mean statistics) where few parameters and multiple level shall generate tasks and grib files in parallel, while a single task by the end moves the grib files into the fields data base ("limit em 1" is used as a mutex)
This page contains macros or features from a plugin which requires a valid license.
You will need to contact your administrator.