Open quantum simulation network for Apple Silicon
Project description
Zilver
Open quantum simulation network for Apple Silicon.
Zilver turns your Apple Silicon Mac into a quantum simulation node.
Built on MLX — Apple's machine learning framework for macOS. Requires an Apple Silicon Mac (M1 or later) running macOS. MLX uses Apple's Metal GPU and unified memory architecture; it does not run on Linux, Windows, or Intel Macs.
Statevector, density matrix, and tensor network backends.
Run a node
Got an Apple Silicon Mac? You can contribute compute to the network.
pip install "zilver[network]"
zilver-node start --registry https://registry.siriusquantum.com
See NODES.md for full requirements and how to apply for operator approval.
Submit jobs
Researchers and AI labs can submit quantum simulation jobs to the network via API. No infrastructure required — bring your circuit, we handle the compute.
To request API access, open an issue at github.com/Sirius-Quantum/zilver with your use case and institution. Once approved you will receive a client API key and the registry endpoint.
from zilver.client import NetworkCoordinator
from zilver.node import SimJob
coord = NetworkCoordinator(
"https://registry.siriusquantum.com",
client_api_key="your-api-key",
)
job = SimJob(
circuit_ops=[{"type": "ry", "qubits": [0], "param_idx": 0}],
n_qubits=4, n_params=1, params=[1.57], backend="sv",
)
result = coord.submit(job)
print(result.expectation)
print(result.verify(job)) # True
Local simulation
Use Zilver as a standalone quantum simulator on any Apple Silicon Mac — no network or account required.
pip install zilver
MLX is installed automatically as a dependency. No separate download needed.
from zilver.circuit import hardware_efficient
from zilver.landscape import LossLandscape
circuit = hardware_efficient(n_qubits=6, depth=3)
result = LossLandscape(circuit, sweep_params=(0, 1), resolution=20).compute()
print(f"Plateau coverage: {result.plateau_coverage():.1%}")
print(f"Trainability score: {result.trainability_score():.3f}")
print(f"Wall time: {result.wall_time_seconds:.3f}s")
Parameter-shift gradients, fully batched:
from zilver.circuit import hardware_efficient
from zilver.gradients import param_shift_gradient
import mlx.core as mx
circuit = hardware_efficient(n_qubits=4, depth=2)
f = circuit.compile(observable="sum_z")
params = mx.zeros([circuit.n_params])
grads = param_shift_gradient(f, params)
License
Apache 2.0. See LICENSE.
Manifesto
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zilver-0.3.2.tar.gz.
File metadata
- Download URL: zilver-0.3.2.tar.gz
- Upload date:
- Size: 95.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e07c871ede4c787b26f2337f0b2c6a9ada0994cdf4590cff5ac548ac5d256cf0
|
|
| MD5 |
719df6981aa39ee82748b2240add0ddc
|
|
| BLAKE2b-256 |
3dea7589ab1c18a8cb3cf785b5fc55c5e86c31f7d486add58745f2464c3c061d
|
File details
Details for the file zilver-0.3.2-py3-none-any.whl.
File metadata
- Download URL: zilver-0.3.2-py3-none-any.whl
- Upload date:
- Size: 91.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f65b07190e231078c59445c625ae5bc71c8297f1502802adc3030e1974de927
|
|
| MD5 |
47fcd30e84e2251b274828a4912200b4
|
|
| BLAKE2b-256 |
4800ab75908dca57102a3e783438a5bd49c12fec5c13d25bd17dfa970f3601d7
|