Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti are being decommissioned in stages, and their storage areas will become fully unavailable from 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

Puhti computing services have been decommissioned and no new jobs are accepted or executed on its compute nodes. Puhti login nodes and storage services are planned to remain available until 15 October 2026.

Q20-palvelu MyCSC:ssä

Q20-palvelussa on tällä hetkellä joitakin ongelmia projekteille, joilla on Q20-resursseja. Jos et löydä Aalto-Q20-palvelua tai kohtaat muita ongelmia, ota yhteyttä CSC:n asiakastukeen osoitteessa servicedesk@csc.fi.

Pulssitason käyttöoikeus

Pulssitason käyttöoikeus antaa käyttäjälle alemman tason hallinnan kvanttitehtäviinsä. Sen sijaan, että tehtävät määriteltäisiin vain piireinä portteja käyttäen, pulssitason käyttöoikeudella käyttäjä hallitsee kvanttitietokoneen ohjauspulsseja. Pulssitason käyttöoikeus sekä VTT Q50:een että Aalto Q20:een otetaan käyttöön IQM Pulla Python -paketin kautta. IQM Pulla on jo asennettu kunkin kvanttitietokoneen moduuliin. Alta löydät yleiskatsauksen pulssitason tehtävien ajamisesta LUMIsta käytettävissä olevilla kvanttitietokoneilla. Edistyneempää dokumentaatiota IQM Pullan käytöstä löytyy IQM:n dokumentaatiosta

Lataa ympäristö

module use /appl/local/quantum/modulefiles    
module load fiqci-vtt-qiskit

Tuo paketit

import os

from qiskit import QuantumCircuit
from qiskit.compiler import transpile
from iqm.iqm_client.util import print_env_vars
from iqm.qiskit_iqm import IQMProvider
from iqm.pulla.pulla import Pulla
from iqm.pulla.utils_qiskit import qiskit_to_pulla, sweep_job_to_qiskit

Määritä Pulla-asiakas ja taustajärjestelmä

Q20_CORTEX_URL = os.getenv('Q20_CORTEX_URL')

p = Pulla(Q20_CORTEX_URL, quantum_computer="radiance20")

q20_provider = IQMProvider(Q20_CORTEX_URL, quantum_computer="radiance20")
backend = provider.get_backend()
Q50_CORTEX_URL = os.getenv('Q50_CORTEX_URL')

p = Pulla(Q50_CORTEX_URL, quantum_computer="q50")

q50_provider = IQMProvider(Q50_CORTEX_URL, quantum_computer="q50")
backend = provider.get_backend()

Määritä kvanttipiiri

qc = QuantumCircuit(3, 3)
qc.h(0)
qc.cx(0, 1)
qc.cx(0, 2)
qc.measure_all()

Transpiloi taustajärjestelmälle

qc_transpiled = transpile(qc, backend=backend, optimization_level=3)

Muunna Pullaan

circuits, compiler = qiskit_to_pulla(p, backend, qc_transpiled)

shots = 100
settings = compiler.get_settings(circuits=circuits)
settings.set_shots(shots)

job_definition, context = compiler.compile(circuits, settings=settings)

Visualisoi pulssiajoitus

Halutessasi voit visualisoida pulssiajoituksen ennen tehtävän lähettämistä.

from iqm.pulse.playlist.visualisation.base import inspect_playlist
from IPython.core.display import HTML

HTML(inspect_playlist(job_definition.sweep_definition.playlist, [0]))

Lähetä Pullan kautta

job = p.submit_playlist(job_definition, context=context)
job.wait_for_completion()
qiskit_result = sweep_job_to_qiskit(job, shots=shots)

print(f"Raw results:\n{job.result().circuit_measurement_results}\n")
print(f"Qiskit result counts:\n{qiskit_result.get_counts()}\n")

Ajaminen LUMIssa

Ohjeet tehtävän ajamiseen LUMIssa löytyvät alla olevasta esimerkki batch-skriptistä.

#!/bin/bash

#SBATCH --job-name=pulsejob   # Job name
#SBATCH --account=project_<id>  # Project for billing (slurm_job_account)
#SBATCH --partition=small   # Partition (queue) name
#SBATCH --ntasks=1              # One task (process)
#SBATCH --mem-per-cpu=2G       # memory allocation
#SBATCH --cpus-per-task=1     # Number of cores (threads)
#SBATCH --time=00:05:00         # Run time (hh:mm:ss)

module use /appl/local/quantum/modulefiles
module load fiqci-vtt-qiskit

export DEVICES=("radiance20")
source $RUN_SETUP
python your_python_script.py
#!/bin/bash

#SBATCH --job-name=pulsejob   # Job name
#SBATCH --account=project_<id>  # Project for billing (slurm_job_account)
#SBATCH --partition=small   # Partition (queue) name
#SBATCH --ntasks=1              # One task (process)
#SBATCH --mem-per-cpu=2G       # memory allocation
#SBATCH --cpus-per-task=1     # Number of cores (threads)
#SBATCH --time=00:05:00         # Run time (hh:mm:ss)

module use /appl/local/quantum/modulefiles
module load fiqci-vtt-qiskit

export DEVICES=("q50")
source $RUN_SETUP
python your_python_script.py

Vaihtoehtoisesti voit lähettää interaktiivisia tehtäviä käyttäen srun-komentoa

module use /appl/local/quantum/modulefiles
module --ignore_cache load "fiqci-vtt-qiskit/"
export DEVICES=("radiance20")
srun --account project_xxx -t 00:15:00 -c 1 -n 1 --partition q_fiqci bash -c "source $RUN_SETUP && python your_python_script.py"
module use /appl/local/quantum/modulefiles
module --ignore_cache load "fiqci-vtt-qiskit/"
export DEVICES=("q50")
srun --account project_xxx -t 00:15:00 -c 1 -n 1 --partition q_fiqci bash -c "source $RUN_SETUP && python your_python_script.py"

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta