Re: Shared memory and IOCP

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance



Piotr Wyderski wrote:
Anton Bassov wrote:

What about WM_COPYDATA message? Will it work for you?

Well, I think we speak about two completely separate domains. :-)
WM_COPYDATA is a convinient mechanism for passing simple
messages between windows apps. I need a high throughput local
communication layer for bulk transfers close to the peak performance
of the memory subsystem. Not to mention that my programs do not
even have GUI to interpret the WM_ messages, they are big
completion port-based, fully asynchronous multithreaded servers.
I have all the necessary components: shared memory provides
enough bandwidth and the IOCP model provides high scalability.
I'm just looking for a way to match these interfaces using some nifty
trick, since the obvious solution, i.e.
PostRemoteQueuedCompletionStatus(), does not exist on XP and 2003
(don't know much about Vista).

Have you looked at OpenMPI, of which MPICH is a windows based
implementation. IIRC, it will utilize memory mapped files for ipc for local
processes. www.boost.org has recently reveiwed and accepted boost::mpi, a
nice C++ interface that significantly simplifies interactions of MPI. boost
also has an InterProcess library that is based on memory mapped files that
may suit your needs as well.

Jeff F


.