{"id":27465081,"url":"https://github.com/iqusoft/intel-qs","last_synced_at":"2025-04-16T00:01:55.617Z","repository":{"id":40557830,"uuid":"242080770","full_name":"intel/intel-qs","owner":"intel","description":"High-performance simulator of quantum circuits","archived":false,"fork":false,"pushed_at":"2025-03-31T19:55:58.000Z","size":18149,"stargazers_count":234,"open_issues_count":17,"forks_count":72,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-04-13T15:12:02.561Z","etag":null,"topics":["cloud-computing","high-performance-computing","intel-quantum-simulator","quantum-circuits","quantum-computing"],"latest_commit_sha":null,"homepage":"https://github.com/intel/intel-qs","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/intel.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-02-21T07:34:45.000Z","updated_at":"2025-04-04T23:10:54.000Z","dependencies_parsed_at":"2024-04-23T11:54:39.073Z","dependency_job_id":"92229794-b703-4f2e-9e96-9d3c3baf51ee","html_url":"https://github.com/intel/intel-qs","commit_stats":null,"previous_names":["iqusoft/intel-qs"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intel%2Fintel-qs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intel%2Fintel-qs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intel%2Fintel-qs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intel%2Fintel-qs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/intel","download_url":"https://codeload.github.com/intel/intel-qs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249173071,"owners_count":21224483,"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":["cloud-computing","high-performance-computing","intel-quantum-simulator","quantum-circuits","quantum-computing"],"created_at":"2025-04-16T00:01:19.212Z","updated_at":"2025-04-16T00:01:55.587Z","avatar_url":"https://github.com/intel.png","language":"C++","readme":"![C++ build with CMake](https://github.com/intel/intel-qs/workflows/C++%20build%20with%20CMake/badge.svg)\n![Python build (no MPI)](https://github.com/intel/intel-qs/workflows/Python%20build%20(no%20MPI)/badge.svg)\n[![Published Dockerfile](https://img.shields.io/badge/docker%20build-passing-181717?style=flat-square\u0026logo=github\u0026labelColor=black\u0026color=brightgreen)](https://github.com/iqusoft/intel-qs/blob/development/Dockerfile)\n[![Quantum Science and Technology](https://img.shields.io/static/v1?label=QST\u0026message=doi:10.1088/2058-9565/ab8505\u0026color=success)](https://iopscience.iop.org/article/10.1088/2058-9565/ab8505)\n[![arXiv](https://img.shields.io/static/v1?label=arXiv\u0026message=1601.07195\u0026color=success)](https://arxiv.org/abs/1601.07195)\n\n\n# Intel Quantum Simulator\n\nIntel Quantum Simulator (Intel-QS), also known as qHiPSTER (The Quantum High Performance Software Testing Environment),\nis a simulator of quantum circuits optimized to take maximum advantage of multi-core and multi-nodes architectures.\nIt is based on a complete representation of the qubit state, but avoids the explicit representation of gates and\nother quantum operations in terms of matrices.\nIntel-QS uses the MPI (message-passing-interface) protocol to handle communication between the distributed\nresources used to store and manipulate quantum states.\n\n\n## Temporary notice: backward compatibility\n\nIntel-QS team is aware of the importance of backward compatibility. We do our best to assure it.\n\nIn **April 2021** we adopted good-coding practices and moved a few classes and methods under\nthe namespace `iqs`. This may cause disruption in older programs. The fix is simple, add `iqs::`\nin front of declaration of objects like `QubitRegister`. Other namespaces like `qhipster` have\nbeen susbtituted with namespace `iqs` too.\n\nIn **October 2022** we transferred the repository from iqusoft to intel to better assist the IQS users.\nAll links to the previous repository location are automatically redirected to this new location.\nHowever, we recommend updating the URL in local clones via:\n`git remote set-url origin https://github.com/intel/intel-qs`.\n\n\n## Build instructions\n\nIntel-QS builds as a shared library which, once linked to the application program, allows to take advantage\nof the high-performance implementation of circuit simulations.\nThe library can be built on a variety of different systems, from laptop to HPC server systems.\n\nThe directory structure of the repository can be found in\n[docs/directory_structure.md](/docs/directory_structure.md).\n\nThe complete guide to the installation can be found in\n[docs/install_guide.md](/docs/install_guide.md).\n\nAt the end of the installation, the library object will be: `/builb/lib/libiqs.so`\n\n### Build Options\n\nThe following are build options in cmake:\n\n* IqsMPI : Enables MPI\n* IqsMKL : Enables MKL\n* IqsPython : Enables Python wrapper\n* IqsUtest : Builds unit tests\n* IqsNative : Enables the latest vector instructions to be built in the build\n* IqsBuildAsStatic : Builds IQS as a static library instead of a shared library\n* BuildExamples : Builds the examples \n* BuildInterface : Builds the QASM Interface\n\n\n### Requirements\n\nThe following packages are required by the installation:\n\n*  CMake tools version 3.12+\n*  MPICH3 library for enabling the distributed communication\n*  optional: MKL for distributed random number generation\n*  optional: PyBind11 (installed via conda, not pip) required by the Python binding of Intel-QS\n*  optional: GoogleTest (automatically installed if needed during the build) required by the unit tests\n*  optional: Eigen (library to solve eigensystems) required for simulations with realistic noise\n\nThe first step is cloning the repository:\n```bash\n  git clone https://github.com/iqusoft/intel-qs.git\n  cd intel-qs\n```\n\n\n### Use standard GNU tools to build Intel-QS\n\nHere we describe the basic build using the open-source GNU compiler.\nFor high-performance computing applications, we suggest adopting the\nrecommended build detailed in the [installation guide](/docs/install_guide.md).\nThe installation follows the out-of-source building and requires the creation of the directory `build`.\nThis directory is used to collect all the files generated during the installation process.\n\n```bash\n  mkdir build\n  cd build\n  CXX=g++ cmake -DIqsMPI=ON -DIqsUtest=ON -DIqsPython=ON -DIqsNoise=OFF -DBuildExamples=ON ..\n  make -j10\n```\nThe install is customizable and, above, we have chosen to use MPI, compile the\nunit tests (based on [GoogleTest framework](https://github.com/google/googletest)),\ncreate a Python library via [PyBind11](https://github.com/pybind/pybind11),\nnot include the possibility of simulating noisiy gates as quantum channels\n(feature that would need library [Eigen](https://eigen.tuxfamily.org/index.php?title=Main_Page)),\nand compile a set of C++ examples.\n\nTo re-build Intel-QS with different settings or options, we recommend to delete all content of the\n`build` directory and then restart from the CMake command.\n\n\n\n## Docker: build image and run/execute container\n\n`Dockerfile` includes the instructions to build the docker image of an Ubuntu machine\nwith Intel-QS already installed. The image can be 'run' to create a container.\nThe container can be 'executed' to login into the machine.\n\n```bash\n  docker build -t qhipster .\n  docker run -d -t qhipster\n  docker ps\n  docker exec -itd \u003ccontainer_id\u003e /bin/bash\n```\n\nIf Docker is used on a Windows host machine, the last line should be substituted by:\n`winpty docker exec -it \u003ccontainer_id\u003e //bin/bash`.\n\nMore detailed instructions can be found in \n[intel-qs/docs/docker_guide.md](/docs/docker_guide.md),\ntogether with instructions to launch a Jupyter notebook from within the container.\n\n\n\n## Getting started with Intel-QS\n\nThe simplest way of familiarize with the Intel Quantum Simulator is by exploring\nthe tutorials provided in the directory `tutorials/`.\nIn particular, the code `tutorials/get_started_with_IQS.cpp` provides step-by-step\ndescription of the main commands to:\ndefine a qubit register object, perform quantum gates, measure one or multiple qubits.\n\nIf the Python bindings were enabled, the same learning can be performed using the iPython\nnotebook `tutorials/get_started_with_IQS.ipynb`.\n\n\n\n## How to contribute or contact us\n\nThanks for your interest in the project! We welcome pull requests from developers\nof all skill levels. If you would like to contribute to Intel-QS, please take a\nlook to our [contributing policy](CONTRIBUTING.md) and also to the \n[code of conduct](CODE_OF_CONDUCT.md). \nFor any bug, we use GitHub issues [GitHub issues](https://github.com/iqusoft/intel-qs/issues). Please submit your request there.\n\nIf you have a question or want to discuss something, feel free to send an email to\n[Gian Giacomo Guerreschi](mailto:gian.giacomo.guerreschi@intel.com), \n[Ryan Wu](mailto:xin-chuan.wu@intel.com), or to\n[Fabio Baruffa](mailto:fabio.baruffa@intel.com).\n\n\n\n## How to cite\n\nWhen using Intel Quantum Simulator for research projects, please cite:\n\n   Gian Giacomo Guerreschi, Justin Hogaboam, Fabio Baruffa, Nicolas P. D. Sawaya\n   *Intel Quantum Simulator: A cloud-ready high-performance simulator of quantum circuits*\n   [Quantum Sci. Technol. 5, 034007 (2020)](https://doi.org/10.1088/2058-9565/ab8505)\n\nThe original implementation is described here: \n\n   Mikhail Smelyanskiy, Nicolas P. D. Sawaya, Alán Aspuru-Guzik\n   *qHiPSTER: The Quantum High Performance Software Testing Environment*\n   [arXiv:1601.07195](https://arxiv.org/abs/1601.07195)\n","funding_links":[],"categories":["Quantum SDKs"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiqusoft%2Fintel-qs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiqusoft%2Fintel-qs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiqusoft%2Fintel-qs/lists"}