Параллельное обработка данных может быть реализована множеством способов. В том числе и способом разделения/объединения данных внешним приложением, что является наиболее простым в реализации т.к. позволяет использовать, по сути, последовательные приложения. При разработке параллельных приложений может использоваться несколько подходов:
| Название | Метод | Возможность отладки | Платформы | Независимы от компилятора | Распределённое исполнение | 
|---|---|---|---|---|---|
| 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. Таким образом для рассмотрения выбраны: