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 language, also used for describing quantum circuits.
QMASM is written in Python and uses Setuptools for installation. Use
python setup.py install
to install in the default location and
python setup.py 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, pakin@lanl.gov