mache.parallel.system.ParallelSystem

class mache.parallel.system.ParallelSystem(config: ConfigParser)[source]

Base class for parallel system resource management.

Variables:
  • parallel_configs (Dict[str, str]) – A dictionary containing combined config options for the parallel section and the parallel.{compiler} section, if any.

  • cores (int) – The total number of CPU cores available on the system.

  • cores_per_node (int) – The number of CPU cores available per node.

  • gpus (int) – The total number of GPUs available on the system.

  • gpus_per_node (int) – The number of GPUs available per node.

  • nodes (int) – The total number of nodes available on the system.

  • mpi_allowed (bool) – Whether MPI execution is allowed on the system.

__init__(config: ConfigParser)[source]

Set available resources for the parallel system based on the config.

Parameters:

config (ConfigParser) – The configuration parser containing the parallel system options.

Methods

__init__(config)

Set available resources for the parallel system based on the config.

get_config(key[, default])

Get a config value from the parallel configs.

get_config_int(key[, default])

Get an integer config value from the parallel configs.

get_parallel_command(args, ntasks[, ...])

Get the parallel execution command for the current system.

get_scheduler_target(config, target_type, nodes)

Choose queue/partition/qos metadata target for a node count.

resolve_submission(config, nodes, target_type)

Resolve a scheduler target and effective node count.