dqcsim
pypi i dqcsim

dqcsim

Delft Quantum & Classical simulator

by QE-Lab

0.4.1 (see all)License:Apache-2.0
pypi i dqcsim
Readme

DQCsim

PyPi Crates.io Rust workflow Python workflow C++ workflow Documentation workflow Codecov.io

DQCsim, short for Delft Quantum & Classical simulator, is a framework that can be used to tie components of quantum computer simulators together in a standardized yet flexible, developer-friendly, and reproducible way. Click here for more information!

Install

The recommended method to install DQCsim is through Python's package manager:

sudo pip3 install dqcsim

This installs DQCsim's core files and plugins. More information is available in the Installation section of the documentation.

Getting started

Users

New users are encouraged to check out the documentation.

Plugin developers

Plugin developers can check out the examples, existing plugins and refer to the API documentation:

Plugins

Frontend

PluginDescriptionDownloadLicensePlatformsLanguage
openqasmOpenQASM 2.0 frontendCrates.ioApache-2.0Linux, macOSRust
cqasmcQASM 1.0 frontendPyPiApache-2.0Linux, macOSC++
nullNo-op frontendPyPiApache-2.0Linux, macOSRust

Operator

PluginDescriptionDownloadLicensePlatformsLanguage
openql-mapperOpenQL mapper operatorPyPiApache-2.0LinuxC++
nullNo-op operatorPyPiApache-2.0Linux, macOSRust

Backend

PluginDescriptionDownloadLicensePlatformsLanguage
quantumsimQuantumsim backendPyPiGPL-3.0Linux, macOSPython
qxQX backendPyPiApache-2.0Linux, macOSC++
nullNo-op backendPyPiApache-2.0Linux, macOSRust
iqsIntel QS backendGitHubApache-2.0Linux, macOSC++

Please open a PR to have your plugin added to this list.

Build and test from source

Setup

The core of DQCsim is written in Rust. The crate defines a set of C-bindings to support plugin development in other languages. DQCsim is distributed as a batteries included Python package that includes the shared library and headers for C and C++ plugin development.

Requirements

Python support:

C/C++ tests:

Documentation:

Python

To build the dqcsim Python package:

python3 setup.py bdist_wheel

This builds a release wheel to target/python/dist/. For debug builds set the DQCSIM_DEBUG environment variable.

C/C++

To build the C and C++ headers build the dqcsim Rust crate with the bindings feature enabled:

cargo build --manifest-path=rust/Cargo.toml --features=bindings

The generated headers are stored in target/include.

Rust

The dqcsim crate can be built with the following (non-default) features:

  • cli: the command-line interface binary
  • null-plugins: the null (no-op) plugin binaries
  • bindings: genertion of headers required for C, C++ and Python plugin development

To build all targets and features:

cargo build --all-targets --all-features

Add --release for release builds.

Documentation

To build the documentation use the Makefile in the doc directory directly from the root of the repository:

make -C doc

Documentation output is stored in target/book.

Test

Rust

To test all targets and features:

cargo test --all-targets --all-features

C/C++

To test the C-bindings and C++ wrapper:

mkdir build
cd build
cmake .. -DBUILD_TESTS=ON
make
CTEST_OUTPUT_ON_FAILURE=1 make test

Add -DCMAKE_BUILD_TYPE=DEBUG to CMake for debug builds.

Python

To test the Python package:

python3 setup.py build test

GitHub Stars

10

LAST COMMIT

2yrs ago

MAINTAINERS

1

CONTRIBUTORS

8

OPEN ISSUES

6

OPEN PRs

12
VersionTagPublished
0.4.1
2yrs ago
0.3.0
2yrs ago
0.2.5
2yrs ago
0.2.4
2yrs ago
No alternatives found
No tutorials found
Add a tutorial