Sample-based quantum diagonalization (HPC-ready)¶
This repository contains an HPC-ready implementation of the Qiskit addon for sample-based qantum diagonalization (SQD).
Unlike the existing Python addon, this code is written in modern C++17 and is designed to enable HPC workflows and applications, particularly those that require a single binary to be compiled for use with MPI. This library builds on existing interfaces in the C++ standard template library (STL); specifically, this code base has the following characteristics:
You can use it to leverage any pseudo-random number generator compatible with the
<random>header.It relies on standard interfaces for storing bitstrings, namely
std::bitsetandboost::dynamic_bitset, which are aligned with the Qiskit bit ordering conventions (c.f. to_ulong and to_string).It is compatible with STL containers, including
std::vector.
The code is cross-platform, fully tested, fully documented, and contains an integrated benchmark suite.