Quick Start
mache
(Machines for E3SM) is a package for providing configuration data related to E3SM supported machines.
Installing mache
You can install the latest release of mache
from conda-forge:
conda config --add channels conda-forge
conda config --set channel_priority strict
conda install mache
Example usage
#!/usr/bin/env python
from mache import MachineInfo, discover_machine
machine_info = MachineInfo()
print(machine_info)
diags_base = machine_info.config.get('diagnostics', 'base_path')
machine = discover_machine()
This loads machine info for the current machine, prints it, and retrieves a
config option specific to that machine. The mache.discover_machine()
function can also be used to detect which machine you are on.
As an example, the result of print(machine_info)
is:
Machine: anvil
E3SM Supported Machine: True
Compilers: intel, gnu
MPI libraries: impi, openmpi, mvapich
OS: LINUX
E3SM-Unified:
E3SM-Unified is not currently loaded
Base path: /lcrc/soft/climate/e3sm-unified
Diagnostics:
Base path: /lcrc/group/e3sm/diagnostics
Config options:
[e3sm_unified]
group = cels
compiler = intel
mpi = impi
base_path = /lcrc/soft/climate/e3sm-unified
[diagnostics]
base_path = /lcrc/group/e3sm/diagnostics
[web_portal]
base_path = /lcrc/group/e3sm/public_html
base_url = https://web.lcrc.anl.gov/public/e3sm/
[parallel]
system = slurm
parallel_executable = srun
cores_per_node = 36
account = condo
partitions = acme-small, acme-medium, acme-large
qos = regular, acme_high
If you are on the login node of one of the following E3SM supported machines, you don’t need to provide the machine name. It can be discovered automatically:
andes
aurora
anvil
chicoma-cpu
chrysalis
compy
dane
frontier
pm-cpu
polaris
ruby
If you are on a compute node or want info about a machine you’re not currently on, give the machine
name in all lowercase.
Public Functions
The following public functions are available in the top-level mache
package:
mache.MachineInfo
: Class for querying machine-specific configuration and capabilities.mache.discover_machine()
: Function to detect the current machine name.
MachineInfo attributes
machine
: Name of the E3SM supported machine.config
: ConfigParser object with machine-specific options.e3sm_supported
: Whether this machine supports running E3SM.compilers
: List of compilers for this machine.mpilibs
: List of MPI libraries for this machine.os
: The machine’s operating system.e3sm_unified_mpi
: Which MPI type is included in the E3SM-Unified environment.e3sm_unified_base
: Base path for E3SM-Unified and activation scripts.e3sm_unified_activation
: Activation script for E3SM-Unified.diagnostics_base
: Base directory for diagnostics data.web_portal_base
: Base directory for the web portal.web_portal_url
: Base URL for the web portal.username
: The current user’s name.
Additional utilities
mache.machines.get_supported_machines()
: Returns a sorted list of supported machine names.mache.io.download_file()
: Download a file from a URL to a local path.
For more details on these and other features, see the full user’s guide.