Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: [OMPI users] windows + threads
From: Biddiscombe, John A. (biddisco_at_[hidden])
Date: 2012-10-11 02:52:45


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_at_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