1

I am working with a C++ MPI code which when compiled with openMPI takes 1min12 seconds and 16 seconds with Intel MPI (I have tested it on other inputs too, difference is similar. Both compiled codes give correct answer). I want to understand why is there such a big difference in run time. And what can be done to decrease run time with openMPI (GCC).

I am using CentOS 6 OS with Intel Haswell processor. I am using following flags for compiling.

openMPI (GCC): mpiCC -Wall -O3

I have also tried -march=native -funroll-loops. It does not make a great difference. I have also tried -lm option. I cannot compile for 32 bit.

Intel MPI: mpiicpc -Wall -O3 -xhost

-xhost saves 3 seconds in run time.
13
  • I think your question is way too broad to answer directly. Which types of MPI operations are you using? Send/Receive? Synchronizations? Collective operations (Broadcast/Reduction? Gather/Scatter? Alltoall?) Are you using immediate or blocking operations? Can you maybe give us some more insight into what you are computing? Commented Dec 26, 2017 at 11:33
  • I am using MPI_Send, MPI_Recv, MPI_Isend, MPI_Irecv. I am not using any Collective operations. The code performs molecular docking of small molecules to proteins. link Commented Dec 26, 2017 at 11:49
  • So am I correct in assuming the majority of the runtime is spent by communication? Commented Dec 26, 2017 at 11:55
  • 2
    you are comparing Open MPI + gcc vs Intel MPI + icc, so basically you cannot tell whether Open MPI or gcc (or both) should be blamed for the bad performance. try using Intel MPI with mpicc so you can get performance numbers with Intel MPI + gcc, and then make a fair comparison between Intel MPI and Open MPI. fwiw, if you run an old version of Open MPI and use MPI_THREAD_MULTIPLE, you will use IPoIB instead of native infiniband, and that issue is fixed in recent Open MPI. Commented Dec 26, 2017 at 13:41
  • 2
    i'd rather suggest you try Intel MPI with GNU compilers first, and you do not need root privileges for that. as a side note, Open MPI does not require root privileges to be installed in a user directory. Commented Dec 27, 2017 at 7:25

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.