You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The rnr-refresh software needs to reproduce at least some of the base functionality of the UFS-RNR software to be able to launch a Cylc workflow (in v8, previously called a "suite" in Cylc v7). A minimum viable product (MVP) of the launch task to demonstrate how rnr-refresh will work constitutes being able to accomplish the launch task on at least 2 platforms: 1 HPC system (Hera), and 1 Parallel Works cloud (Azure). This issue is to capture the decision-making process of what we will include in the new launch task as we compare and work off of the UFS-RNR version.
Background
In UFS-RNR, the main python runscript is called with an experiment YAML input, and the launch task itself is accomplished across several files. The main runscript (via the run function in the CylcRun class) does the following:
collects CLI args
collects vars from YAML
"builds" cylc suite
launches cylc suite (via a call to the launch_cylc function, which in turn calls the run function in cyclutil.cylc_interface.CylcLauncher)
The cylcutil Class is imported from ush by the main runscript. The run function in CylcLauncher does the following:
calls register_suite function, which
adds to log and error files in specific directories
sends a bash command via subprocess that calls the cylc_app class to register the cylc suite with the YAML object for the experiment, the suite path, and run dir
calls the run_suite function, which
adds to the same log and error files
sends another bash command via subprocess that calls cylc_app again with the run command and the YAML experiment object
Those Cylc commands in turn initiate the Cylc suite(s) including the runtime suite (where the launch task is actually defined), which then:
initiates a bash script for the job, which then
runs a python script for the job, which then
creates a launcher from ufs_rnr.launcher.Launcher function
calls the run function for the Launcher
The actual Launcher Class run function then calls other functions to:
build directories for the experiment
create a json file for other tasks to reference
calls run function from the class UFSRNRCylcStatus, which then does some more Singularity-related tasks (not including a full list here)
Relevant files in UFS-RNR
These links are stored here as a reference for mapping out the Launch task functionality present in UFS-RNR, and to help facilitate decisions about what to bring forward (and how).
Starting
The launch task is a core task that is used in all runs of UFS-RNR, thus the best path to follow is starting from a baseline experiment. The experiments are initiated by the runscript with a YAML path input. The configuration files and the runscript can be found in the cylc directory as follows:
Description
The rnr-refresh software needs to reproduce at least some of the base functionality of the UFS-RNR software to be able to launch a Cylc workflow (in v8, previously called a "suite" in Cylc v7). A minimum viable product (MVP) of the launch task to demonstrate how rnr-refresh will work constitutes being able to accomplish the launch task on at least 2 platforms: 1 HPC system (Hera), and 1 Parallel Works cloud (Azure). This issue is to capture the decision-making process of what we will include in the new launch task as we compare and work off of the UFS-RNR version.
Background
In UFS-RNR, the main python runscript is called with an experiment YAML input, and the launch task itself is accomplished across several files. The main runscript (via the
run
function in theCylcRun
class) does the following:launch_cylc
function, which in turn calls therun
function incyclutil.cylc_interface.CylcLauncher
)The
cylcutil
Class is imported fromush
by the main runscript. Therun
function inCylcLauncher
does the following:register_suite
function, whichcylc_app
class to register the cylc suite with the YAML object for the experiment, the suite path, and run dirrun_suite
function, whichcylc_app
again with the run command and the YAML experiment objectThose Cylc commands in turn initiate the Cylc suite(s) including the runtime suite (where the launch task is actually defined), which then:
ufs_rnr.launcher.Launcher
functionLauncher
The actual
Launcher
Classrun
function then calls other functions to:run
function from the classUFSRNRCylcStatus
, which then does some more Singularity-related tasks (not including a full list here)Relevant files in UFS-RNR
These links are stored here as a reference for mapping out the Launch task functionality present in UFS-RNR, and to help facilitate decisions about what to bring forward (and how).
Starting
The launch task is a core task that is used in all runs of UFS-RNR, thus the best path to follow is starting from a baseline experiment. The experiments are initiated by the runscript with a YAML path input. The configuration files and the runscript can be found in the cylc directory as follows:
Python
cylcutil
ClassThe
cylcutil
class is imported by the main run script, which launches the cylc suite.Cylc Suite Files
Several Cylc suites are relevant because there is a main suite for the experiment combined with other general runtime suites.
Environment Files
Environment files that are used in the bash job are platform-specific, even for the task itself.
Job Files
Python
ufs_rnr
ClassLooking Forward
Basically, the question how much do we want to reproduce and/or bring forward?
The text was updated successfully, but these errors were encountered: