diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2fbfd0d5..a11706bb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -270,6 +270,7 @@ jobs: gsed -i "/mkl/d" setup.py gsed -i "/intel-openmp/d" setup.py gsed -i "/DUSE_MKL/c \ '-DUSE_MKL=OFF'," setup.py + gsed -i "/DUSE_MKL/a \ '-DFORCE_LIB_ABS_PATH=OFF'," setup.py export OMPROOT=$(brew --prefix libomp) echo ${OMPROOT} cmake --version @@ -298,6 +299,7 @@ jobs: gsed -i "s/version=.*/version='${TAG_STRING:11}',/" setup.py gsed -i "/DUSE_MKL/a \ '-DOMP_LIB=OMP'," setup.py gsed -i "/DUSE_MKL/a \ '-DARCH_ARM64=ON'," setup.py + gsed -i "/DUSE_MKL/a \ '-DFORCE_LIB_ABS_PATH=OFF'," setup.py gsed -i "/mkl/d" setup.py gsed -i "/intel-openmp/d" setup.py gsed -i "/DUSE_MKL/c \ '-DUSE_MKL=OFF'," setup.py diff --git a/docs/source/user/keywords.rst b/docs/source/user/keywords.rst index 35a8df52..5c718b15 100644 --- a/docs/source/user/keywords.rst +++ b/docs/source/user/keywords.rst @@ -538,6 +538,11 @@ davidson\_soft\_max\_iter If this numebr is -1, or larger than or equal to ``davidson_max_iter``, this keyword has no effect and ``davidson_max_iter`` is used instead. +davidson\_def\_max\_size + Optional. Max size of the Krylov subspace in Davidson. Default is 50. + The Davidson working memory is two times this number times ``Wmem`` printed during sweeps. + One may reduce this number to save memory when the MPS bond dimension is very large. + n\_sub\_sweeps Optional. Number of sweeps for each time step. Defualt is 2. This keyword only has effect when used with ``delta_t`` and when ``te_type`` is ``rk4``. diff --git a/pyblock2/driver/core.py b/pyblock2/driver/core.py index 0d7f3f6b..ca26a73b 100644 --- a/pyblock2/driver/core.py +++ b/pyblock2/driver/core.py @@ -346,6 +346,7 @@ def __init__( clean_scratch=True, restart_dir=None, n_threads=None, + n_mkl_threads=1, symm_type=SymmetryTypes.SU2, mpi=None, stack_mem_ratio=0.4, @@ -371,8 +372,8 @@ def __init__( bw.b.Global.threading = bw.b.Threading( bw.b.ThreadingTypes.OperatorBatchedGEMM | bw.b.ThreadingTypes.Global, n_threads, - n_threads, - 1, + n_threads // n_mkl_threads, + n_mkl_threads, ) bw.b.Global.threading.seq_type = bw.b.SeqTypes.Tasked self.reorder_idx = None