Jump to content

Параллельный алгоритм

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

Многие параллельные алгоритмы выполняются одновременно – хотя, как правило, параллельные алгоритмы представляют собой отдельную концепцию – и поэтому эти концепции часто объединяются, причем какой аспект алгоритма является параллельным, а какой параллельным, четко не различается. Кроме того, непараллельные, непараллельные алгоритмы часто называют « последовательными алгоритмами », в отличие от параллельных алгоритмов.

Распараллеливаемость [ править ]

Алгоритмы значительно различаются по степени распараллеливаемости: от легко распараллеливаемых до полностью нераспараллеливаемых. Кроме того, данная задача может включать в себя различные алгоритмы, которые могут быть более или менее распараллеливаемыми.

Некоторые проблемы легко разделить таким образом на части — их называют досадно параллельными задачами. Примеры включают множество алгоритмов для решения кубиков Рубика и поиска значений, которые приводят к заданному хешу . [ нужна ссылка ]

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

Мотивация [ править ]

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

Проблемы [ править ]

Общение [ править ]

Стоимость или сложность последовательных алгоритмов оценивается с точки зрения занимаемого ими пространства (памяти) и времени (циклов процессора). Параллельным алгоритмам необходимо оптимизировать еще один ресурс — связь между разными процессорами. Существует два способа взаимодействия параллельных процессоров: общая память или передача сообщений.

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

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

Если накладные расходы на связь дополнительных процессоров перевешивают выгоду от добавления еще одного процессора, происходит параллельное замедление .

Балансировка нагрузки [ править ]

Другая проблема, связанная с параллельными алгоритмами, заключается в обеспечении достаточной балансировки нагрузки , гарантируя, что нагрузка (общая работа) сбалансирована, а не сбалансирован размер входных данных. Например, проверку всех чисел от единицы до ста тысяч на простоту легко разделить между процессорами; однако, если числа просто разделить поровну (1–1000, 1001–2000 и т. д.), объем работы будет несбалансированным, поскольку меньшие числа легче обрабатывать этим алгоритмом (проще проверить на простоту), и таким образом, некоторым процессорам будет выполняться больше работы, чем другим, которые будут простаивать до тех пор, пока загруженные процессоры не завершат работу.

Распределенные алгоритмы [ править ]

Подтип параллельных алгоритмов, распределенные алгоритмы , представляют собой алгоритмы, предназначенные для работы в кластерных вычислениях и средах распределенных вычислений , где необходимо решать дополнительные проблемы, выходящие за рамки «классических» параллельных алгоритмов.

См. также [ править ]

Ссылки [ править ]

  1. ^ Блеллок, Гай Э.; Мэггс, Брюс М. «Параллельные алгоритмы» (PDF) . США: Школа компьютерных наук Университета Карнеги-Меллона . Проверено 27 июля 2015 г.
  2. ^ Вишкин, Узи (2009). «Параллельное мышление: некоторые основные алгоритмы и методы параллельного анализа данных, 104 страницы» (PDF) . Конспекты курсов по параллельным алгоритмам, преподаваемых с 1992 года в Университете Мэриленда, Колледж-Парке, Тель-Авивском университете и Технионе.
  3. ^ Мегсон ГМ; Чэнь Сянь (4 января 1997 г.). Автоматическое распараллеливание для класса регулярных вычислений . Всемирная научная. ISBN  978-981-4498-41-8 .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 93f4fb8fa2ccb9a73565c05b9ed2c067__1712156100
URL1:https://arc.ask3.ru/arc/aa/93/67/93f4fb8fa2ccb9a73565c05b9ed2c067.html
Заголовок, (Title) документа по адресу, URL1:
Parallel algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)