SimuQ

A domain-specific language for quantum simulation with analog compilation

Model Quantum Systems

Program evolution in Hamiltonian Modeling Language

Describe Quantum Devices

Program Abstract Analog Instruction Sets in AAIS Specification Language

Pulse-level Compilation

Automatically generate pulse schedules according to hardware providers

SimuQ is a domain-specific language designed for quantum simulation problem on near-term quantum devices. SimuQ aims to reduce domain barriers in simulating Hamiltonian evolution on real quantum devices for users with minimal physics knowledge. We provide an open-source Python implementation of SimuQ, and a solver-based compilation framework generating pulse-level control code for multiple platforms of quantum devices include IBM’s Qiskit Pulse for superconducting transmon qubit devices, QuEra’s Bloqade for neutral atom arrays, and quantum circuits for other general machines.

SimuQ Framework

The framework of SimuQ contains:

  • Target system programmed by front-end users via Hamiltonian Modeling Language.
  • Abstract analog instruction set (AAIS) of the programmable analog devices programmed by hardware developers via AAIS Specification Language (supporting multiple platforms).
  • SimuQ compiler generates pulse schedules from the programmed target system and AAIS.

SimuQ framework

Supported Backends

We currently support the following backends:

  • Rydberg atom arrays: Bloqade and QuEra’s machines via Amazon Braket.
  • Superconducting transmon qubit systems: Qiskit Pulse for IBM machines.
  • Quantum circuits: Qiskit and Amazon Braket.

An illustration of SimuQ capability:

SimuQ Illustration

Documentation

For full instructions, please check Documentation.

Citations

If you are using SimuQ in your work, please cite:

@article{peng2023simuq,
  title         = {SimuQ: A Domain-Specific Language for Quantum Simulation with Analog Compilation}
  author        = {Peng, Yuxiang and Young, Jacob and Liu, Pengyu and Wu, Xiaodi},
  journal       = {arXiv preprint arXiv:2303.02775},
  year          = {2023},
  month         = mar,
}

Posts

Tutorial: design an AAIS (II)

Tutorial: design an AAIS (II)

We introduce the design ideas of an AAIS from the viewpoint of a device provider. In this tutorial, we briefly discuss superconducting machines with fixed-frequency transmon qubits and present how to build an AAIS based on these machines.

Tutorial: design an AAIS (I)

Tutorial: design an AAIS (I)

We introduce the design ideas of AAIS from the viewpoint of a device provider. In this tutorial, we briefly discuss the Rydberg atom arrays and present how to build an AAIS for them.