Skip to content

Add experimental MLIP backends with validated results and durable batches - #14

Merged
tdpham2 merged 7 commits into
mainfrom
mlip-playground-backends
Sep 5, 2026
Merged

Add experimental MLIP backends with validated results and durable batches#14
tdpham2 merged 7 commits into
mainfrom
mlip-playground-backends

Conversation

@tdpham2

@tdpham2 tdpham2 commented Sep 1, 2026

Copy link
Copy Markdown
Owner

Summary

Add experimental, agent-free MLIP APIs and CLI commands for direct ASE MACE,
Rootstock-managed models, and NVIDIA ALCHEMI MACE. Support energy evaluation and
fixed-cell optimization, with calculator/model reuse and ordered batch results.

Validate finite configuration, structures, energies, forces, and available
stress before reporting success. Reject explicitly unsupported frontend options.
Keep numerical success separate from optimization convergence: valid unconverged
results remain available, while CLI/example commands exit nonzero for any failed
calculation or unconverged requested optimization.

Persist each completed item atomically, updating a batch manifest throughout
execution. Interrupted jobs, later failures, and calculator cleanup errors retain
previously committed results. Existing batch manifests and active batch locks
are refused; automatic resume and retries remain follow-up work.

Interfaces and execution

  • Preserve run_mlip, run_mlip_batch, configuration classes, energy, and units.
  • Add artifact paths consistently to returned and persisted result records.
  • Add pending/unconverged counts, per-item convergence, run-level errors, and
    running/interrupted manifest states alongside final execution statuses.
  • CLI exits: 0 for successful requested outcomes, 1 for failure/nonconvergence,
    2 for invalid arguments. Structured summaries precede failure diagnostics.
  • Rootstock's synchronous worker owns CUDA; its caller does not need CUDA-enabled
    PyTorch. Incompatible ChemGraph/ALCHEMI dependencies require separate environments.

Validation

  • GitHub CI at c0d4e92: lint, build, and Python 3.10/3.11/3.12 tests all pass.
  • PYTHONPATH=src pytest tests/ -q: 259 passed, 1 skipped.
  • Ruff lint and formatting checks pass for source, MLIP/CLI tests, and GPU recipes.
  • Source distribution and wheel built with python -m build --no-isolation.
  • Both GPU Python entry points pass --help; Polaris shell scripts pass bash -n.
  • git diff --check passes.
  • Regression coverage includes non-finite/malformed outputs, unsupported options,
    strict exits, incremental persistence, interruptions, write/cleanup failures,
    worker isolation, native result conversion, ordering, and convergence mapping.

Experimental GPU support and follow-up

No live GPU, deployed Rootstock model, scheduler job, or model download was run
for this validation. The opt-in Polaris recipe records energy and optimization
cases for each backend, including a two-structure native ALCHEMI batch, and retains
environment/commit information, commands, logs, results, and convergence evidence.
CPU doubles and prepared recipes do not establish real GPU compatibility.

Benchmarking, checkpoint provenance, resume, and broader API unification remain
deferred. Native optimization step counts remain unknown, and native per-item
timings include shared chunk work. Existing GCMC fixes are tracked separately.

@tdpham2 tdpham2 changed the title Add MLIP backends and GPU examples Add experimental MLIP backends with validated results and durable batches Sep 5, 2026
@tdpham2
tdpham2 merged commit 0549e6d into main Sep 5, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant