Параллельное обработка данных может быть реализована множеством способов. В том числе и способом разделения/объединения данных внешним приложением, что является наиболее простым в реализации т.к. позволяет использовать, по сути, последовательные приложения. При разработке параллельных приложений может использоваться несколько подходов:
Название | Метод | Возможность отладки | Платформы | Независимы от компилятора | Распределённое исполнение |
---|---|---|---|---|---|
Intel Composer XE 2013 | Управляемая автоматическая параллелизация | Последовательного | Windows/*nix | нет | нет |
OpenMP | Расширение языка | Последовательного | Windows/*nix | нет | нет |
Microsoft Concurrency Runtime | Библиотека шаблонов | Последовательного | Windows | нет | нет |
Intel Threading Building Blocks | Библиотека шаблонов | Последовательного | Windows/*nix | да | нет |
Message Passing Interface | Обмен сообщениями. Синхронный запуск. | Параллельного | Windows/*nix | нет | да |
TempletSDK | Комбинированный | Последовательного и параллельного | Windows/*nix | да | да |
Но у всех вышеперечисленных подходов имеются свою недостатки.
Наиболее распространёнными инструментами являются OpenMP и MPI. Таким образом для рассмотрения выбраны: