Skip to main content

Jarvis-HEP V2

Jarvis-HEP V2 is a distributed runtime for high-energy-physics parameter scans. You describe a scan as a validated YAML task card; Jarvis generates parameter points, evaluates external calculators and/or Python operators in parallel, and archives observables, sample artifacts, logs, and run summaries.

The PyPI distribution is named Jarvis-HEP (current version 2.0.0). Its Python import package remains jarvishep2, and it exposes a single user-facing command: Jarvis.

What V2 provides

Capability V2 implementation
Distributed execution Redis-backed queue with Python spawn Workers
Parameter sampling Stable catalog: Random, Grid, Bridson, AdaptiveBridson, CSV, Dynesty, and MultiNest
HEP calculator integration Jarvis-HEP-Portal for calculator file I/O
Python operators Jarvis-Operas for registered operators and expressions
Reliability Checkpoints, resume, graceful shutdown, and per-sample failure artifacts
Observability Validation diagnostics, monitor snapshots, component logs, and performance summaries
Project workflow Scaffold, validate, run, package, fetch, and inspect standalone projects

The execution model is deliberately simple:

Task YAML → sampler → Redis → Workers → Archiver
                                      ├─ DATABASE/samples.hdf5
                                      ├─ SAMPLE/<bucket>/<uuid>/
                                      └─ logs/<scan>/ + run_summary.*

Installation

Requirements:

  • Python 3.10 or newer
  • Redis for distributed runs; V2 uses the local 127.0.0.1:6379 service

From PyPI:

python3 -m pip install 'Jarvis-HEP[distributed]'

If the short-lived jarvishep2 distribution was installed previously, remove it before installing V2 from Jarvis-HEP; both distributions provide the same jarvishep2 import package and should not be installed together:

python3 -m pip uninstall jarvishep2
python3 -m pip install --upgrade 'Jarvis-HEP[distributed]'

From a source checkout:

python3 -m pip install -e '.[distributed]'

For development and tests:

python3 -m pip install -e '.[distributed,dev]'

Start Redis before a real scan. For example, on macOS:

brew install redis
brew services start redis
redis-cli ping       # PONG

The optional extras are:

  • distributed: Redis, msgpack, and aiofiles
  • plot: JarvisPLOT
  • dev: pytest, fakeredis, and colorlog

For the complete installation guide, Redis options, and project-packaging workflow, see INSTALL.md.

First run

The project scaffold includes a runnable Bridson + Operas example that does not need an external calculator:

Jarvis project create MyScan
cd MyScan

Jarvis validate bin/quickstart_bridson_operas.yaml
Jarvis run bin/quickstart_bridson_operas.yaml

The scaffold also contains calculator, CSV, Dynesty, and MultiNest examples. List the built-in examples with:

Jarvis man example

Task-card contract

V2 task cards use one closed, consistent vocabulary across validate, check, run, and man:

  • Required top-level blocks: Scan, Sampling, and EnvReqs.
  • Declare at least one execution backend: Calculators or Operas.
  • Put method-specific sampler settings under Sampling.Bounds and use lower snake_case keys.
  • Put V2 runtime settings such as worker count and checkpoint heartbeat under EnvReqs.V2.
  • Use Jarvis check TASK.yaml for the fixed-point calculator smoke test.
  • Outputs are written to the project output tree; cleanup.strategy and archiver.handoff are not V2 task-card interfaces.

A card starts with this shape:

Scan:
  name: my_scan

Sampling:
  Method: Random
  Bounds:
    point_number: 100
    seed: 7
  Variables:
    - name: x
      distribution:
        type: Flat
        parameters: {min: 0.0, max: 1.0}

EnvReqs:
  V2:
    workers: 2

Operas:
  Modules:
    - name: my_operator
      operator: my_package.my_function

Use the generated manuals instead of guessing field names:

Jarvis man                         # interactive YAML authoring guide
Jarvis man --json                  # structured output for tooling and agents
Jarvis man sampler                 # sampler catalog
Jarvis man yaml.EnvReqs.V2         # one YAML section
Jarvis man calculator.execution.output --type JSON

Jarvis validate performs schema and semantic checks without starting Redis or Workers. It is the recommended gate before run.

CLI workflow

Jarvis validate TASK.yaml          # validate only
Jarvis check TASK.yaml             # fixed-point calculator smoke test
Jarvis run TASK.yaml               # execute a distributed scan
Jarvis run TASK.yaml --resume      # resume from a checkpoint
Jarvis convert TASK.yaml           # refresh DATABASE/samples.csv from HDF5
Jarvis monitor                     # read one live monitor snapshot
Jarvis ps                          # list Jarvis process groups
Jarvis kill --yes                  # terminate selected runtime processes
Jarvis --refs                      # print framework and sampler references

Additional integrations are available through native subcommands:

Jarvis project create MyScan
Jarvis project list
Jarvis project fetch Eggbox
Jarvis portal man
Jarvis operas list
Jarvis gen-plot-yaml TASK.yaml
Jarvis plot path/to/plot.yaml      # install the [plot] extra first

Use Jarvis COMMAND -h for command-specific options. Screen logging defaults to WARNING; use --console-level INFO, --debug, or --silence as needed. File logs remain available under logs/<scan>/.

Outputs

For a scan named my_scan, the project root typically contains:

outputs/my_scan/
├── DATABASE/
│   ├── samples.hdf5              # archived observables
│   └── samples.csv               # CSV snapshot after `Jarvis convert`
├── SAMPLE/
│   ├── 000001/<uuid>/             # per-sample files when retained
│   └── 000001.tar.gz              # packed sample bucket when enabled
├── run_summary.json
├── run_summary.csv
└── run_summary.txt

logs/my_scan/
├── core.log
├── sampler.log
├── archiver.log
└── worker-00.log ...

Checkpoints are stored under checkpoints/<scan>/<sampler>/state.pkl. Press Ctrl+C to stop a scan cleanly; Jarvis shuts down its Workers, Archiver, and any Redis process it manages.

Development

python3 -m pip install -e '.[distributed,dev]'
python3 -m pytest -q

The long-running AdaptiveBridson integration tests are skipped by default; run them explicitly with python3 -m pytest -q tests/test_adaptive_bridson.py when changing that sampler.

Useful repository documentation:

V1 (jarvishep) is frozen and CLI-retired. V2 uses jarvishep2 and the Jarvis command; Jarvis2 is not installed.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jarvis_hep-2.0.0.tar.gz (707.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jarvis_hep-2.0.0-py3-none-any.whl (621.4 kB view details)

Uploaded Python 3

File details

Details for the file jarvis_hep-2.0.0.tar.gz.

File metadata

  • Download URL: jarvis_hep-2.0.0.tar.gz
  • Upload date:
  • Size: 707.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.13

File hashes

Hashes for jarvis_hep-2.0.0.tar.gz
Algorithm Hash digest
SHA256 6e605307abe13ffe245a42f32896fe1405d8ec4748e16ca2a36d448ae1478843
MD5 5ae5b7809922573d81976c06fec4c075
BLAKE2b-256 12ee2bf069c7d4113bd7c2fb895656bdceb87a0e4c82058d8e8cc17022053281

See more details on using hashes here.

File details

Details for the file jarvis_hep-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: jarvis_hep-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 621.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.13

File hashes

Hashes for jarvis_hep-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 89e7615fcaa610c74eaadd9fb1f9750f54fb82d4eb84410f4e136002f64d9161
MD5 3c4cf0a407820b862c81887bd0858bfa
BLAKE2b-256 8ab1ad79eac6a7f6d65d53dbde71d3d51e461c154e21e0f66e4462cabfdeaa52

See more details on using hashes here.

Release history Release notifications | RSS feed

2.0.12

2 files

2.0.11

2 files

2.0.10

2 files

2.0.9

2 files

2.0.8

2 files

2.0.7

2 files

2.0.6

2 files

2.0.5

2 files

2.0.4

2 files

2.0.3

2 files

2.0.2

2 files

2.0.1

2 files

This release

2.0.0 This release

2 files

1.7.5

2 files

1.7.4

2 files

1.7.3

2 files

1.7.2

2 files

1.7.1

2 files

1.7.0

2 files

1.6.25

2 files

1.6.24

2 files

1.6.23

2 files

1.6.22

2 files

1.6.21

2 files

1.6.20

2 files

1.6.19

2 files

1.6.18

2 files

1.6.17

2 files

1.6.16

2 files

1.6.15

2 files

1.6.14

2 files

1.6.13

2 files

1.6.12

2 files

1.6.11

2 files

1.6.10

2 files

1.6.9

2 files

1.6.8

2 files

1.6.7

2 files

1.6.6

2 files

1.6.5

2 files

1.6.4

2 files

1.6.3

2 files

1.6.2

2 files

1.6.1

2 files

1.6.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page