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 377C
kernel32.dll!07feac87167e() Unknown
ntdll.dll!07feae4cc3f1()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