I am using CPMD 3.11.1, not cp2k. Below are the timings for 20 steps
of MD for 32 water molecules (one of standard CPMD benchmarks) with
openmpi, mvapich and Intel MPI, running on 64 cores (8 blades, each
has 2 quad-core 2.2 GHz AMD Barcelona CPUs).

openmpi-1.3.2                           time per one MD step is 3.66 s
summary:
       CPU TIME :    0 HOURS  1 MINUTES 23.85 SECONDS
   ELAPSED TIME :    0 HOURS  1 MINUTES 25.90 SECONDS
 ***      CPMD| SIZE OF THE PROGRAM IS   70020/ 319128 kBYTES ***

 PROGRAM CPMD ENDED AT:   Tue May 19 11:12:06 2009

 ================================================================
 = COMMUNICATION TASK  AVERAGE MESSAGE LENGTH  NUMBER OF CALLS  =
 = SEND/RECEIVE                8585. BYTES              48447.  =
 = BROADCAST                  19063. BYTES                396.  =
 = GLOBAL SUMMATION           32010. BYTES                329.  =
 = GLOBAL MULTIPLICATION          0. BYTES                  1.  =
 = ALL TO ALL COMM           102033. BYTES               4221.  =
 =                             PERFORMANCE          TOTAL TIME  =
 = SEND/RECEIVE              209.014  MB/S           1.990 SEC  =
 = BROADCAST                  10.485  MB/S           0.720 SEC  =
 = GLOBAL SUMMATION          154.115  MB/S           0.410 SEC  =
 = GLOBAL MULTIPLICATION       0.000  MB/S           0.001 SEC  =
 = ALL TO ALL COMM             7.802  MB/S          55.200 SEC  =
 = SYNCHRONISATION                                   2.440 SEC  =
 ================================================================

mvapich-1.1.0                            time per one MD step is 2.55 s
summary:
       CPU TIME :    0 HOURS  0 MINUTES 59.79 SECONDS
   ELAPSED TIME :    0 HOURS  1 MINUTES  0.65 SECONDS
 ***      CPMD| SIZE OF THE PROGRAM IS   59072/ 182960 kBYTES ***

 PROGRAM CPMD ENDED AT:   Tue May 19 10:34:56 2009

 ================================================================
 = COMMUNICATION TASK  AVERAGE MESSAGE LENGTH  NUMBER OF CALLS  =
 = SEND/RECEIVE                8585. BYTES              48447.  =
 = BROADCAST                  19063. BYTES                396.  =
 = GLOBAL SUMMATION           32010. BYTES                329.  =
 = GLOBAL MULTIPLICATION          0. BYTES                  1.  =
 = ALL TO ALL COMM           102033. BYTES               4221.  =
 =                             PERFORMANCE          TOTAL TIME  =
 = SEND/RECEIVE              170.466  MB/S           2.440 SEC  =
 = BROADCAST                   6.863  MB/S           1.100 SEC  =
 = GLOBAL SUMMATION           61.948  MB/S           1.020 SEC  =
 = GLOBAL MULTIPLICATION       0.000  MB/S           0.001 SEC  =
 = ALL TO ALL COMM            14.815  MB/S          29.070 SEC  =
 = SYNCHRONISATION                                   0.400 SEC  =
 ================================================================

Intel MPI 3.2.1.009                 time per one MD step is 1.58 s

summary:
       CPU TIME :    0 HOURS  0 MINUTES 36.11 SECONDS
   ELAPSED TIME :    0 HOURS  0 MINUTES 38.16 SECONDS
 ***      CPMD| SIZE OF THE PROGRAM IS   65196/ 178736 kBYTES ***

 PROGRAM CPMD ENDED AT:   Tue May 19 10:17:17 2009

 ================================================================
 = COMMUNICATION TASK  AVERAGE MESSAGE LENGTH  NUMBER OF CALLS  =
 = SEND/RECEIVE                8585. BYTES              48447.  =
 = BROADCAST                  19063. BYTES                396.  =
 = GLOBAL SUMMATION           32010. BYTES                329.  =
 = GLOBAL MULTIPLICATION          0. BYTES                  1.  =
 = ALL TO ALL COMM           102033. BYTES               4221.  =
 =                             PERFORMANCE          TOTAL TIME  =
 = SEND/RECEIVE              815.562  MB/S           0.510 SEC  =
 = BROADCAST                 754.914  MB/S           0.010 SEC  =
 = GLOBAL SUMMATION          180.535  MB/S           0.350 SEC  =
 = GLOBAL MULTIPLICATION       0.000  MB/S           0.001 SEC  =
 = ALL TO ALL COMM            38.696  MB/S          11.130 SEC  =
 = SYNCHRONISATION                                   0.550 SEC  =
 ================================================================

Clearly the whole difference is basically in the ALL TO ALL COMM time.
Running on 1 blade (8 cores) all three MPI implementations have very
similar same time per step of about 8.6 s. Openmpi was ran with the
--mca mpi_paffinity_alone 1 option, in mvapich and IntelMPI no
particular option was used. I was told by HP that there could be an
increased latency when all 8 cores in one blade communicate via a
single port HCA to Infiniband fabric but even if that is the case I am
still wondering how there can be such difference between the
implementations. For CPMD I found that using the keyword TASKGROUP
which introduces a different way of parallelization it is possible to
improve on the openmpi time substantially and lower the time from 3.66
s to 1.67 s, almost to the value found with Intel MPI. Is there
perhaps any openmpi parameter that could be tuned to help the scaling,
without the use of TASKGROUP (maybe some tuning of collective
operations) ?

Thanks, best regards

Roman


On Mon, May 18, 2009 at 6:58 PM, Noam Bernstein
<noam.bernst...@nrl.navy.mil> wrote:
>
> On May 18, 2009, at 12:50 PM, Pavel Shamis (Pasha) wrote:
>
>> Roman,
>> Can you please share with us Mvapich numbers that you get . Also what is
>> mvapich version that you use.
>> Default mvapich and openmpi IB tuning is very similar, so it is strange to
>> see so big difference. Do you know what kind of collectives operation is
>> used in this specific application.
>
> This code does a bunch of parallel things in various different places
> (mostly dense matrix math, and some FFT stuff that may or may not
> be parallelized).  In the standard output there's a summary of the time
> taken by various MPI routines.  Perhaps Roman can send them?  The
> code also uses ScaLAPACK, but I'm not sure how CP2K labels the
> timing for those routines in the output.
>
>                                                                        Noam
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>

Reply via email to