Running MOFA#

MOFA is designed to, eventually, deploy multiple workflow styles but only supports one now: running all components in a single batch job on a supercomputer.

The Run Script#

Note

We are working to break major blocks of configuration into configuration files rather than a large number of CLI options.

The run_parallel_workflow.py script deploys MOFA onto an HPC system.

TBD

Configuration#

Configuration is broken into a few files

GenAI Components#

TBD

HPC Layout#

The HPCConfig object defines how to run MOFA on a single HPC system. The configuration contains two major parts:

  1. Application Details: Settings for which application to use for each simulation task and the proper command to launch them. For example, raspa_cmd must be the path to a RASPA binary for the version defined in raspa_version.

  2. Workflow Configuration: The mofa.hpc.config.HPCConfig.make_parsl_config() generates the Config object used by Parsl to launch workers. The configuration object contains the Parsl Executors defined for each type of task (e.g., the DFT tasks will run on the dft_executors executors). The resources devoted to each tasks are controlled using the ai_fraction and dft_fraction.

Porting MOFA to a new system involves subclassing HPCConfig or SingleJobHPCConfig and re-defining the methods to create Parsl configurations. For example, consult the AuroraConfig The process for making a new subclass has yet to be streamlined.

The run script reads a configuration function from a Python file. The file must contain an HPCConfig object as a variable named hpc_config.