Быстрая межпроцессная (межпоточная) связь IPC в большой многопроцессорной системе - PullRequest
4 голосов
/ 21 апреля 2010

Какой будет самый быстрый портативный двунаправленный механизм связи для межпроцессного взаимодействия, когда потоки из одного приложения должны обмениваться данными с несколькими потоками в другом приложении на одном компьютере, а потоки связи могут находиться на разных физических процессорах).

Я предполагаю, что это будет связано с общей памятью, циклическим буфером и общими механизмами синхронизации.

Но совместно используемые мьютексы очень дороги (и их тоже ограничено) для синхронизации при потокахработают на разных физических процессорах.

Ответы [ 2 ]

1 голос
/ 22 апреля 2010

Если вы собираетесь использовать C ++, boost имеет портативную довольно низкоуровневую библиотеку IPC. Позволяет синхронизировать и распределять память между процессами.

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

1 голос
/ 22 апреля 2010

Возможно, вы захотите начать с просмотра существующих библиотек, таких как MPI и OpenMP. Они, как правило, настроены довольно хорошо.

Если вы хотите использовать более передовые подходы, то вы можете попробовать то, что делает Barrelfish, см. http://www.barrelfish.org/barrelfish_sosp09.pdf.

...