Hubbry Logo
search button
Sign in
Cirq
Cirq
Comunity Hub
History
arrow-down
starMore
arrow-down
bob

Bob

Have a question related to this hub?

bob

Alice

Got something to say related to this hub?
Share it here.

#general is a chat channel to discuss anything related to the hub.
Hubbry Logo
search button
Sign in
Cirq
Community hub for the Wikipedia article
logoWikipedian hub
Welcome to the community hub built on top of the Cirq Wikipedia article. Here, you can discuss, collect, and organize anything related to Cirq. The purpose of the hub is to connect people, foster deeper k...
Add your contribution
Cirq
Cirq
Developersquantumlib
Implementation languagePython
LicenseApache license
WebsiteGitHub

Cirq is an open-source framework for noisy intermediate scale quantum (NISQ) computers.[1]

History

[edit]

Cirq was developed by the Google AI Quantum Team, and the public alpha was announced at the International Workshop on Quantum Software and Quantum Machine Learning on July 18, 2018.[2] A demo by QC Ware showed an implementation of QAOA solving an example of the maximum cut problem being solved on a Cirq simulator.[3]

Usage

[edit]

Quantum programs in Cirq are represented by "Circuit" which is made up of a series of "Moments" representing slices of quantum gates that should be applied at the same time.[4] The programs can be executed on local simulators[5] or against hardware supplied by IonQ, Pasqal,[6] Rigetti, and Alpine Quantum Technologies[7]

The following example shows how to create and measure a Bell state in Cirq.

import cirq

# Pick qubits
qubit0 = cirq.GridQubit(0, 0)
qubit1 = cirq.GridQubit(0, 1)

# Create a circuit
circuit = cirq.Circuit(
    cirq.H(qubit0),
    cirq.CNOT(qubit0, qubit1),
    cirq.measure(qubit0, key="m0"),
    cirq.measure(qubit1, key="m1")
)

Printing the circuit displays its diagram

print(circuit)
# prints
# (0, 0): ───H───@───M('m0')───
#                │
# (0, 1): ───────X───M('m1')───

Simulating the circuit repeatedly shows that the measurements of the qubits are correlated.

simulator = cirq.Simulator()
result = simulator.run(circuit, repetitions=5)
print(result)
# prints
# m0=11010
# m1=11010

Projects

[edit]

OpenFermion

[edit]

OpenFermion is a library that compiles quantum simulation algorithms to Cirq.[2]

TensorFlow Quantum

[edit]

TensorFlow Quantum is an extension of TensorFlow that allows TensorFlow to be used to explore hybrid classical-quantum machine learning algorithms.[8]

ReCirq

[edit]

ReCirq is a repository of research projects done using Cirq.[9]

Qsim Cirq

[edit]

Qsim is a high performance wave function simulator that leverages gate fusing, AVS/FMA instructions, and OpenMP to achieve fast simulation rates. Qsimcirq allows one to use qsim from within Cirq.[10]

References

[edit]
  1. ^ Fingerhuth, Mark; Babej, Tomáš; Wittek, Peter (2018). "Open source software in quantum computing". PLOS ONE. 13 (12): e0208561. arXiv:1812.09167. Bibcode:2018PLoSO..1308561F. doi:10.1371/journal.pone.0208561. PMC 6301779. PMID 30571700.{{cite journal}}: CS1 maint: article number as page number (link)
  2. ^ a b Ho, Alan; Bacon, Dave (2018-07-18). "Announcing Cirq: An Open Source Framework for NISQ Algorithms". Google AI Blog. Google AI Quantum Team. Retrieved 2019-03-06.
  3. ^ "public_demos/max_cut_cirq.py at master · qcware/public_demos · GitHub". GitHub. 20 July 2018. Archived from the original on 20 July 2018. Retrieved 29 October 2019.
  4. ^ "Cirq Circuits". Google Quantum AI website. Google AI Quantum Team. Retrieved 2022-07-06.
  5. ^ "Cirq Simulation". Google Quantum AI website. Retrieved 2022-07-06.
  6. ^ "Pasqal".
  7. ^ "AQT".
  8. ^ "TensorFlow Quantum". TensorFlow. Retrieved 2022-07-06.
  9. ^ "ReCirq". Google Quantum Github. Retrieved 2022-07-06.
  10. ^ "qsimcirq". Retrieved 2022-07-06.