2009-12-03 2 views
3

Я полагаю, Boost.MPI и Boost.Interprocess разные, не так ли?В чем разница между Boost.MPI и Boost.Interprocess?

С точки зрения производительности, которая быстрее? Кто-нибудь когда-либо делал бенчмаркинг?

Могу ли я использовать их для передачи данных в рамках одного процесса (то есть между различными потоками)?

Спасибо!

+0

«Наверное, они разные, не так ли?» - Нет, разработчики, которые только что скучали в один прекрасный день, сказали: «Эй, давай снова напишем!» ;) –

ответ

18

Они совершенно разные. Boost MPI предназначен для параллельных/распределенных вычислений (например, массивно-параллельных суперкомпьютеров). Для этого требуется существующая установка MPI (Интерфейс передачи сообщений), такой как OpenMPI. MPI обычно используется с высокопроизводительными кластерами сетевых компьютеров или суперкомпьютеров. Библиотека Boost MPI в основном представляет собой прекрасную оболочку вокруг обычных вызовов функций MPI.

Boost.Interprocess, с другой стороны, является API для IPC (Interprocess Communications), то есть взаимодействует между двумя процессами на одном компьютере.

Если вы хотите обмениваться данными между процессами на одном компьютере, полезно использовать метод Boost.Interprocess. Но если, как вы полагаете, вы просто хотите обмениваться данными между темами, вам это не нужно. Вам просто нужен API потоковой обработки.

Смежные вопросы