Babel : FPMPI2

Description

FPMPI2 est une bibliothèque de profilage des appels MPI développée par l'ANL. La version 2.1f est disponible sur Babel.

Elle collecte dans un seul fichier texte :

  • la liste des sous-programmes MPI appelés,
  • la taille des messages,
  • le temps passé dans les appels MPI pour chaque sous-programme ainsi que le temps perdu à cause des désynchronisations,
  • les quantités de données transferées entre tous les processus.

Utilisation

  • Charger le module FPMPI2. Commande : module load fpmpi2
  • Compiler avec -g (option activée par défaut à l'IDRIS)
  • Exécuter l'application normalement. Un fichier fpmpi_profile.txt est généré à la fin de l'exécution.

Exemple

MPI Routine Statistics (FPMPI2 Version 2.1f)
Explanation of data:
Times are the time to perform the operation, e.g., the time for MPI_Send
Average times are the average over all processes, e.g., sum (time on each
process) / number of processes
Min and max values are over all processes
(Data is always average/min/max)
Amount of data is computed in bytes.  For point-to-point operations,
it is the data sent or received.  For collective operations, it is the
data contibuted to the operation.  E.g., for an MPI_Bcast, the amount of
data is the number of bytes provided by the root, counted only at the root.
For synchronizing collective operations, the average, min, and max time
spent synchronizing is shown next.
Calls by message size shows the fraction of calls that sent messages of a
particular size.  The bins are
0 bytes, 1-4 bytes, 5-8 bytes, 9-16, 17-32, 33-64, -128, -256, -512, -1024
 -4K, -8K, -16K, -32K, -64K, -128K, -256K, -512K, -1M, -4M, -8M, -16M,
 -32M, -64M, -128M, -256M, -512M, -1GB, >1GB.
Each bin is represented by a single digit, representing the 10's of percent
of messages within this bin.  A 0 represents precisely 0, a . (period)
represents more than 0 but less than 10%.  A * represents 100%.
Messages by message size shows similar information, but for the total
message size.

The experimental topology information shows the 1-norm distance that the
longest point-to-point message travelled, by process.

MPI_Pcontrol may be used to control the collection of data.  Use the values
defined in fpmpi.h, such as FPMPI_PROF_COLLSYNC, to control what data is
collected or reported by FPMPI2.
Command:

Date:       Wed Mar 18 14:56:55 2009
Processes:  64
Execute time: 12.64
Timing Stats: [seconds] [min/max]     [min rank/max rank]
  wall-clock: 12.64 sec 12.640000 / 12.650000 1 / 0
        user: 12.66 sec 12.660370 / 12.670579 3 / 0
         sys: 0 sec 0.000000 / 0.000000 0 / 0

                  Average of sums over all processes
Routine                 Calls       Time Msg Length    %Time by message length
                                                    0.........1........1........
                                                              K        M
MPI_Allreduce       :     100    0.00182        800 00*0000000000000000000000000
MPI_Bcast           :       1   0.000958     0.0625 0*00000000000000000000000000
MPI_Reduce          :      30    0.00326        240 00*0000000000000000000000000
MPI_Sendrecv        :     600      0.862   7.86e+07 000000000000000*000000000000

Details for each MPI routine
                  Average of sums over all processes
                                                   % by message length
                                (max over          0.........1........1........
                                 processes [rank])           K        M
MPI_Allreduce:
  Calls     :        100          100 [   0] 00*0000000000000000000000000
  Time      :    0.00182      0.00186 [  52] 00*0000000000000000000000000
  Data Sent :        800          800 [   0]
  SyncTime  :     0.0309       0.0822 [  12] 00*0000000000000000000000000
  By bin    : 5-8 [100,100] [   0.00178,   0.00186] [    0.0033,    0.0822]
MPI_Bcast:
  Calls     :          1            1 [   0] 0*00000000000000000000000000
  Time      :   0.000958     0.000973 [  11] 0*00000000000000000000000000
  Data Sent :     0.0625            4 [   0]
  By bin    : 1-4 [1,1] [  1.66e-05,  0.000973]
MPI_Reduce:
  Calls     :         30           30 [   0] 00*0000000000000000000000000
  Time      :    0.00326      0.00895 [  12] 00*0000000000000000000000000
  Data Sent :        240          240 [   0]
  By bin    : 5-8 [30,30] [   0.00036,   0.00895]
MPI_Sendrecv:
  Calls     :        600          600 [   0] 000000000000000*000000000000
  Time      :      0.862        0.889 [  37] 000000000000000*000000000000
  Data Sent :   7.86e+07     78643200 [   0]
  By bin    : 65537-131072  [600,600] [     0.806,     0.889]
  Partners  :        4.5 max 6(at 21) min 3(at 0)

Summary of target processes for point-to-point communication:
1-norm distance of point-to-point with an assumed 2-d topology
(Maximum distance for point-to-point communication from each process)
  4  4  4  4  5  5  5  5
  5  5  5  5  4  4  4  4
  4  4  4  4  5  5  5  5
  5  5  5  5  4  4  4  4
  4  4  4  4  5  5  5  5
  5  5  5  5  4  4  4  4
  4  4  4  4  5  5  5  5
  5  5  5  5  4  4  4  4

Documentation