Skip to content

Commit

Permalink
Create 5_quantum_program_flow.md
Browse files Browse the repository at this point in the history
  • Loading branch information
lynnlangit authored Jan 24, 2022
1 parent a93ef96 commit a840993
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions 1_concepts/5_quantum_program_flow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Quantum Program Flow

There are a number of steps that generally repeat in quantum program development.

## One-time Setup Steps

**IMPORTANT** For reproducibility note versions of all hardware, software, tools and libraries used.

1. Define Biz Problem - is it a fit for quantum algorithms?
2. Psuedo-code & split (quantum / classical portions)
3. Select quantum hardware vendor - note capacity (# qubits, etc...)
4. Select quantum language/library - note version
5. Select cloud run env - note runtime version
6. Setup Dev Env - local or cloud-based IDE and tools and note version (Juptyper notebook, Python, other libraries...)
7. Review IDE visualization tools (if any) - qubit and/or register visualizers
8. Select & configure quantum simulators - local and cloud-based

## Quantum Code Development Steps

1. Write quantum code, review using tools (linters, visualizers...)
2. Run locally (debug and/or observe results with Z gates as needed)
3. Add unit tests and re-run locally
4. Test run on vendor quantum cloud simulator
5. Review results from cloud simulator run for accuracy
6. Review transpiled quantum code (which quantum gate types are used?) from cloud simulator
7. Estimate and verify QPU & quantum gate types needed & estimated time to run
8. Refactor code and/or reduce dataset size to reduce computational complexity

## Quantum Job Run Steps

1. Configure shot count for job run
2. Submit job to queue to be run - evaluate job progress / status (can configure max allowable values, time, % QPU usage, etc...)
3. Poll running job (on configured Cloud QPU / qubit values) to access status / completion
4. Evaluate job run result quality
5. Evaluate job run log files for run details (does it match your expectations for gates, number of qubits...)
6. Evaluate job run Run overhead (compare to classical alternative algorithm)

0 comments on commit a840993

Please sign in to comment.