qs-benchmarks / welcome.md
Amit
packages added.
a90cad9
<html lang="en">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<h1 style="text-align: center;">
Performance benchmarks of quantum simulators
</h1>
<p style="text-align: left;">
There has been a rapid rise in the development of quantum simulators, both to validate the quantum
hardware and also to explore the limitations of classical simulation, thereby the regime of quantum
advantage. Quantum simulators which are HPC (High Performance Computing) compliant are chosen and
their performance is benchmarked on various compute capabilities as offered by the HPC.
</p>
<p style="text-align: left;">
Notebooks provide the Time to Solution (TtS) performance of the quantum simulators
obtained using a containerized toolchain wherein each simulation package accepts the quantum
algorithm in the QASM2 format, the simulation package and the compute capability on the HPC.
The containerized toolchain allows for portability of the benchmarking scheme, reproducibility
of the performance data, is modular and easily extensible to include other packages.
</p>
<hr class="mt-1 mb-1"/>
The benchmarked packages include:
<center>
<table class="table text-center">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col" class="h4">Package</th>
<th scope="col" class="h4">Language</th>
<th colspan="2" scope="col" class="h4">Singlethread</th>
<th colspan="2" scope="col" class="h4">Multithread</th>
<th colspan="2" scope="col" class="h4">GPU</th>
<th scope="col" class="h4">MPI</th>
<th colspan="2" scope="col" class="h4">Multi-GPU</th>
</tr>
<tr>
<th scope="col"></th>
<th scope="col"></th>
<th scope="col"></th>
<th scope="col" class="h6">Single Precision</th>
<th scope="col" class="h6">Double Precision</th>
<th scope="col" class="h6">Single Precision</th>
<th scope="col" class="h6">Double Precision</th>
<th scope="col" class="h6">Single Precision</th>
<th scope="col" class="h6">Double Precision</th>
<th scope="col"></th>
<th scope="col" class="h6">Single Precision</th>
<th scope="col" class="h6">Double Precision</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td>Qiskit</td>
<td>Python</td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
</tr>
<tr>
<th scope="row">2</th>
<td>Cirq</td>
<td>Python</td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">3</th>
<td>Qsimcirq</td>
<td>Python</td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
</tr>
<tr>
<th scope="row">4</th>
<td>Pennylane</td>
<td>Python</td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">5</th>
<td>Pennylane-lightning</td>
<td>C++</td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">6</th>
<td>Qibo</td>
<td>Python</td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">7</th>
<td>Qibojit</td>
<td>Python</td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
</tr>
<tr>
<th scope="row">8</th>
<td>Yao</td>
<td>Julia</td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">9</th>
<td>Quest</td>
<td>C</td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">10</th>
<td>Qulacs</td>
<td>Python</td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">11</th>
<td>Intel-QS</td>
<td>C++</td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">12</th>
<td>Projectq</td>
<td>Python</td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">13</th>
<td>Qcgpu</td>
<td>Python</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">14</th>
<td>HiQ</td>
<td>Python</td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">15</th>
<td>Hybridq</td>
<td>Python</td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">16</th>
<td>SV-Sim</td>
<td>Python</td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
</tr>
<tr>
<th scope="row">17</th>
<td>Qrack</td>
<td>C++</td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">18</th>
<td>Qpanda</td>
<td>Python</td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">19</th>
<td>CuQuantum</td>
<td>Python</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
</tr>
<tr>
<th scope="row">20</th>
<td>myQLM (py)</td>
<td>Python</td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">21</th>
<td>myQLM (C++)</td>
<td>C++</td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">22</th>
<td>Braket</td>
<td>Python</td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">23</th>
<td>Q++</td>
<td>C++</td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td><i class="fa fa-check-circle-o green"></i><span class="ms-1"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</center>
The quantum algorithms benchmarked include:
<ul class="list-group list-group-flush">
<li class="list-group-item">Dynamics of the Heisenberg model</li>
<li class="list-group-item">Random Quantum Circuit as in the Google Sycamore quantum advantage experiment</li>
<li class="list-group-item">Quantum Fourier Transform</li>
</ul>
<html>