Platform Specs
libEnsemble detects platform specifications including MPI runners and resources. Usually this will result in the correct settings. However, users can configure platform specifications via the platform_specs option or indicate a known platform via the platform option.
platform_specs
A Platform
object or dictionary specifying settings for a platform.
To define a platform (in calling script):
from libensemble.resources.platforms import Platform
libE_specs["platform_specs"] = Platform(
mpi_runner="srun",
cores_per_node=64,
logical_cores_per_node=128,
gpus_per_node=8,
gpu_setting_type="runner_default",
gpu_env_fallback="ROCR_VISIBLE_DEVICES",
scheduler_match_slots=False,
)
libE_specs["platform_specs"] = {
"mpi_runner": "srun",
"cores_per_node": 64,
"logical_cores_per_node": 128,
"gpus_per_node": 8,
"gpu_setting_type": "runner_default",
"gpu_env_fallback": "ROCR_VISIBLE_DEVICES",
"scheduler_match_slots": False,
}
The list of platform fields is given below. Any fields not given will be auto-detected by libEnsemble.
Platform Fields
- pydantic model libensemble.resources.platforms.Platform
- Config:
arbitrary_types_allowed: bool = True
populate_by_name: bool = True
extra: str = forbid
validate_assignment: bool = True
To use an existing platform:
from libensemble.resources.platforms import PerlmutterGPU
libE_specs["platform_specs"] = PerlmutterGPU()
See known platforms.
platform
A string giving the name of a known platform defined in the platforms module.
libE_specs["platform"] = "perlmutter_g"
Note: the environment variable LIBE_PLATFORM
is an alternative way of setting.
E.g., in the command line or batch submission script:
export LIBE_PLATFORM="perlmutter_g"
Known Platforms List
Known_platforms
- pydantic model libensemble.resources.platforms.Known_platforms
A list of platforms with known configurations.
There are three ways to specify a known system:
from libensemble.resources.platforms import PerlmutterGPU libE_specs["platform_specs"] = PerlmutterGPU()
libE_specs["platform"] = "perlmutter_g"
On command-line or batch submission script:
export LIBE_PLATFORM="perlmutter_g"
If the platform is not specified, libEnsemble will attempt to detect known platforms (this is not guaranteed).
Note: libEnsemble should work on any platform, and detects most system configurations correctly. These options are helpful for optimization and where auto-detection encounters ambiguity or an unknown feature.
- field generic_rocm: GenericROCm
- field crusher: Crusher
- field frontier: Frontier
- field perlmutter_c: PerlmutterCPU
- field perlmutter_g: PerlmutterGPU
- field polaris: Polaris
- field spock: Spock
- field summit: Summit
- field sunspot: Sunspot