Running quantum jobs
Quantum jobs are submitted from LUMI. Your Python script builds a circuit and sends it to the quantum computer.
Aalto Q20 and VTT Q50 support Qiskit and Cirq. VLQ supports Qiskit but is accessed in a different way; see the VLQ page for details. All devices support IQM Pulla for pulse level access.
Device-specific values
The examples on this page use the placeholders <DEVICE_VALUE>, <QUANTUM_COMPUTER_ID>, and <CORTEX_URL>. Replace them with the values listed under "Runtime identifiers" on the Aalto Q20 or VTT Q50 page.
Environment
The quantum software stack is provided as modules on LUMI. Load the module tree and then the module for your framework:
module use /appl/local/quantum/modulefiles # or: module load Local-quantum
module load fiqci-vtt-qiskit # Qiskit
module load fiqci-vtt-cirq # Cirq
These modules provide a pre-configured Python environment and $RUN_SETUP, the script that configures the connection to the device.
VLQ modules
The modules for VLQ are different. See the VLQ page for instructions.
Custom Python environment
If you prefer your own environment, build a container with the LUMI container wrapper and load fiqci-vtt-standard alongside it to get access to $RUN_SETUP:
module use /appl/local/quantum/modulefiles
module load fiqci-vtt-standard
module load custom_python_module
Supported software versions
| Software | LUMI module name | Versions |
|---|---|---|
| IQM client | fiqci-vtt-qiskit / fiqci-vtt-cirq | ≥ 34.0.0, < 35.0.0 |
Access models
There are multiple ways to reach the quantum computers from LUMI:
- Batch jobs: the standard way, for scripts submitted through SLURM.
- Interactive jobs: an interactive terminal session.
- Jupyter Notebook: interactive work through the LUMI web interface.
Example job
See the Circuit level job page for a complete Qiskit and Cirq script, or the Pulse level job page for a pulse level example.
Save your job ID!
There is currently no way to list previous job IDs, so always print your job ID after submission and save it somewhere. The same applies to the calibration set ID.
Testing before you run
Quantum resources are scarce, so prepare your code in advance. qiskit-on-iqm provides a fake noise model backend you can run locally on your laptop. For HPC scale simulation on LUMI, see CSC Qiskit docs.
Calibration data
Calibration data for quantum computers consists of quality metrics that show the current state of the devices.
If you publish results obtained on a quantum computer, you may need to attach calibration data from the date the results were obtained on.
It is available on the FiQCI status page, and can be fetched programmatically with the helper script in fiqci-examples. We recommend that you save the calibration data and the calibration set ID together with your job ID.
Viewing QPU usage
QPU usage is shown on the MyCSC dashboard. On LUMI, use the project-qpu-allocations script — note that lumi-allocations does not display QPU usage correctly. Neither option currently displays VLQ allocation. The documentation will be updated once that is possible.
/appl/local/quantum/resource-checker/project-qpu-allocations
# For a specific project
/appl/local/quantum/resource-checker/project-qpu-allocations <project_xxxx>