4 Replies Latest reply on Nov 15, 2013 2:52 AM by gormanly

    OpenMPI compile with Open64




      I'm trying to compile Openmpi 1.6.4 on CentOS 2.6.32-279.5.1.el6.x86_64 with Open64


      Compile system is AMD Opteron(TM) Processor 6238 stepping 02 (4x 12 core).


      I've built Open64 on the same architecture from the src "x86_open64-", with:

      ../configure --prefix=/cm/shared/progs/AMD/x86_open64-


      The configure options for OpenMPI are:

      ./configure --prefix=/cm/shared/progs/Libraries/openmpi-1.6.5 CC=opencc CXX=openCC F77=openf90 FC=openf90 FLAGS=-march=bdver1 CXXFLAGS=-march=bdver1 FFLAGS=-march=bdver1 FCFLAGS=-march=bdver1


      I've also tried with

      ./configure --prefix=/cm/shared/progs/Libraries/openmpi-1.6.5 CC=opencc CXX=openCC F77=openf90 FC=openf90 FLAGS=-march=bdver2 CXXFLAGS=-march=bdver2 FFLAGS=-march=bdver2 FCFLAGS=-march=bdver2


      For OpenMPI, 'make all' fails with the error:

      make[7]: Entering directory `/mnt/fhgfs/home/chemmod/mb123/Software/openmpi-1.6.4/ompi/contrib/vt/vt/tools/vtfilter'

        CXX    vtfilter-vt_filter.o

      In file included from ./vt_filter.cc:13:

      ./vt_filter.h:39:12: error: floating constant in preprocessor expression

      In file included from ./vt_filter.cc:13:

      ./vt_filter.h:39:12: error: floating constant in preprocessor expression

      make[7]: *** [vtfilter-vt_filter.o] Error 1


      Anyone have any thoughts on how to resolve this?





        • Re: OpenMPI compile with Open64

          The version string is 4 digits ( and the contributed VampirTrace is expecting 3, then falling over when the value of an integer constant is "2.1" i.e. a float.


          It might be possible to hack the build system of VT (will take a look later this week if I get time), but until then or such time as upstream fixes it and the fix makes it into the OpenMPI distribution, work-around by either disabling the VT build within the OpenMPI build or revert to Open64 4.5.2 which can build OpenMPI including VT.

            • Re: OpenMPI compile with Open64

              The problem is in 3 files, which try to do preprocessor tests on a builtin which has a float value:






              To resolve:


              1) In the 2 header files, remove the last OR from the if test


              if !defined(__OPENCC__) || !defined(__OPENCC_MINOR__) || !defined(__OPENCC_



              2) Comment out the if loop that appears in all 3 files


              if !(__OPENCC_PATCHLEVEL__ + 0)




              3) Make the check to disable OpenMP if compiler version is less than 4.2.4 into one for if compiler version is less than 4.3, again in all 3 files.


              After confirming that the bug found here is still in the current VampirTrace 5.14.4 source, I got this advice and a patch from the VampirTrace support people - who were brilliant - and backported it to the older version included in OpenMPI 1.6.3 as well.