大型多CPU系统上的快速进程间(线程间)通信IPC

时间:2010-04-21 07:27:30

标签: algorithm multithreading ipc multicore mutex

用于进程间通信的最快的便携式双向通信机制是什么,其中来自一个应用程序的线程需要与同一计算机上的另一个应用程序中的多个线程进行通信,并且通信线程可以位于不同的物理CPU上。

我认为它将涉及共享内存和循环缓冲区以及共享同步机制。

但是当线程在不同的物理CPU上运行时,共享的互斥锁非常昂贵(并且它们的数量也很有限)。

2 个答案:

答案 0 :(得分:1)

您可能希望从查看现有库(如MPI和OpenMP)开始。他们倾向于调整得相当好。

如果您愿意接受更多前沿方法,那么您可以尝试Barrelfish正在做的事情,请参阅http://www.barrelfish.org/barrelfish_sosp09.pdf

答案 1 :(得分:1)

如果你打算使用C ++,boost有一个便携式的低级IPC库。它允许您在进程之间同步和共享内存。

http://www.boost.org/doc/libs/1_42_0/doc/html/interprocess.html