-
Pulssitason käyttöoikeus
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ö
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ä
Määritä kvanttipiiri
Transpiloi taustajärjestelmälle
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