Usage of CPMD V3.11?
To use CPMD, your userid must be registerd for the group cmpd.Some tricks to optimally use the code on BG/L:
- code need to be run in coprocessor mode (CO) - we use doublecore dgemm.
256 MB of memory per MPI task is too little for most CPMD applications - always request a TORUS configuration on 512+ nodes. It significantly improves MPI_Alltoall performance.
- in the input add the TASKGROUP keyword - the best number of taskgroup is equal to the largest dimension of the BG/L partition, e.g. 512 for nodes (8x8x8) use 8 taskgroups, for 1024 nodes (8x8x16) use 16 taskgroups
- add REAL SPACE WFN KEEP if memory allows - to save a full set of ffts
- if the partition is not cubic and the largest dimension is not the first, e.g. 8x8x16, using 16 taskgroups, you need a mapfile (mapfiles for 1024 node and 2048, assuming the largest dimension is the last, are provided in the same directory where the code is) - this is because the code assumes the largest dimension is the first)
- initialization takes a lot of memory - better start with INITIAL WAVEFUNCTION RANDOM
- in case of very large systems (where linear algebra starts to dominate number of states > 2000) distributed linear algebra needs to be used: turn it on with DISTRIBUTED LINALG ON and BLOCKSIZE STATES (block size needs to be set to a divisor of the number of states and in the range 50-100) and DISTRIBUTE FNL ON
- the input file needs to be specified with the env variable CPMD_INPUT=input_name ; moreover the following variables need to be set for performace:
BGLMPI_ALLREDUCE=TREE
BGLMPI_REDUCE=TREE
BGLMPI_BCAST=TREE
A typical mpirun command will be:
mpirun -partition XXXX - mode CO -exe /bgl/local/CPMDV3.11/cpmd.x -cwd working directory -mapfile /bgl/local/CPMDV3.11/map_1024 -env "CPMD_INPUT=input_name BGLMPI_ALLREDUCE=TREE BGLMPI_REDUCE=TREE BGLMPI_BCAST=TREE"
For more information, please contact:
-
H.Dachsel@fz-juelich.de, Tel 02461/61-6569
last change 23.07.2007 |
