У цій статті відсутній , що має містити найважливіших аспектів статті. (грудень 2020) |
Ця стаття не містить . (грудень 2020) |
Ця стаття містить правописні, лексичні, граматичні, стилістичні або інші мовні помилки, які треба виправити. |
Моделі паралельних обчислень
Паралельне програмування пов'язане з додатковими труднощами – необхідно явно керувати роботою тисяч процесорів, координувати мільйони міжпроцесорних взаємодій. Для того щоб вирішити задачу на паралельному комп’ютері необхідно розподілити обчислення між процесорами системи так, щоб кожен процесор розв'язував частини задачі. Крім того, бажано, щоб як найменший обсяг даних передавався між процесорами, оскільки комунікації значно повільніші, ніж обчислення. Часто виникають конфлікти між ступенем розпаралелювання і обсягом комунікацій, тобто – чим більше процесорів використовуються для обчислення розпаралеленої задачі, тим більший обсяг даних необхідно передавати між ними. Середовище паралельного програмування має надавати адекватне керування розпаралелюванням і комунікаціями даних. Через складність паралельних комп’ютерів і їх значну відмінність від традиційних однопроцесорних комп’ютерів – не можна просто скористатись традиційними мовами програмування і очікувати високої продуктивності.
Методи паралельного програмування
Процес\канал
В цій моделі програми складаються з одного та більше процесів, розподілених по процесорах. Процеси виконуються одночасно, їх кількість може змінюватись протягом часу виконання програми. Процеси обмінюються даними через канали, які представляють собою одно направлені комунікаційні лінії, які з’єднують тільки два процеси. Канали можна створювати та видаляти. Модель процес\канал характеризується наступними властивостями: 1.Паралельне обчислення складається з одного та більше одночасно виконуваних процесів, число яких може змінюватись під час виконування програми 2.Процес – це послідовна програма з локальними даними. Процес має вхідні та вихідні порти, які служать інтерфейсом до середовища процесу. 3.В додаток до звичайних операцій процес може виконувати наступні дії: Надіслати повідомлення через вихідний порт, отримати повідомлення з вхідного порту, створити новий процес та завершити процес. 4.Операція відправлення асинхронна – вона завершується відразу, не очікуючи того, коли данні будуть отримані. Операція отримання синхронна – вона блокує процес до моменту отримання повідомлення. 5.Пари з вхідного та вихідного портів з’єднуються чергами повідомлень, які називаються каналами. Канали можна створювати та видаляти. Посилання на канали можна включати в повідомлення, так що зв’язність може змінюватись динамічно. 6.Процеси можна розподілю вати по фізичним процесорам різними способами, при чому відображення (розподілення) не впливає на семантику програми.
Поняття процесу дозволяє говорити про місцезнаходження даних : дані, які зберігаються в локальній пам’яті процесу – розміщуються «близько», інші дані «віддалені». Поняття каналу забезпечує механізм для вказування того, зо для того, щоб продовжити обчислення одному процесу необхідні дані іншого процесу (залежність по даним).
Обмін повідомленнями (Massage Passing)
В цій моделі програми, написані на традиційній послідовній мові виконуються процесорами комп’ютера. Кожна програма має доступ до пам’яті виконуючого процесора. Програми обмінюються між собою даними, використовуючи підпрограми прийома\передачі даних деякої комунікаційної системи. Програми, які використовують обмін повідомленнями можуть виконуватись тільки на MIMD комп’ютерах. На сьогоднішній день модель обмін повідомленнями є найбільш широко використовуваною моделлю паралельного програмування. Програми цієї моделі подібно програмам моделі процес\канал, створюють множину процесів, з кожним з котрих асоційовані локальні дані. Кожен процес ідентифікуються унікальним іменем. Процеси взаємодіють, посилаючи та отримуючи повідомлення. З цієї точки зору модель «обмін повідомленнями» є різновидом моделі «процес\канал» і відрізняється лише механізмом, який використовується при передачі даних. Наприклад, замість відправки повідомлення в канал «channel 2» можна відправити повідомлення процесу «process 3». Модель «обмін повідомленнями» не накладає обмежень ні на динамічне створення процесів, ні на виконування декількох процесів одним процесором, ні на використання різних програм для різних процесів. Просто, формальний опис систем «обміну повідомленнями» не розглядає питань, які пов’язані з маніпулюванням процесами, однак при реалізації таких систем доводиться приймати якісь рішення в цьому відношенні. На практиці склалось так, що більшість систем «обміну повідомленнями» при запуску паралельної програми створює фіксоване число ідентичних процесів і не дозволяє створювати і знищувати процеси протягом роботи програми. В таких системах кожен процес виконує одну і ту саму програму(параметризовану відносно ідентифікатора процесу або процесора), але працює з різними даними, тому о таких системах кажуть, що вони реалізують SPMD(single program multiple data – одна програма багато даних) модель програмування. SPMD модель достатньо зручна для широкого діапазону додатків паралельного програмування, але вона ускладнює розробку деяких типів паралельних алгоритмів.
Паралелізм даних( Data Parallel)
В цій моделі єдина програма задає розподілення даних між усіма процесорами комп’ютера і операції над ними. Розподілюваними даними зазвичай є масиви. Як правило, мови програмування, які підтримують дану модель допускають операції над масивами, дозволяють використовувати в виразах цілі масиви або окремі їх частинки. Розпаралелювання операцій над масивами, циклів обробки масивів дозволяє збільшити продуктивність програми. Компілятор відповідає за генерації коду, який розподіляє елементи масивів і обчислень між процесорами. Кожен процесор відповідає за ту підмножину елементів масиву, яка знаходиться в його локальній пам’яті. Програми з паралелізмом даних можуть бути трансльовані і виконуватись як на MIMD, так і на SIMD комп’ютерах. Модель паралелізм даних також часто використовується. Назва моделі походить від того, що вона експлуатує паралелізм, який полягає в використанні однієї операції до багатьох елементів структур даних. Програма з паралелізмом даних складається з послідовностей подібних операцій. Оскільки операції над кожним елементом даних можна розглядати як незалежні процеси, то ступінь деталізації таких обчислень дуже велика, а поняття «локальності» відсутнє. Тому компілятори мов з паралелізмом даних часто вимагають, щоб програміст надавав інформацію відносно того, як дані повинні бути розподілені між процесорами, іншими словами, як програма має бути розбита на процеси. Компілятор транслює програму з паралелізмом даних в SPMD програму, генеруючи комунікаційний код автоматично.
Загальна пам'ять (Shared Memory)
В цій моделі всі процеси сумісно використовують загальний адресний простір. Процеси асинхронно звертаються до загальної пам’яті з запитами на читанні та з запитами на запис, що створює проблеми при виборі моменту, коли можна помістити дані в пам'ять, коли можна буде видалити їх. Для керування доступом до загальної пам’яті використовуються стандартні механізми синхронізації – семафори і блокування процесів. В моделі програмування з загальною пам’яттю, всі процеси сумісно використовують загальний адресний простір, до якого вони асинхронно звертаються з запитами на читання та запис. В таких моделях для керування доступом до загальної пам’яті використовуються різні механізми синхронізації типу семафорів та блокування процесів. Переваги цієї моделі з точки зору програмування полягає в тому, що поняття власності даних (монопольного володіння даними) відсутнє, тому не потрібно явно задавати обмін даними між виробниками даних та їх користувачами. Ця модель з однієї сторони спрощує розробку програми, але з іншої – ускладнює розуміння і керування локальністю даних, написання детермінованих програм. В загальному ця модель використовується при програмуванні для архітектур з загальнодоступною пам’яттю.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U cij statti vidsutnij vstupnij rozdil sho maye mistiti viznachennya predmeta i stislij oglyad najvazhlivishih aspektiv statti Vi mozhete dopomogti proyektu napisavshi preambulu gruden 2020 Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno gruden 2020 Cya stattya mistit pravopisni leksichni gramatichni stilistichni abo inshi movni pomilki yaki treba vipraviti Vi mozhete dopomogti vdoskonaliti cyu stattyu pogodivshi yiyi iz chinnimi movnimi standartami Modeli paralelnih obchislenParalelne programuvannya pov yazane z dodatkovimi trudnoshami neobhidno yavno keruvati robotoyu tisyach procesoriv koordinuvati miljoni mizhprocesornih vzayemodij Dlya togo shob virishiti zadachu na paralelnomu komp yuteri neobhidno rozpodiliti obchislennya mizh procesorami sistemi tak shob kozhen procesor rozv yazuvav chastini zadachi Krim togo bazhano shob yak najmenshij obsyag danih peredavavsya mizh procesorami oskilki komunikaciyi znachno povilnishi nizh obchislennya Chasto vinikayut konflikti mizh stupenem rozparalelyuvannya i obsyagom komunikacij tobto chim bilshe procesoriv vikoristovuyutsya dlya obchislennya rozparalelenoyi zadachi tim bilshij obsyag danih neobhidno peredavati mizh nimi Seredovishe paralelnogo programuvannya maye nadavati adekvatne keruvannya rozparalelyuvannyam i komunikaciyami danih Cherez skladnist paralelnih komp yuteriv i yih znachnu vidminnist vid tradicijnih odnoprocesornih komp yuteriv ne mozhna prosto skoristatis tradicijnimi movami programuvannya i ochikuvati visokoyi produktivnosti Metodi paralelnogo programuvannyaProces kanal V cij modeli programi skladayutsya z odnogo ta bilshe procesiv rozpodilenih po procesorah Procesi vikonuyutsya odnochasno yih kilkist mozhe zminyuvatis protyagom chasu vikonannya programi Procesi obminyuyutsya danimi cherez kanali yaki predstavlyayut soboyu odno napravleni komunikacijni liniyi yaki z yednuyut tilki dva procesi Kanali mozhna stvoryuvati ta vidalyati Model proces kanal harakterizuyetsya nastupnimi vlastivostyami 1 Paralelne obchislennya skladayetsya z odnogo ta bilshe odnochasno vikonuvanih procesiv chislo yakih mozhe zminyuvatis pid chas vikonuvannya programi 2 Proces ce poslidovna programa z lokalnimi danimi Proces maye vhidni ta vihidni porti yaki sluzhat interfejsom do seredovisha procesu 3 V dodatok do zvichajnih operacij proces mozhe vikonuvati nastupni diyi Nadislati povidomlennya cherez vihidnij port otrimati povidomlennya z vhidnogo portu stvoriti novij proces ta zavershiti proces 4 Operaciya vidpravlennya asinhronna vona zavershuyetsya vidrazu ne ochikuyuchi togo koli danni budut otrimani Operaciya otrimannya sinhronna vona blokuye proces do momentu otrimannya povidomlennya 5 Pari z vhidnogo ta vihidnogo portiv z yednuyutsya chergami povidomlen yaki nazivayutsya kanalami Kanali mozhna stvoryuvati ta vidalyati Posilannya na kanali mozhna vklyuchati v povidomlennya tak sho zv yaznist mozhe zminyuvatis dinamichno 6 Procesi mozhna rozpodilyu vati po fizichnim procesoram riznimi sposobami pri chomu vidobrazhennya rozpodilennya ne vplivaye na semantiku programi Ponyattya procesu dozvolyaye govoriti pro misceznahodzhennya danih dani yaki zberigayutsya v lokalnij pam yati procesu rozmishuyutsya blizko inshi dani viddaleni Ponyattya kanalu zabezpechuye mehanizm dlya vkazuvannya togo zo dlya togo shob prodovzhiti obchislennya odnomu procesu neobhidni dani inshogo procesu zalezhnist po danim Obmin povidomlennyami Massage Passing V cij modeli programi napisani na tradicijnij poslidovnij movi vikonuyutsya procesorami komp yutera Kozhna programa maye dostup do pam yati vikonuyuchogo procesora Programi obminyuyutsya mizh soboyu danimi vikoristovuyuchi pidprogrami prijoma peredachi danih deyakoyi komunikacijnoyi sistemi Programi yaki vikoristovuyut obmin povidomlennyami mozhut vikonuvatis tilki na MIMD komp yuterah Na sogodnishnij den model obmin povidomlennyami ye najbilsh shiroko vikoristovuvanoyu modellyu paralelnogo programuvannya Programi ciyeyi modeli podibno programam modeli proces kanal stvoryuyut mnozhinu procesiv z kozhnim z kotrih asocijovani lokalni dani Kozhen proces identifikuyutsya unikalnim imenem Procesi vzayemodiyut posilayuchi ta otrimuyuchi povidomlennya Z ciyeyi tochki zoru model obmin povidomlennyami ye riznovidom modeli proces kanal i vidriznyayetsya lishe mehanizmom yakij vikoristovuyetsya pri peredachi danih Napriklad zamist vidpravki povidomlennya v kanal channel 2 mozhna vidpraviti povidomlennya procesu process 3 Model obmin povidomlennyami ne nakladaye obmezhen ni na dinamichne stvorennya procesiv ni na vikonuvannya dekilkoh procesiv odnim procesorom ni na vikoristannya riznih program dlya riznih procesiv Prosto formalnij opis sistem obminu povidomlennyami ne rozglyadaye pitan yaki pov yazani z manipulyuvannyam procesami odnak pri realizaciyi takih sistem dovoditsya prijmati yakis rishennya v comu vidnoshenni Na praktici sklalos tak sho bilshist sistem obminu povidomlennyami pri zapusku paralelnoyi programi stvoryuye fiksovane chislo identichnih procesiv i ne dozvolyaye stvoryuvati i znishuvati procesi protyagom roboti programi V takih sistemah kozhen proces vikonuye odnu i tu samu programu parametrizovanu vidnosno identifikatora procesu abo procesora ale pracyuye z riznimi danimi tomu o takih sistemah kazhut sho voni realizuyut SPMD single program multiple data odna programa bagato danih model programuvannya SPMD model dostatno zruchna dlya shirokogo diapazonu dodatkiv paralelnogo programuvannya ale vona uskladnyuye rozrobku deyakih tipiv paralelnih algoritmiv Paralelizm danih Data Parallel V cij modeli yedina programa zadaye rozpodilennya danih mizh usima procesorami komp yutera i operaciyi nad nimi Rozpodilyuvanimi danimi zazvichaj ye masivi Yak pravilo movi programuvannya yaki pidtrimuyut danu model dopuskayut operaciyi nad masivami dozvolyayut vikoristovuvati v virazah cili masivi abo okremi yih chastinki Rozparalelyuvannya operacij nad masivami cikliv obrobki masiviv dozvolyaye zbilshiti produktivnist programi Kompilyator vidpovidaye za generaciyi kodu yakij rozpodilyaye elementi masiviv i obchislen mizh procesorami Kozhen procesor vidpovidaye za tu pidmnozhinu elementiv masivu yaka znahoditsya v jogo lokalnij pam yati Programi z paralelizmom danih mozhut buti translovani i vikonuvatis yak na MIMD tak i na SIMD komp yuterah Model paralelizm danih takozh chasto vikoristovuyetsya Nazva modeli pohodit vid togo sho vona ekspluatuye paralelizm yakij polyagaye v vikoristanni odniyeyi operaciyi do bagatoh elementiv struktur danih Programa z paralelizmom danih skladayetsya z poslidovnostej podibnih operacij Oskilki operaciyi nad kozhnim elementom danih mozhna rozglyadati yak nezalezhni procesi to stupin detalizaciyi takih obchislen duzhe velika a ponyattya lokalnosti vidsutnye Tomu kompilyatori mov z paralelizmom danih chasto vimagayut shob programist nadavav informaciyu vidnosno togo yak dani povinni buti rozpodileni mizh procesorami inshimi slovami yak programa maye buti rozbita na procesi Kompilyator translyuye programu z paralelizmom danih v SPMD programu generuyuchi komunikacijnij kod avtomatichno Zagalna pam yat Shared Memory V cij modeli vsi procesi sumisno vikoristovuyut zagalnij adresnij prostir Procesi asinhronno zvertayutsya do zagalnoyi pam yati z zapitami na chitanni ta z zapitami na zapis sho stvoryuye problemi pri vibori momentu koli mozhna pomistiti dani v pam yat koli mozhna bude vidaliti yih Dlya keruvannya dostupom do zagalnoyi pam yati vikoristovuyutsya standartni mehanizmi sinhronizaciyi semafori i blokuvannya procesiv V modeli programuvannya z zagalnoyu pam yattyu vsi procesi sumisno vikoristovuyut zagalnij adresnij prostir do yakogo voni asinhronno zvertayutsya z zapitami na chitannya ta zapis V takih modelyah dlya keruvannya dostupom do zagalnoyi pam yati vikoristovuyutsya rizni mehanizmi sinhronizaciyi tipu semaforiv ta blokuvannya procesiv Perevagi ciyeyi modeli z tochki zoru programuvannya polyagaye v tomu sho ponyattya vlasnosti danih monopolnogo volodinnya danimi vidsutnye tomu ne potribno yavno zadavati obmin danimi mizh virobnikami danih ta yih koristuvachami Cya model z odniyeyi storoni sproshuye rozrobku programi ale z inshoyi uskladnyuye rozuminnya i keruvannya lokalnistyu danih napisannya determinovanih program V zagalnomu cya model vikoristovuyetsya pri programuvanni dlya arhitektur z zagalnodostupnoyu pam yattyu