You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/src/man/parallelism.md
+11-20Lines changed: 11 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -81,31 +81,22 @@ BLAS: libmkl_rt.so
81
81
82
82
## MPSKit multithreading
83
83
84
-
Within MPSKit, when Julia is started with multiple threads, by default the `Threads.@spawn`
85
-
machinery will be used to parallelize the code as much as possible. In particular, there are
86
-
three main places where this is happening, which can be disabled separately through a preference-based system.
84
+
Within MPSKit, when Julia is started with multiple threads, by default the `OhMyThreads.jl`
85
+
machinery will be used to parallelize the code as much as possible. In particular, this mostly
86
+
occurs whenever there is a unitcell and local updates can take place at each site in parallel.
87
87
88
-
1. During the process of some algorithms (e.g. VUMPS), local updates can take place at each
89
-
site in parallel. This can be controlled by the `parallelize_sites` preference.
90
-
91
-
2. During the calculation of the environments, when the MPO is block-sparse, it is possible
92
-
to parallelize over these blocks. This can be enabled or disabled by the
93
-
`parallelize_transfers` preference. (Note that left- and right environments will always
94
-
be computed in parallel)
95
-
96
-
3. During the calculation of the derivatives, when the MPO is block-sparse, it is possible
97
-
to parallelize over these blocks. This can be enabled or disabled by the
98
-
`parallelize_derivatives` preference.
99
-
100
-
For convenience, these preferences can be set via [`MPSKit.Defaults.set_parallelization`](@ref), which takes as input pairs of preferences and booleans. For example, to disable all parallelization, one can call
88
+
The multithreading behaviour can be controlled through a global `scheduler`, which can be set
89
+
using the `MPSKit.Defaults.set_scheduler!(arg; kwargs...)` function. This function accepts
90
+
either a `Symbol`, an `OhMyThreads.Scheduler` or keywords to determine a scheduler automatically.
0 commit comments