Проект Templet

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

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

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


templet:описание_и_область_применения_шаблона

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
templet:описание_и_область_применения_шаблона [2013/10/27 09:37] – создано nazarovtemplet:описание_и_область_применения_шаблона [2013/10/29 21:37] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 =====Описание и область применения шаблона===== =====Описание и область применения шаблона=====
-Шаблон TaskBag является каркасом приложений которые обрабатывают множество независимых задач, которые могут добавляться при обработке этих задачРабота приложения со структурой TaskBag похожа на приложения со структурой Map, но усложняющим фактором является то, что изначально нельзя предсказать сколько заданий необходимо будет обработать+====Основные типовые решения в параллельном программировании==== 
-====Сравнение средств разработки параллельных приложений==== +  * Map 
-^ Название^ Метод^ Возможность отладки^ Платформы^ Независимы от компилятора^ Распределённое исполнение^ +  * MapReduce 
-Intel Composer XE 2013         | Управляемая автоматическая параллелизация| Последовательного| Windows/*nix| нет| нет+  * TaskBag 
-| OpenMP                         | Расширение языка                         | Последовательного| Windows/*nix| нетнет+  * Chain 
-| Microsoft Concurrency Runtime  | Библиотека шаблонов                      | Последовательного| Windows| нет| нет| +===Map=== 
-Intel Threading Building Blocks| Библиотека шаблонов                      | Последовательного| Windows/*nix| да| нет+Map является самой простой схемой вычислений и применяется, когда есть возможность разбить задачу на независимые потоки вычисленийНапример, сложение матриц, при котором каждый поток вычислений складывает определённый заранее набор строк, причём время выполнения заданий легко прогнозировать, что позволяет добиться небольшой разницы длительности выполнения заданий. Схема типового решения Map изображена на рисунке 
-| Message Passing Interface      | Обмен сообщениями. Синхронный запуск.    | Параллельного| Windows/*nix| нетда+ 
-| TempletSDK                     | Комбинированный                          | Последовательного и параллельного| Windows/*nix| да| да|+{{:templet:map.png|}} 
 +===MapReduce=== 
 +Применяется, когда необходимо согласовать результаты вычислений всех 
 +потоков, но на согласование требуется намного меньше времени, чем на сами 
 +вычисления. Схема типового решения MapReduce изображена на рисунке 
 + 
 +{{:templet:mapreduce.png|}} 
 +===TaskBag=== 
 +Парадигма параллельных вычислений «портфель задач», называемая также моделью тиражируемых рабочих (replicated workers) или моделью работ по найму (work farm). Принцип организации вычислений по данной схеме иллюстрирует рисунок 
 + 
 +{{:templet:taskbag.png|}} 
 +===Chain=== 
 +Многие задачи численного моделирования при распараллеливании приводят к структурам, в которых каждый из процессов обрабатывает некоторую локальную информацию и взаимодействует путем отправки сообщений с фиксированным числом соседей. Рассматривают несколько типов регулярных топологий (цепь, кольцо, сетка, тор, куб) и несколько типов алгоритмов работы процессов (систолический и конвейерный). Схема вычислений chain изображена на рисунке 
 + 
 +{{:templet:chain.png|}} 
 +====Область применения шаблона TaskBag ==== 
 +Шаблон TaskBag является каркасом приложений, которые обрабатывают множество независимых задач, которые могут добавляться при обработке этих задачРабота приложения со структурой TaskBag похожа на приложения со структурой Map, но усложняющим фактором является то, что изначально нельзя предсказать, сколько заданий необходимо будет обработать. 
 + 
 +Примеры задач с динамическим добавлением заданий
 +  * Адаптивное численное интегрирование 
 +  * Методы глобальной оптимизации 
 +  * Метод ветвей и границ 
 +  * Методы обхода графа в ширину
templet/описание_и_область_применения_шаблона.1382866655.txt.gz · Последнее изменение: 2013/10/27 09:37 (внешнее изменение)