{"id":13776518,"url":"https://github.com/ngnrsaa/qflex","last_synced_at":"2025-05-11T10:31:06.564Z","repository":{"id":57458944,"uuid":"169642863","full_name":"ngnrsaa/qflex","owner":"ngnrsaa","description":"Flexible Quantum Circuit Simulator (qFlex) implements an efficient tensor network, CPU-based simulator of large quantum circuits.","archived":false,"fork":false,"pushed_at":"2023-12-19T11:49:26.000Z","size":3494,"stargazers_count":99,"open_issues_count":29,"forks_count":25,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-19T01:22:13.035Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ngnrsaa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-02-07T21:08:10.000Z","updated_at":"2025-04-06T10:56:23.000Z","dependencies_parsed_at":"2024-01-13T11:57:44.389Z","dependency_job_id":"3127cbe3-2656-4f7e-95e1-e5366867b824","html_url":"https://github.com/ngnrsaa/qflex","commit_stats":{"total_commits":1038,"total_committers":25,"mean_commits":41.52,"dds":0.5019267822736031,"last_synced_commit":"ebe366617b7485f89bfb53a80fad6b898510caa6"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngnrsaa%2Fqflex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngnrsaa%2Fqflex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngnrsaa%2Fqflex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngnrsaa%2Fqflex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ngnrsaa","download_url":"https://codeload.github.com/ngnrsaa/qflex/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253551586,"owners_count":21926318,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T18:00:28.060Z","updated_at":"2025-05-11T10:31:04.273Z","avatar_url":"https://github.com/ngnrsaa.png","language":"C++","funding_links":[],"categories":["Quantum simulators"],"sub_categories":[],"readme":"[![Travis-CI](https://travis-ci.org/ngnrsaa/qflex.svg?branch=master \"Travis-CI\")](https://travis-ci.org/ngnrsaa/qflex)\n[![Total alerts](https://img.shields.io/lgtm/alerts/g/ngnrsaa/qflex.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/ngnrsaa/qflex/alerts/)\n[![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/ngnrsaa/qflex.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/ngnrsaa/qflex/context:python)\n[![Language grade: C++](https://img.shields.io/lgtm/grade/cpp/g/ngnrsaa/qflex.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/ngnrsaa/qflex/context:cpp)\n\u003cbr\u003e\n[![Nature](https://img.shields.io/static/v1?label=Nature\u0026message=doi:10.5061/dryad.k6t1rj8\u0026color=success)](https://www.nature.com/articles/s41586-019-1666-5)\n[![NPJ Quantum Information](https://img.shields.io/static/v1?label=NPJ-QI\u0026message=doi:10.1038/s41534-019-0196-1\u0026color=success)](https://doi.org/10.1038/s41534-019-0196-1)\n[![Quantum Science and Technology](https://img.shields.io/static/v1?label=QST\u0026message=doi:10.1088/2058-9565/ab7eeb\u0026color=success)](https://iopscience.iop.org/article/10.1088/2058-9565/ab7eeb/meta)\n\n# qFlex: A flexible high-performance simulator for verifying and benchmarking quantum circuits implemented on real hardware\n\n## Description\n\nFlexible Quantum Circuit Simulator (qFlex) implements an efficient tensor\nnetwork, CPU-based simulator of large quantum circuits. qFlex computes exact\nprobability amplitudes, a task that proves essential for the verification of\nquantum hardware, as well as mimics quantum machines by computing amplitudes\nwith low fidelity. qFlex targets quantum circuits in the range of sizes expected\nfor supremacy experiments based on random quantum circuits, in order to verify\nand benchmark such experiments.\n\n## Documentation\n\nqFlex scientific documentation and results can be found in\n[[1]](https://arxiv.org/abs/1811.09599),\n[[2]](https://arxiv.org/abs/1905.00444) and\n[[3]](https://www.nature.com/articles/s41586-019-1666-5). \nFor technical documentation on how to\nuse qFlex, see [qflex/docs](/docs).\n\n[[1]](https://arxiv.org/abs/1811.09599) B. Villalonga, *et al.*, **\"A flexible\nhigh-performance simulator for verifying and benchmarking quantum circuits\nimplemented on real hardware\"**, NPJ Quantum Information 5, 86 (2019)\n\n[[2]](https://arxiv.org/abs/1905.00444) B. Villalonga, *et al.*, **\"Establishing\nthe Quantum Supremacy Frontier with a 281 Pflop/s Simulation\"**,\nQuantum Science and Technology 5 (3), 034003 (2020)\n\n[[3]](https://www.nature.com/articles/s41586-019-1666-5) **\"Quantum supremacy\nusing a programmable superconducting processor\"**,\nNature 574, 505–510 (2019)\n\n## Build methods\n\nTo ensure cross-platform viability, qFlex supports multiple different build\nmethods. If one of the build methods below does not work on your system, try\nusing one of the other methods listed.\n\n### Local installation\n\nTo build qFlex on your machine, simply run:\n\n```\n$ autoreconf -i \u0026\u0026 autoconf \u0026\u0026 ./configure\n$ make \u0026\u0026 make run-tests\n```\n\nTo disable qFlex python interface, use `./configure --disable-pybind11`.\n\nIf missing, python modules can be installed as follows:\n```\n$ python3 -m pip install -r scripts/requirements.txt\n```\n\nAfter running these commands, qFlex can be installed by running `make install`.\nBy default, this installs qFlex in `$HOME/local/`. To change the installation\nfolder, use `./configure --prefix=/new/installation/folder/`.\n\nqFlex provides an experimental support for `OpenMP`. To activate `OpenMP`, run\n`./configure` with the extra-option `--enable-openmp`.\n\nqFlex relies on [OpenBLAS](https://github.com/xianyi/OpenBLAS) for optimized\nmatrix operations. \n\nFor more information, see [the installation guide](/docs/install.md).\n\n### Build Using Docker\n\n[Docker](https://docker.com) allows you to run qFlex in an isolated environment,\nwithout having to worry about managing dependencies.\n\nTo build qFlex with Docker, see [the Docker guide](/docs/docker.md).\n\nAn automated qFlex Docker container, synced with the `master` branch, can be\npulled from Docker Hub as:\n```\n$ docker pull ngnrsaa/qflex\n```\n\n### Build Using Rootless Containers\n\nRootless containers are an alternative to Docker targeted at users who may not\nhave `root` privileges on their machine.\n\nTo run qFlex in a rootless container, see\n[qflex/docs/rootless_container.md](/docs/rootless_container.md).\n\n## Using Google Cirq\n\n[Cirq](https://github.com/quantumlib/cirq) is a framework for modeling and\ninvoking Noisy Intermediate Scale Quantum (NISQ) circuits.\n\nTo run qFlex on Google Cirq circuits, or just to call the simulator from Python,\nsee [qflex/docs/cirq_interface.md](/docs/cirq_interface.md).\n\n## License\n\nCopyright © 2019, United States Government as represented by the Administrator\nof the National Aeronautics and Space Administration. All rights reserved.\n\nThe Flexible Quantum Circuit Simulator (qFlex) framework is licensed under the\nApache License, Version 2.0 (the \"License\"); you may not use this application\nexcept in compliance with the License. You may obtain a copy of the License at\nhttp://www.apache.org/licenses/LICENSE-2.0.\n\nUnless required by applicable law or agreed to in writing, software distributed\nunder the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\nCONDITIONS OF ANY KIND, either express or implied. See the License for the\nspecific language governing permissions and limitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngnrsaa%2Fqflex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fngnrsaa%2Fqflex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngnrsaa%2Fqflex/lists"}