Actually, please disregard the "Can this be done safely with.." part,
because I don't want to have to use a condition variable; I want it all to
happen by inter process communication through OpenMPI


On Fri, Jan 24, 2014 at 11:28 AM, Kenneth Adam Miller <
kennethadammil...@gmail.com> 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...).
>

Reply via email to