Cirq (Google)

General

Developed by Google (however not an official product of Google)


Project website / official documentation: 

Project site: https://quantumai.google/cirq

Documentation: https://quantumai.google/reference/python/cirq/all_symbols?version=nightly

Github: https://github.com/quantumlib/Cirq?tab=readme-ov-file


Author(s):

https://github.com/quantumlib/Cirq/graphs/contributors


License:

Apache License 2.0


Current version / version supported by LRZ:

Latest version as on pypi (pip manager): 1.3.0

Supported HPC systems

SuperMUC-NG: (access:  https://doku.lrz.de/access-and-login-to-supermuc-ng-11482471.html ): Yes

Linux Cluster: (access:  https://doku.lrz.de/linux-cluster-10745672.html ): Yes

LRZ AI systems : No

Eviden Qaptiva: (access:  https://doku.lrz.de/atos-qlm-10745934.html ): Yes

Installation / deployment 

Installation on LXC and SuperMuc-NG:

Requirement: Python>=3.9.0 (via virtual environments or conda environment) (Setting up virtual environments https://doku.lrz.de/faq-conda-and-python-virtual-environment-on-lrz-hpc-clusters-41616204.html)

# install the latest version of cirq
pip install cirq

Instructions for installing additional components: https://quantumai.google/cirq/start/install

Example(s) for usage

Sample test script (need to additionally have numpy installed)

import cirq
import numpy as np

q = cirq.LineQubit.range(3)
cir = cirq.Circuit()

cir.append(cirq.H(q[0]))
cir.append(cirq.CNOT(q[0], q[1]))
cir.append(cirq.CNOT(q[0], q[2]))
simulator = cirq.Simulator()
result = simulator.simulate(cir)
print(result.final_state_vector)

 FAQ / Troubleshooting

Faster package doing similar stuff is qsimcirq: https://quantumai.google/qsim/tutorials/qsimcirq (offers several options on CPU/GPU architectures)