Skip to content

About

sparkrun - launch, manage, and stop LLM inference workloads on NVIDIA DGX Spark systems. Live support: https://discord.com/invite/GH5kRgv6ZD

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

1,557 Commits

Folders and files

Repository files navigation

sparkrun — Part of the Spark Arena ecosystem

PyPI version License Documentation Spark Arena

One command to rule them all

Launch, manage, and stop LLM inference workloads on one or more NVIDIA DGX Spark systems — no Slurm, no Kubernetes, no fuss.

Documentation · Quick Start · Recipes · Spark Arena


Install

uvx sparkrun setup

One command — installs sparkrun, then launches the guided setup wizard to create a cluster, configure SSH mesh, detect ConnectX-7 NICs, set up sudoers, and enable earlyoom.

Quick Start

# Run an inference workload
sparkrun run qwen3-1.7b-vllm

# Multi-node tensor parallelism (TP maps to node count on DGX Spark)
sparkrun run qwen3-1.7b-vllm --tp 2

# Re-attach to logs, stop a workload, check status
sparkrun logs qwen3-1.7b-vllm
sparkrun stop qwen3-1.7b-vllm
sparkrun status

Ctrl+C detaches from logs — it never kills your inference job. Your model keeps serving.

Watched launches also report Docker-start TTR and TTFT using a rank-local streaming readiness check for Docker vLLM/SGLang launches. By default, run follows startup logs and exits when ready; use --follow to stay attached, --no-follow to wait without model logs, or --no-ready-wait to return after launch. See startup readiness for configuration, timing boundaries, per-recipe overrides, and execution-strategy integration.

See the full CLI reference for all commands and options.

Updating

sparkrun update

Upgrades sparkrun (when installed via uv tool), applies compatible updates to trusted managed plugins, and refreshes recipe registries. Use --no-update-plugins for a local plugin compatibility audit without plugin updates. See plugin management.

Moving from 0.3.x or a preview build? See the 0.4.0 upgrade guide for plugin installation, changed defaults, and Python API migration.

Update channels (advanced)

Opt into preview builds installed from git instead of PyPI:

sparkrun update --stable   # PyPI stable release (default)
sparkrun update --beta     # develop branch preview
sparkrun update --alpha    # develop-next branch (bleeding edge)
sparkrun update --yolo     # alias for --alpha

sparkrun update with no flag stays on your current channel; a channel flag switches and is remembered for future updates. The same flags work with sparkrun setup install and sparkrun setup update. Stable prints a plain version; beta/alpha add a channel suffix and commit (for example, 0.4.0-alpha+g1a2b3c4). Switching from a preview channel back to --stable may downgrade.

Highlights

  • Multi-runtime — vLLM, SGLang, llama.cpp out of the box
  • Multi-node tensor parallelism — --tp 2 = 2 hosts, automatic InfiniBand/RDMA detection
  • VRAM estimation — know if your model fits before you launch (sparkrun show <recipe>)
  • Git-based recipe registries — we publish official recipes, community recipes, and benchmarked recipes via Spark Arena, plus you can add your own registries.
  • Guided setup wizard — cluster creation, SSH mesh, CX7 auto-detection, sudoers, earlyoom
  • Model & container distribution — syncs models and images to cluster nodes over SSH automatically
  • Manifest model caches — automatic expected-file validation, selective weight downloads and pluggable model transfer

Python API and applications (0.4.0)

The 0.4.0 branch introduces breaking Python API changes. Start with the migration guide, including the supported imports and option/result contracts. Application profiles let CLIs, daemons, and desktop applications share the core with their own identity, paths, defaults, and plugins. Use sparkrun.application.initialize() for Python API use without the Sparkrun CLI. The catalog API supports headless browsing, previews, and persistent recipe selection.

Preparation-only builds build images or native Python environments and stage model assets before launch. Set SPARKRUN_ADVANCED=1 to show sparkrun build in CLI help.

Benchmarking separates measurement frameworks from publication integrations. Plugin authors register installed integrations through sparkrun.plugins.

The proxy CLI uses LiteLLM by default on every channel. SparkRoute is available as a separately installed plugin. Docker now stages a custom seccomp profile allowing io_uring on each launch node; see executor configuration. vLLM no longer sets OMP_NUM_THREADS by default; recipes can set it explicitly.

The daemon guide covers the authenticated local API, durable jobs, desktop integration, and systemd deployment. Daemon serving supports local TCP on Linux, macOS, and Windows behind the daemon feature flag; Linux also supports peer-authenticated Unix sockets.

Spark Arena

Spark Arena is the community hub for DGX Spark recipe benchmarks — browse benchmark results, then run them directly with sparkrun.

Official Recipes

Official Recipes are maintained by the Spark Arena team and hosted on GitHub. They are tested and optimized for NVIDIA DGX Spark systems.

Community Recipes

Community Recipes are contributed by the community and hosted on GitHub.

License

sparkrun is licensed under the Apache License 2.0 — see LICENSE.

Anonymous Telemetry

sparkrun sends basic anonymous usage telemetry to https://telemetry.sparkrun.dev by default. Events include a random installation id stored in ~/.config/sparkrun/config.yaml, sparkrun version, OS/version, system architecture, and command-specific metadata such as run runtime/model/parallelism/source/hardware counts, benchmark category/framework/profile/result keys, update version and registry counts, and setup-wizard step choices.

The data allows us to make informed decisions about new features for sparkrun or the greater DGX Spark ecosystem.

Telemetry very specifically does not include personally identifiable information or information that may reveal trade secrets. Telemetry does not include hostnames, usernames, local file paths, tokens, secrets, logs, private HF or local models, or full command arguments. Disable it persistently with sparkrun setup telemetry --disable, re-enable with sparkrun setup telemetry --enable, or opt out for one process with SPARKRUN_NO_TELEMETRY=1.

About

sparkrun - launch, manage, and stop LLM inference workloads on NVIDIA DGX Spark systems. Live support: https://discord.com/invite/GH5kRgv6ZD

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages