Subject: [OMPI users] [1.2.x] --enable--mpi-threads
From: Eloi Gaudry (eg_at_[hidden])
Date: 2009-06-04 04:32:45


Hi there,

I'm encountering several issues at runtime in the following environment:
- a multi-thread (two threads) code (build with gcc -pthread) where:
  . the main thread is the only one that do MPI stuff
  . a control thread periodically records the current machine state
(doing malloc)
- OpenMPI-1.2.7 ("standard" configure + --enable-cxx-execptions) orterun
is used to launched a parallel execution of our multithread code

The issues observed seems somehow related to memory allocation. In the
cPicle.so Python module (where thousands of malloc/realloc occur when
dumping/loading a Python object), for instance, we randomly got some bad
malloc return code when running parallel under orterun (using
self,tcp,sm as btl). Might it be due the fact that openmpi allocates
memory using a non-thread-safe mechanism ?

I'm wondering if I should be using the --enable-mpi-threads option when
compiling (configuring) OpenMPI to prevent such issues. Is there any
extensive doc. about this specific option ? Should I be using something
else when building OpenMPI ?

Thanks for your help,
Eloi

-- 
Eloi Gaudry
Free Field Technologies
Axis Park Louvain-la-Neuve
Rue Emile Francqui, 1
B-1435 Mont-Saint Guibert
BELGIUM
Company Phone: +32 10 487 959
Company Fax:   +32 10 454 626