Паралелізм даних є формою розпаралелювання обчислень на кількох процесорах в паралельно обчислювальних середовищах.
Паралелізм даних фокусується на поширенні даних через різні паралельні обчислювальні вузли; це відрізняє його від паралелізму завдань — іншої форми паралелізму.
Опис
У багатопроцесорній системі, що проводить один набір інструкцій (SIMD), паралелізм даних досягається, коли кожен процесор виконує одне завдання на різних частинах розподілених даних. У деяких ситуаціях, одним зв'язком управління на всіх частинах даних. В іншому випадку, різні потоки контролюють роботу, але вони виконують однаковий код.
Наприклад, є 2-процесорна система (CPU A і B) в паралельному середовищі, і ми хочемо, виконати завдання над даними d
. Можна задати CPU A виконувати це завдання на одній частині даних d
, і CPU B одночасно на іншій, тим самим знижуючи тривалість виконання. Ці дані можуть бути задані за допомогою умовних операторів, як описано нижче. Як конкретний приклад розглянемо додавання двох матриць. В паралельній реалізації даних, CPU A може додати всі елементи з верхньої половини матриць, в той час як CPU B буде додавати всі елементи з нижньої половини матриць. Оскільки два процесори працюють паралельно, робота над матрицями забере в 2 рази менше часу, ніж виконання цього завдання на одному процесорі. Паралелізм даних підкреслює розподіленої (розпаралелювати) характер даних, на відміну від обробки (паралелізм завдань).
Більшість реальних програм впасти десь на континуумі між паралелізму задач і паралелізму даних.
Приклад
Програма нижче виражена псевдокодом-який виконує якусь довільну операцію, foo
, над кожним елементом в масиві d
-який ілюструє паралельність даних:
if CPU = "a" lower_limit := 1 upper_limit := round(d.length/2) else if CPU = "b" lower_limit := round(d.length/2) + 1 upper_limit := d.length for i from lower_limit to upper_limit by 1 foo(d[i])
Якщо у прикладі вище програма виконується на 2-процесорній системі середовище може виконати його наступним чином:
- У системі SPMD, обидва процесори будуть виконувати код.
- У паралельному середовищі, обидва будуть мати доступ до
d
. - Механізм передбачує знаходження в місці де кожен процесор може створити свою копію
lower_limit
іupper_limit
які є незалежними. - Оператор
if
розмежовує роботу процесорів. CPU A буде зчитувати true вif
; а CPU B буде зчитувати true вelse if
, таким чином вони мають свої власні значенняlower_limit
іupper_limit
. - Зараз, обидва процесори виконують
foo(d[i])
, але, оскільки кожен процесор має різні значення меж, вони працюють на різних частинахd
одночасно, тим самим розподіляють завдання між собою. Очевидно, що вони будуть виконувати це швидше, ніж один процесор.
Ця концепція може бути узагальнена на будь-яку кількість процесорів. Однак, коли число процесорів збільшено, корисно перебудувати програму подібним шляхом (де cpuid
є числом між 1 і кількістю процесорів, і дій як унікального ідентифікатора для кожного процесора):
for i from cpuid to d.length by number_of_cpus foo(d[i])
Наприклад, на 2-процесорній системі CPU A (cpuid
1) буде працювати на непарних значеннях і CPU B (cpuid
2) працюватиме на парних значеннях.
Див. також
Примітки
- Деякі вхідні дані (наприклад
d.length
дорівнює 1 іround
знаходиться близько нуля [це лише приклад, немає жодних вимог для якого типу округлення це використовувати]) призведе доlower_limit
буде більшеupper_limit
, це призведе до негайного виходу (тобто відбудеться нульова ітерація).
Посилання
- and , Data Parallel Algorithms Communications of the ACM December 1986
- Blelloch, Guy E, Vector Models for Data-Parallel Computing MIT Press 1990.
Це незавершена стаття про програмування. Ви можете проєкту, виправивши або дописавши її. |
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Ця стаття потребує додаткових для поліпшення її . (січень 2016) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Paralelizm danih ye formoyu rozparalelyuvannya obchislen na kilkoh procesorah v paralelno obchislyuvalnih seredovishah Paralelizm danih fokusuyetsya na poshirenni danih cherez rizni paralelni obchislyuvalni vuzli ce vidriznyaye jogo vid paralelizmu zavdan inshoyi formi paralelizmu OpisU bagatoprocesornij sistemi sho provodit odin nabir instrukcij SIMD paralelizm danih dosyagayetsya koli kozhen procesor vikonuye odne zavdannya na riznih chastinah rozpodilenih danih U deyakih situaciyah odnim zv yazkom upravlinnya na vsih chastinah danih V inshomu vipadku rizni potoki kontrolyuyut robotu ale voni vikonuyut odnakovij kod Napriklad ye 2 procesorna sistema CPU A i B v paralelnomu seredovishi i mi hochemo vikonati zavdannya nad danimi d Mozhna zadati CPU A vikonuvati ce zavdannya na odnij chastini danih d i CPU B odnochasno na inshij tim samim znizhuyuchi trivalist vikonannya Ci dani mozhut buti zadani za dopomogoyu umovnih operatoriv yak opisano nizhche Yak konkretnij priklad rozglyanemo dodavannya dvoh matric V paralelnij realizaciyi danih CPU A mozhe dodati vsi elementi z verhnoyi polovini matric v toj chas yak CPU B bude dodavati vsi elementi z nizhnoyi polovini matric Oskilki dva procesori pracyuyut paralelno robota nad matricyami zabere v 2 razi menshe chasu nizh vikonannya cogo zavdannya na odnomu procesori Paralelizm danih pidkreslyuye rozpodilenoyi rozparalelyuvati harakter danih na vidminu vid obrobki paralelizm zavdan Bilshist realnih program vpasti des na kontinuumi mizh paralelizmu zadach i paralelizmu danih PrikladPrograma nizhche virazhena psevdokodom yakij vikonuye yakus dovilnu operaciyu foo nad kozhnim elementom v masivi d yakij ilyustruye paralelnist danih if CPU a lower limit 1 upper limit round d length 2 else if CPU b lower limit round d length 2 1 upper limit d length for i from lower limit to upper limit by 1 foo d i Yaksho u prikladi vishe programa vikonuyetsya na 2 procesornij sistemi seredovishe mozhe vikonati jogo nastupnim chinom U sistemi SPMD obidva procesori budut vikonuvati kod U paralelnomu seredovishi obidva budut mati dostup do d Mehanizm peredbachuye znahodzhennya v misci de kozhen procesor mozhe stvoriti svoyu kopiyu lower limit i upper limit yaki ye nezalezhnimi Operator if rozmezhovuye robotu procesoriv CPU A bude zchituvati true v if a CPU B bude zchituvati true v else if takim chinom voni mayut svoyi vlasni znachennya lower limit i upper limit Zaraz obidva procesori vikonuyut foo d i ale oskilki kozhen procesor maye rizni znachennya mezh voni pracyuyut na riznih chastinah d odnochasno tim samim rozpodilyayut zavdannya mizh soboyu Ochevidno sho voni budut vikonuvati ce shvidshe nizh odin procesor Cya koncepciya mozhe buti uzagalnena na bud yaku kilkist procesoriv Odnak koli chislo procesoriv zbilsheno korisno perebuduvati programu podibnim shlyahom de cpuid ye chislom mizh 1 i kilkistyu procesoriv i dij yak unikalnogo identifikatora dlya kozhnogo procesora for i from cpuid to d length by number of cpus foo d i Napriklad na 2 procesornij sistemi CPU A cpuid 1 bude pracyuvati na neparnih znachennyah i CPU B cpuid 2 pracyuvatime na parnih znachennyah Div takozhParalelizm na rivni komand Tipi paralelnih obchislenPrimitkiDeyaki vhidni dani napriklad d length dorivnyuye 1 i round znahoditsya blizko nulya ce lishe priklad nemaye zhodnih vimog dlya yakogo tipu okruglennya ce vikoristovuvati prizvede do lower limit bude bilshe upper limit ce prizvede do negajnogo vihodu tobto vidbudetsya nulova iteraciya Posilannyaand Data Parallel Algorithms Communications of the ACM December 1986 Blelloch Guy E Vector Models for Data Parallel Computing MIT Press 1990 ISBN 0 262 02313 X Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno sichen 2016