Garden's Almanac of Matter Models

PET

January 2023

Checkpoint Params Polaris Sophia Perlmutter Delta Frontier Della
pet-oam-xl 730M ●●—○—○
pet-omatpes-l 255M ●●—●—●
● verified, last 30 days β—‹ installed, not recently verified β€” not installed

No cluster has installed any checkpoint of this model yet.


Running this model
1# from a job or interactive session on a supported cluster:
2from rootstock import RootstockCalculator
3
4with RootstockCalculator(
5 cluster=YOUR_CLUSTER_ID, # eg, "polaris", "sophia"
6 checkpoint="pet-oam-xl",
7 device="cuda",
8) as calc:
9 # model is now running in subprocess on compute node
10 atoms.calc = calc
11 atoms.get_potential_energy()

Environments

Rootstock runs each model family inside an isolated Python environment defined by a single file. This environment file includes the specific dependencies needed, plus a setup() function that loads the model and returns an ASE calculator. These files are usually almost identical for a given model family, but because of cluster-specific quirks (eg, an old CUDA driver) the dependencies and setup code can vary a bit.

polaris-pet_env.py
1# /// script
2# requires-python = ">=3.11,<3.15"
3# dependencies = [
4# "upet>=0.2.6",
5# "ase>=3.22",
6# # upet pulls nvalchemi-toolkit-ops unpinned; 0.4+ needs torch>=2.8 at
7# # runtime but only declares the constraint on its extras, so the
8# # resolver won't catch it (same trap as the tensornet env).
9# "torch>=2.8,<2.14",
10# ]
11#
12# [tool.uv.sources]
13# torch = { index = "pytorch-cu128" }
14#
15# [[tool.uv.index]]
16# name = "pytorch-cu128"
17# url = "https://download.pytorch.org/whl/cu128"
18# explicit = true
19# ///
20"""PET env β€” Polaris variant of pet.py (UPET foundation checkpoints).
21
22Identical to pet.py except torch is pinned to the cu128 index: Polaris's
23driver stack tops out at CUDA 12.8, and the default PyPI torch wheel is
24built against a newer CUDA, so metatomic's pick_device finds no usable
25cuda at setup() (smoke-test 2026-08-04). Sophia keeps the unrestricted env.
26
27The upstream string encodes model@version; versions are pinned rather than
28"latest" so rebuilds serve the same weights. pet-omatpes-l is trained at the
29r2SCAN level of theory β€” its energies are not comparable to the PBE-level
30pet-oam models.
31"""
32
33CHECKPOINTS = {
34 "pet-oam-xl": "pet-oam-xl@1.0.0",
35 "pet-omatpes-l": "pet-omatpes-l@0.1.0",
36}
37
38CLUSTERS = ["polaris"]
39
40
41def setup(checkpoint: str, device: str = "cuda"):
42 from huggingface_hub import hf_hub_download
43 from upet.calculator import UPETCalculator
44
45 # metatomic-ase 0.1.2's nvalchemi fast path passes a float max_neighbors
46 # (len * max(128, cutoff**3)) into torch.full β€” TypeError for cutoffs > ~5 Γ….
47 # Force the vesin fallback; the flag is read at call time.
48 import metatomic_ase._neighbors as _mta_n
49 _mta_n.HAS_NVALCHEMIOPS = False
50
51 # Passing model=/version= makes UPETCalculator resolve the name by listing
52 # the hub repo β€” an uncached API call that fails on workers, which run
53 # with HF_HUB_OFFLINE=1 (and on any node without internet). Fetch the
54 # pinned file ourselves β€” a cache hit needs no network even offline β€” and
55 # hand it over as checkpoint_path, which skips the resolve entirely.
56 model, version = CHECKPOINTS[checkpoint].split("@", 1)
57 path = hf_hub_download(
58 repo_id="lab-cosmo/upet",
59 filename=f"{model}-v{version}.ckpt",
60 subfolder="models",
61 )
62 return UPETCalculator(checkpoint_path=path, device=device)
63

Built on Polaris: 2026-08-05

Couldn't load the current environments from Rootstock.


References
  1. Pozdnyakov, Sergey N., Ceriotti, Michele, Smooth, exact rotational symmetrization for deep learning on point clouds, arXiv, 2023.
  2. Bigi, Filippo, Pegolo, Paolo, Mazitov, Arslan, Schmidt, Jonathan, Ceriotti, Michele, Pushing the limits of unconstrained machine-learned interatomic potentials, arXiv, 2026.