Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] What's the status of OpenMPI and thread safety?
From: Pablo Barrio (pbarrio_at_[hidden])
Date: 2013-12-19 07:34:14

Hi all, this is the first time I post to the list (although I have read
it for a while now). I hope this helps.

I'm heavily using MPI_THREAD_MULTIPLE on multicores (sm BTL) and my
programs work fine from a CORRECTNESS point of view. I use OpenMPI 1.6
(SVN rev. 26429) and pthreads on Linux.

This said, the performance is still very poor. Some of my programs
become a thousand times slower. After some profiling/tracing, I found
out that the Linux scheduler gave CPU time to threads stuck in blocking
calls (Ssend, Recv, Wait, etcetera). It seems to me that the MPI
implementation can be improved to avoid spending CPU time in threads
waiting for messages.

In short, my experience is that the implementation is correct but not
very efficient so far.

I have a few questions:

     1. My OpenMPI version is more than a year old. Have these
performance issues been fixed in the latest versions?

     2. If not, perhaps I could contribute to OpenMPI multithreading
support. Who takes care of this? How can I help?

Thanks ahead.

Pablo Barrio
Dpt. Electrical Engineering - Technical University of Madrid
Office C-203
Avda. Complutense s/n, 28040 Madrid
Tel. (+34) 915495700 ext. 4234
@: pbarrio_at_[hidden]
On 19/12/13 01:49, Ralph Castain wrote:
> This was, in fact, a primary point of discussion at last week's OMPI 
> developer's conference. Bottom line is that we are only a little 
> further along than we used to be, but are focusing on improving it. 
> You'll find good thread support for some transports (some of the MTLs 
> and at least the TCP BTL), not so good for others (e.g., openib is 
> flat-out not thread safe).
> On Dec 18, 2013, at 3:57 PM, Blosch, Edwin L <edwin.l.blosch_at_[hidden] 
> <mailto:edwin.l.blosch_at_[hidden]>> wrote:
>> I was wondering if the FAQ entry below is considered current opinion 
>> or perhaps a little stale.  Is multi-threading still considered to be 
>> 'lightly tested'?  Are there known open bugs?
>> Thank you,
>> Ed
>> 7. Is Open MPI thread safe?
>> Support for MPI_THREAD_MULTIPLE (i.e., multiple threads executing 
>> within the MPI library) and asynchronous message passing progress 
>> (i.e., continuing message passing operations even while no user 
>> threads are in the MPI library) has been designed into Open MPI from 
>> its first planning meetings.
>> Support for MPI_THREAD_MULTIPLE is included in the first version of 
>> Open MPI, but it is only lightly tested and likely still has some 
>> bugs. Support for asynchronous progress is included in the TCP 
>> point-to-point device, but it, too, has only had light testing and 
>> likely still has bugs.
>> Completing the testing for full support of MPI_THREAD_MULTIPLE and 
>> asynchronous progress is planned in the near future.
>> _______________________________________________
>> users mailing list
>> users_at_[hidden] <mailto:users_at_[hidden]>
> _______________________________________________
> users mailing list
> users_at_[hidden]