Ну, вы на самом деле не указали, какое именно оборудование вы нацеливаете, если это машина с общей памятью, тогда OpenMP - это вариант. Большинство параллельных программистов считают параллелизацию с OpenMP более простым вариантом, чем использование MPI в любом из его воплощений. Я бы также предположил, что проще модифицировать OpenMP к существующему коду, чем MPI. Лучшие, в смысле самых эффективных, программы MPI - это программы, разработанные с нуля для параллелизации с передачей сообщений.
Кроме того, лучший последовательный алгоритм не всегда может быть наиболее эффективным алгоритмом, если он был распараллелен. Иногда лучший, но последовательно неоптимальный алгоритм - лучший выбор.
Возможно, у вас есть доступ к компьютеру с общей памятью:
- все многоядерные процессоры являются компьютерами с общей памятью;
- во многих кластерах узлы часто имеют мощность в два или четыре процессора, если у каждого по 4 ядра, то в вашем кластере может быть 16-ядерный компьютер с общей памятью;
- если у вас есть доступ к суперкомпьютеру MPP, вы, вероятно, обнаружите, что каждый из его узлов является компьютером с общей памятью.
Если вы застряли с передачей сообщений, тогда я настоятельно рекомендую вам придерживаться C ++ и OpenMPI (или любого другого MPI, уже установленного в вашей системе), и вам обязательно следует взглянуть и на BoostMPI. Я настоятельно рекомендую это, потому что, выйдя за пределы основного потока высокопроизводительных научных вычислений, вы можете оказаться в целой армии программистов с уникальной коллекцией библиотек, подходящих только для исследований, и других инструментов. C ++, OpenMPI и Boost достаточно хорошо используются, так что вы можете рассматривать их как «оружейные» или как вы предпочитаете. В SO недостаточно трафика, например, в MPI и OpenMP, проверьте статистику по другим технологиям, прежде чем ставить на них ферму.
Если у вас нет опыта работы с MPI, то вы можете посмотреть книгу под названием Параллельные научные вычисления в C ++ и MPI , написанную Карниадакисом и Кирби. Использование MPI от Gropp и др. в порядке справки, но это не новичок в программировании для передачи сообщений.