C++ distributed programming
MPI might be what you want: http://en.wikipedia.org/wiki/Message_Passing_Interface
There are C++ hooks available in boost: http://www.boost.org/doc/libs/1_39_0/doc/html/mpi.html
Here is an informative podcast about Open-MPI, which is an implementation of MPI: http://twit.tv/floss50
You might try ACE. It is a rather high-level open-source library that introduces quite a lot of abstractions.
Check the Enduro/X framework (https://github.com/endurox-dev/endurox) which basically is middleware for multi-processing. You may write your own cache service and consume it by client processes. It uses Posix queues for high performance IPC. It also have clustering options, so that you may consume some service (might be your cache) which physically runs on different machine. And client processes might event not know that it cache resists elsewhere, as all network abstraction is covered by Enduro/X framework.