QCMPI
A parallel environment for Quantum Computing
First Version: 04-Feb-2009
QCMPI is a quantum computer (QC)
simulation package written in
Fortran 90 with parallel processing capabilities. It is an accessible research tool that permits rapid
evaluation of quantum algorithms for a large number of qubits and for
various ``noise" scenarios. The prime motivation for developing
\QCMPI\ is to facilitate numerical examination of not only how QC algorithms
work, but also to include noise,
decoherence, and attenuation effects and to evaluate the efficacy of
error correction schemes. The present work builds on an earlier Mathematica code QDENSITY, which is mainly a pedagogic tool. In that earlier work, although the density matrix formulation was featured, the description using state vectors was also provided. In QCMPI, the stress is on state vectors, in order to employ a large number of qubits. The parallel processing feature is implemented by using the Message-Passing Interface (MPI) protocol. A description of how to spread the wave function components over many processors is provided, along with how to efficiently describe the action of general one- and two-qubit operators on these state vectors. These operators include the standard Pauli, Hadamard, CNOT and CPHASE gates and also Quantum Fourier transformation. These operators make up the actions needed in QC. Codes for Grover's search and Shor's factoring algorithms are provided as examples. A major feature of this work is that concurrent versions of the algorithms can be evaluated with each version subject to alternate noise effects, which corresponds to the idea of solving a stochastic Schrodinger equation. The density matrix for the ensemble of such noise cases is constructed using parallel distribution methods to evaluate its eigenvalues and associated entropy. Potential applications of this powerful tool include studies of the stability and correction of QC processes using Hamiltonian based dynamics. The manual reference is: Frank Tabakin, Bruno Julia Diaz Computer Physics Communications (2009) Our Mathematica based QC simulator is available at: this webpage |
Downloads:
(Last
Modifed 20-Feb-2009) The current available version of the package can be downloaded here: Manual: Computer Physics Communications (2009) http://arxiv.org/abs/0902.0699 Package 1.1: qcmpi.v.1.1.tar Version 1.1 of QCMPI differs from version 1.0 in the following ways: (1) The message passing has been changed throughout to a more efficient form that involves first a receive (MPI_IRECV), then a send (MPI_SEND), and then a wait command (MPI_WAIT) structure, (2) The Entropy and EntropyP subroutines were revised to have a similar structure with improved procedures for construction and distributing the density matrix and for calculating its eigenvalues. Additional improvements in evaluating the entropy are underway. CONTAINS:
Main set of subroutines: qcmpisubs.f90 mpi_vars.f90 Examples of Multiverse Shor and Grover: Shor: Suniv.f90 Grover: Guniv.f90 Job Scripts: sx.job gx.job Makefile + README makefile README Older versions Older Versions Webpage Plattforms: (Last Modifed 04-Feb-2009) QCMPI has been tested at: Pittsburgh Supercomputing Center NERSC Barcelona Supercomputing Center |
Feedback, corrections,
and commentaries are more than welcome, please email them to tabakin@pitt.edu or bjulia@gmail.com |
![]() |
![]() |
(c) Bruno Juliá Díaz and Frank Tabakin (2009) University of Pittsburgh and U. of Barcelonaemail: tabakin@pitt.edu bjulia@gmail.com |
.