Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] Specific use case - very very new to MPI
From: Jeff Squyres (jsquyres) (jsquyres_at_[hidden])
Date: 2014-01-27 10:52:32


No need to cross-post to both lists; I'm just replying to the users list since this is a user's-level question.

Unfortunately, Open MPI's level of thread support still isn't great.

Also, it sounds like you have a 100% threaded problem; MPI may not be the best tool for you. MPI is more about inter-process communication; it is not currently good at inter-thread communication (there's a lot of talk about this topic in the MPI standards body, and something about inter-thread communication may make it into the upcoming MPI-4 specification, but today the most recent version of the MPI specification is MPI-3.0).

On Jan 24, 2014, at 12:28 PM, Kenneth Adam Miller <kennethadammiller_at_[hidden]> wrote:

> I have a specific use case that I want to describe, and I'm brand new to MPI. It's rather complex, so I want to be careful that I design it so that there are no race conditions.
>
> Pool A is a buffer (of type 1) handle manager, that feeds buffer handles into thread set 1, and receives old handles from thread set 2. There is only one thread running pool A.
>
> Thread set 1 is a set of N threads that fill up buffers of type 1 with regular data. It pushes full buffers to thread set 2.
>
> Thread set 2 is a set of M threads that compress buffers of type 1 into data buffers of type 2. Once the buffer of type 1 has be used up, it is cleared and sent back to Pool A. It pulls fresh data buffers of type 2 from Pool B, and sends freshly filled compressed buffers to Pool C.
>
> Pool C does something with the buffer, clears it and hands it to Pool B.
>
> Can this be done safely using an implementation like what I see here: http://www.justsoftwaresolutions.co.uk/threading/implementing-a-thread-safe-queue-using-condition-variables.html
> ?
> Note 1: -= denotes a 1-to-N connect and =- a N-to-1 connect
> RR = Request reply relationship
> http://imgur.com/6tWZglJ
>
> Questions: does MPI work with intel PIN tools? If so, then how can I apply it to this? (I need specific modules and some examples, the OpenMPI manual just appears to be a bunch of references with no textual guides...).
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users

-- 
Jeff Squyres
jsquyres_at_[hidden]
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/