SPMD
У рачунарству, SPMD (један програм, више података ()) је техника која се користи да би се постигао паралелизам; то је подкатегорија MIMD-а. Задаци су подељени и покренути истовремено на више процесора са различитим улазом како би брже добили резултате. SPMD је најчешћи стил паралелног програмирања. То је такође предуслов за истраживање појмова као што су активне поруке и расподељена општа меморија.

SPMD насупрот SIMD 
У SPMD, више аутономних процесора истовремено извршава исти програм на независним тачкама, пре него у -у који SIMD намеће различитим подацима. Са SPMD-ом, задаци се могу извршити на процесоримаопште намене; SIMD захтева векторске процесоре да би манипулисао токовима података. Имајте на уму да ово двоје нису узајамно искључиви.

Расподељена меморија 
SPMD обично се односи на програмирања порука на расподељеној меморији рачунарске архитектуре. Расподељена меморија рачунара се састоји од колекције независних рачунара, називаји се чворовима. Сваки чвор почиње свој програм и комуницира са другим чворовима слањем и примањем порука, позивајући рутину слање/примање за ту намену. Синхронизација препрека може такође бити имплеметнирана порукама. Поруке се могу слати низом механизама комуникације, као што су TCP/IP преко Етернета, или специјализованим брзим водовима као што су Myrinet и суперкомпијутерски водови. Серијски делови програма се спроводе идентичним рачунањем на свим чворовима, пре него израчунавањем резултата на једном чвору и слање другим чворовима.

Данас, стандардним интерфејсом програмер је изолован из детаља преношења порука, као што су PVM и MPI.

Расподељена меморија је стил програмирања који се користи на паралелним суперрачунарима из домаћег Beowulf cluster с до највећих кластера на Teragridу.

Дељена меморија 
На машини са дељеном меморијом (рачунар са неколико Процесора који приступају истом мемоијском простору), порука може бити послата наношењем њеног садржаја у дељену меморију. Ово је често најефикаснији начин да се програмира дељена меморија рачунара са великим бројем процесора, посебно на NUMA машинама, где је меморија локална на процесорима и приступ меморије другог процесора траје дуже. SPMD на машини са дељеном меморијом је обично имплементиран стандардим () процесима.

За разлику од SPMD, дељена меморија мултипроцесирања, такође се зове SMP, представља програмера са заједничким меморијским простором и могућности паралелног извршавања тако што програм узима различите путање на различитим процесорима. Програм почиње извршавање на једном процесору и извршење дели у паралелном региону, које почиње када се паралелне директиве сусретну. У паралелном региону, процесори извршавају један програм на различитим подацима. Типичан пример је паралелна DO петља, где различити процесори раде на посебним деловима низова укључених у петљи. На крају петље, извршење се синхронизује, само један процесор наставља, а други чекају. Садашњи стандардни интерфејс за мултипроцесорску дељену меморију је OpenMP. Обично је имплементиран лаким процесима, који се називају 
нити.

Комбинација нивоа паралелизма 
Тренутни рачунари омогућавају искоришћавање многих паралелних режима истовремено за максимални ефекат. Расподељена општа меморија користи MPI који може да ради на прикупљању чворова. Сваки чвор може бити дељена меморија рачунара и извршава се паралелно на више процесора који користе OpenMP. У оквиру сваког процесора, SIMD векторске инструкције (обично аутоматски генерисане од компајлера) и суперскаларне инструкције извршења (обично барата транспарентно од стране самог процесора), као што је pipelining и коришћење вишеструких паралелних функционалних јединица, користе се за максималну брзину процесора.

Историја 
SPMD је први предложио 1983.  и  у паралелном рачунару OPSILA. и даље, 1984. од Frederica Darema на IBM-у за високо паралелне машине попут RP3 (IBM-ов истраживачки прототип паралелног процесора), у необјављеном IBM-ом допису. Касних 1980их, било је много расподељених рачунара са власничким message passing библиотекама. Први SPMD стандард био је PVM. Тренутни де факто стандард је MPI.

Cray-ове паралелне директиве су биле директан претходник за OpenMP.

Референце

Види још 
 Флинова подела - Погледајте дијаграм класификације поређења

Спољашње везе 
 Parallel job management and message passing
 Single Program Multiple Data stream 
 SPMD
 Distributed-memory programming

Архитектура рачунара
Паралелни рачунарски системи
Класе рачунара
У рачунарству , SPMD ( један програм , више података ( ) ) је техника која се користи да би се постигао паралелизам ; то је подкатегорија MIMD-а . Задаци су подељени и покренути истовремено на више процесора са различитим улазом како би брже добили резултате . SPMD је најчешћи стил паралелног програмирања . То је такође предуслов за истраживање појмова као што су активне поруке и расподељена општа меморија . SPMD насупрот SIMD У SPMD , више аутономних процесора истовремено извршава исти програм на независним тачкама , пре него у -у који SIMD намеће различитим подацима . Са SPMD-ом , задаци се могу извршити на процесоримаопште намене ; SIMD захтева векторске процесоре да би манипулисао токовима података . Имајте на уму да ово двоје нису узајамно искључиви . Расподељена меморија SPMD обично се односи на програмирања порука на расподељеној меморији рачунарске архитектуре . Расподељена меморија рачунара се састоји од колекције независних рачунара , називаји се чворовима . Сваки чвор почиње свој програм и комуницира са другим чворовима слањем и примањем порука , позивајући рутину слање / примање за ту намену . Синхронизација препрека може такође бити имплеметнирана порукама . Поруке се могу слати низом механизама комуникације , као што су TCP / IP преко Етернета , или специјализованим брзим водовима као што су Myrinet и суперкомпијутерски водови . Серијски делови програма се спроводе идентичним рачунањем на свим чворовима , пре него израчунавањем резултата на једном чвору и слање другим чворовима . Данас , стандардним интерфејсом програмер је изолован из детаља преношења порука , као што су PVM и MPI . Расподељена меморија је стил програмирања који се користи на паралелним суперрачунарима из домаћег Beowulf cluster с до највећих кластера на Teragridу . Дељена меморија На машини са дељеном меморијом ( рачунар са неколико Процесора који приступају истом мемоијском простору ) , порука може бити послата наношењем њеног садржаја у дељену меморију . Ово је често најефикаснији начин да се програмира дељена меморија рачунара са великим бројем процесора , посебно на NUMA машинама , где је меморија локална на процесорима и приступ меморије другог процесора траје дуже . SPMD на машини са дељеном меморијом је обично имплементиран стандардим ( ) процесима . За разлику од SPMD , дељена меморија мултипроцесирања , такође се зове SMP , представља програмера са заједничким меморијским простором и могућности паралелног извршавања тако што програм узима различите путање на различитим процесорима . Програм почиње извршавање на једном процесору и извршење дели у паралелном региону , које почиње када се паралелне директиве сусретну . У паралелном региону , процесори извршавају један програм на различитим подацима . Типичан пример је паралелна DO петља , где различити процесори раде на посебним деловима низова укључених у петљи . На крају петље , извршење се синхронизује , само један процесор наставља , а други чекају . Садашњи стандардни интерфејс за мултипроцесорску дељену меморију је OpenMP . Обично је имплементиран лаким процесима , који се називају нити . Комбинација нивоа паралелизма Тренутни рачунари омогућавају искоришћавање многих паралелних режима истовремено за максимални ефекат . Расподељена општа меморија користи MPI који може да ради на прикупљању чворова . Сваки чвор може бити дељена меморија рачунара и извршава се паралелно на више процесора који користе OpenMP . У оквиру сваког процесора , SIMD векторске инструкције ( обично аутоматски генерисане од компајлера ) и суперскаларне инструкције извршења ( обично барата транспарентно од стране самог процесора ) , као што је pipelining и коришћење вишеструких паралелних функционалних јединица , користе се за максималну брзину процесора . Историја SPMD је први предложио и у паралелном рачунару OPSILA. и даље , од Frederica Darema на IBM-у за високо паралелне машине попут RP3 ( IBM-ов истраживачки прототип паралелног процесора ) , у необјављеном IBM-ом допису . Каснихх , било је много расподељених рачунара са власничким message passing библиотекама . Први SPMD стандард био је PVM . Тренутни де факто стандард је MPI . Cray-ове паралелне директиве су биле директан претходник за OpenMP . Референце Види још Флинова подела - Погледајте дијаграм класификације поређења Спољашње везе Parallel job management and message passing Single Program Multiple Data stream SPMD Distributed-memory programming Архитектура рачунара Паралелни рачунарски системи Класе рачунара