QuantumLiquids/UltraDMRG is a powerful and efficient library for performing large-scale, high-performance calculations using one-dimensional tensor network algorithms. It is specifically designed to tackle the complexities of simulating untamable two-dimensional strongly correlated electron systems. Our goal in creating this package is to lower the barriers associated with simulating strongly correlated electron systems, offering a user-friendly and accessible solution for researchers in this field.
UltraDMRG offers the following key features:
- MPI parallelization of Density Matrix Renormalization Group
- MPI parallelization of MPS-based time-dependent variational principle algorithm
- Finite-temperature calculation
- infinite DMRG
- DMRG low-energy excitation states
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 sweep times, are presented in the accompanying figure.
Please note that the project requires the following dependencies to be installed in order to build and run successfully:
- C++17 Compiler
- CMake (version 3.12 or higher)
- Intel MKL or OpenBlas
- MPI
- Boost::serialization, Boost::mpi (version 1.74 or higher)
- QuantumLiquids/TensorToolkit
- GoogleTest (if testing is required)
Clone the repository into a desired directory and change into that location:
git clone https://github.com/QuantumLiquids/UltraDMRG.git
cd UltraDMRG
Using CMake:
mkdir build && cd build
cmake ..
make -j4 && make install
You may want to specify CMAKE_CXX_COMPILER
as your favorite C++ compiler,
and CMAKE_INSTALL_PREFIX
as your install directory when you're calling cmake
Hao-Xin Wang
For any inquiries or questions regarding the project, you can reach out to Hao-Xin via email at 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 parallelization. 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 postdoc 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.