Skip to content

QuantumLiquids/UltraDMRG

Repository files navigation

UltraDMRG: A Powerful 1D Tensor Network Library for Simulating Strongly Correlated Electron Systems

Tests Passing

UltraDMRG is a powerful and efficient library for performing large-scale, high-performance calculations using 1D tensor network algorithms. It is specifically designed to address the complexities of simulating two-dimensional strongly correlated electron systems, making previously untamable problems more accessible. Our goal is to lower the barriers to simulating strongly correlated systems. The package is header-only.


Features

UltraDMRG offers the following key features:

  • MPI/CUDA parallelization of Density Matrix Renormalization Group
  • MPI/CUDA parallelization of MPS-based time-dependent variational principle algorithms
  • Finite-temperature calculations

To-Do List

  • infinite DMRG
  • DMRG low-energy excitation states
  • documentation

Performance Benchmark

As a demonstration of the performance of UltraDMRG, we conducted a benchmark comparing the performance of UltraDMRG with ITensor(C++). Specifically, we focused on comparing the DMRG sweep time using both packages. The test model is the $4 \times 16$ Hubbard cylinder at a doping level of 1/8, and we maintain a kept state dimension of $D=2000$ with incorporating $U(1)\times U(1)$ symmetry.

benchmark

Note that ITensor utilizes the Davidson method for diagonalizing the Hamiltonian, whereas UltraDMRG employs the Lanczos method. This difference in methodology makes a performance comparison not straightforward. To ensure a fair evaluation, we established consistent parameters for both packages in the following way. The truncation error cut-off was set at $10^{-8}$, and the diagonalized Hamiltonian accuracy at $10^{-9}$. We also set the iteration times for both the Davidson and Lanczos methods to 100, effectively approaching infinity. We specifically selected sweep times exclusively from near-converged sweeps. We also close the MPI acceleration in UltraDMRG. We hope above setting can ensure an unbiased comparison.

The codes used in the benchmark can be found in the directory ./benchmark. The results of the performance benchmark, showcasing the time of single sweep, are presented in the accompanying figure.


Dependence

UltraDMRG is header-only and requires no installation dependencies. However, building test cases or practical DMRG/TDVP programs based on this project requires:

  • C++ Compiler: C++17 or above
  • Build System: CMake (version 3.12 or higher)
  • Math Libraries: Intel MKL or OpenBLAS
  • Parallelization: MPI
  • Tensor Operations: QuantumLiquids/TensorToolkit
  • GPU Acceleration (optional): CUDA compiler, cuBLAS, cuSolver, cuTensor2
  • Testing (optional): GoogleTest

Install

  1. Clone the repository:

    git clone https://github.com/QuantumLiquids/UltraDMRG.git
    cd UltraDMRG
  2. Build using CMake:

    mkdir build && cd build
    cmake ..
    make -j4 && make install

Cmake build options:

  • Specify your preferred C++ compiler with -DCMAKE_CXX_COMPILER.
  • Use -DCMAKE_INSTALL_PREFIX to define the installation directory.
  • Build will only occur if -DQLMPS_BUILD_UNITTEST=OFF is set. Otherwise the header-only project will be installed directly.

Author

Hao-Xin Wang

For inquiries, questions, or collaboration opportunities, please contact Hao-Xin via email: wanghaoxin1996@gmail.com.

Acknowledgments

UltraDMRG is built upon the foundation laid by the GraceQ/MPS2 project. While initially inspired by GraceQ/mps2, UltraDMRG expands upon its capabilities by adding additional 1D tensor-network algorithms, dramatically improving performance, and most importantly, introducing support for MPI/CUDA accelerations. We would like to express our gratitude to the following individuals for their contributions and guidance:

  • Rong-Yang Sun, the author of GraceQ/mps2, for creating the initial framework that served as the basis for UltraDMRG.
  • Yi-Fan Jiang, providing me with extensive help and guidance in writing parallel DMRG
  • Hong Yao, my PhD advisor. His encouragement and continuous support of computational resources played crucial roles in the implementation of parallel DMRG.
  • Zhen-Cheng Gu, my advisor, one of the pioneers in the field of tensor network.

Their expertise and support have been invaluable in the development of UltraDMRG.

License

UltraDMRG is released under the LGPL3 License. Please see the LICENSE file for more details.

About

large-scale parallel DMRG/TDVP library

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages