Параллельный алгоритм
В информатике параллельный алгоритм, противопоставляемый традиционным последовательным алгоритмам, — алгоритм, который может быть реализован по частям на множестве различных вычислительных устройств с последующим объединением полученных результатов и получением корректного результата.
Некоторые алгоритмы достаточно просто поддаются разбиению на независимо выполняемые фрагменты. Например, распределение работы по проверке всех чисел от 1 до 100000 на предмет того, какие из них являются простыми, может быть выполнено путём назначения каждому доступному процессору некоторого подмножества чисел с последующим объединением полученных множеств простых чисел (похожим образом реализован, например, проект GIMPS).
С другой стороны, большинство известных алгоритмов вычисления значения числа пи () не допускают разбиения на параллельно выполняемые части, так как требуют результата предыдущей итерации выполнения алгоритма. Итеративные численные методы, такие как, например, метод Ньютона или задача трёх тел, также являются сугубо последовательными алгоритмами. Некоторые примеры рекурсивных алгоритмов достаточно сложно поддаются распараллеливанию. Одним из примеров является поиск в глубину на графах.
Параллельные алгоритмы весьма важны ввиду постоянного совершенствования многопроцессорных систем и увеличения числа ядер в современных процессорах. Обычно проще сконструировать компьютер с одним быстрым процессором, чем с множеством медленных процессоров (при условии достижения одинаковой производительности). Однако производительность процессоров увеличивается главным образом за счёт совершенствования техпроцесса (уменьшения норм производства), чему мешают физические ограничения на размер элементов микросхем и тепловыделение. Указанные ограничения могут быть преодолены путём перехода к многопроцессорной обработке, что оказывается эффективным даже для малых вычислительных систем.
Сложность последовательных алгоритмов выражается в объёме используемой памяти и времени (числе тактов процессора), необходимых для выполнения алгоритма. Параллельные алгоритмы требуют учёта использования ещё одного ресурса: подсистемы связей между различными процессорами. Существует два способа обмена между процессорами: использование общей памяти и системы передачи сообщений.
Системы с общей памятью требуют введения дополнительных блокировок для обрабатываемых данных, налагая определённые ограничения при использовании дополнительных процессоров.
Системы передачи сообщений используют понятия каналов и блоков сообщений, что создаёт дополнительный трафик на шине и требует дополнительных затрат памяти для организации очередей сообщений. В дизайне современных процессоров могут быть предусмотрены специальные коммутаторы (кроссбары) с целью уменьшения влияния обмена сообщениями на время выполнения задачи.
Ещё одной проблемой, связанной с использованием параллельных алгоритмов, является балансировка нагрузки. Например, поиск простых чисел в диапазоне от 1 до 100000 легко распределить между имеющимися процессорами, однако некоторые процессоры могут получить больший объём работы, в то время как другие закончат обработку раньше и будут простаивать. Проблемы балансировки нагрузки ещё больше усугубляется при использовании гетерогенных вычислительных сред, в которых вычислительные элементы существенно отличаются по производительности и доступности (например, в грид-системах).
Разновидность параллельных алгоритмов, называемая распределёнными алгоритмами, специально разрабатываются для применения на кластерах и в распределённых вычислительных системах с учётом ряда особенностей подобной обработки.
См. также
- Искусственная нейронная сеть
- Параллельные вычислительные системы
Ссылки
- Designing and Building Parallel Programs page at the US Argonne National Laboratories
web-архивы
- Parallel Algorithm Design
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Параллельный алгоритм, Что такое Параллельный алгоритм? Что означает Параллельный алгоритм?
V informatike parallelnyj algoritm protivopostavlyaemyj tradicionnym posledovatelnym algoritmam algoritm kotoryj mozhet byt realizovan po chastyam na mnozhestve razlichnyh vychislitelnyh ustrojstv s posleduyushim obedineniem poluchennyh rezultatov i polucheniem korrektnogo rezultata Nekotorye algoritmy dostatochno prosto poddayutsya razbieniyu na nezavisimo vypolnyaemye fragmenty Naprimer raspredelenie raboty po proverke vseh chisel ot 1 do 100000 na predmet togo kakie iz nih yavlyayutsya prostymi mozhet byt vypolneno putyom naznacheniya kazhdomu dostupnomu processoru nekotorogo podmnozhestva chisel s posleduyushim obedineniem poluchennyh mnozhestv prostyh chisel pohozhim obrazom realizovan naprimer proekt GIMPS S drugoj storony bolshinstvo izvestnyh algoritmov vychisleniya znacheniya chisla pi p displaystyle pi ne dopuskayut razbieniya na parallelno vypolnyaemye chasti tak kak trebuyut rezultata predydushej iteracii vypolneniya algoritma Iterativnye chislennye metody takie kak naprimer metod Nyutona ili zadacha tryoh tel takzhe yavlyayutsya sugubo posledovatelnymi algoritmami Nekotorye primery rekursivnyh algoritmov dostatochno slozhno poddayutsya rasparallelivaniyu Odnim iz primerov yavlyaetsya poisk v glubinu na grafah Parallelnye algoritmy vesma vazhny vvidu postoyannogo sovershenstvovaniya mnogoprocessornyh sistem i uvelicheniya chisla yader v sovremennyh processorah Obychno proshe skonstruirovat kompyuter s odnim bystrym processorom chem s mnozhestvom medlennyh processorov pri uslovii dostizheniya odinakovoj proizvoditelnosti Odnako proizvoditelnost processorov uvelichivaetsya glavnym obrazom za schyot sovershenstvovaniya tehprocessa umensheniya norm proizvodstva chemu meshayut fizicheskie ogranicheniya na razmer elementov mikroshem i teplovydelenie Ukazannye ogranicheniya mogut byt preodoleny putyom perehoda k mnogoprocessornoj obrabotke chto okazyvaetsya effektivnym dazhe dlya malyh vychislitelnyh sistem Slozhnost posledovatelnyh algoritmov vyrazhaetsya v obyome ispolzuemoj pamyati i vremeni chisle taktov processora neobhodimyh dlya vypolneniya algoritma Parallelnye algoritmy trebuyut uchyota ispolzovaniya eshyo odnogo resursa podsistemy svyazej mezhdu razlichnymi processorami Sushestvuet dva sposoba obmena mezhdu processorami ispolzovanie obshej pamyati i sistemy peredachi soobshenij Sistemy s obshej pamyatyu trebuyut vvedeniya dopolnitelnyh blokirovok dlya obrabatyvaemyh dannyh nalagaya opredelyonnye ogranicheniya pri ispolzovanii dopolnitelnyh processorov Sistemy peredachi soobshenij ispolzuyut ponyatiya kanalov i blokov soobshenij chto sozdayot dopolnitelnyj trafik na shine i trebuet dopolnitelnyh zatrat pamyati dlya organizacii ocheredej soobshenij V dizajne sovremennyh processorov mogut byt predusmotreny specialnye kommutatory krossbary s celyu umensheniya vliyaniya obmena soobsheniyami na vremya vypolneniya zadachi Eshyo odnoj problemoj svyazannoj s ispolzovaniem parallelnyh algoritmov yavlyaetsya balansirovka nagruzki Naprimer poisk prostyh chisel v diapazone ot 1 do 100000 legko raspredelit mezhdu imeyushimisya processorami odnako nekotorye processory mogut poluchit bolshij obyom raboty v to vremya kak drugie zakonchat obrabotku ranshe i budut prostaivat Problemy balansirovki nagruzki eshyo bolshe usugublyaetsya pri ispolzovanii geterogennyh vychislitelnyh sred v kotoryh vychislitelnye elementy sushestvenno otlichayutsya po proizvoditelnosti i dostupnosti naprimer v grid sistemah Raznovidnost parallelnyh algoritmov nazyvaemaya raspredelyonnymi algoritmami specialno razrabatyvayutsya dlya primeneniya na klasterah i v raspredelyonnyh vychislitelnyh sistemah s uchyotom ryada osobennostej podobnoj obrabotki Sm takzheIskusstvennaya nejronnaya set Parallelnye vychislitelnye sistemySsylkiDesigning and Building Parallel Programs page at the US Argonne National Laboratories web arhivy Parallel Algorithm Design
