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 | Jutta Docter | Print