Spaces:
Running
Running
| from __future__ import annotations | |
| from pathlib import Path | |
| from mlip_arena.models import REGISTRY, MLIPEnum | |
| from mlip_arena.tasks.stability.flow import compression, heating | |
| if __name__ == "__main__": | |
| from dask.distributed import Client | |
| from dask_jobqueue import SLURMCluster | |
| from prefect_dask import DaskTaskRunner | |
| nodes_per_alloc = 1 | |
| gpus_per_alloc = 4 | |
| cluster_kwargs = dict( | |
| cores=1, | |
| memory="64 GB", | |
| processes=1, | |
| shebang="#!/bin/bash", | |
| account="matgen", | |
| walltime="04:00:00", | |
| job_mem="0", | |
| job_script_prologue=[ | |
| "source ~/.bashrc", | |
| "module load python", | |
| "source activate /pscratch/sd/c/cyrusyc/.conda/mlip-arena", | |
| ], | |
| job_directives_skip=["-n", "--cpus-per-task", "-J"], | |
| job_extra_directives=[ | |
| "-J arena-stability", | |
| "-q preempt", | |
| "--time-min=00:30:00", | |
| "--comment=12:00:00", | |
| f"-N {nodes_per_alloc}", | |
| "-C gpu", | |
| f"-G {gpus_per_alloc}", | |
| ], | |
| ) | |
| cluster = SLURMCluster(**cluster_kwargs) | |
| print(cluster.job_script()) | |
| cluster.adapt(minimum_jobs=10, maximum_jobs=50) | |
| client = Client(cluster) | |
| for model in MLIPEnum: | |
| run_dir = Path(__file__).parent / f"{REGISTRY[model.name]['family']}" | |
| heating.with_options( | |
| task_runner=DaskTaskRunner(address=client.scheduler.address), | |
| log_prints=True, | |
| )(model, run_dir) | |
| for model in MLIPEnum: | |
| run_dir = Path(__file__).parent / f"{REGISTRY[model.name]['family']}" | |
| compression.with_options( | |
| task_runner=DaskTaskRunner(address=client.scheduler.address), | |
| log_prints=True, | |
| )(model, run_dir) | |