I am currently working on a fairly large, single-threaded, event-based application developed under epoll under Linux and comparable technologies on other platforms. Currently, when we want two instances to communicate, they usually do this through sockets, regardless of whether they work on the same computer or not. For performance reasons, I foresee using some form of IPC to speed up the same machine communications. Now I need to decide which IPC mechanism to use.
The following factors are important to me:
- event-driven, without a complete reorganization - if the IPC mechanism does not fit the era, then months of work are lost for me.
- fast - if this mechanism is not faster than sockets, it is not worth the time to implement it
- flexible and (re) configurable at runtime - I believe this excludes MPI and al
- No multithreading needed.
I am ready to use different mechanisms for different platforms, if they all use the same paradigm. I also want to get as deep as necessary in C / C ++ / Obj-C for platform binding.
Any suggestion?
Thanks.
source share