Parsl Configuration

class parsl_configs.perlmutter.PerlmutterConfig(json_config)

Bases: Config

Parsl configuration for running exa-AMD on Perlmutter.

This configuration defines four Parsl executors, each targeting a different part of the exa-AMD workflow and resource type:

  • Generate Structures Executor (generate_structures_executor): run on CPU, single-node.

  • CGCNN Executor (cgcnn_executor): run on GPU, single-node.

  • Select Structures Executor (select_structures_executor): run on CPU, single-node.

  • VASP Executor (vasp_executor): run on GPU, multi-node.

Parameters:

json_config (dict) –

Required keys:
  • vasp_nnodes (int): Number of GPU nodes to use for VASP calculations.

  • num_workers (int): Number of workers to allocate per CPU node.

parsl_configs.parsl_executors_labels.CGCNN_EXECUTOR_LABEL = 'cgcnn_executor_label'

Executor label used for CGCNN prediction tasks.

parsl_configs.parsl_executors_labels.GENERATE_EXECUTOR_LABEL = 'generate_executor_label'

Executor label used for structure generation tasks.

parsl_configs.parsl_executors_labels.POSTPROCESSING_LABEL = 'post_processing_label'

Executor label for all calculcations and scripts involved in the post-processing

parsl_configs.parsl_executors_labels.SELECT_EXECUTOR_LABEL = 'select_executor_label'

Executor label used for structure selection tasks.

parsl_configs.parsl_executors_labels.VASP_EXECUTOR_LABEL = 'vasp_executor_label'

Executor label used for all VASP-related Parsl tasks.

parsl_configs.parsl_config_registry.auto_register_configs(package_name)

Automatically discover and import all modules that contains a Parsl Configuration.

Scans the specified package and detects the calls to register_parsl_config(), so the Parsl configurations can be selected at runtime.

Parameters:

package_name (str)

Raises:

SystemExit – If the specified package cannot be found or loaded.

parsl_configs.parsl_config_registry.get_parsl_config(config)

Retrieve and instantiate the registered Parsl config by name.

If the registry is empty, it auto-imports all modules from the default parsl_configs package using auto_register_configs().

The configuration is provided via the parsl_config field in ConfigManager.

Parameters:

config (dict) – Must contain the key parsl_config

Returns:

An instance of the selected Parsl configuration.

Return type:

parsl.config.Config

Raises:

SystemExit – If the specified config name is not registered.

parsl_configs.parsl_config_registry.register_parsl_config(config_name, config_class)

Register a Parsl config class under a string name.

Can be called inside any module to make the defined configuration discoverable at runtime.

Once a configuration is registered, it can be selected dynamically at runtime using the ConfigManager, by setting the parsl_config parameter to the corresponding name.

Parameters:
  • config_name (str) – The unique name that identifies the configuration.

  • config_class (type) – A callable or class that returns a Parsl Config object.