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...). >