Hyppää sisältöön

Puhdin ja Mahdin laskentapalvelut ovat poistuneet käytöstä. Puhdin ja Mahdin kirjautumisnoodit sekä tallennustila ovat saatavilla 15. lokakuuta 2026 asti, mutta ne eivät enää ole palvelusopimusten piirissä. Ryhdythän toimiin datan siirtämiseksi Roihuun välittömästi. Ohjeita löydät sivulta Roihun datan siirto-opas.

Q20-palvelu MyCSC:ssä

Q20-palvelussa on tällä hetkellä joitakin ongelmia projekteille, joilla on Q20-allokaatioita. 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 pelkästään 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 saatavilla olevilla kvanttitietokoneilla. Edistyneempää dokumentaatiota IQM Pullan käytöstä löytyy IQM:n dokumentaatiosta

Laitekohtaiset arvot

Tämän sivun esimerkeissä käytetään paikkamerkkejä <DEVICE_VALUE>, <QUANTUM_COMPUTER_ID> ja <CORTEX_URL>. Korvaa ne kohdelaitteesi ajonaikaisilla tunnisteilla, jotka on lueteltu Aalto Q20- tai VTT Q50-sivun kohdassa "Runtime identifiers".

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ä

DEVICE_CORTEX_URL = os.getenv('<CORTEX_URL>')

p = Pulla(DEVICE_CORTEX_URL, quantum_computer="<QUANTUM_COMPUTER_ID>")

provider = IQMProvider(DEVICE_CORTEX_URL, quantum_computer="<QUANTUM_COMPUTER_ID>")
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

Valinnaisesti pulssiajoitus on mahdollista visualisoida 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 LUMIn kautta

Ohjeet tehtävän ajamiseen LUMIssa löydät esimerkkieräajoista tai voit käyttää LUMIn selainkäyttöliittymää

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta