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:
- 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:
objectCreate 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
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