Portland Quantum Logic Group Benchmarks
On this page you can find a collection of benchmarks for Quantum circuits (QC) synthesis originally designed within the framework of the PQLG (Portland Quantum Logic Group). This collection is open source and can be used for comparison and evaluation goals.
Bellow multiple file-tables can be found. Each represents a category of problems so as details of the found solution. Each file is a set of gates represented by unitary matrices that can be easilyread into a qunatum register and manipulated.
Table with links to simple benchmark files:
|Input Rotation Set ->||An example of input data format (old version) Complete set CS-1; New version Complete set CS-1;|
Full set of NMR Pulses for (+/-[Pi, Pi/2, Pi/3, Pi/4, Pi/5]) and Phase
values for the same value of rotations (only 2-I/O gates so as only
Full input set (new format) of synthesis based only on single qubit
rotations, and on two qubit (single controlled gates) such as CNOT, CV
and CVt here
|The set of ternary gates as well as Boolean gates embedded in the ternary logic: New version Complete set;|
|Output matrices||Fredkin: ;Toffoli: ;Margolus: ;Miller: ;FullAdder: ;rb53: ;|
|Octave Matrix File - required for calculating matrices generated by the circuitdecoder.pl||here|
Each benchmark file contains matrices for gates:
- First line in the file is the total number of gates
- First line before the matrix is the number of inputs/outputs I/O
- Second line (optional) is the cost of each gate
- 1 - I/O gate costs 1
- 2 - I/O gate costs 2
EpiG - Genetic Quantum-Logic Synthesizer
Genetic sythesizer used at Portland State University for quantum
circuit synthesis can be downloaded below. In the package basic example
files are provided. Send feedback to firstname.lastname@example.org.
Multiple versions are so far provided, however the path of
the software development is going to be to provide only a single
modular-like algorithm for all variations of constraints.
The available software categories:
- The CUDA accelerated Evolutionary synthesizer for both Quantum Logic Circuits Synthesis and for the synthesis of Quantum 1 - way Finite State Machines right now acceleration is only partial but soon a completely accelerated search will be available. Works up to 9 qubits.
February 16 2012
An update version of the EPIG software is now available here
May 13 2011
New version is here. More code cleaning, accelerating. The compilation is now self explanatory, ternary embedding is specified during install. The config script is improved and new parameters for runtime are added in the input/paramters.par. It is cleaned and tested on CUDA 3.2 and the latest GSL.
This is the 2.7 version and can be downloaded from here HERE - source code
April 7 2010
New version is here. More code cleaning, accelerating. All matrix operations can be forced to be executed on CUDA. The pure happiness!!!!.
Error messages have been added to prevent running if not enough memory is on the CUDA device
this is the 2.6 version. Get it HERE - source code
January 26 2010
The new 2.5 version is out!!. Many changes and optimizations available. Get it HERE - source code
October 26 2009
This version (v.2.4) has improved compilation and more bugs are removed. Download it HERE - source code
(Updated - edit the scripts to read the usage) A perl script allowing
to run the GA for many generations and another one that allows to
extract and shows statisctics from a given output directory
Upcomming is the publication of the latest of Portland Quantum Logic
Group software for quantum synthesis; the Exhaustive Quantum
Synthesizer. It is a highly controllable exhaustive synthesizer
allowing a easy and fast synthesis of quantum circuits, their
classification and visualization for analysis.
Reversible Logic Circuit Synthesizer based on Cube Reordering
May 13 2011
To run the synthesizer you must have installed the GSL, CUDA and the SDK - this is not yet required but this version is only a prerelease and needs to be cleaned. run sh compile_lif.sh and provide a parameter a .pla circuit file. You can grab one from revlib.org.
This is the 0.9 version and can be downloaded from here HERE - source code
CRL Scripts templates and examples:
Common Robotic IDE:
Night Working Release:
Documentation, How-to's and Manuals
really HPC, but this is a control interface allowing to access through
a single server many different single machines allowing to run
specified applications and retrieve results
Demon/Client Beta Release (Version 0.3):
A lot of changes: the compute servers are now populated by these PRE
daemons, allowing to communicate and handle files using sockets. It is
completely not compatible with the previous versions
A lot of changes: The client was redesigned so as to allow a
completely uncontrolled and controlled job submission. The code is
cleaned. All functionality is not in a single file for easy usage. Of
course no external dependencies other than php standard - MySQL, etc.
Everything is now in a single package.
- First you have to edit the .inc.php file to set up your preferences.
- You have to modify the PRE_daemon/daemon-original file (with data
similar to above). You need a database user with database access.
- To install the compute demons,copy the PRE_Daemon subdirectory
(once you edited the source for preferences) to compute machines of
your specifications. Then remove it from the client tree (if used as
- To initialize the system, you have to open in a webbrowser the
initiate.php page. This will create all the required databse and table
structure for executioner to properly function. Note that all
clients/demons must have acces to the same/comon database.
- for more information about how to setup the system have a look at the readme.txt file
Still buggy - if problems let me know
SSH-Based release Release (Version 0.2):