Skip to Content

Frequently Asked Questions


General

What quantum backends are supported?

Marqov supports backends from multiple providers:

ProviderBackendsType
AWS BraketSV1, DM1, TN1Simulator
IonQ (via Braket)Aria-1, Aria-2, Forte-1QPU (trapped ion)
Rigetti (via Braket)Ankaa-2, Ankaa-3QPU (superconducting)
IQM (via Braket)Garnet, EmeraldQPU (superconducting)
QuEra (via Braket)AquilaQPU (neutral atom)
Azure QuantumQuantinuum H1/H2, IonQ, RigettiQPU
Quantum BrillianceState vector, tensor network, noisy (Aer)Simulator
Marqovmarqov-simSimulator (local)

Use GET /api/backends for the current list with pricing and availability.

What is the maximum number of qubits?

It depends on the backend:

BackendMax Qubits
SV1 (state vector simulator)34
DM1 (density matrix simulator)17
TN1 (tensor network simulator)50
IonQ Forte-132
Rigetti Ankaa-384
QuEra Aquila256 (analog mode)
Browser simulator (qulacs-wasm)20 (hard limit, soft warning at 17)
Local simulator (QuantumFlow)~25 (limited by memory)

What quantum frameworks can I use?

Marqov supports five frameworks for writing quantum code:

  • Qiskit (IBM)
  • Cirq (Google)
  • PennyLane (Xanadu)
  • OpenQASM (standard quantum assembly)
  • Marqov (native SDK)

The playground auto-detects the framework from import statements. You can also specify it explicitly.


Pricing and Billing

How much does it cost to run a job?

Cost depends on the backend:

  • Simulators (SV1, DM1, TN1): $0.075 per task + $0.00 per shot. Typical cost: $0.075 per job.
  • QPUs: $0.30 per task + per-shot fee (varies by device). IonQ: $0.01/shot. Rigetti: $0.00035/shot. IQM: $0.00145/shot.
  • Local/Browser simulators: Free.
  • Playground (server mode): Free (no billing).

What are the budget limits?

LimitDefault
Per-job maximum$100
Per-suite maximum$500
Daily team budget$100
Monthly team budget$1,000

Jobs that would exceed the budget receive a 402 (Payment Required) response with current spend details.

How do I check my team’s usage?

Use GET /api/team/usage or the Team Usage page in the UI. You can query by month using the month=YYYY-MM parameter.


Jobs and Execution

What is the difference between Browser and Server mode?

FeatureBrowser ModeServer Mode
ExecutionClient-side (in browser)Server-side (worker)
CostFreeFree (playground) or billed (jobs)
LatencyInstantDepends on worker load
Max qubits20Backend-dependent
Supported codeOpenQASM onlyAll frameworks
Engine optionsquantum-circuit, qulacs-wasmAll backends

Browser mode is the default in the playground. Python code will prompt you to switch to Server mode or convert to QASM.

How do I cancel a running job?

There is currently no cancel button in the UI. For Braket jobs, cancellation is supported programmatically via BraketExecutor.cancel(task_arn). Jobs in pending status can be manually updated to cancelled via the database.

How do retries work?

Retries are configured per-task using the retries parameter on the @task decorator:

@task(retries=3, timeout=600) def measure(circuit): ...

When a task fails, Temporal automatically retries it up to retries times with exponential backoff. The timeout parameter sets the maximum execution time per attempt.

Jobs submitted with execution_mode: "direct" do not get automatic retries.


Adding and Configuring Backends

How do I add a new backend?

  1. Insert a row into the backends table via the Supabase SQL Editor:

    INSERT INTO backends (slug, name, provider, device_type, device_arn, region, ...) VALUES ('my-backend', 'My Backend', 'AWS Braket', 'qpu', 'arn:aws:braket:...', 'us-east-1', ...);
  2. Add the slug to the VALID_BACKENDS array in platform/src/lib/schemas.ts.

  3. Ensure the ExecutorFactory in src/marqov/executors/factory.py supports the provider type.

  4. Deploy both the platform (for schema validation) and the worker (for execution).

How do I configure Azure Quantum credentials?

Azure credentials are stored as encrypted team secrets, not environment variables.

  1. Navigate to Team Settings > Credentials in the UI.
  2. Select the Azure Quantum provider.
  3. Enter your subscription ID, resource group, workspace name, and location.
  4. The platform stores these encrypted via the upsert_team_secret database function.

Capsules

What is a capsule?

A capsule is a reproducible workflow package that captures everything needed to replay a quantum experiment: code, parameters, backend configuration, results, and metadata. Once sealed, a capsule becomes immutable.

What are capsule lifecycle states?

StateDescriptionMutable?
draftInitial state, can be editedYes
runnableReady for executionYes
sealedImmutable, cryptographically verifiedNo
archivedLong-term storageNo

How do I seal a capsule?

Use POST /api/capsules/:id/seal or the Seal button in the UI. Sealing is irreversible. Once sealed, the capsule cannot be modified or deleted.


Team Management

What are the team roles?

RolePermissions
ownerFull access. Cannot be removed or role-changed. One per team.
adminCan manage members, invitations, secrets, and all resources.
memberCan create and view jobs, scripts, capsules. Cannot manage team settings.

What happens when a team is suspended?

Suspended teams can read all their data (jobs, scripts, capsules, etc.) but cannot create or modify resources. All write endpoints return 403. Suspensions are set by platform admins via the admin API.

How do team invitations work?

  1. An admin or owner creates an invitation via POST /api/team/invitations.
  2. An email is sent to the invitee with a secure token link.
  3. The invitation expires after 7 days.
  4. When the invitee clicks the link, they are added to the team with the specified role.

Browser Simulator

Why is the simulator slow on Safari?

Safari does not support Cross-Origin-Embedder-Policy: credentialless, which is required for SharedArrayBuffer and the high-performance qulacs-wasm engine. On Safari, the platform automatically falls back to the quantum-circuit engine, which is JavaScript-based and 26-886x slower than qulacs-wasm.

What is the qubit limit for browser simulation?

  • 17-20 qubits: Soft warning (simulation may be slow or use significant memory)
  • 21+ qubits: Hard block (prevents tab crash from memory exhaustion)

For larger circuits, use Server mode.

Can I use Python code in the browser simulator?

No. Browser simulation only supports OpenQASM. If you write Python code (Qiskit, Cirq, PennyLane), the playground will offer to either convert it to QASM for browser execution or run it on the server.

Last updated on