Парале́льний алгори́тм в інформатиці (також конкурентний алгоритм), на відміну від традиційного послідовного, це алгоритм, який одночасно може виконуватися на багатьох обчислювальних приладах, з наступним об'єднанням отриманих результатів для отримання вірного загального результату.
Деякі алгоритми легко піддаються розбиттю на подібні частини. Наприклад, розбиття роботи з перевірки всіх чисел від одного до ста тисяч на простоту може бути зроблено шляхом призначення кожному доступному процесору певної підмножини чисел, з наступним об'єднанням отриманих результатів в один список (схожим чином реалізовано, наприклад, проект GIMPS).
З іншого боку, більшість відомих алгоритмів обчислення значення числа пі не дозволяє розбиття на частини, що виконуються окремо, через те, що для кожної ітерації алгоритму потрібен результат попередньої. Ітеративні чисельні методи, такі як метод Ньютона або задача трьох тіл, також є алгоритмами, яким властива послідовність. Деякі приклади рекурсивних алгоритмів досить складно піддаються одночасному виконанню. Одним з таких прикладів є пошук в глибину на графах.
Паралельні алгоритми досить важливі з огляду на постійне вдосконалення багатопроцесорних систем і збільшення числа ядер у сучасних процесорах. Зазвичай простіше сконструювати комп'ютер з одним швидким процесором, ніж з багатьма повільними з тією ж продуктивністю. Однак збільшення продуктивності за рахунок вдосконалення одного процесора натрапляє на фізичні обмеження, такі як досягнення максимальної щільності елементів та тепловиділення. Зазначені обмеження можна подолати лише шляхом переходу до багатопроцесорної архітектури, що виявляється ефективним навіть у малих обчислювальних системах.
Складність послідовних алгоритмів виявляється в обсязі використаної пам'яті та часу (число тактів процесора), необхідних для виконання алгоритму. Паралельні алгоритми вимагають використання ще одного ресурсу: підсистеми зв'язків між різними процесорами. Існує два способи обміну даними між процесорами: використання спільної пам'яті та система передачі повідомлень.
Системи зі спільною пам'яттю вимагають введення додаткових блокувань для даних, що обробляються, і накладають певні обмеження під час використання додаткових процесорів.
Системи передачі повідомлень використовують поняття каналів і блоків повідомлень, що створює додатковий трафік на шині та вимагає додаткових витрат пам'яті для організації черги повідомлень. У проектуванні сучасних процесорів використовують особливі шини схожі на поперечини , що робить витрати на зв'язок малими і надає змогу програмісту самому вирішувати наскільки великий обмін даними у паралельному алгоритмі потрібен.
Ще однією проблемою використання паралельних алгоритмів є балансування навантаження. Наприклад, пошук простих чисел в діапазоні від одного до мільйона легко розподілити між наявними процесорами, однак деякі з них можуть отримати менший обсяг роботи і будуть простоювати. Балансування навантаження становить проблему, яка може бути предметом окремих досліджень. У гетерогенних обчислювальних середовищах, де обчислювальні елементи істотно відрізняються за продуктивністю і доступністю (наприклад, у грід-системах) вона набуває особливої важливості.
Різновид паралельних алгоритмів під назвою розподілені алгоритми окремо розроблявся з метою застосування на кластерах і в середовищах розподілених обчислень з урахуванням властивостей подібної обробки.
Примітки
- Тютюнник Марія (25 травня 2010). Паралельні алгоритми та засоби для розв’язання деяких задач масових обчислень (PDF). Архів (PDF) оригіналу за 8 липня 2013. Процитовано 25 вересня 2010.
Посилання
- Designing and Building Parallel Programs page at the US Argonne National Laboratories
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Parale lnij algori tm v informatici takozh konkurentnij algoritm na vidminu vid tradicijnogo poslidovnogo ce algoritm yakij odnochasno mozhe vikonuvatisya na bagatoh obchislyuvalnih priladah z nastupnim ob yednannyam otrimanih rezultativ dlya otrimannya virnogo zagalnogo rezultatu Deyaki algoritmi legko piddayutsya rozbittyu na podibni chastini Napriklad rozbittya roboti z perevirki vsih chisel vid odnogo do sta tisyach na prostotu mozhe buti zrobleno shlyahom priznachennya kozhnomu dostupnomu procesoru pevnoyi pidmnozhini chisel z nastupnim ob yednannyam otrimanih rezultativ v odin spisok shozhim chinom realizovano napriklad proekt GIMPS Z inshogo boku bilshist vidomih algoritmiv obchislennya znachennya chisla pi p displaystyle left pi right ne dozvolyaye rozbittya na chastini sho vikonuyutsya okremo cherez te sho dlya kozhnoyi iteraciyi algoritmu potriben rezultat poperednoyi Iterativni chiselni metodi taki yak metod Nyutona abo zadacha troh til takozh ye algoritmami yakim vlastiva poslidovnist Deyaki prikladi rekursivnih algoritmiv dosit skladno piddayutsya odnochasnomu vikonannyu Odnim z takih prikladiv ye poshuk v glibinu na grafah Paralelni algoritmi dosit vazhlivi z oglyadu na postijne vdoskonalennya bagatoprocesornih sistem i zbilshennya chisla yader u suchasnih procesorah Zazvichaj prostishe skonstruyuvati komp yuter z odnim shvidkim procesorom nizh z bagatma povilnimi z tiyeyu zh produktivnistyu Odnak zbilshennya produktivnosti za rahunok vdoskonalennya odnogo procesora natraplyaye na fizichni obmezhennya taki yak dosyagnennya maksimalnoyi shilnosti elementiv ta teplovidilennya Zaznacheni obmezhennya mozhna podolati lishe shlyahom perehodu do bagatoprocesornoyi arhitekturi sho viyavlyayetsya efektivnim navit u malih obchislyuvalnih sistemah Skladnist poslidovnih algoritmiv viyavlyayetsya v obsyazi vikoristanoyi pam yati ta chasu chislo taktiv procesora neobhidnih dlya vikonannya algoritmu Paralelni algoritmi vimagayut vikoristannya she odnogo resursu pidsistemi zv yazkiv mizh riznimi procesorami Isnuye dva sposobi obminu danimi mizh procesorami vikoristannya spilnoyi pam yati ta sistema peredachi povidomlen Sistemi zi spilnoyu pam yattyu vimagayut vvedennya dodatkovih blokuvan dlya danih sho obroblyayutsya i nakladayut pevni obmezhennya pid chas vikoristannya dodatkovih procesoriv Sistemi peredachi povidomlen vikoristovuyut ponyattya kanaliv i blokiv povidomlen sho stvoryuye dodatkovij trafik na shini ta vimagaye dodatkovih vitrat pam yati dlya organizaciyi chergi povidomlen U proektuvanni suchasnih procesoriv vikoristovuyut osoblivi shini shozhi na poperechini sho robit vitrati na zv yazok malimi i nadaye zmogu programistu samomu virishuvati naskilki velikij obmin danimi u paralelnomu algoritmi potriben She odniyeyu problemoyu vikoristannya paralelnih algoritmiv ye balansuvannya navantazhennya Napriklad poshuk prostih chisel v diapazoni vid odnogo do miljona legko rozpodiliti mizh nayavnimi procesorami odnak deyaki z nih mozhut otrimati menshij obsyag roboti i budut prostoyuvati Balansuvannya navantazhennya stanovit problemu yaka mozhe buti predmetom okremih doslidzhen U geterogennih obchislyuvalnih seredovishah de obchislyuvalni elementi istotno vidriznyayutsya za produktivnistyu i dostupnistyu napriklad u grid sistemah vona nabuvaye osoblivoyi vazhlivosti Riznovid paralelnih algoritmiv pid nazvoyu rozpodileni algoritmi okremo rozroblyavsya z metoyu zastosuvannya na klasterah i v seredovishah rozpodilenih obchislen z urahuvannyam vlastivostej podibnoyi obrobki PrimitkiTyutyunnik Mariya 25 travnya 2010 Paralelni algoritmi ta zasobi dlya rozv yazannya deyakih zadach masovih obchislen PDF Arhiv PDF originalu za 8 lipnya 2013 Procitovano 25 veresnya 2010 PosilannyaDesigning and Building Parallel Programs page at the US Argonne National Laboratories