Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] How could OpenMPI (or MVAPICH) affect floating-point results?
From: Blosch, Edwin L (edwin.l.blosch_at_[hidden])
Date: 2011-09-19 18:41:08

I am observing differences in floating-point results from an application program that appear to be related to whether I link with OpenMPI 1.4.3 or MVAPICH 1.2.0. Both packages were built with the same installation of Intel 11.1, as well as the application program; identical flags passed to the compiler in each case.

I've tracked down some differences in a compute-only routine where I've printed out the inputs to the routine (to 18 digits) ; the inputs are identical. The output numbers are different in the 16th place (perhaps a few in the 15th place). These differences only show up for optimized code, not for -O0.

My assumption is that some optimized math intrinsic is being replaced dynamically, but I do not know how to confirm this. Anyone have guidance to offer? Or similar experience?

Thanks very much


Just for what it's worth, here's the output of ldd:

% ldd application_mvapich => (0x00007fffe3746000) => /usr/lib64/ (0x00002b5b45fc1000) => /usr/mpi/intel/mvapich-1.2.0/lib/shared/ (0x00002b5b462cd000) => /usr/lib64/ (0x00002b5b465ed000) => /usr/lib64/ (0x00002b5b467fc000) => /lib64/ (0x00002b5b46a04000) => /lib64/ (0x00002b5b46c21000) => /lib64/ (0x00002b5b46e2a000) => /lib64/ (0x00002b5b47081000) => /lib64/ (0x00002b5b47285000) => /lib64/ (0x00002b5b475e3000)
        /lib64/ (0x00002b5b45da0000) => /opt/intel/Compiler/11.1/072/lib/intel64/ (0x00002b5b477fb000) => /opt/intel/Compiler/11.1/072/lib/intel64/ (0x00002b5b47b8f000) => /opt/intel/Compiler/11.1/072/lib/intel64/ (0x00002b5b47da5000)

% ldd application_openmpi => (0x00007fff6ebff000) => /usr/lib64/ (0x00002b6e7c17d000) => /usr/mpi/intel/openmpi-1.4.3/lib64/ (0x00002b6e7c489000) => /usr/mpi/intel/openmpi-1.4.3/lib64/ (0x00002b6e7c68d000) => /usr/mpi/intel/openmpi-1.4.3/lib64/ (0x00002b6e7c8ca000) => /usr/mpi/intel/openmpi-1.4.3/lib64/ (0x00002b6e7cb9c000) => /usr/mpi/intel/openmpi-1.4.3/lib64/ (0x00002b6e7ce01000) => /lib64/ (0x00002b6e7d077000) => /lib64/ (0x00002b6e7d27c000) => /lib64/ (0x00002b6e7d494000) => /lib64/ (0x00002b6e7d697000) => /lib64/ (0x00002b6e7d8ee000) => /lib64/ (0x00002b6e7db0b000) => /lib64/ (0x00002b6e7de69000)
        /lib64/ (0x00002b6e7bf5c000) => /opt/intel/Compiler/11.1/072/lib/intel64/ (0x00002b6e7e081000) => /opt/intel/Compiler/11.1/072/lib/intel64/ (0x00002b6e7e1ba000) => /opt/intel/Compiler/11.1/072/lib/intel64/ (0x00002b6e7e45f000) => /opt/intel/Compiler/11.1/072/lib/intel64/ (0x00002b6e7e7f4000) => /opt/intel/Compiler/11.1/072/lib/intel64/ (0x00002b6e7ea0a000)