{"id":37085587,"url":"https://github.com/nasa/hybridq","last_synced_at":"2026-01-14T10:31:42.704Z","repository":{"id":40524243,"uuid":"346442541","full_name":"nasa/hybridq","owner":"nasa","description":"HybridQ is a highly extensible platform designed to provide a common framework to integrate multiple state-of-the-art techniques to simulate large scale quantum circuits on a variety of hardware. HybridQ provides tools to manipulate, develop, and extend noiseless and noisy circuits for different hardware architectures. HybridQ also supports large-scale high-performance computing (HPC) simulations, automatically balancing workload among different processor nodes and enabling the use of multiple backends to maximize parallel efficiency. Everything is then glued together by a simple and expressive language that allows seamless switching from one technique to another as well as from one hardware to the next, without the need to write lengthy translations, thus greatly simplifying the development of new hybrid algorithms and techniques.","archived":false,"fork":false,"pushed_at":"2023-12-27T17:42:53.000Z","size":7245,"stargazers_count":67,"open_issues_count":24,"forks_count":16,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-09-22T03:58:58.593Z","etag":null,"topics":["high-performance-computing","hpc","quantum-computing","simulation"],"latest_commit_sha":null,"homepage":"","language":"Python","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/nasa.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}},"created_at":"2021-03-10T17:46:01.000Z","updated_at":"2025-09-03T16:58:16.000Z","dependencies_parsed_at":"2023-10-19T00:00:22.566Z","dependency_job_id":"b3f57d69-af59-454a-813f-96a02bccb710","html_url":"https://github.com/nasa/hybridq","commit_stats":{"total_commits":359,"total_committers":14,"mean_commits":"25.642857142857142","dds":"0.28690807799442897","last_synced_commit":"7e7d96f280c2ae2b03cc86a94e5f6745da1870f6"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/nasa/hybridq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa%2Fhybridq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa%2Fhybridq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa%2Fhybridq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa%2Fhybridq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nasa","download_url":"https://codeload.github.com/nasa/hybridq/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nasa%2Fhybridq/sbom","scorecard":{"id":674781,"data":{"date":"2025-08-11","repo":{"name":"github.com/nasa/hybridq","commit":"7e7d96f280c2ae2b03cc86a94e5f6745da1870f6"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.8,"checks":[{"name":"Code-Review","score":8,"reason":"Found 6/7 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":1,"reason":"binaries present in source code","details":["Warn: binary detected: packages/hybridq-0.8.0-py3-none-macosx_10_9_x86_64.whl:1","Warn: binary detected: packages/hybridq-0.8.0-py3-none-manylinux2010_x86_64.whl:1","Warn: binary detected: packages/hybridq-0.8.0-py3-none-manylinux2014_x86_64.whl:1","Warn: binary detected: packages/hybridq-0.8.1-py3-none-macosx_10_9_x86_64.whl:1","Warn: binary detected: packages/hybridq-0.8.1-py3-none-manylinux2010_x86_64.whl:1","Warn: binary detected: packages/hybridq-0.8.1-py3-none-manylinux2014_x86_64.whl:1","Warn: binary detected: packages/hybridq-0.8.2-py3-none-macosx_10_9_x86_64.whl:1","Warn: binary detected: packages/hybridq-0.8.2-py3-none-manylinux2010_x86_64.whl:1","Warn: binary detected: packages/hybridq-0.8.2-py3-none-manylinux2014_x86_64.whl:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:28","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:29","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: no topLevel permission defined: .github/workflows/pre-release-actions.yml:1","Warn: no topLevel permission defined: .github/workflows/python-example.yml:1","Warn: no topLevel permission defined: .github/workflows/python-format.yml:1","Warn: no topLevel permission defined: .github/workflows/python-pytest.yml:1","Warn: no topLevel permission defined: .github/workflows/python-tutorials.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.8.1 not signed: https://api.github.com/repos/nasa/hybridq/releases/60936243","Warn: release artifact v0.8.0 not signed: https://api.github.com/repos/nasa/hybridq/releases/60936126","Warn: release artifact v0.8.1 does not have provenance: https://api.github.com/repos/nasa/hybridq/releases/60936243","Warn: release artifact v0.8.0 does not have provenance: https://api.github.com/repos/nasa/hybridq/releases/60936126"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pre-release-actions.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/pre-release-actions.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pre-release-actions.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/pre-release-actions.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pre-release-actions.yml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/pre-release-actions.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/pre-release-actions.yml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/pre-release-actions.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-example.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/python-example.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-format.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/python-format.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-pytest.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/python-pytest.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-pytest.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/python-pytest.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-pytest.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/python-pytest.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-pytest.yml:65: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/python-pytest.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-tutorials.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/python-tutorials.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-tutorials.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/nasa/hybridq/python-tutorials.yml/main?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:5","Warn: containerImage not pinned by hash: Dockerfile_baseline:2: pin your Docker image by updating quay.io/pypa/manylinux2014_x86_64 to quay.io/pypa/manylinux2014_x86_64@sha256:265279207916439ab59f696e168b579f789d1b247aa7654efa31b75416adaefa","Warn: containerImage not pinned by hash: packages/Dockerfile:5","Warn: pipCommand not pinned by hash: .github/workflows/pre-release-actions.yml:35","Warn: pipCommand not pinned by hash: .github/workflows/pre-release-actions.yml:88","Warn: pipCommand not pinned by hash: .github/workflows/python-format.yml:25","Info:   0 out of  16 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   3 containerImage dependencies pinned","Info:   0 out of   3 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"13 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2021-387 / PYSEC-2021-871 / PYSEC-2021-872 / GHSA-hwqr-f3v9-hwxr / GHSA-j8fq-86c5-5v2r","Warn: Project is vulnerable to: PYSEC-2023-163 / GHSA-f73w-4m7g-ch9x","Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: PYSEC-2019-156 / GHSA-xp76-357g-9wqq","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114","Warn: Project is vulnerable to: PYSEC-2017-74"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T21:08:41.673Z","repository_id":40524243,"created_at":"2025-08-21T21:08:41.673Z","updated_at":"2025-08-21T21:08:41.673Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28417432,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:25:19.714Z","status":"ssl_error","status_checked_at":"2026-01-14T10:22:49.371Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["high-performance-computing","hpc","quantum-computing","simulation"],"created_at":"2026-01-14T10:31:41.950Z","updated_at":"2026-01-14T10:31:42.697Z","avatar_url":"https://github.com/nasa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HybridQ: A Hybrid Simulator for Quantum Circuits\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/nasa/hybridq/main)\n[![GitHub License](https://img.shields.io/badge/License-Apache-green)](https://github.com/nasa/hybridq/blob/main/LICENSE)\n[![Python 3.7+](https://img.shields.io/badge/Python-3.7%2B-success)]()\n[![PyTest](https://github.com/nasa/hybridq/actions/workflows/python-pytest.yml/badge.svg)](https://github.com/nasa/hybridq/actions/workflows/python-pytest.yml)\n[![Tutorials](https://github.com/nasa/hybridq/actions/workflows/python-tutorials.yml/badge.svg)](https://github.com/nasa/hybridq/tree/main/tutorials)\u003cbr\u003e\n[![PyPI](https://img.shields.io/pypi/v/hybridq.svg)](https://pypi.org/project/hybridq/#description)\n[![Downloads](https://static.pepy.tech/personalized-badge/hybridq?period=total\u0026units=international_system\u0026left_color=gray\u0026right_color=orange\u0026left_text=downloads)](https://pepy.tech/project/hybridq)\n[![Downloads-week](https://static.pepy.tech/personalized-badge/hybridq?period=week\u0026units=international_system\u0026left_color=grey\u0026right_color=orange\u0026left_text=downloads/week)](https://pepy.tech/project/hybridq)\u003cbr\u003e\n[![Documentation](https://img.shields.io/static/v1?label=documentation\u0026message=https://nasa.github.io/hybridq\u0026color=success)](https://nasa.github.io/hybridq)\n[![Cite](https://img.shields.io/static/v1?label=cite\u0026message=IEEE/ACM%20(QCS)\u0026color=success)](https://doi.org/10.1109/QCS54837.2021.00015)\n\n**HybridQ** is a highly extensible platform designed to provide a common framework\nto integrate multiple state-of-the-art techniques to simulate large scale\nquantum circuits on a variety of hardware. **HybridQ** provides tools to manipulate,\ndevelop, and extend noiseless and noisy circuits for different hardware\narchitectures. **HybridQ** also supports large-scale high-performance computing (HPC)\nsimulations, automatically balancing workload among different processor nodes\nand enabling the use of multiple backends to maximize parallel efficiency.\nEverything is then glued together by a simple and expressive language that\nallows seamless switching from one technique to another as well as from one\nhardware to the next, without the need to write lengthy translations, thus\ngreatly simplifying the development of new hybrid algorithms and techniques.\n\n## Getting Started\n\nTutorials on how to use **HybridQ** can be found in\n[hybridq/tutorials](https://github.com/nasa/hybridq/tree/main/tutorials).\n\n## Contributors\n\n[Salvatore Mandrà](https://github.com/s-mandra)\u003cbr\u003e\n[Jeffrey Marshall](https://github.com/jsmarsha11) (noise models)\u003cbr\u003e\n\n## How To Cite\n\n[1] S. Mandrà, J. Marshall, E. Rieffel, and R. Biswas, [*\"HybridQ: A Hybrid\nSimulator for Quantum Circuits\"*](https://doi.org/10.1109/QCS54837.2021.00015), \nIEEE/ACM Second International Workshop on Quantum Computing Software (QCS) (2021)\n\n## Publications Using **HybridQ**\n\n[1] X. Mi, P. Roushan, C. Quintana, S. Mandrà, J. Marshall, *et al.*, \n[*\"Information scrambling in quantum circuits\"*](https://doi.org/10.1126/science.abg5029),\nScience 374, 6574 (2021)\n\n## Documentation\n\nFor technical documentation on how to use **HybridQ**, see [hybridq/docs](https://github.com/nasa/hybridq/tree/main/docs).\n\n## Installation\n\n**HybridQ** can be installed by either using `pip`:\n```\npip install hybridq\n```\ndirectly from the `GitHub` repository (to locally compile **HybridQ** C++\nlibraries):\n```\npip install git+https://github.com/nasa/hybridq\n```\nusing a `zip` file:\n```\npip install hybridq.zip\n```\nor by using `conda`:\n```\nconda env create -f envinronment.yml\n```\n\n**HybridQ** is also available as `docker` container (compiled for a generic\n`x86-64` architecture):\n```\ndocker pull smandra/hybridq\n```\n\n## Installation Troubleshoots\n\n**HybridQ** depends on [KaHyPar](https://github.com/kahypar/kahypar), which\nrequires the [Boost C++ Library](https://www.boost.org/) installed in the\nsystem. To properly install KaHyPar, the following steps usually work:\n\n1. Clone KaHyPar: \n```\ngit clone git@github.com:SebastianSchlag/kahypar.git /tmp/kahypar \\\n    --depth=1 \\\n    --recursive \\\n    --branch 1.2.1\n```\n2. Force installation of minimal Boost library:\n* BSD:\n```\nsed -i '' -e \"$(echo -e '/option(KAHYPAR_USE_MINIMAL_BOOST/,/)/c\\' \\\n                \"\\noption(KAHYPAR_USE_MINIMAL_BOOST \\\"\\\" ON)\")\" \\\n          /tmp/kahypar/CMakeLists.txt\n```\n* GNU:\n```\nsed -i '/option(KAHYPAR_USE_MINIMAL_BOOST/,/)/c\\option(KAHYPAR_USE_MINIMAL_BOOST \\\"\\\" ON)'  \\\n          /tmp/kahypar/CMakeLists.txt\n```\n3. Install KaHyPar:\n```\nexport CXXFLAGS='-fPIC' \u0026\u0026 pip install -U /tmp/kahypar/ --force-reinstall\n```\n\nAlternatively, it is possible to use Conda to properly install KaHyPar:\n\n1. Clone/unzip **HybridQ** repository and enter local copy of repository\n2. Create new Conda environment: `conda env create -f environment.yml`\n3. Activate environment: `conda activate hybridq`\n4. Install dependencies: `conda install make cmake libboost`\n5. Export Boost library: `export BOOST_ROOT=$CONDA_PREFIX`\n6. Reinstall KaHyPar: `pip install -U git+https://github.com/kahypar/kahypar@1.2.1 --force-reinstall`\n\nDepending on the system, the user may still need to install an updated version\nof `gcc/g++` to complete the installation of KaHyPar. On MacOSX, it is suggested to use\n`clang++` as compiler for KaHyPar because of potential linking problems. To force\nthe use of `clang++` to compile KaHyPar, run `export CXX=clang++` before point 6.\n\n### OpenMP\n\n**HybridQ** uses `OpenMP` to parallelize the C++ evolution core. However,\n`clang` on MacOSX does not directly support `OpenMP`. The easiest way to\novercome this limitation is to install a version of `g++` which support the\nstandard C++17. Otherwise, **HybridQ** will be installed without `OpenMP`\nsupport.\n\n### MPI Auto-detection\n\n**HybridQ** is able to auto-detect the use of `MPI` by checking if **HybridQ**\nhas been launched by either using `mpiexec` or `mpirun`. However, auto-detection\nmay be interfere with other libraries/software. To this end, **HybridQ** will ignore\nthe auto-detection of `MPI` if `DISABLE_MPI_AUTODETECT` is set to any values, that\nis `export DISABLE_MPI_AUTODETECT=1`.\n\n### `RuntimeError: Cannot set NUMBA_NUM_THREADS to a different value once the threads have been launched`\n\nAfter its first launch, `quimb` pre-compiles some parts of its library using\n`numba`. Such error arises when `NUMBA_NUM_THREADS` is changed after the `quimb`\nlibrary is pre-cached. The error may be removed by clearing `quimb` cache as:\n\n1. Locate `quimb` installation folder: `python -m pip show quimb`\n2. Clear cache: `rm -fr /path/to/quimb/__pycache__`\n\nIf the problem persists, try to clean `quimb` cache and set `NUMBA_NUM_THREADS`\nto the desired number (typically, the number of physical cores).\n\n## Run HybridQ in a Docker Container\n\n**HybridQ** supports the installation in Docker containers. To create a Docker\ncontainer, it is sufficient to run:\n```\ndocker-compose build\n```\nwhich will install **HybridQ** in the `hybridq` container (source files will be\nstored in `/opt/hybridq/`). The baseline for the Docker container is\n[`quay.io/pypa/manylinux2014_x86_64`](https://github.com/pypa/manylinux).  By\ndefault, `hybridq` container is built by using the general `native`\narchitecture.  To use a different architecture, run for instance:\n```\ndocker-compose build --build-arg ARCH=x86-64\n```\nwith `ARCH` being any available `gcc` architecture. The container is built using\n`python3.7`. If a different version of `python` is needed, it is possible to\nspecify its version in building time:\n```\ndocker-compose build --build-arg PYTHON=cp38-cp38\n```\nAvailable versions are:\n* `cp37-cp37m`\n* `cp38-cp38`\n* `cp39-cp39`\n\nOnce the container is built, **HybridQ** can be directly used as follows:\n```\ndocker run --rm hybridq -c 'hybridq /opt/hybridq/examples/circuit.qasm /dev/null --verbose'\n```\nand tests can be run as follows:\n```\ndocker run --rm hybridq -c 'pytest -vx /opt/hybridq/tests/tests.py'\n```\n\n## Licence\n\nCopyright © 2021, United States Government, as represented by the Administrator\nof the National Aeronautics and Space Administration. All rights reserved.\n\nThe HybridQ: A Hybrid Simulator for Quantum Circuits platform is licensed under\nthe Apache License, Version 2.0 (the \"License\"); you may not use this file\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%2Fnasa%2Fhybridq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnasa%2Fhybridq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnasa%2Fhybridq/lists"}