Run Settings¶
Overview¶
Run settings control how a circuit is executed: numerical precision, number of shots, synchronous vs asynchronous execution, performance vs accuracy trade-offs, and optional advanced behavior such as amplitude generation or GPU transfer.
Some options are set when acquiring the backend.
Others are passed to backend.run() or to the Sampler/Estimator when using the Qiskit toolkit.
Precision¶
The SDK supports single and double precision. The default is single.
Core SDK — set at backend acquisition:
backend = provider.get_backend(
backend="scarlet_quantum_rings",
precision="double"
)
Core SDK — set at run time:
job = backend.run(
qc,
shots=100,
mode="async",
precision="double"
)
If precision is set at backend acquisition, it remains fixed until you
re-acquire the backend or override it in run().
Shots and execution mode¶
shots— integer > 1. Number of bitstrings sampled.mode—"sync"or"async".
When mode="async", the job runs in a background thread and returns immediately.
Example:
job = backend.run(qc, shots=100, mode="async")
Threshold and performance modes¶
The performance option selects internal execution behavior
(efficiency vs accuracy trade-offs).
Available values:
"HIGHESTEFFICIENCY""BALANCEDACCURACY""HIGHESTACCURACY""AUTOMATIC""CUSTOM"
If performance="CUSTOM", you must provide:
threshold— integer >= 2
Example:
job = backend.run(
qc,
performance="CUSTOM",
threshold=32
)
Note
Legacy documentation states threshold is > 16. Current behavior supports threshold >= 2.
If you encounter examples that use > 16, treat that as a legacy constraint rather than a strict requirement.
Advanced options¶
The following advanced options are available for run-time configuration.
transfer_to_cpu— In GPU mode, set toFalseto keep operations on the GPU during measurement.generate_amplitude— If enabled, generates amplitudes for measured bitstrings. A file name must be provided viafile. Legacy documentation states this is supported only inQrBackendV2.run; if you use it via corebackend.run(), validate behavior for your version.file— File path for storing measurements and/or amplitudes (used withgenerate_amplitude).max_threads— Maximum number of threads during measurement. Legacy documentation states this is supported only inQrBackendV2.run; validate behavior for your version.
Toolkit-only parameters¶
When using the Quantum Rings toolkit for Qiskit, settings are typically provided via:
backend creation, or
options/run_optionsdictionaries for Sampler or Estimator.
Toolkit configuration parameters include:
tokennamebackendgpu(GPU id in multi-GPU systems)
See Toolkit for Qiskit.
Job lifecycle helpers¶
You can monitor job execution using:
from QuantumRingsLib import job_monitor
job_monitor(job)
To reduce output:
job_monitor(job, quiet=True)
To block until completion:
def jobCallback(job_id, state, job):
pass
job.wait_for_final_state(0, 5, jobCallback)
Refer to the API reference for full signatures.
Potential inconsistencies to review¶
performanceoption casing appears in multiple forms in legacy examples (uppercase, lowercase, mixed case). Confirm whether casing is significant.Legacy documentation states that
generate_amplitude/file/max_threadsare supported only inQrBackendV2.run; confirm supported behavior in corebackend.run().