Skip to content
Quantum macro assembler for D-Wave systems
Branch: master
Clone or download
spakin 🐛 Update querying of maximum run duration
This information is now provided by SAPI as
`problem_run_duration_range` instead of `max_run_duration`.
Latest commit b02225f Jun 10, 2019

QMASM: A Quantum Macro Assembler

Build Status


QMASM fills a gap in the software ecosystem for D-Wave's adiabatic quantum computers by shielding the programmer from having to know system-specific hardware details while still enabling programs to be expressed at a fairly low level of abstraction. It is therefore analogous to a conventional macro assembler and can be used in much the same way: as a target either for programmers who want a great deal of control over the hardware or for compilers that implement higher-level languages.

N.B. This tool used to be called "QASM" but was renamed to avoid confusion with MIT's QASM, which is used to describe quantum circuits (a different model of quantum computation from what the D-Wave uses) and the IBM Quantum Experience's QASM (now OpenQASM) language, also used for describing quantum circuits.


QMASM is written in Python and uses Setuptools for installation. Use

python install

to install in the default location and

python install --prefix=/my/install/directory

to install elsewhere.


Documentation for QMASM can be found on the QMASM wiki.

QMASM (then known as QASM) is discussed in the following publication:

Scott Pakin. "A Quantum Macro Assembler". In Proceedings of the 20th Annual IEEE High Performance Extreme Computing Conference (HPEC 2016), Waltham, Massachusetts, USA, 13–15 September 2016. DOI: 10.1109/HPEC.2016.7761637.


QMASM is provided under a BSD-ish license with a "modifications must be indicated" clause. See the LICENSE file for the full text.

This package is part of the Hybrid Quantum-Classical Computing suite, known internally as LA-CC-16-032.


Scott Pakin,

You can’t perform that action at this time.