This repository contains the code for my bachelor’s paper project at the Computer Science Department of the Vrije Universiteit Brussel.
The main program is pqvm.cpp, adapted form the original qvm.c to work with a parallel backend. The code has mostly stayed the same, with some minor changes in the qop_ functions and the tangle objects.
Our main contribution is in the quantum folder, containing the parallel quantum operations.
bitmask.hsimple macros to define and manipulate bitfieldsqvm.hheaders for the original QVMoptions.hparser for getopt.h option argumentsvector.hcustom STL-style vector classthread-control.hexplicitly set the number of threadsperformnace.hwraps time and hardware counters
qvm.coriginal sequential machinepqvm.cppadapted version ofqvm, to work with the parallel backend
quantumThe implementation fo the quantum backendtestsTestfiles for th quantum backend (correctness and performnance)mcSome MC programs, we usedmc/qft/qft16.mcas a benchmark programreportThe final report tex sources