Intel® MPI Library
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.
2241 Discussions

Why results of Intel MPI Benchmarks is much higher than theory

racky
Beginner
389 Views

Hi, 

 

I use iperf to get the bandwidth between two computers is around 50 Gbps. But the results of IMB Is too much higher (135 Gbps) . I understand it may have some optimization, but it's not realistic to get 135 Gbps, isn't it? 

 

Below is the test I run between two computers( not in the same subnet but in a local area network, by TCP/IP)
zy@e810a:~/mpi-benchmarks/src_c$ mpirun -np 2 -host 10.100.107.104,10.100.107.156 ./IMB-MPI1 SendRecv
#----------------------------------------------------------------
# Intel(R) MPI Benchmarks 2018, MPI-1 part
#----------------------------------------------------------------
# Date : Wed May 22 15:37:14 2024
# Machine : x86_64
# System : Linux
# Release : 5.15.0-107-generic
# Version : #117~20.04.1-Ubuntu SMP Tue Apr 30 10:35:57 UTC 2024
# MPI Version : 3.1
# MPI Thread Environment:


# Calling sequence was:

# ./IMB-MPI1 SendRecv

# Minimum message length in bytes: 0
# Maximum message length in bytes: 4194304
#
# MPI_Datatype : MPI_BYTE
# MPI_Datatype for reductions : MPI_FLOAT
# MPI_Op : MPI_SUM
#
#

# List of Benchmarks to run:

# Sendrecv

#-----------------------------------------------------------------------------
# Benchmarking Sendrecv
# #processes = 2
#-----------------------------------------------------------------------------
#bytes #repetitions t_min[usec] t_max[usec] t_avg[usec] Mbytes/sec
0 1000 0.95 0.95 0.95 0.00
1 1000 0.93 0.93 0.93 2.14
2 1000 0.94 0.94 0.94 4.25
4 1000 0.93 0.94 0.94 8.55
8 1000 0.96 0.96 0.96 16.73
16 1000 0.93 0.93 0.93 34.24
32 1000 0.95 0.95 0.95 67.67
64 1000 0.97 0.97 0.97 131.72
128 1000 1.00 1.00 1.00 257.17
256 1000 1.10 1.10 1.10 465.05
512 1000 1.23 1.23 1.23 831.93
1024 1000 1.40 1.40 1.40 1462.10
2048 1000 1.69 1.69 1.69 2418.31
4096 1000 2.13 2.13 2.13 3848.13
8192 1000 3.39 3.39 3.39 4827.75
16384 1000 5.13 5.13 5.13 6390.15
32768 1000 7.88 7.88 7.88 8320.02
65536 640 22.04 22.04 22.04 5945.89
131072 320 39.20 39.20 39.20 6686.90
262144 160 70.74 70.74 70.74 7410.97
524288 80 133.42 133.44 133.43 7858.21
1048576 40 279.71 279.74 279.73 7496.78
2097152 20 497.29 498.59 497.94 8412.39
4194304 10 986.94 986.95 986.94 8499.55


# All processes entering MPI_Finalize

According to the above, the highest speed is 8499.55Mbytes/sec. Since sendrecv is back and forth, the bandwidth is 8499.55*2=16999Mbytes/sec=135.99 Gbps

 

0 Kudos
1 Reply
TobiasK
Moderator
334 Views

Hello @racky

the factor of 2 is already included in the printout.

Best
Tobias
 

0 Kudos
Reply