Configuration

alomancy.configs.config_dictionaries.load_dictionaries(config_path: Path) dict[str, Any][source]

Set the information for the HPCs and jobs used in the active learning workflow.

three jobs are required mlip_committee: advised to use a GPU based HPC structure_generation: advised to use a GPU based HPC high_accuracy_evaluation: advised to use a CPU based HPC

for each job, the following information is required: - name: the name of the job, used to identify the job in the workflow - max_time: the maximum time allowed for the job to run - hpc: a dictionary containing information about the HPCs available for the job

  • pre_cmds: commands to run before starting the job, e.g. activating a virtual environment

  • partitions: the partition used for the job on the HPC

for the mlip_committee job, the following information is required: - size_of_committee: the number of models in the committee - epochs: the number of epochs to train the models for

for the structure_generation job, the following information is required: - number_of_concurrent_jobs: the number of concurrent jobs to run

for the high_accuracy_evaluation job, the following information is required in the hpc dictionary: - node_info: a dictionary containing information about the nodes available for the job

  • ranks_per_system: the number of ranks per system

  • ranks_per_node: the number of ranks per node

  • threads_per_rank: the number of threads per rank

  • max_mem_per_node: the maximum memory per node

  • pwx_path: the path to the Quantum Espresso pw.x executable

  • pp_path: the path to the pseudopotentials directory

  • pseudo_dict: a dictionary containing the pseudopotentials used for each element

Returns:

A dictionary containing the HPC and job information.

Return type:

dict

class alomancy.configs.remote_info.RemoteInfo(sys_name, job_name, resources, num_inputs_per_queued_job=-100, pre_cmds=None, post_cmds=None, env_vars=None, input_files=None, output_files=None, header_extra=None, exact_fit=True, partial_node=False, timeout=3600, check_interval=30, ignore_failed_jobs=False, resubmit_killed_jobs=False, hash_ignore=None)[source]

Bases: object

Create a RemoteInfo object

Parameters:
  • sys_name (str) – name of system to run on

  • job_name (str) – name for job (unique within this project)

  • resources (dict or Resources) – expyre.resources.Resources or kwargs for its constructor

  • num_inputs_per_queued_job (int, default -100) – num_inputs_per_python_subprocess for each job. If negative will be multiplied by iterable_autopara_wrappable num_inputs_per_python_subprocess

  • pre_cmds (list(str)) – commands to run before starting job

  • post_cmds (list(str)) – commands to run after finishing job

  • env_vars (list(str)) – environment variables to set before starting job

  • input_files (list(str)) – input_files to stage in starting job

  • output_files (list(str)) – output_files to stage out when job is done

  • header_extra (list(str), optional) – extra lines to add to queuing system header

  • exact_fit (bool, default True) – require exact fit to node size

  • partial_node (bool, default True) – allow jobs that take less than a whole node, overrides exact_fit

  • timeout (int) – time to wait in get_results before giving up

  • check_interval (int) – check_interval arg to pass to get_results

  • ignore_failed_jobs (bool, default False) – skip failures in remote jobs

  • resubmit_killed_jobs (bool, default False) – resubmit jobs that were killed without an exit status (out of walltime or crashed), hoping that other parameters such as walltime or memory have been changed to make run complete this time

  • hash_ignore (list(str), default []) – list of arguments to ignore when doing hash of remote function arguments to determine if it’s already been done

alomancy.configs.remote_info.get_remote_info(job_dict, input_files: list[str] | None = None) RemoteInfo[source]

Returns a RemoteInfo object for running MACE fits on a GPU cluster.