templet:разработка_приложений_без_использования_шаблона
Разработка приложений без использования шаблона
Параллельное обработка данных может быть реализована множеством способов. В том числе и способом разделения/объединения данных внешним приложением, что является наиболее простым в реализации т.к. позволяет использовать, по сути, последовательные приложения. При разработке параллельных приложений может использоваться несколько подходов:
- автоматическое распараллеливание
- распараллеливание средствами языка
- распараллеливание с помошью библиотек
Сравнение средств разработки параллельных приложений
Название | Метод | Возможность отладки | Платформы | Независимы от компилятора | Распределённое исполнение |
---|---|---|---|---|---|
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. Таким образом для рассмотрения выбраны:
- параллельный запуск последовательного приложения
- приложение разработанное с использованием OpenMP
- приложение разработанное с использование MPI
templet/разработка_приложений_без_использования_шаблона.txt · Последнее изменение: 2013/10/28 19:52 — 127.0.0.1