Parallel execution¶
To perform execution in parallel, first one needs to create a Parallel object
that will describe the parameters of the calculation.
-
class
wannierberri.parallel.Parallel(num_cpus=None, npar_k=0, ray_init={}, cluster=False, progress_step_percent=1)[source]¶ Bases:
objecta class to store parameters of parallel evaluation
Parameters: - num_cpus (int) – number of parallel processes. If None - automatically chose by Ray (1 per CPU)
- npar_k (int) – additional parallelisation over k-points inside the FFT grid
- cluster (bool) – set to True to use a multi-node ray cluster ( see also wannierberri.cluster module)
- ray_init (dict) – parameters to be passed to ray.init(). Use only if you know wwhat you are doing.
- progress_step_percent (int or float) – progress (and estimated time to end) will be printed after each percent is completed
-
class
wannierberri.parallel.Serial(npar_k=None, progress_step_percent=1)[source]¶ Bases:
wannierberri.parallel.Parallela class defining the serial execution (although npar_k is allowed)
Parameters: - npar_k (int) – additional parallelisation ove k-points inside the FFT grid
- progress_step_percent (int or float) – progress (and estimated time to end) will be printed after each percent is completed
NOTE: Ray will produce a lot of temorary files during running. /tmp is the default directory for temporary data files. More information about temorary files.
If you are using a cluster, you may have no permission to delete them under /tmp. Please store them under the folder which under your control by adding ray_init={'_temp_dir': Your_Path}.
Please keep Your_Path shorter. There is a problem if your path is long. Please check temp_dir too long bug
multi-node mode¶
When more than one node are employed on a cluster, first they should be connected together into a Ray cluster. This can be done by a script suggested by gregSchwartz18 here
Such a script can be generated, for example if your cluster uses SLURM
python -m wannierberri.cluster --batch-system slurm --exp-name wb-2nondes --num-nodes 2 --partition cmt --command "python -u example.py 2-nodes" --submit
Or if you are using PBS
python -m wannierberri.cluster --batch-system pbs --exp-name wb-2nondes --num-nodes 2 --partition cmt --command "python -u example.py 2-nodes" --submit
for more info see
python -m wannierberri.cluster -h