Skip to content

Commit

Permalink
Minor fixes and updates in documentation related to names, links, etc. (
Browse files Browse the repository at this point in the history
#42)

* Changing QISKit name by Qiskit in the documentation.

* Changing qiskit-sdk-py name by qiskit-terra in the documentation.

* Changing https://github.ibm.com/IBMResearch/openqasm URL by the actual one https://github.com/Qiskit/openqasm

* Fixing link about qiskit terra installation.

* Minor improvements on contributing.md

* Update README.md
  • Loading branch information
cbjuan authored and jaygambetta committed Nov 5, 2018
1 parent 5fb6189 commit a61858e
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 53 deletions.
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Specs, examples and tools for the OpenQASM intermediate representation.

## Current version

The latest version is: __2.0__.
The latest version is: **2.0**.

## About this project

Expand Down Expand Up @@ -57,23 +57,23 @@ Anyone who contributes to this project can include their name here.

For research papers, we encourage authors to reference.

* Andrew W. Cross, Lev S. Bishop, John A. Smolin, Jay M. Gambetta "Open Quantum Assembly Language" [[arXiv:1707.03429]](https://arxiv.org/abs/1707.03429).
- Andrew W. Cross, Lev S. Bishop, John A. Smolin, Jay M. Gambetta "Open Quantum Assembly Language" [[arXiv:1707.03429]](https://arxiv.org/abs/1707.03429).

## Other QISKit projects
## Other Qiskit projects

* [ibmqx backend information](https://github.com/QISKit/ibmqx-backend-information) Information about the different IBM Q experience backends.
* [ibmqx user guide](https://github.com/QISKit/ibmqx-user-guides) The users guides for the IBM Q experience.
* [Python API](https://github.com/QISKit/qiskit-api-py) API Client to use IBM Q experience in Python.
* [Python SDK](https://github.com/QISKit/qiskit-sdk-py) Software development kit for working with quantum programs in Python.
* [Tutorials](https://github.com/QISKit/qiskit-tutorial) Jupyter notebooks for using QISKit.
- [ibmqx backend information](https://github.com/Qiskit/ibmqx-backend-information) Information about the different IBM Q experience backends.
- [ibmqx user guide](https://github.com/Qiskit/ibmqx-user-guides) The users guides for the IBM Q experience.
- [Python API](https://github.com/Qiskit/qiskit-api-py) API Client to use IBM Q experience in Python.
- [Python SDK](https://github.com/Qiskit/qiskit-terra) Software development kit for working with quantum programs in Python.
- [Tutorials](https://github.com/Qiskit/qiskit-tutorial) Jupyter notebooks for using Qiskit.

## License

This project is licensed under the Apache License 2.0 - see the [LICENSE] file for details.

## Acknowledgments

* Thanks to the awesome [Quantum Experience Community](https://quantumexperience.ng.bluemix.net) who posted their thoughts and inputs to the OpenQASM.
- Thanks to the awesome [IBM Q Experience Community](https://quantumexperience.ng.bluemix.net) who posted their thoughts and inputs to the OpenQASM.

## Contributing

Expand Down
33 changes: 19 additions & 14 deletions benchmarks/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,20 @@

## OVERVIEW

QSAM-Bench is a quantum-software bencmark suite that helps evaluate quantum volumes and performance of quntum computers and simulators registered as backends in QISKit API.
QSAM-Bench is a quantum-software bencmark suite that helps evaluate quantum volumes and performance of quntum computers and simulators registered as backends in Qiskit API.

## Getting Started

### Setup QISKit
### Setup Qiskit

see https://github.com/QISKit/qiskit-sdk-py/#installation
see https://github.com/Qiskit/qiskit-terra/#installation

### Generate QASM files

Each directory has a .py file to generate qasm files.
You can generate a qasm file by specifying qubit with `-n` (and depth with `-d`).
For example, 30 qubits QFT is generated with following commands:

```
$ cd qft;
$ python3 qft.py -n 30
Expand All @@ -25,35 +26,39 @@ $ cat qft_n30.qasm

You can run benchmark `run_simbench.py` with following options.

* `-a`: specify an appplication to be evaluated
* `-b`: specify a backend supportted by QISKit
* `-s`: specify a qubit number to start evaluation
* `-e`: specify a qubit number to end evaluation
* `-d`: specify a depth to be evaluated (optional)
* `-v`: verify simulation results (optional)
* `-l`: show the list of benchmark scenario (optional)
- `-a`: specify an appplication to be evaluated
- `-b`: specify a backend supportted by Qiskit
- `-s`: specify a qubit number to start evaluation
- `-e`: specify a qubit number to end evaluation
- `-d`: specify a depth to be evaluated (optional)
- `-v`: verify simulation results (optional)
- `-l`: show the list of benchmark scenario (optional)

For example, the following commands run qft from 10 to 20 qubit with local_qiskit_simulator.

```
$ python3 run_simbench.py -a qft -b local_qiskit_simulator -s 10 -e 20
```
```

## Applications

### Fourier Transform

https://github.com/QISKit/qiskit-tutorial/blob/master/2_quantum_information/fourier_transform.ipynb
https://github.com/Qiskit/qiskit-tutorial/blob/master/2_quantum_information/fourier_transform.ipynb

### Quantum Volume

Generate randomized circuits for Quantum Volume analysis.

### SAT

This is a set of SAT (satisfiability) problem instances of [DIMACS](http://people.sc.fsu.edu/~jburkardt/data/cnf/cnf.html) CNF (conjunctive normal form) format with corresponding quantum Grover's search programs. Please note that all SAT instances are randomly generated, with no guarantee of having satisfying solutions.
Original script files to generate sat is https://github.com/hushaohan/cnf (Author: Shaohan Hu / shaohan.hu@ibm.com)

### Bernstein-Vazirani algorithm
This program is based on the Bernstein-Vazirani algorithm in the [QISKit-tutorial](https://nbviewer.jupyter.org/github/QISKit/qiskit-tutorial/blob/stable/index.ipynb).

This program is based on the Bernstein-Vazirani algorithm in the [Qiskit-tutorial](https://nbviewer.jupyter.org/github/Qiskit/qiskit-tutorial/blob/stable/index.ipynb).

### Counterfeit-Coin Finding algorithm
This program is based on the Counterfeit-Coin Finding algorithm in the [QISKit-tutorial](https://nbviewer.jupyter.org/github/QISKit/qiskit-tutorial/blob/stable/index.ipynb).

This program is based on the Counterfeit-Coin Finding algorithm in the [Qiskit-tutorial](https://nbviewer.jupyter.org/github/Qiskit/qiskit-tutorial/blob/stable/index.ipynb).
60 changes: 30 additions & 30 deletions contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ You can contribute in many ways to this project.

## Issue reporting

:fire: This is a good point to start, when you find a problem please add it to the [issue traker](https://github.com/IBMResearch/openqasm/issues). Please, use [this template](https://github.com/IBMResearch/contributing/blob/master/templates/issue.md) to add them.
:fire: This is a good point to start, when you find a problem please add it to the [issue traker](https://github.com/Qiskit/openqasm/issues). Please, use [this template](https://github.com/Qiskit/openqasm/contributing/blob/master/templates/issue.md) to add them.

## Doubts solving

Expand All @@ -28,56 +28,56 @@ You can contribute in many ways to this project.

Please follow the next rules for the commit messages:

* It should be formed by a one-line subject, followed by one line of white space. Followed by one or more descriptive paragraphs, each separated by one line of white space. All of them finished by a dot.
* If it fixes an issue, it should include a reference to the issue ID in the first line of the commit.
* It should provide enough information for a reviewer to understand the changes and their relation to the rest of the code.
- It should be formed by a one-line subject, followed by one line of white space. Followed by one or more descriptive paragraphs, each separated by one line of white space. All of them finished by a dot.
- If it fixes an issue, it should include a reference to the issue ID in the first line of the commit.
- It should provide enough information for a reviewer to understand the changes and their relation to the rest of the code.

### Pull requests

* We use [GitHub pull requests](https://help.github.com/articles/about-pull-requests) to accept the contributions.
* Except for proposals (see next point), please, use [this template](https://github.com/IBMResearch/contributing/blob/master/templates/pr.md) to add them :smile:.
* Review the parts of the documentation regarding the new changes and update it if it's needed.
* New features often imply changes in the existent tests or new ones are needed. Once they're updated/added please be sure they keep passing.
- We use [GitHub pull requests](https://help.github.com/articles/about-pull-requests) to accept the contributions.
- Except for proposals (see next point), please, use [pull requests](https://github.com/Qiskit/openqasm/pulls) as is to submit a new one :smile:.
- Review the parts of the documentation regarding the new changes and update it if it's needed.
- New features often imply changes in the existent tests or new ones are needed. Once they're updated/added please be sure they keep passing.

## Spec proposals

:bulb: All new ideas go throught next stages to become a new feature of the language.

* Draft: Backlog items with different level of abstraction. Anybody can add one issue in the [main repo](https://github.ibm.com/IBMResearch/openqasm). Please label it as `draft`.
* Proposal: An idea with the correct form:
* Add one issue in the [main repo](https://github.ibm.com/IBMResearch/openqasm) labeled as `proposal` using [this template](templates/proposal.md).
* Candidate: During each monthly meeting the assistants select the ones considered more interesting to pass to the next stage. One of the core devs will start commenting the issue to guide the owner into the next steps, including:
* Fork [the main repo](https://github.ibm.com/IBMResearch/openqasm).
* Add the content of the proposal, note that conformance tests are mandatory at this point.
* Make a pull request.
* The core dev can ask for changes before reaching the next stage.
* Accepted: When the PR is merged into master.
- Draft: Backlog items with different level of abstraction. Anybody can add one issue in the [main repo](https://github.com/Qiskit/openqasm). Please label it as `draft`.
- Proposal: An idea with the correct form:
- Add one issue in the [main repo](https://github.com/Qiskit/openqasm) labeled as `proposal` using [this template](templates/proposal.md).
- Candidate: During each monthly meeting the assistants select the ones considered more interesting to pass to the next stage. One of the core devs will start commenting the issue to guide the owner into the next steps, including:
- Fork [the main repo](https://github.com/Qiskit/openqasm).
- Add the content of the proposal, note that conformance tests are mandatory at this point.
- Make a pull request.
- The core dev can ask for changes before reaching the next stage.
- Accepted: When the PR is merged into master.

## Tests

The official [conformance tests](https://en.wikipedia.org/wiki/Conformance_testing) suite is located under the [test](test) folder.

For convenience this project uses the [QISKit](https://github.com/QISKit/qiskit-sdk-py) parser.
For convenience this project uses the [Qiskit](https://github.com/Qiskit/qiskit-terra) parser.

The test runner uses all the circuit files in the [examples](examples) folder. They are run automatically to check they keep passing the parser. It allows to drop more files in those folders, even to add new ones.

* The `invalid` folder includes circuits which should raise a `QasmException`.
* The rest include valid circuits.
* Optionally, they can include metadata in the header (inside comments, like [this one](examples/invalid/gate_no_found.qasm)):
* name: Descriptive name for the check this example is covering.
* section: Link to the related part of the specification.
- The `invalid` folder includes circuits which should raise a `QasmException`.
- The rest include valid circuits.
- Optionally, they can include metadata in the header (inside comments, like [this one](examples/invalid/gate_no_found.qasm)):
- name: Descriptive name for the check this example is covering.
- section: Link to the related part of the specification.

### Run

* Install [QISKit depedencies](https://github.com/QISKit/qiskit-sdk-py#1-get-the-tools).
* The command `make test` should finish without errors communicate with the reviewer using the issue comments to show that we're done.
- Install [Qiskit depedencies](https://github.com/Qiskit/qiskit-terra#installation).
- The command `make test` should finish without errors communicate with the reviewer using the issue comments to show that we're done.

## Versions

:watch: Due to the fast-changing nature of the quantum computing environment the idea is provide a new version of the specification per year, over June. The previous monthly meetings should include the next tasks:

* April: All the accepted proposals (already merged to `develop`) are re-confirmed by the assistants. The dev team have this month to resolve possible conflicts here.
* May: From here, the unique accepted commits will be editorial ones.
* June:
* Merge of `develop` into `master`, drop the branch and create a tag with this the new version name.
* The new standard is considered approved and must be published to the communities. A new human-readable version should be placed into the [spec-human] folder. The file must include this version number, ie: `qasm2.pdf`.
- April: All the accepted proposals (already merged to `develop`) are re-confirmed by the assistants. The dev team have this month to resolve possible conflicts here.
- May: From here, the unique accepted commits will be editorial ones.
- June:
- Merge of `develop` into `master`, drop the branch and create a tag with this the new version name.
- The new standard is considered approved and must be published to the communities. A new human-readable version should be placed into the [spec-human] folder. The file must include this version number, ie: `qasm2.pdf`.

0 comments on commit a61858e

Please sign in to comment.