Проект Templet

акторный фреймворк для запуска задач
на множестве ядер, кластерах и в облаках
templet.ssau.ru

Инструменты пользователя

Инструменты сайта


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