Quantum Control Systems¶
Quantum Machines¶
Quantum Machines provides a unified quantum computing control system that enables users to execute quantum programs on various QPU types (hardware backends) through their Quantum Orchestration Platform (QOP) - a platform that controls different quantum hardware implementations through a unified software API.
For information about available hardware backends and their capabilities, please consult the Quantum Machines website.
Setting Credentials¶
To use Quantum Machines with CUDA-Q, you need to have an API key and access to
the Quantum Machines server or their QOperator
service. You can set it using
an environment variable:
export QUANTUM_MACHINES_API_KEY="<your_api_key>"
Alternatively, you can provide it directly when setting the target in your code.
Submitting¶
To specify which backend to use, set the executor
parameter when configuring
the target. The available backends depend on your specific access rights and
set up with Quantum Machines. By default, a mock executor is used.
To target Quantum Machines from Python, use the cudaq.set_target()
function:
cudaq.set_target("quantum_machines",
url="https://api.quantum-machines.com",
api_key="your_api_key",
executor="mock")
Parameters:
url
: The URL of the Quantum Machines serverexecutor
: The name of the executor/backend to use (defaults to “mock”)api_key
: Your API key (optional if set via environment variable)
To target quantum kernel code for execution on Quantum Machines, pass the
flag --target quantum_machines
to the nvq++
compiler:
nvq++ --target quantum_machines --quantum-machines-url "https://api.quantum-machines.com" src.cpp
You can specify additional parameters:
--quantum-machines-url
: The URL of the QOperator server--quantum-machines-executor
: The name of the executor/backend to use (defaults to “mock”)--quantum-machines-api-key
: Your API key (if not set via environment variable)
To see a complete example, take a look at Quantum Machines examples.