ABINIT parallelisation input variables:
List and description.
This document lists and provides the description
of the name (keywords) of parallelisation input
variables to be used in the main input file of the abinis code.
The new user is advised to read first the
new user's guide,
before reading the present file. It will be easier to discover the
present file with the help of the tutorial.
When the user is sufficiently familiarized with ABINIT, the reading of the
~abinit/doc/users/tuning file might be useful. For response-function calculations using
abinis, please read the response function help file
Copyright (C) 1998-2009 ABINIT group (DCA, XG, RC)
This file is distributed under the terms of the GNU General Public License, see
~abinit/COPYING or
http://www.gnu.org/copyleft/gpl.txt .
For the initials of contributors, see ~abinit/doc/developers/contributors.txt .
Goto :
ABINIT home Page
|
Suggested acknowledgments
|
List of input variables
|
Tutorial home page
|
Bibliography
Help files :
New user's guide
|
Abinis (main)
|
Abinis (respfn)
|
Mrgddb
|
Anaddb
|
AIM (Bader)
|
Cut3D
|
Optic
|
Mrgscr
Files that describe other input variables:
- Basic variables, VARBAS
- Developper variables, VARDEV
- File handling variables, VARFIL
- Geometry builder + symmetry related variables, VARGEO
- Ground-state calculation variables, VARGS
- GW variables, VARGW
- Internal variables, VARINT
- Projector-Augmented Wave variables, VARPAW
- Response Function variables, VARRF
- Structural optimization variables, VARRLX
- Wannier90 interface variables, VARW90
Content of the file : alphabetical list of variables.
A.
B.
C.
D.
E.
F.
fft_opt_lob
G.
gwpara
H.
I.
J.
K.
L.
localrdwf
M.
N.
ngroup_rf
npband
npfft
npkpt
O.
P.
paral_kgb
paral_rf
Q.
R.
S.
T.
U.
V.
W.
X.
Y.
Z.
fft_opt_lob
Mnemonics: Fast Fourier Transform parallelisation - OPTion for LOB algorithm
Characteristic:
Variable type: integer
Default is 0.
Option for LOB algorithm, used in the band/FFT/k-point parallelisation,
see npband, npfft,
npkpt, and paral_kgb.
- =1 : old implementation
- =2 : new implementation : the
calls to getghc are made in parallel on a set of bands
nbdblock :
the aim is to reduce the number of collective communications. This is
not yet implemented in lobpcgwf.
Go to the top
| Complete list of input variables
gwpara
Mnemonics: GW PARAllelization level
Characteristic: GW, PARALLEL
Variable type: integer
Default is 1 TODO: default should be 2.
Only relevant if optdriver=3 or 4, that is, screening or sigma calculations.
gwpara is used to choose between the two different parallelization levels
available in the GW code. The available options are:
- =1 => parallelisation on k points
- =2 => parallelisation on bands
Additional notes:
In the present status of the code, only the parallelization over bands (gwpara=2)
allows to reduce the memory allocated by each processor.
Using gwpara=1, indeed, requires the same amount of memory as a sequential run,
irrespectively of the number of CPU's used.
A reduction of the requireed memory can be achieved by opting for an out-of-core solution
(mkmem=0, only coded for optdriver=3)
at the price of a drastic worsening of the performance.
Go to the top
| Complete list of input variables
localrdwf
Mnemonics: LOCAL ReaD WaveFunctions
Characteristic: DEVELOP, PARALLEL
Variable type: integer
Default is 1.
This input variable is used only in abinip.
If localrdwf=1, the input wavefunction disk file or the KSS/SCR file in case of GW
calculations, is read locally by each processor, while
if localrdwf=0, only one processor reads it, and
broadcast the data to the other processors.
The option localrdwf=0 is NOT allowed when
mkmem==0 (or, for RF, when
mkqmem==0, or mk1mem==0), that
is, when the wavefunctions are stored on disk.
This is still to be coded ...
In the case of a parallel computer with a unique file system,
both options are as convenient for the user. However, if the I/O
are slow compared to communications between processors,
(e.g. for CRAY T3E machines), localrdwf=0 should be much more
efficient;
if you really need temporary disk storage, switch to localrdwf=1 ).
In the case of a cluster of nodes, with a different file system for
each machine, the input wavefunction file must be available on all
nodes if localrdwf=1, while it is needed only for the
master node if localrdwf=0.
Go to the top
| Complete list of input variables
ngroup_rf
Mnemonics: Define the number of groups for parallelization over perturbations
Characteristic: can even be specified separately for each dataset, parameter paral_rf is necessary
Variable type: integer
Default is 0.
This parameter is used in connection to the parallelization over perturbations. It defines the number
of groups for distributing the perturbation-cases over the total number of available processors. The maximum number of groups is limited by the number of perturbation cases. The size of each group is again limited by the number k-points.
Go to the top
| Complete list of input variables
npband
Mnemonics: Number of Processors at the BAND level
Characteristic:
Variable type: integer
Default is 1.
Relevant only for the band/FFT parallelisation
(see the paral_kgb input variable).
npband gives the number of processors among which the work load over the band level is shared.
npband, npfft and
npkpt are combined to give the total number
of processors (nproc) working on the band/FFT/k-point parallelisation.
See npfft, npkpt, and
paral_kgb for the additional information on the use of
band/FFT/k-point parallelisation.
Note : at present, npband has to be a divisor or equal to nband
Go to the top
| Complete list of input variables
npfft
Mnemonics: Number of Processors at the FFT level
Characteristic:
Variable type: integer
Default is nproc.
Relevant only for the band/FFT/k-point parallelisation
(see the paral_kgb input variable).
npfft gives the number of processors among
which the work load over the FFT level is shared.
npfft, npkpt and
npband are combined to give the total number
of processors (nproc) working on the band/FFT/k-point parallelisation.
See npband, npkpt, and
paral_kgb for the additional information on the use of
band/FFT/k-point parallelisation.
Note : npfft should be a divisor or equal to the number of FFT planes
along the 2nd and 3rd dimensions
(ngfft(2) and ngfft(3)), respectively,
and smaller than
min(ngfft(2),ngfft(3))/2.
Go to the top
| Complete list of input variables
npkpt
Mnemonics: Number of Processors at the k-point level
Characteristic:
Variable type: integer
Default is 1.
Relevant only for the band/FFT/k-point parallelisation
(see the paral_kgb input variable).
npkpt gives the number of processors among
which the work load over the k-point/spin-component level is shared.
npkpt, npfft and
npband are combined to give the total number
of processors (nproc) working on the band/FFT/k-point parallelisation.
See npband, npfft, and
paral_kgb for the additional information on the use of
band/FFT/k-point parallelisation.
Note : npkpt should be a divisor or equal to with the number of k-point/spin-components
(nkpt*nsppol)
in order to have the better load-balancing and efficiency.
Go to the top
| Complete list of input variables
paral_kgb
Mnemonics: activate PARALelization over K point, G vectors and Bands.
Characteristic: can not be specified separately for each dataset.
Variable type: integer
Default is 0.
If paral_kgb=1,
the parallelization over bands, FFTs, and k-point/spin-components is activated
(see npkpt, npfft and
npband). With this parallelization, the work load is split over
three levels of parallelization. The different communications almost occur
along one dimension only. Require compilation option --enable-mpi="yes".
The keywords
wfoptalg=4,
nloalg=4,
fftalg=401,
intxc=0,
and fft_opt_lob=2
have to be used for a band/FFT/k-point parallelisation.
Spin-polarized (
nsppol=2
or
nspden=2)
as well as PAW method calculations
are now allowed in production in the framework of
band/FFT/k-point parallelisation.
Precondition of density and/or correction of forces (see
iprcch) and time-reversal
symmetry (
istwfk=2) are now available for beta tests.
HOWTO fix the number of processors along one level of parallelisation:
At first, try to parallelise over the k point and spin
(see npkpt).
Otherwise, for unpolarized calculation at the gamma point, parallelise over the
two other levels: the band and FFT ones. For nproc<=50,
the best speed-up is achieved for
npband=nproc and
npfftnpfft=1 (which is not yet the default).
For nproc>=50, the best speed-up is achieved for
npband >=4*npfft.
For additional information,
download F. Bottin's presentation at the ABINIT workshop 2007
Suggested acknowledgments :
F. Bottin, S. Leroux, A. Knyazev and G. Zerah,
Large scale ab initio calculations based on three levels of parallelization,
Comput. Mat. Science 42, 329 (2008),
available on arXiv.
Go to the top
| Complete list of input variables
paral_rf
Mnemonics: Activate parallelization over perturbations
Characteristic: can even be specified separately for each dataset, parameter ngroup_rf is necessary
Variable type: integer
Default is 0.
This parameter activates the parallelization over perturbations which can be used during
RF-Calculation. It is possible to use this type of parallelization in combination to the
parallelization over k-points.
Currently total energies calculated by groups, where the master process is not in, are saved
in .status_LOGxxxx files.
Go to the top
| Complete list of input variables
Goto :
ABINIT home Page
|
Suggested acknowledgments
|
List of input variables
|
Tutorial home page
|
Bibliography
Help files :
New user's guide
|
Abinis (main)
|
Abinis (respfn)
|
Mrgddb
|
Anaddb
|
AIM (Bader)
|
Cut3D
|
Optic
|
Mrgscr