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.
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
- infinite DMRG
- DMRG low-energy excitation states
- documentation
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
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
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.
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
-
Clone the repository:
git clone https://github.com/QuantumLiquids/UltraDMRG.git cd UltraDMRG
-
Build using CMake:
mkdir build && cd build cmake .. make -j4 && make install
- 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.
Hao-Xin Wang
For inquiries, questions, or collaboration opportunities, please contact Hao-Xin via email: wanghaoxin1996@gmail.com.
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.
UltraDMRG is released under the LGPL3 License. Please see the LICENSE file for more details.