qiskitflow 0.0.11a0

Creator: bigcodingguy24

Last updated:

Add to Cart

Description:

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

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.