DocumentationBuilding MPIPerfUnpack the tar file and go to the top level directory $ tar zxvf mpiperf.tar.gz $ cd mpiperf Before building specify your compiler and path to MPI library in $ make If no error occurs, executable file Checking timersBefore any measurements it is required to check timers in MPIPerf on target computer system. To print list of supported timers run $ mpiexec -n 1 ./mpiperf -T Supported timers: MPI_Wtime gettimeofday tsc To check timer 'tsc' run $ mpiexec -n 1 ./mpiperf -j -t tsc In the case of correct work of timer the message "PASSED" is printed. Checking synchronizationTo checking correctness of synchronization of processes run $ mpiexec -n 64 ./mpiperf WaitPatternNull The execution time of test (column [Mean]) must be 0.XX microseconds. Value greater then 1.00 microseconds indicates invalid synchronization of processes. In such case you can try to check other timers: $ mpiexec -n 64 ./mpiperf -t tsc WaitPatternNull Running testsTo print list of support tests run $ ./mpiperf -q To run test 'Bcast' $ mpiexec -n 16 ./mpiperf Bcast In following example data size (count) is changed from 1024 bytes to 64 KiB in a geometric progression with common ration 2: $ mpiexec -n 32 ./mpiperf -t tsc -x1024 -X64KiB -S2 Bcast In following example number of processes is changed from 1 to 16 in an arithmetic progression with common difference 1, data size (count) is changed from 1024 to 8 KiB in an arithmetic progression with common difference 1024: $ mpiexec -n 32 ./mpiperf -p1 -P16 -g1 -x1KiB -X8KiB -s1024 Bcast In following example each test is terminated when relative standard error of measured time is less then 3% or number of test runs is greater then 1000: $ mpiexec -n 32 ./mpiperf -x2MiB -X4MiB -S2 -R1000 -e3 Scatter In following example MPI_Ibarrier time is measured in blockig mode (MPI_Ibarrier followed by MPI_Wait): $ mpiexec -n 32 ./mpiperf -x1 -X1 -b ibarrier In following example MPI_Iallgather overlap is measured: $ mpiexec -n 64 ./mpiperf -x1 -X1024 -S2 iallgather Plotting graphsGnuplot scripts for plotting are located in directory ![]() |