Skip to content

APEX workflows, reliable cloud startup and L20 tongqi qualification - #124

Open
Zikkying wants to merge 70 commits into
deepmodeling:devel-1.3.0from
Zikkying:devel-1.3.0
Open

Zikkying wants to merge 70 commits into
deepmodeling:devel-1.3.0from
Zikkying:devel-1.3.0

Conversation

@Zikkying

@Zikkying Zikkying commented Aug 31, 2026 •

Copy link
Copy Markdown
Contributor

Summary

APEX cloud jobs reuse a working image runtime instead of upgrading apex-flow on every run. This PR also adds two-phase melting workflows, staged finite-temperature VASP execution, OpenAPI Sandbox support, and stronger Gamma/phonon/input validation.

  • Separate Bohrium job and Sandbox machine catalogs, align calculator/dispatcher images, and refresh credentials using each backend's protocol.
  • Replace the retired tongqi T4 candidate with a single-L20 candidate using the current job SKU 1 * NVIDIA L20_48g.
  • Add native DeepMD LAMMPS/phonoLAMMPS wrappers, L20 and CPU model build/assembly recipes, and an exact-image qualification runner.
  • Reject zero digests, wrong GPU identity/architecture, and incorrect native-library links. Skill instructions and errors prohibit changing qualification status or bypassing validation.

Validation

  • Current local suite: 636 tests run, one skipped, OK.
  • Actual L20 source-sandbox checks: 12 LAMMPS runs, six CPU/GPU comparisons, three original-checkpoint/runtime comparisons, complete 16-atom phonoLAMMPS force constants, and an APEX-generated/parsed 108-atom FeCoNi single point.
  • Raw checkpoint timing probes completed on L20 and RTX 4090. The 4090 measurement covers initial inference only.
  • Runtime fingerprints and measured values are recorded in images/dpa4-alloytongqi-l20/pre-snapshot-evidence.json.

L20 publication blocker

The tongqi production profile remains pre_snapshot_only. Bohrium snapshots 178312 and 178321 from the L20 sandbox, and 178333 from a clean CPU assembly, returned status 3 with empty build logs. An immutable image digest, a fresh L20 image qualification, and a real job-SKU smoke are still required. This commit is not a new PyPI or production skill release.

Previously published runtime

Zikkying and others added 30 commits July 21, 2026 01:01
…olerance.

Skip preview post_process so add_fix configs no longer require in.lammps, warn on atom overlaps, and keep multi-task property posts alive when individual LAMMPS points fail.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
is_failed_task_result wrongly treated fixture result_task.json (LabeledSystem)
as failed because it is not a plain dict, breaking test_gamma.test_compute_lower.
Also harden refine path assert, ticket expireIn test, and add local pre-commit smoke.

Co-authored-by: Cursor <cursoragent@cursor.com>
Fix: Update Bohrium ticket expireIn and adaptive DFT k-spacing
…tion(hours)

- Change parameter name from 'expireIn' to 'expiration' (correct API field)
- Change unit from seconds to hours (correct API unit)
- Update default from 604800 to 168 (7 days in hours)
- Update SKILL.md documentation accordingly
Co-authored-by: Cursor <cursoragent@cursor.com>
fix(skill): correct ticket API param from expireIn(seconds) to expira…
## OpenAPI Sandbox Integration (config.py, account.py)
- Add context_type="OpenAPI" branch for Bohrium OpenAPI Sandbox
- TiefblueClient uses access_key directly (no email/password needed)
- Support dflow_host: lbg-workflow-dflow.dp.tech, namespace="dflow"
- Add dispatcher_image, image_address, machine_type fields
- Separate validate_project_id_types() logic for OpenAPI vs legacy

## Bug Fix: Interstitial insert_ele (Interstitial.py)
- Normalize insert_ele from string to list at lines 38-43
- Prevents "Cu" being iterated as ["C","u"] -> ValueError

## generate_config.py Enhancements
- Add build_global_json_sandbox() for OpenAPI Sandbox mode
- LAMMPS run_command defaults to "lmp -in in.lammps" (not mpirun)
- GPU machine_type auto-selection for deepmd/mace/nep potentials
- Backend-conditional image_address (LAMMPS/ABACUS/VASP)
- ABACUS INPUT template: relax_nmax=50, cal_stress=1, cal_force=1
- Adaptive kspacing based on system size
- insert_ele list normalization in post-processing

Tested: Cu FCC 1-atom cell, ABACUS all-properties, LAMMPS+DPA-3.2 GPU all-properties
feat: add OpenAPI Sandbox support and fix critical bugs
integrate validated DPA4 phonolammps runtime
feat: default GPU workflows to NVIDIA L20
@Zikkying Zikkying changed the title APEX 1.3.2.post1: workflows, DPA4 support and reliable cloud startup APEX workflows, reliable cloud startup and L20 tongqi qualification Oct 15, 2026
Zikkying and others added 29 commits October 15, 2026 12:35
Remove redundant development environments and test artifacts, flatten the pinned scientific base, and reject runtime filesystems at 35 GB. Preserve model hashes and runtime package versions. CPU audit measured 26.90 GB before model payload; registry build and fresh L20 qualification remain pending.
Retain Miniconda shared libraries required by native LAMMPS while removing its redundant Python environment. The trimmed L20 sandbox measured 27.94 GB and completed FeCoNi single-point and phonoLAMMPS checks. Final published-image qualification remains pending.
Enable pinned tongqi runtime and correct skill execution guidance
Enable DPA4 tongqi OpenAPI after real L20 end-to-end acceptance
Prevent unresolved type maps and document tongqi runtime requirements
Release APEX 1.3.4 runtime images and synchronized skill
Synchronize runtime image documentation and exported skill
Streamline APEX skill workflow and debugging guide
Validate Gamma preview interface composition and fix-xy geometry
Guide MM preview and preflight through the APEX CPU runtime

This branch has not been deployed

No deployments
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.

2 participants