Карта (параллельный узор) - Map (parallel pattern) - Wikipedia

карта является идиома в параллельные вычисления где простая операция применяется ко всем элементам последовательности, потенциально параллельно.[1] Он используется для решения смущающе параллельный проблемы: те проблемы, которые можно разложить на независимые подзадачи, не требующие связи / синхронизации между подзадачами, кроме присоединиться или же барьер в конце.

При применении шаблона карты формулируется элементарная функция который фиксирует операцию, которая должна быть выполнена над элементом данных, который представляет часть проблемы, а затем применяет эту элементарную функцию в одном или нескольких потоки исполнения, гиперпотоки, Полосы SIMD или на несколько компьютеров.

Некоторые системы параллельного программирования, такие как OpenMP и Силк, имеют языковую поддержку шаблона карты в виде параллельный цикл for;[2] языки, такие как OpenCL и CUDA поддерживать элементарные функции (как "ядра ") на уровне языка. Шаблон карты обычно сочетается с другими шаблонами параллельного проектирования. Например, карта в сочетании с сокращением категорий дает Уменьшение карты шаблон.[3]:106–107

Смотрите также

Рекомендации

  1. ^ Самади, Мехрзад; Джамшиди, Давуд Ануш; Ли, Джангхенг; Мальке, Скотт (2014). Paraprox: аппроксимация на основе шаблонов для приложений с параллельными данными (PDF). Proc. 19-я Международная конф. по архитектурной поддержке языков программирования и операционных систем. Дои:10.1145/2541940.2541948.
  2. ^ Вулф, Майкл (6 апреля 2015 г.). «Компиляторы и многое другое: прошлое, настоящее и будущее параллельных циклов». HPCwire.
  3. ^ Майкл МакКул; Джеймс Рейндерс; Арка Робисон (2013). Структурированное параллельное программирование: шаблоны для эффективных вычислений. Эльзевир. ISBN  978-0124159938.