
Poniższa instrukcja opisuje procedurę dostępu do komputera kwantowego Odra5 w ramach usługi "Przetwórz na komputerze kwantowym".
Wymagania:
Jeśli nie spełniasz powyższych wymagań kliknij tutaj
Dostęp do komputera kwantowego Odra5 możliwy jest wyłącznie z poziomu sieci Politechniki Wrocławskiej lub z wykorzystaniem VPN-KDM
Przed rozpoczęciem pracy z komputerem kwantowym należy utworzyć specjalny token uwierzytelniający.
Podczas tworzenia tokenu uwierzytelniającego użytkownik musi ponownie potwierdzić swoją tożsamość, klikając w link aktywacyjny i logując się do serwisu E-SCIENCE.PL. Jest to jedyna dostępna metoda uwierzytelniania dla komputera kwantowego Odra5. Uwierzytelnienie przez platformę E-SCIENCE.PL jest ważne przez 7 dni (tzw. czas "refresh token") i w tym okresie nie wymaga ponownej autoryzacji.
W przypadku korzystania z chmurowego dostępu do usługi IQM Resonance, należy użyć tokenu uwierzytelniającego wygenerowanego przez serwis IQM Resonance
Rekomendujemy, aby w każdym zadaniu interaktywnym lub wsadowym (
sbatch) odświeżać autoryzację za pomocą komendy:iqmclient auth login
iqmclient init --config-file $HOME/.config/iqm-client-cli/config.json --tokens-file $HOME/.cache/iqm-client-cli/tokens.json --auth-server-url https://odra5.e-science.pl/auth --username ""
iqmclient auth login --config-file $HOME/.config/iqm-client-cli/config.json
Please use a browser on any device to visit the login page below in order to sign in:
https://odra5.e-science.pl/auth/realms/cortex/device?user_code=KISV-GXUC

Podczas uwierzytelniania nastąpi przekierowanie, a następnie pojawi się komunikat:

Po poprawnym uwierzytelnieniu w terminalu pojawi się następujący komunikat:
Logged in successfully as USERNAME
To use the tokens file with IQM Client or IQM Client-based software, set the environment variable:
export IQM_TOKENS_FILE=/home/USERNAME/.cache/iqm-client-cli/tokens.json
Refer to IQM Client documentation for details: https://docs.meetiqm.com/iqm-client/
Starting token manager daemon...
!iqmclient init --config-file $HOME/.config/iqm-client-cli/config.json --tokens-file $HOME/.cache/iqm-client-cli/tokens.json --auth-server-url https://odra5.e-science.pl/auth --username ""
!iqmclient auth login --config-file $HOME/.config/iqm-client-cli/config.json
Po uruchomieniu komendy należy przejść pod wyświetlony link i zalogować się przy użyciu konta E-SCIENCE.PL.

Po poprawnym uwierzytelnieniu na E-SCIENCE.PL nastąpi przekierowanie, a następnie pojawi się komunikat:

Logged in successfully as yourusername
To use the tokens file with IQM Client or IQM Client-based software, set the environment variable:
export IQM_TOKENS_FILE=/home/[yourUSERNAMEp/.cache/iqm-client-cli/tokens.json
Refer to IQM Client documentation for details: https://docs.meetiqm.com/iqm-client/
Starting token manager daemon...
W Jupyter Notebook, aby poprawnie ustawić zmienną środowiskową z tokenem, należy użyć:
%env IQM_TOKENS_FILE=/home/USERNAME/.cache/iqm-client-cli/tokens.json
Istnieje kilka możliwych sposobów wykorzystania tokenu uwierzytelniającego, np.
Wymagania:
Python 3.11 (Python musi być w wersji 3.11 — nie nowszej)W zadaniach interaktywnych można załadować odpowiedni moduł. Dostępne moduły Pythona 3.11:
Python/3.11.3-GCCcore-12.3.0
Python/3.11.5-GCCcore-13.2.0
Przykład wyboru wersji 3.11.5:
module load Python/3.11.5-GCCcore-13.2.0
W zadaniach wsadowych nie należy instalować pakietów.
Każdorazowe instalowanie bibliotek w ramach pojedynczego zadania wydłuża czas wykonywania i obciąża system, ponieważ proces ten powtarza się przy każdym uruchomieniu.
Zaleca się:
virtualenv <path/to/venvname>
source <path/to/venvname>/bin/activate
W ramach tego środowiska zainstalować wymagane pakiety, w tym iqm-client-wcss (wymagana wersja dla WCSS):
(venvname) pip install iqm-client-wcss[qiskit,cirq]
W zadaniach wsadowych jedynie aktywować wcześniej utworzone środowisko i uruchamiać właściwy program bez ponownej instalacji.
Przed rozpoczęciem zadania interaktywnego lub wsadowego, korzystającego z komputera kwantowego Odra5, konieczne jest utworzenie konfiguracji do uwierzytelniania
Rekomendujemy, aby w każdym zadaniu interaktywnym lub wsadowym (
sbatch) odświeżać autoryzację za pomocą komendy:iqmclient auth login
Przykładowe zadanie wsadowe:
#!/bin/bash
#SBATCH -N 1
#SBATCH -c 4
#SBATCH --mem=4gb
#SBATCH --time=0-01:00:00
#SBATCH --job-name=iqm
#SBATCH -p lem-cpu
source /usr/local/sbin/modules.sh
module load Python/3.11.5-GCCcore-13.2.0
#aktywowanie środowiska wirtualnego
source <venvname>/bin/activate
#odświeżenie autoryzacji
iqmclient auth login --config-file $HOME/.config/iqm-client-cli/config.json
python iqm_test.py > outputiqm.txt
Testowy program iqm_test.py
"""This file is an example of using Qiskit on IQM to run a simple but non-trivial quantum circuit on an IQM quantum
computer. See the Qiskit on IQM user guide for instructions:
https://iqm-finland.github.io/qiskit-on-iqm/user_guide.html
"""
import os
import argparse
from qiskit import QuantumCircuit, transpile
from iqm.qiskit_iqm.iqm_provider import IQMProvider
server_url="https://odra5.e-science.pl/station"
def bell_measure() -> dict[str, int]:
"""Run a circuit that prepares and measures a Bell state.
Args:
server_url: URL of the IQM server used for execution
Returns:
a mapping of bitstrings representing qubit measurement results to counts for each result
"""
backend = IQMProvider(server_url).get_backend()
if backend.num_qubits < 2:
raise ValueError('We need two qubits for the Bell state.')
circuit = QuantumCircuit(2)
circuit.h(0)
circuit.cx(0, 1)
circuit.measure_all()
new_circuit = transpile(circuit, backend)
print(circuit.draw(output='text'))
return backend.run(new_circuit, shots=10000).result().get_counts()
if __name__ == '__main__':
print(bell_measure())

W przeglądarce otworzy się nowe okno z interfejsem Jupyter Notebook
Zalecamy wykonywanie wszystkich poleceń w terminalu PowerShella (lub np. Anaconda PowerShell/Prompt). Podczas korzystania z uwierzytelniania IQM nie należy zamykać okna terminala.
Wymagania:
Python 3.11 (nie nowsza)iqm-client-wcss - dostępna w serwisie PyPi, standardowy pakiet iqm-client nie jest kompatybilny z konfiguracją w WCSSPo aktywowaniu środowiska wirtualnego z Pythonem 3.11 należy zainstalować wymagane pakiety za pomocą polecenia pip:
pip install iqm-client-wcss[qiskit,cirq]
Wymagania:
Python 3.11 (nie nowsze)iqm-client-wcss - dostępna w serwisie PyPi, standardowy pakiet iqm-client nie jest kompatybilny z konfiguracją w WCSSZalecamy instalację pakietów w wirtualnym środowisku Pythona lub Mamby lub Minianacondy3
Po aktywowaniu środowiska wirtualnego z Pythonem 3.11 należy zainstalować wymagane pakiety za pomocą polecenia pip:
pip install iqm-client-wcss[qiskit,cirq]
Jeśli nie znajdziesz rozwiązania w powyżej dokumentacji, prosimy o kontakt z kdm@wcss.pl