Dear all,
As mentioned in tutorial “Spin-orbit transport calculations: Bi2Se3 topological insulator thin-film device”, DFT device calculations including spin-orbit coupling can be computationally heavy and may require a lot of memory. Thus, MPI is a good solution for these calculations.
I am using ATK2016 on my local computer to do some scientific calculations. If I want to run MPI calculation on the computer cluster of our university, only ATK2015-MPI can be used. In ATK2016, one can specify the parallel parameters, such as “processes per NEB image”, “processes per individual”, “processes per bias point” and “processes per saddle search” directly in the python script. However, in ATK2015, no such parameters can be used in the script. One can only set the MPI calculation through “Job manager”.
The default script of a “calculator” related to MPI settings for ATK2015 and ATK2016 are as followings:
ATK2015:
equilibrium_method = GreensFunction (
processes_per_contour_point=1,
)
non_equilibrium_method = GreensFunction(
processes_per_contour_point=1,
)
ATK2016:
equilibrium_method = GreensFunction(
processes_per_contour_point=1,
)
non_equilibrium_method = GreensFunction(
processes_per_contour_point=1,
)
parallel_parameters = ParallelParameters(
processes_per_bias_point=None,
processes_per_neb_image=None,
processes_per_saddle_search=1,
processes_per_individual=None,
)
One question is: How to set “processes_per_bias_point” in ATK2015? I do think it’s very helpful to save time for I-V calculating if you have enough processes.
For the tutorial above mentioned, the MPI settings involved are the followings:
(1) “4 MPI processes per k-point”
(2) “evaluation of the 48 contour points for the Green’s function method is done using 3 MPI processes per contour point”
(3) “if your cores have only little memory, you may need to allocate 2 cores or more per MPI process”
The guide to use our computer cluster for MPI calculations can be described as these codes:
___________________________________________________________________________________
## N is the number of nodes you want to span you MPI processes
#SBATCH --nodes N
## Set the number of processes per node, this must not exceed the node core count
#SBATCH --ntasks-per-node n
## Request for memory per task, default is 2G so request more if needed. Specify in MB
#SBATCH --mem-per-cpu 4098
____________________________________________________________________________________
I have questions about (1): Can I set “4 MPI processes per k-point” through python script using ATK2015 before submitting the .py file to the cluster? If not, how to set the parameters above for this calculation? Do I Just need to set the “ntasks-per-node” to 4?
I am looking forward to your kind help! Thank you very much!