Hi list,

 

I searched the archives, but didn’t turn anything up…

 

I have a new machine which I’ve installed windows 8 x64 + MSVC 2012 (MSVC 11) and have compiled openmpi from the git svn clone(on branch origin/v1.6)  using these settings …

cmake -DOMPI_ENABLE_THREAD_MULTIPLE=true -DOPAL_ENABLE_MULTI_THREADS=true -DOMPI_WANT_CXX_BINDINGS=false -DCMAKE_C_FLAGS:STRING=/MP -DCMAKE_CXX_FLAGS:STRING=/MP -DCMAKE_INSTALL_PREFIX="%MPI_DIR%" D:\Code\ompi-svn-mirror -DCMAKE_GENERATOR="Visual Studio 11 Win64"

 

The compilation succeeds, but when I run my app, I see that THREADS_MULTIPLE is not set. So I tried running ompi_info and I see that it outputs the following (at bottom of post), but locks up.

The stack trace when it locks up is as follows…

 

    libmpid.dll!opal_atomic_cmpset_ptr(volatile void * addr, void * oldval, void * newval) Line 198   C++

    libmpid.dll!opal_atomic_lifo_push(opal_atomic_lifo_t * lifo, opal_list_item_t * item) Line 77 C++

    libmpid.dll!ompi_free_list_grow(ompi_free_list_t * flist, unsigned __int64 num_elements) Line 237     C++

    libmpid.dll!ompi_rb_tree_init(ompi_rb_tree_t * tree, int (void *, void *) * comp) Line 77   C++

    libmpid.dll!mca_mpool_base_tree_init() Line 88  C++

    libmpid.dll!mca_mpool_base_open() Line 86  C++

    ompi_info.exe!ompi_info_open_components() Line 515   C++

    ompi_info.exe!main(int argc, char * * argv) Line 285 C

    ompi_info.exe!__tmainCRTStartup() Line 536 C

    ompi_info.exe!mainCRTStartup() Line 377    C

    kernel32.dll!000007feac87167e() Unknown

    ntdll.dll!000007feae4cc3f1()    Unknown

 

My question is : has anyone tested msvc 12 and openmpi and can they recommend a source version I can use to compile and enable threads. If this combination of compilers etc is not yet supported, how can I help fix this. The fact that ompi_info reports “Thread support: no” indicates to me that either the cmake config is failing, or I’ve messed up with options. I tried the v1.7 branch, but the cmake support appears flaky. I’m willing to either fix the 1.7 cmake or the 1.6 thread lock, if necessary, but I don’t want to waste my time if it isn’t going to work within a reasonable amount of debugging. I welcome any advice on how to get this compiling and working and offer cmake related help if you need it to work on this platform.

NB. I think I said my program runs, but actually, with threads enabled it bombs out during  MPI_Init_thread(&argc, &argv, MPI_THREAD_MULTIPLE, &provided); - it runs without threads, but I need them.

 

Thanks

 

JB

 

output of ompi_info

 

                 Package: Open MPI biddisco@CRUSCA Distribution

                Open MPI: 1.6.3a1-1

   Open MPI SVN revision: -1

   Open MPI release date: Unreleased developer copy

                Open RTE: 1.6.3a1-1

   Open RTE SVN revision: -1

   Open RTE release date: Unreleased developer copy

                    OPAL: 1.6.3a1-1

       OPAL SVN revision: -1

       OPAL release date: Unreleased developer copy

                 MPI API: 2.1

            Ident string: 1.6.3a1

                  Prefix: D:\build\openmpi\Debug/..

Configured architecture: Windows-6.2 64 bit

          Configure host: CRUSCA

           Configured by: biddisco

           Configured on: 07:52 11/10/2012

          Configure host: CRUSCA

                Built by: biddisco

                Built on: 07:52 11/10/2012

              Built host: CRUSCA

              C bindings: yes

            C++ bindings: yes

      Fortran77 bindings: no

      Fortran90 bindings: no

Fortran90 bindings size: na

              C compiler: cl

     C compiler absolute: C:/Program Files (x86)/Microsoft Visual Studio

                          11.0/VC/bin/x86_amd64/cl.exe

  C compiler family name: MICROSOFT

      C compiler version: 1700

            C++ compiler: cl

  C++ compiler absolute: C:/Program Files (x86)/Microsoft Visual Studio

                          11.0/VC/bin/x86_amd64/cl.exe

      Fortran77 compiler: none

  Fortran77 compiler abs: none

      Fortran90 compiler: none

  Fortran90 compiler abs: none

             C profiling: yes

           C++ profiling: yes

     Fortran77 profiling: no

     Fortran90 profiling: no

          C++ exceptions: no

          Thread support: no

           Sparse Groups: no

  Internal debug support: no

  MPI interface warnings: no

     MPI parameter check: never

Memory profiling support: no

Memory debugging support: no

         libltdl support: no

   Heterogeneous support: no

mpirun default --prefix: yes

         MPI I/O support: yes

       MPI_WTIME support: gettimeofday

     Symbol vis. support: yes

   Host topology support: no

          MPI extensions: none

   FT Checkpoint support: yes (checkpoint thread: no)

     VampirTrace support: no

  MPI_MAX_PROCESSOR_NAME: 256

    MPI_MAX_ERROR_STRING: 256

     MPI_MAX_OBJECT_NAME: 64

        MPI_MAX_INFO_KEY: 36

        MPI_MAX_INFO_VAL: 256

       MPI_MAX_PORT_NAME: 1024

  MPI_MAX_DATAREP_STRING: 128