Package: qflexcirq
qFlex: A flexible high-performance simulator for verifying and benchmarking quantum circuits implemented on real hardwareDescriptionFlexible Quantum Circuit Simulator (qFlex) implements an efficient tensor
network, CPU-based simulator of large quantum circuits. qFlex computes exact
probability amplitudes, a task that proves essential for the verification of
quantum hardware, as well as mimics quantum machines by computing amplitudes
with low fidelity. qFlex targets quantum circuits in the range of sizes expected
for supremacy experiments based on random quantum circuits, in order to verify
and benchmark such experiments.DocumentationqFlex scientific documentation and results can be found in[1],[2]and[3].
For technical documentation on how to
use qFlex, seeqflex/docs.[1]B. Villalonga,et al.,"A flexible
high-performance simulator for verifying and benchmarking quantum circuits
implemented on real hardware", NPJ Quantum Information 5, 86 (2019)[2]B. Villalonga,et al.,"Establishing
the Quantum Supremacy Frontier with a 281 Pflop/s Simulation",
arXiv:1905.00444 (2019)[3]"Quantum supremacy
using a programmable superconducting processor",
Nature 574, 505–510 (2019)Build methodsTo ensure cross-platform viability, qFlex supports multiple different build
methods. If one of the build methods below does not work on your system, try
using one of the other methods listed.Local installationTo build qFlex on your machine, simply run:$ autoreconf -i && autoconf && ./configure
$ make && make run-testsTo disable qFlex python interface, use./configure --disable-pybind11.If missing, python modules can be installed as follows:$ python3 -m pip install -r scripts/requirements.txtAfter running these commands, qFlex can be installed by runningmake install.
By default, this installs qFlex in$HOME/local/. To change the installation
folder, use./configure --prefix=/new/installation/folder/.qFlex provides an experimental support forOpenMP. To activateOpenMP, run./configurewith the extra-option--enable-openmp.qFlex relies onOpenBLASfor optimized
matrix operations.For more information, seethe installation guide.Build Using DockerDockerallows you to run qFlex in an isolated environment,
without having to worry about managing dependencies.To build qFlex with Docker, seethe Docker guide.An automated qFlex Docker container, synced with themasterbranch, can be
pulled from Docker Hub as:$ docker pull ngnrsaa/qflexBuild Using Rootless ContainersRootless containers are an alternative to Docker targeted at users who may not
haverootprivileges on their machine.To run qFlex in a rootless container, seeqflex/docs/rootless-container.md.Using Google CirqCirqis a framework for modeling and
invoking Noisy Intermediate Scale Quantum (NISQ) circuits.To run qFlex on Google Cirq circuits, or just to call the simulator from Python,
seeqflex/docs/cirq_interface.md.LicenseCopyright © 2019, United States Government as represented by the Administrator
of the National Aeronautics and Space Administration. All rights reserved.The Flexible Quantum Circuit Simulator (qFlex) framework is licensed under the
Apache License, Version 2.0 (the "License"); you may not use this application
except in compliance with the License. You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0.Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.