SPMD (single program, multiple data - одна програма, багато потоків даних) — метод у комп’ютерних науках, який використовується для досягнення паралелізму; Він належить до підкатегорії MIMD. Задача розділена і виконується одночасно на декількох процесорах, (задля отримання результату швидше). SPMD – це також найпоширеніший спосіб паралельного програмування.Також це передумова для дослідження таких наукових концепцій, як активні повідомлення та спільна розподілена пам’ять.
SPMD порівняно з SIMD
У SPMD кілька автономних процесорів одночасно виконують одну і ту ж програму в незалежних пунктах, в SIMD – ні. З SPMD задачі можуть бути виконані на звичайних процесорах; SIMD потребує векторних процесорів для маніпулювати потоками даних. Варто звернути увагу, що обидва методи не є взаємовиключними.
Розподілена пам'ять
Під SPMD зазвичай розуміється передача повідомлень програмування на обчислювальну архітектуру з розподіленою пам'яттю. Розподілена комп'ютерна пам'ять складається з набору незалежних комп'ютерів, які називаються вузлами. Кожен вузол починає власну програму і взаємодіє з іншими вузлами за допомогою надсилання та отримання повідомлення, що закликають надсилати/отримувати процедури для цієї задачі. Синхронізації бар'єр може також здійснюватися шляхом повідомлення. Повідомлення можуть бути відправлені за допомогою низки механізмів комунікацій, таких як TCP/IP через Ethernet або спеціалізованих високошвидкісних інтерфейсів, таких як Myrinet і Supercomputer Interconnect. Окремі частини програми реалізуються ідентичні обчислення на всіх вузлах.
В даний час, програмісти ізольовані від деталей передачі повідомлень через стандартні інтерфейси, типу PVM та MPI.
Розподілена пам'ять – це стиль програмування, який використовується на паралельних суперкомп'ютерах з доморощених кластерів Beowulf та найбільших кластерів на Teragrid.
Спільна пам'ять
На комп’ютерах зі спільною пам’яттю (комп'ютер з декількома процесорами, що мають доступ до однієї і тієї ж області пам'яті), повідомлення можуть бути відправлені на зберігання в розподілену пам’ять. Часто це найбільш ефективний спосіб програмування для комп'ютерів зі спільним використанням пам'яті та великим числом процесорів, особливо на машинах NUMA, де пам'ять є локальною для процесорів і доступ до пам'яті іншого процесора займає більше часу. SPMD на комп'ютерах зі спільною пам'яттю, як правило, реалізується на стандарті (важковагових) процесів.
На відміну від SPMD, спільна багатопроцесорна пам'ять, також звана симетрична багатопроцесорна обробка або SMP, надає програмісту загальний простір пам'яті і можливість розпаралелити виконання при наявності програми що виконувалася б по-різному на різних процесорах. Програма починає виконуватися на одному процесорі, а розщеплюється виконання в паралельній області, яка запускається, коли паралельні директиви зустрічаються. В паралельній області, процесори виконують одну програму за різними даними. Типовий приклад паралельного циклу do, де різні процесори працюють на окремих частинах масивів, які беруть участь у циклі. В кінці циклу, виконання синхронізації продовжує тільки один процесор, а інші чекають. Поточний стандартний інтерфейс для багатопроцесорних загальної пам'яті заснований на технології OpenMP.
Комбінація рівнів паралелізму
Сучасні комп'ютери дозволяють експлуатувати багато паралельних режимів одночасно для максимального комбінованого ефекту. Програма, що викорстовує розподілену пам'ять та MPI може працювати на колекцію вузлів. Кожен вузол може мати спільну комп'ютерну пам'ять і виконуватися паралельно на декількох процесорах з використанням OpenMP.
Історія
SPMD був запропонований вперше в 1983 році Мішелем Аугуінмо (Університет Ніцци Софія-Антиполіс) і Франсуа Ларбеєм (Томсон/Сінтра) в OPSILA parallel computer і далі у 1984 році Фредерікою Darema в IBM для високо паралельних машин, як RP3 (IBM Research Parallel Processor Prototype), в неопублікованій IBM пам'ятці. до кінця 1980-х років, з'явилося багато комп'ютерів з розподіленою пам'яттю та з фірмовими бібліотеками передачі повідомлень. Перший стандарт SPMD був PVM. В даний час стандартом де-факто є MPI.
Паралельні директиви Cray були прямимими попередниками OpenMP.
Примітки
- . www.nist.gov. Архів оригіналу за 21 вересня 2008. Процитовано 29 травня 2016.
- M. Auguin, F. Larbey, OPSILA : an advanced SIMD for numerical analysis and signal processing, in Microcomputers : developments in industry, business, and education / Ninth EUROMICRO Symposium on Microprocessing and Microprogramming, pp 311-318 Madrid, September 13–16, 1983
- F. Darema, SPMD model: past, present and future, Recent Advances in Parallel Virtual Machine and Message Passing Interface: 8th European PVM/MPI Users' Group Meeting, Santorini/Thera, Greece, September 23–26, 2001. 2131, p. 1, 2001.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
SPMD single program multiple data odna programa bagato potokiv danih metod u komp yuternih naukah yakij vikoristovuyetsya dlya dosyagnennya paralelizmu Vin nalezhit do pidkategoriyi MIMD Zadacha rozdilena i vikonuyetsya odnochasno na dekilkoh procesorah zadlya otrimannya rezultatu shvidshe SPMD ce takozh najposhirenishij sposib paralelnogo programuvannya Takozh ce peredumova dlya doslidzhennya takih naukovih koncepcij yak aktivni povidomlennya ta spilna rozpodilena pam yat SPMD porivnyano z SIMDU SPMD kilka avtonomnih procesoriv odnochasno vikonuyut odnu i tu zh programu v nezalezhnih punktah v SIMD ni Z SPMD zadachi mozhut buti vikonani na zvichajnih procesorah SIMD potrebuye vektornih procesoriv dlya manipulyuvati potokami danih Varto zvernuti uvagu sho obidva metodi ne ye vzayemoviklyuchnimi Rozpodilena pam yatPid SPMD zazvichaj rozumiyetsya peredacha povidomlen programuvannya na obchislyuvalnu arhitekturu z rozpodilenoyu pam yattyu Rozpodilena komp yuterna pam yat skladayetsya z naboru nezalezhnih komp yuteriv yaki nazivayutsya vuzlami Kozhen vuzol pochinaye vlasnu programu i vzayemodiye z inshimi vuzlami za dopomogoyu nadsilannya ta otrimannya povidomlennya sho zaklikayut nadsilati otrimuvati proceduri dlya ciyeyi zadachi Sinhronizaciyi bar yer mozhe takozh zdijsnyuvatisya shlyahom povidomlennya Povidomlennya mozhut buti vidpravleni za dopomogoyu nizki mehanizmiv komunikacij takih yak TCP IP cherez Ethernet abo specializovanih visokoshvidkisnih interfejsiv takih yak Myrinet i Supercomputer Interconnect Okremi chastini programi realizuyutsya identichni obchislennya na vsih vuzlah V danij chas programisti izolovani vid detalej peredachi povidomlen cherez standartni interfejsi tipu PVM ta MPI Rozpodilena pam yat ce stil programuvannya yakij vikoristovuyetsya na paralelnih superkomp yuterah z domoroshenih klasteriv Beowulf ta najbilshih klasteriv na Teragrid Spilna pam yatNa komp yuterah zi spilnoyu pam yattyu komp yuter z dekilkoma procesorami sho mayut dostup do odniyeyi i tiyeyi zh oblasti pam yati povidomlennya mozhut buti vidpravleni na zberigannya v rozpodilenu pam yat Chasto ce najbilsh efektivnij sposib programuvannya dlya komp yuteriv zi spilnim vikoristannyam pam yati ta velikim chislom procesoriv osoblivo na mashinah NUMA de pam yat ye lokalnoyu dlya procesoriv i dostup do pam yati inshogo procesora zajmaye bilshe chasu SPMD na komp yuterah zi spilnoyu pam yattyu yak pravilo realizuyetsya na standarti vazhkovagovih procesiv Na vidminu vid SPMD spilna bagatoprocesorna pam yat takozh zvana simetrichna bagatoprocesorna obrobka abo SMP nadaye programistu zagalnij prostir pam yati i mozhlivist rozparaleliti vikonannya pri nayavnosti programi sho vikonuvalasya b po riznomu na riznih procesorah Programa pochinaye vikonuvatisya na odnomu procesori a rozsheplyuyetsya vikonannya v paralelnij oblasti yaka zapuskayetsya koli paralelni direktivi zustrichayutsya V paralelnij oblasti procesori vikonuyut odnu programu za riznimi danimi Tipovij priklad paralelnogo ciklu do de rizni procesori pracyuyut na okremih chastinah masiviv yaki berut uchast u cikli V kinci ciklu vikonannya sinhronizaciyi prodovzhuye tilki odin procesor a inshi chekayut Potochnij standartnij interfejs dlya bagatoprocesornih zagalnoyi pam yati zasnovanij na tehnologiyi OpenMP Kombinaciya rivniv paralelizmuSuchasni komp yuteri dozvolyayut ekspluatuvati bagato paralelnih rezhimiv odnochasno dlya maksimalnogo kombinovanogo efektu Programa sho vikorstovuye rozpodilenu pam yat ta MPI mozhe pracyuvati na kolekciyu vuzliv Kozhen vuzol mozhe mati spilnu komp yuternu pam yat i vikonuvatisya paralelno na dekilkoh procesorah z vikoristannyam OpenMP IstoriyaSPMD buv zaproponovanij vpershe v 1983 roci Mishelem Auguinmo Universitet Nicci Sofiya Antipolis i Fransua Larbeyem Tomson Sintra v OPSILA parallel computer i dali u 1984 roci Frederikoyu Darema v IBM dlya visoko paralelnih mashin yak RP3 IBM Research Parallel Processor Prototype v neopublikovanij IBM pam yatci do kincya 1980 h rokiv z yavilosya bagato komp yuteriv z rozpodilenoyu pam yattyu ta z firmovimi bibliotekami peredachi povidomlen Pershij standart SPMD buv PVM V danij chas standartom de fakto ye MPI Paralelni direktivi Cray buli pryamimimi poperednikami OpenMP Primitki www nist gov Arhiv originalu za 21 veresnya 2008 Procitovano 29 travnya 2016 M Auguin F Larbey OPSILA an advanced SIMD for numerical analysis and signal processing in Microcomputers developments in industry business and education Ninth EUROMICRO Symposium on Microprocessing and Microprogramming pp 311 318 Madrid September 13 16 1983 F Darema SPMD model past present and future Recent Advances in Parallel Virtual Machine and Message Passing Interface 8th European PVM MPI Users Group Meeting Santorini Thera Greece September 23 26 2001 2131 p 1 2001