Squash

Squash v2 divides a given quantum circuit into a number of quantum modules—each module is divided into k parts such that each part will run on one of k available cores. Then it maps the modules to a multi-core reconfigurable quantum processor architecture, called Requp, which supports a hierarchical approach to mapping a quantum algorithm and ancilla sharing. Each core is capable of performing any quantum instruction.

Download

You may download Squash v2 from here or from my github.

Change Log
  • 2.00: Initial public release.
Directories & Files Structure

Requirements
  1. Ant 1.7
  2. Oracle Java 7-JDK or higher
  3. Gurobi Optimizer 6.0.5 (free for academic use.)

Note:

  • If you intend to use any version of Gurobi other than 6.0.5, you must replace src/libs/gurobi.jar with the one provided in the version you have (located in the “lib” directory) and recompile the project.
  • Squash v2 can be run on MacOS X, Windows, or Linux. The only restriction is that 64-bit versions of these OSes are supported.
Preinstall

Make sure that all the requirements are already installed. The following environmental variables should be set before the installation/running of the program.

  • JAVA_HOME should point where java and javac binary files are located.
  • GUROBI_HOME and GRB_LICENSE_FILE should point to the appropriate location. Please refer to the installation readme of Gurobi. PATH and LD_LIBRARY_PATH should also be updated accordingly.

Compile

An ant script takes care of the build process. You may enter the following commands to build and clean the project:

This command will make Squash.jar:

This command will clean the built files:

Note: If you intend to use any version of Gurobi other than 6.0.5, you must replace src/libs/gurobi.jar with the one provided in the version you have (located in the “lib” directory) and recompile the project.

Run

Run the following command to perform the mapping.

The options of Squash v2 are listed below:

Example

Getting the physical resource estimation for the FT-H gate, Ion Trap PMD, and [[7,1,3]] Steane code:

Note: Make sure to use -Xss100m in order to allocate more stack to Squash.

Sample Output

The provided tool is fully tested on a laptop machine with the following specification:
– OS: MacOS X Yosemite 10.10.5
– CPU: 1.7 GHz Intel Core i7
– Memory: 8 GB 1600 MHz DDR3

– Results:
Example runtime:  less than 5 seconds

Note: We have tested Squash in Debian Linux and Windows 7 and it worked flawlessly.

Output:

Developers

Mohammad Javad Dousti, Alireza Shafaei, and Massoud Pedram

Questions or Bugs?

You may contact Mohammad Javad Dousti for any questions you may have or bugs that you find.

License

Note: The 3rd-party library files included in src/libs have their own respective licenses.