/trotter-suzuki-mpi

Distributed Trotter-Suzuki solver

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Massively Parallel Trotter-Suzuki Solver

The Trotter-Suzuki approximation leads to an efficient algorithm for solving the time-dependent Schödinger equation. This library provides a scalable, high-precision implementation that uses parallel and distributed computational resources. The implementation built on single-node parallel kernels [1], extending them to use distributed resources [2], and generalizing the kernels to be able to tackle a wider range of problems in quantum physics [3].

Key features:

  • Arbitrary single-body initial state with closed and periodic boundary conditions.
  • Many-body simulations with non-interacting particles.
  • Gross-Pitaevskii equation.
  • Imaginary time evolution to calculate the ground state.
  • Stationary external potential.
  • A command-line interface (CLI) and a C++ application programming interface (API) for flexible use.
  • Python and MATLAB wrappers are provided.
  • Cache optimized multi-core, GPU, and hybrid kernels.
  • Near-linear scaling across multiple nodes with computations overlapping communication.

The documentation of the CLI and the C++ interface is available at trotter-suzuki-mpi.github.io. The Python documentation is on Read the Docs.

Copyright and License

Trotter-Suzuki-MPI is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

Trotter-Suzuki-MPI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Acknowledgement

The original high-performance kernels were developed by Carlos Bederián. The distributed extension was carried out while Peter Wittek was visiting the Department of Computer Applications in Science & Engineering at the Barcelona Supercomputing Center, funded by the "Access to BSC Facilities" project of the HPC-Europe2 programme (contract no. 228398). Generalizing the capabilities of kernels was carried out by Luca Calderaro while visiting the Quantum Information Theory Group at ICFO-The Institute of Photonic Sciences, sponsored by the Erasmus+ programme.

References

  1. Bederián, C. and Dente, A. Boosting quantum evolutions using Trotter-Suzuki algorithms on GPUs. Proceedings of HPCLatAm-11, 4th High-Performance Computing Symposium, 2011. PDF

  2. Wittek, P. and Cucchietti, F.M. (2013). A Second-Order Distributed Trotter-Suzuki Solver with a Hybrid CPU-GPU Kernel. Computer Physics Communications, 184, pp. 1165-1171. PDF

  3. Wittek, P. and Calderaro, L. (2015). Extended computational kernels in a massively parallel implementation of the Trotter-Suzuki approximation. Computer Physics Communications, 197, pp. 339-340. PDF