Branch | Status |
---|---|
master |
These plugins for XACC provide an Accelerator implementation that leverages tensor network theory to simulate quantum circuits.
With the XACC framework installed, run the following
$ mkdir build && cd build
$ cmake .. -DXACC_DIR=$HOME/.xacc (or wherever you installed XACC)
$ make install
TNQVM can be built with ExaTN support, providing a tensor network processing backend that scales on Summit-like architectures. To enable this support, first follow the ExaTN README to build and install ExaTN. Now configure TNQVM with CMake and build/install
$ mkdir build && cd build
$ cmake .. -DXACC_DIR=$HOME/.xacc -DEXATN_DIR=$HOME/.exatn
$ make install
To switch tensor processing backends use
auto qpu = xacc::getAccelerator("tnqvm", {std::make_pair("tnqvm-visitor", "exatn")});
or in Python
qpu = xacc.getAccelerator('tnqvm', {'tnqvm-visitor':'exatn'})
TNQVM's exatn-mps
visitor can support multi-node execution via MPI.
Prerequisites: ExaTN is built with MPI enabled, i.e., setting MPI_LIB
and MPI_ROOT_DIR
when configuring the ExaTN build.
To enable MPI in TNQVM, add -DTNQVM_MPI_ENABLED=TRUE
to CMake along with other configuration variables.
A simulation executable which uses the exatn-mps
visitor, e.g. via