-
Pulssitason käyttöoikeus
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ö
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
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
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ää