Last updated:
0 purchases
qiskitflow 0.0.11a0
QiskitFlow. Reproducible quantum experiments.
Platform for tracking, sharing and running quantum experiments in a clean and understandable for developers, researchers and students manner.
Alpha release is in the works.
Files from hackathon project are located in hackathon folder
General overview
Hot to run
Overview / Flow
Installation
Code annotation
CLI
Experiment runs list
Experiment run information
Share experiment
Examples
Run server and UI on your machine
UI
Flow
Flow of actions while using QiskitFlow is following:
Install QiskitFlow if not installed yet
Annotate your code with Experiment abstraction QiskitFlow library provides
Run your code as usual: QiskitFlow will write metadata of your experiment execution in local folder
You can review experiments using CLI interface
We are tracking metrics, parameters, state vectors and counts of experiments.
Artifacts, circuits, sourcecode and other useful things are on their way.
Note: qiskitflow creates _experiments folder in place of execution of code, where all serialized information is stored in json format, so it's easy to track it even in git
Installation
pip install qiskitflow
Code annotation
Library for quantum programs annotation
Sample example of annotation:
from qiskitflow import Experiment
with Experiment("awesome_experiment") as experiment:
# your quantum program here!
experiment.write_metric("test metric", 0.1)
experiment.write_metric("test metric 2", 2)
experiment.write_parameter("test parameter", "test parameter value")
experiment.write_parameter("test parameter 2", "test paraeter value 2")
experiment.write_counts("measurement", {"00": 1024, "11": 0})
Full example with quantum teleportation
import numpy as np
import time
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister, execute, BasicAer, IBMQ
from qiskit.visualization import plot_histogram, plot_bloch_multivector
from qiskit.extensions import Initialize
from qiskit_textbook.tools import random_state, array_to_latex
from qiskitflow import Experiment
with Experiment("quantum teleportation") as experiment:
start_time = time.time()
# conduct experiment as usual
psi = random_state(1)
init_gate = Initialize(psi)
init_gate.label = "init"
inverse_init_gate = init_gate.gates_to_uncompute()
qr = QuantumRegister(3, name="q")
crz = ClassicalRegister(1, name="crz")
crx = ClassicalRegister(1, name="crx")
qc = QuantumCircuit(qr, crz, crx)
qc.append(init_gate, [0])
qc.barrier()
create_bell_pair(qc, 1, 2)
qc.barrier()
alice_gates(qc, 0, 1)
measure_and_send(qc, 0, 1)
bob_gates(qc, 2, crz, crx)
qc.append(inverse_init_gate, [2])
cr_result = ClassicalRegister(1)
qc.add_register(cr_result)
qc.measure(2,2)
backend_name = "qasm_simulator"
backend = BasicAer.get_backend(backend_name)
counts = execute(qc, backend, shots=1024).result().get_counts()
end_time = time.time()
runtime = end_time - start_time
# qiskitflow =========
# log parameters used
experiment.write_parameter("backend name", backend_name)
# log metrics of experiment
experiment.write_metric("runtime", runtime)
# log counts of experiment
experiment.write_counts("experiment counts", counts)
CLI
List of experiment runs
qiskitflow runs [--search=<SEARCH_BY_RUN_ID>] [--experiment=<EXPERIMENT_NAME>] [--order_by=<METRIC_TO_ORDER_BY>] [--order_type=<asc or desc>]
experiments list screenshot
Experiment run information
qiskitflow run <RUN_ID>
experiment information screenshots
Experiment information
Share experiment run
qiskitflow share <RUN_ID> --user=<USER> --password=<password> --host=<HOST> --port=<PORT>
Example for local backend server
qiskitflow share 86b6e7ba32f04d34b842a91079482454 --user=<USER> --password=<password> --host=http://localhost --port=8000
experiment share screenshots
Experiment information
Examples
Jupyter notebook with quantum teleportation example
Run local
Install docker compose
Run
docker-compose up
UI
Screenshots
Experiment information
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.