stringtranslate.com

Позорно параллельно

В параллельных вычислениях неловко параллельная рабочая нагрузка или проблема (также называемая неловко параллелизуемой , идеально параллельной , восхитительно параллельной или приятно параллельной ) — это та, где требуется мало или совсем не требуется усилий для разделения проблемы на ряд параллельных задач. [1] Это связано с минимальной или отсутствующей зависимостью от связи между параллельными задачами или для результатов между ними. [2]

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

Типичным примером ошеломляюще параллельной задачи является рендеринг 3D-видео, выполняемый графическим процессором , где каждый кадр (прямой метод) или пиксель ( метод трассировки лучей ) может обрабатываться без какой-либо взаимозависимости. [3] Некоторые формы взлома паролей — это еще одна ошеломляюще параллельная задача, которая легко распределяется по центральным процессорам , ядрам ЦП или кластерам.

Этимология

«Смущающе» здесь используется для обозначения проблем распараллеливания, которые «смущающе просты». [4] Термин может подразумевать смущение со стороны разработчиков или компиляторов: «Поскольку так много важных проблем остаются нерешенными, в основном из-за их внутренней вычислительной сложности, было бы неловко не разработать параллельные реализации методов продолжения полиномиальной гомотопии ». [5] Термин впервые встречается в литературе в книге 1986 года о мультипроцессорах, написанной создателем MATLAB Кливом Молером , [6] который утверждает, что изобрел этот термин. [7]

Альтернативный термин «приятно параллельный » получил некоторое распространение, возможно, для того, чтобы избежать негативных коннотаций смущения в пользу позитивного отражения параллелизуемости задач: «Конечно, в этих программах нет ничего смущающего». [8]

Примеры

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

Вот несколько примеров неловко параллельных проблем:

Реализации

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

Ссылки

  1. ^ Херлихи, Морис; Шавит, Нир (2012). Искусство многопроцессорного программирования, пересмотренное переиздание (пересмотренное издание). Elsevier. стр. 14. ISBN 9780123977953. Получено 28 февраля 2016 г. . Некоторые вычислительные задачи «невероятно параллельны»: их можно легко разделить на компоненты, которые могут выполняться одновременно.
  2. ^ Раздел 1.4.4 из: Фостер, Ян (1995). Проектирование и построение параллельных программ. Эддисон–Уэсли. ISBN 9780201575941. Архивировано из оригинала 2011-03-01.
  3. ^ Алан Чалмерс; Эрик Рейнхард; Тим Дэвис (21 марта 2011 г.). Практический параллельный рендеринг. CRC Press. ISBN 978-1-4398-6380-0.
  4. ^ Мэтлофф, Норман (2011). Искусство программирования на R: Экскурсия по статистическому проектированию программного обеспечения , стр. 347. Никакого крахмала. ISBN 9781593274108
  5. ^ Лейкин, Антон; Вершельде, Ян; Чжуан, Ян (2006). "Параллельные гомотопические алгоритмы для решения полиномиальных систем". Математическое программное обеспечение - ICMS 2006. Конспект лекций по информатике. Том 4151. С. 225–234. doi :10.1007/11832225_22. ISBN 978-3-540-38084-9.
  6. ^ Moler, Cleve (1986). "Матричные вычисления на мультипроцессорах с распределенной памятью". В Heath, Michael T. (ред.). Гиперкубические мультипроцессоры . Общество промышленной и прикладной математики, Филадельфия. ISBN 978-0898712094.
  7. ^ Гиперкуб Intel, часть 2, опубликовано в блоге Cleve's Corner на сайте MathWorks
  8. ^ Кепнер, Джереми (2009). Параллельный MATLAB для многоядерных и многоузловых компьютеров , стр. 12. SIAM. ISBN 9780898716733
  9. ^ Erricos John Kontoghiorghes (21 декабря 2005 г.). Справочник по параллельным вычислениям и статистике. CRC Press. ISBN 978-1-4200-2868-3.
  10. ^ Юэфан Дэн (2013). Прикладные параллельные вычисления. World Scientific. ISBN 978-981-4307-60-4.
  11. ^ Йозефссон, Саймон; Персиваль, Колин (август 2016 г.). «Функция вывода ключа на основе пароля scrypt». tools.ietf.org . doi :10.17487/RFC7914 . Получено 12 декабря 2016 г. .
  12. ^ Mathog, DR (22 сентября 2003 г.). «Параллельный BLAST в разделенных базах данных». Биоинформатика . 19 (14): 1865–6. doi : 10.1093/bioinformatics/btg250 . PMID  14512366.
  13. ^ Как мы сделали наш распознаватель лиц в 25 раз быстрее (запись в блоге разработчика)
  14. ^ Сигэёси Цуцуи; Пьер Колле (5 декабря 2013 г.). Массово-параллельные эволюционные вычисления на GPGPU. Springer Science & Business Media. ISBN 978-3-642-37959-8.
  15. ^ Юсеф Хамади; Лахдар Саис (5 апреля 2018 г.). Справочник по параллельным рассуждениям с ограничениями. Springer. ISBN 978-3-319-63516-3.
  16. ^ Пакет Simple Network of Workstations (SNOW)

Внешние ссылки