Author
dangbao
View
266
Download
1
Embed Size (px)
Multiprocesorski sistemi
Uvod u paralelno raunarstvo
Marko Mii, Andrija Bonjakovi 13S114MUPS, 13E114MUPS,
MS1MPS, RI5MS, IR4MPS, SI4MPS
2016/2017. Zasnovano na:
Blaise Barney, Lawrence Livermore National Laboratory
Introduction to Parallel Computing
https://computing.llnl.gov/tutorials/parallel_comp/
ta je paralelno raunarstvo? (1)
Ranije je softver pisan za sekvencijalno izvravanje
Izvrava se na pojedinanom raunaru, sa jednim procesorom
Problem se razdvaja na vie diskretnih serija instrukcija
Instrukcije se izvravaju redom, jedna za drugom
Samo jedna instrukcija se moe izvravati u jednom trenutku
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 2/142
ta je paralelno raunarstvo? (2)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 3/142
ta je paralelno raunarstvo? (3)
Paralelno raunarstvo predstavlja istovremeno korienje vie raunarskih resursa u cilju reavanja nekog problema
Softver se izvrava na vie procesora
Problem se razdvaja na vie delova koji se mogu reavati uporedno (u paraleli)
Svaki deo problema se dalje razdvaja na serije diskretnih instrukcija
Instrukcije iz svakog od delova se izvravaju istovremeno na razliitim procesorima
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 4/142
ta je paralelno raunarstvo? (4)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 5/142
ta je paralelno raunarstvo? (5)
Raunarski resurs moe biti
Pojedinani raunar sa vie procesora
Odreen broj raunara povezanih mreom
Kombinacija oba navedena
Poeljne osobine problema koji se reava
Mogunost da se podeli na delove koji se mogu istovremeno reavati
Mogunost da bude reen u kraem vremenu korienjem viestrukih resursa
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 6/142
Moderni paralelni raunari (1)
Skoro svi moderni stand-alone raunara podravaju neku formu paralelizma na nivou hardvera: Imaju vie funkcionalnih jedinica
Vie nivoa keeva u paraleli (L1, L2)
Vei broj jedinica za obradu skokova, dekodovanje instrukcija, rad sa celim brojevima i brojevima u pokretnom zarezu
Grafiki procesori i drugi koprocesori
Imaju vie izvrnih jedinica jezgara
Mogu da izvravaju vie hardverski podranih niti istovremeno
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 7/142
Moderni paralelni raunari (2)
Interkonekcione mree se koriste da poveu pojedinane raunare u paralelne raunarske klastere
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 8/142
Moderni paralelni raunari (3)
Arhitektura tipinog klastera Svaki raunski vor je multiprocesorski sistem za sebe Vie raunskih vorova je povezano Infiniband mreom vorovi specijalne namene su takoe multiprocesori
login, storage i gateway vorovi
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 9/142
Zato koristiti paralelno raunarstvo? (1)
Glavni razlozi Uteda na vremenu i trokovima (jeftine komponente)
Mogunost reavanja veih i sloenijih problema
Mogunost reavanja vie problema istovremeno Omoguavanje konkurentnosti
Korienje sve dostupnijeg paralelnog hardvera
Drugi razlozi Mogunost korienja nelokalnih slobodnih resursa
(putem mree ili celokupnog Interneta)
Prevazilaenje memorijskih ogranienja
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 10/142
Zato koristiti paralelno raunarstvo? (2)
Ogranienja jednoprocesorskih sistema
Brzina prenosa signala na ipu
ograniena brzina prenosa bakarnih ica
Ogranienja minijaturizacije
Trenutno 32/22nm postupak, oekuje se zid na 9-11nm
Ekonomska neisplativost daljeg razvoja
Trendovi poslednjih godina ukazuju da je paralelizam budunost raunarstva
Bre mree, napredak na polju distribuiranih sistema, multiprocesorski desktop raunari, GPU raunarstvo...
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 11/142
Zato koristiti paralelno raunarstvo? (4)
Top500 lista
Do 2020. godine, Exascale computing
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 12/142
Primeri korienja paralelnog raunarstva
Primena u nauci i inenjerstvu Grand challenge problemi
Simulacije u fizici, hemiji, geologiji, biologiji i tehnici Hemijske i nuklearne reakcije, ljudski genom,
seizmike aktivnosti, prognoza vremena
Komercijalne aplikacije Web pretraivai i web orijentisani servisi
Big data, data mining, machine learning, deep learning
Istraivanje nafte i gasa
Medicinska dijagnostika i farmaceutika
Virtuelna realnost
Mrene multimedijalne tehnologije
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 13/142
Osnovni koncepti i podela paralelnih raunara
Von Neumann arhitektura (1)
Raunarski model koji se koristi preko 40 godina
Procesor izvrava program koji se sastoji od sekvence operacija itanja i pisanja po memoriji
Osnove dizajna Memorija se koristi da se uvaju instrukcije i podaci
Programske instrukcije su kodirani podaci koji govore raunaru da uradi neto
Podaci su informacije koje program koristi pri izvravanju
Procesor dohvata instrukcije i podatke iz memorije, tumai instrukcije i onda ih sekvencijalno izvrava
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 15/142
Von Neumann arhitektura (2)
Paralelni raunari i danas slede ovaj bazini dizajn
Na nivou pojedinanih, funkcionalnih jedinica
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 16/142
Flynn klasina taksonomija (1)
Jedna od najkorienijih klasifikacija paralelnih raunara
Multiprocesorske arhitekture se dele prema dve nezavisne dimenzije: instrukcija (Instructions) i podataka (Data)
Svaka od ove dve dimenzije moe imati dva stanja: Single i Multiple
Na osnovu ovoga su izvedene etiri mogue klasifikacije paralelnih raunara
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 17/142
Flynn klasina taksonomija (2)
SISD
Single Instruction,
Single Data
SIMD
Single Instruction,
Multiple Data
MISD
Multiple Instruction,
Single Data
MIMD
Multiple Instruction,
Multiple Data
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 18/142
Single Instruction, Single Data (SISD) (1)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 19/142
Single Instruction, Single Data (SISD) (2)
Sekvencijalni raunar
Samo jedna instrukcija se izvrava u jednom ciklusu procesora (Single Instruction)
Samo jedan tok podataka se koristi kao ulaz tokom jednog ciklusa procesora (Single Data)
Izvravanje je deterministiko (predodreeno)
Najstariji i do skora preovlaujui oblik raunara
Stariji PC raunari, mainframe raunari
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 20/142
Single Instruction, Multiple Data (SIMD) (1)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 21/142
Single Instruction, Multiple Data (SIMD) (2)
Vrsta paralelnog raunara Veliki broj jedinica za izvravanje malog kapaciteta Moderni centralni procesori imaju SIMD jedinice,
kao i grafiki procesori
Svi procesori izvravaju istu instrukciju tokom jednog ciklusa (Single Instruction)
Svaki procesor moe raditi sa razliitim podatkom (Multiple Data)
Sinhrono i deterministiko izvravanje Najpogodniji su za probleme koje karakterie
visok stepen regularnosti Obrada slika, obrada audio signala,
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 22/142
Mulitple Instruction, Single Data (MISD) (1)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 23/142
Mulitple Instruction, Single Data (MISD) (2)
Pojedinani tok podataka se deli na vie procesorskih jedinica (Single Data)
Svaka procesorska jedinica radi nad podacima nezavisno, koristei nezavisan set instrukcija (Multiple Instruction)
Malo pravih primera ove klase paralelnih raunara
Eksperimentalni Carnegie-Mellon C.mmp raunar (1971)
Mogua (uglavnom teorijska) polja primene
Viefrekvencijski filtar koji radi sa jednim tokom podataka (pojedinanim signalom)
Razbijanje pojedinane kodirane poruke korienjem vie razliitih kriptografskih algoritama
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 24/142
Multiple Instruction, Multiple Data (MIMD) (1)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 25/142
Multiple Instruction, Multiple Data (MIMD) (2)
Trenutno najzastupljeniji tip paralelnih raunara
Svaki procesor moe da izvrava razliit set instrukcija (Multiple Instruction)
Svaki procesor moe da radi sa razliitim setom podataka (Multiple Data)
Izvravanje moe biti sinhrono ili asinhrono, deterministiko ili nedeterministiko
Veina dananjih superkompjutera, raunarski gridovi, SMP i CMP raunari, sadanji PC raunari
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 26/142
Memorijska arhitektura paralelnih raunara
Deljena memorija (1)
Svi procesori u multiprocesorskom sistemu imaju mogunost da pristupaju svim memorijskim resursima kao globalnom adresnom prostoru
Vie procesora radi nezavisno, ali koriste iste memorijske resurse
Promene u memoriji od strane jednog procesora vidljive su ostalim procesorima
Multiprocesori sa deljenom memorijom se prema vremenu pristupa memoriji mogu podeliti na dve klase
UMA (Uniform Memory Access)
NUMA (Non-Uniform Memory Access)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 28/142
Deljena memorija (2)
Uniform Memory Access (UMA) Najea memorijska arhitektura
kod Symmetric Multiprocessor (SMP) maina Procesori u SMP mainama su identini
Podjednak pristup i vreme pristupa memoriji za sve procesore Najee se odrava koherencija ke memorija
Koherencija kea se odrava na hardverskom nivou
Non-Uniform Memory Access (NUMA) esto se ostvaruje kroz fiziko povezivanje
dva ili vie SMP sistema Nemaju svi procesori podjednako vreme pristupa
svim memorijama u sistemu Pristup memoriji kroz link je sporiji Moe se postii koherencija ke memorija (cc-NUMA),
ali ona nije obavezna
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 29/142
Deljena memorija (3)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 30/142
Deljena memorija (4)
Prednosti deljene memorije Globalni adresni prostor olakava programiranje ovakvih sistema
Deljenje podataka izmeu zadataka je brzo (esto i uniformno) zbog blizine memorije procesorima
Nedostaci deljene memorije Slaba skalabilnost izmeu memorije i broja procesora
Poveanje broja procesora u sistemu geometrijski poveava saobraaj na deljenoj magistrali
Kod sistema koji odravaju koherenciju ke memorija znaajno se poveava reijski saobraaj za odravanje koherencije
Programer je odgovoran za sinhronizacione primitive za korektan pristup memoriji
Cena ovakvih sistema znaajno raste sa porastom broja procesora u maini sa deljenom memorijom
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 31/142
Distribuirana memorija (1)
Kod sistema sa distribuiranom memorijom postoji interkonekciona komunikaciona mrea koja povezuje procesore i memorije
Svaki procesor ima svoju lokalnu memoriju koju koristi nezavisno od drugih procesora Memorijske adrese jednog procesora
se ne mapiraju kod drugih procesora
Ne postoji globalni adresni prostor
Promene koje se dese u lokalnoj memoriji jednog procesora ne utiu na memorije drugih procesora
Nije potreban koncept koherencije ke memorije
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 32/142
Distribuirana memorija (2)
Kada je procesoru potreban podatak iz memorije drugog procesora, obaveza je programera da definie nain na koji e i kada e podatak biti dobavljen
Sinhronizacija izmeu zadataka je programerova odgovornost
Interkonekciona mrea
Moe biti jednostavna (Ethernet, Infiniband, Myrinet)
Postoje i namenske interkonekcione mree poput hiper kocke, razliitih mesh-eva i sl.
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 33/142
Distribuirana memorija (3)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 34/142
Distribuirana memorija (4)
Prednosti distribuirane memorije Memorija je skalabilna prema broju procesora
Svaki procesor ima svoju memoriju
Nema potrebe za odravanjem koherencije ke memorija Niski trokovi primene i eksploatacije
Mogu se koristiti off-the-shelf komponente i opte mree
Nedostaci distribuirane memorije Programer je odgovoran za celokupnu komunikaciju i
razmenu podataka izmeu procesora Moe biti teko implementirati strukture podataka
zasnovane na globalnoj memoriji na ovakvoj memorijskoj organizaciji
Nejednako vreme pristupa razliitim memorijama
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 35/142
Hibridni pristup (1)
Najbri raunari na svetu koriste hibridni pristup Postoji i Shared Memory i Distributed memory
komponenta u sistemu (Distributed Shared Memory)
Vie SMP maina je povezano putem interkonekcione mree Procesor unutar SMP maine
moe pristupiti celokupnoj memoriji svoje maine
Ukoliko je potrebno da se neki podaci prenesu iz memorije jedne SMP maine na drugu, koristi se mrea
Hibridni pristup je trenutno preovlaujui
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 36/142
Hibridni pristup (2)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 37/142
Programski modeli za paralelno programiranje
Pregled
Paralelni programski model predstavalja apstrakciju iznad hardvera i memorijskih arhitektura
Korieni programski model najee zavisi od problema koji treba reiti, dostupnosti i linog izbora
Postoji nekoliko paralelnih programskih modela Deljena memorija (shared memory)
Niti (threads)
Prosleivanje poruka (message passing)
Data parallel
Hibridni i drugi modeli
Ovi programski modeli nisu specifini za pojedinani tip maine ili memorijske arhitekture Teorijski, svaki od ovih modela se moe implementirati
na bilo kom hardveru
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 39/142
Model deljene memorije
Zadaci dele zajedniki adresni prostor po kome itaju i piu asinhrono
Razliiti mehanizmi kao to su brave i semafori se koriste za kontrolu pristupa deljenoj memoriji
Ne postoji princip vlasnitva nad podatkom Komunikacija izmeu zadataka uproena,
to doprinosi jednostavnijem razvoju programa
Problem odravanja lokalnosti podataka Teko razumevanje i sloeno upravljanje
razmetajem podataka Vrlo sloeno za prosenog korisnika (tj. programera)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 40/142
Niti (1)
Prema ovom modelu paralelnog programiranja, proces moe imati vie konkurentnih grana izvravanja
Jednostavnije od modela deljene memorije
Niti su esto zastupljene u operativnim sistemima i sistemima sa deljenom memorijom
Implementacije se obino sastoje od
Biblioteka rutina koje se pozivaju iz paralelnog koda
Skupa direktiva prevodiocu (ili pretprocesoru) ugraenih u sekvencijalni ili paralelni izvorni kod
U oba sluaja programer je zaduen za paralelizaciju
Niti su uobiajen koncept u raunarstvu
Mnogo nekompatibilnih standarda i platformi ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 41/142
Niti (2)
POSIX niti (Pthreads) Biblioteke rutina koje se pozivaju iz paralelnog koda IEEE POSIX 1003.1c standard (1995-2013) Implementacije samo za jezik C Vrlo eksplicitan paralelizam,
programer mora da obrati panju na detalje
OpenMP standard Zasnovan na direktivama prevodiocu (pretprocesoru) Moe se koristiti na uobiajenom (sekvencijalnom) kodu Fortran i C/C++ implementacije Portabilan i multiplatformski (ukljuuje Unix/Linux i Windows) Lak za korienje
Microsoft je razvio sopstvenu implementaciju niti, nevezanu za pomenute standarde
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 42/142
Prosleivanje poruka (1)
Skup zadataka koristi svoje lokalne memorije prilikom izraunavanja
Vie zadataka moe postojati bilo na istoj fizikoj maini, bilo na odreenom broju maina
Zadaci razmenjuju podatke komunicirajui putem slanja i primanja poruka
Razmena podataka obino ukljuuje saradnju izmeu procesa koji uestvuju u komunikaciji Operacija slanja se mora upariti
sa odgovarajuom operacijom za prijem
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 43/142
Prosleivanje poruka (2)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 44/142
Prosleivanje poruka (3)
Implementacije Ovaj model se obino implementira kroz biblioteku
rutina koje programer poziva iz izvornog koda
Programer je odgovoran za paralelizaciju problema
Message Passing Interface (MPI) MPI-1 (1994), MPI-2 (1996) i MPI-3 (2012)
Trenutno je industrijski standard za razmenu poruka
Kod arhitektura sa deljenom memorijom, MPI implementacije obino ne koriste mreu za komunikaciju izmeu zadataka, ve koriste deljenu memoriju zbog poboljanja performansi
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 45/142
Data parallel model (1)
Ponekad se naziva Partitioned Global Address Space (PGAS) Adresni prostor je globalno vidljiv
Paralelizacija se vri nad skupom podataka Podaci su tipino organizovani u pravilnu strukturu,
kao to su niz i kocka
Skup zadataka zajedniki radi na istoj strukturi podataka Svaki zadatak radi na razliitom delu iste strukture Zadaci rade istu operaciju na njihovom delu posla Na sistemima sa deljenom memorijom,
svi zadaci imaju pristup celoj strukturi kroz globalnu memoriju Na sistemima sa distribuiranom memorijom
se struktura deli i postoji u delovima u lokalnoj memoriji svakog zadatka
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 46/142
Data parallel model (2)
Implementira se obino zadavanjem data-parallel instrukcija Ostvarenje ili kroz biblioteke potprograma
ili kroz direktive data parallel kompajlerima
esto eksperimentalna reenja Coarray Fortran 90/95, High Performance Fortran (HPF) i sl.
Unified Parallel C (UPC)
Global Arrays biblioteka za distribuirane sisteme
Chapel jezik za Cray superraunare
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 47/142
Data parallel model (3)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 48/142
Drugi modeli (1)
Hibridni model Bilo koja dva (ili vie) modela se kombinuju
esta je kombinacija MPI i POSIX/OpenMP za hibridni model memorijske arhitekture (DSM)
Sree se i kombinacija data parallel i MP modela
Single Program Multiple Data (SPMD) Pojedinaan program se izvrava
od strane vie zadataka simultano
U svakom trenutku zadaci mogu izvravati iste ili razliite instrukcije unutar programa
Pojedinaan zadatak moe izvravati samo deo programa, u zavisnosti od ugraene programske logike
Svi zadaci mogu koristiti razliite podatke
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 49/142
Drugi modeli (2)
Multiple Program Multiple Data (MPMD) Ovakve aplikacije imaju vie programa
Dok se aplikacija izvrava u paraleli, svaki zadatak moe izvravati isti ili drugaiji program
Svi zadaci mogu koristiti razliite podatke
SPMD i MPMD su programski modeli visokog nivoa Mogu se izgraditi na bilo kojoj kombinaciji
pomenutih paralelnih programskih modela
GPGPU (General Purpose computation on GPU) Upotreba grafikog procesora (GPU) za raunanje
Compute Unified Device Architecture (CUDA), OpenCL
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 50/142
Drugi modeli (3)
SPMD
MPMD
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 51/142
Razvoj paralelnih programa
Automatska i manuelna paralelizacija (1)
Dizajn i implementacija paralelnih programa je tipino manuelni, iterativni proces
Programer je odgovoran i za prepoznavanje i za implementaciju paralelizma u nekom programu
esto je to vremenski zahtevan i sloen iterativni proces, podloan grekama
Vremenom su razvijeni razliiti alati koji pomau prevoenje sekvencijalnog u paralelni kod
Najee su to prevodioci ili pretprocesori prilagoeni da rade paralelizaciju koda
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 53/142
Automatska i manuelna paralelizacija (2)
Potpuno automatska paralelizacija Prevodilac sam analizira izvorni kod i
pronalazi delove pogodne za paralelizaciju Petlje su najpogodnije za paralelizaciju
Ne daje uvek eljene rezultate Moe dovesti do pogrenih rezultata
prilikom korienja paralelizovanog programa
Performanse mogu da opadnu
Nedostatak fleksibilnosti
Paralelizacija upravljana od strane programera Direktive paralelnom kompajleru
kako da paralelizuje odreeni deo koda Primer je OpenMP
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 54/142
Razumevanje problema koji se reava (1)
Prvi korak u razvoju paralelnog softvera je razumevanje problema koji treba reiti u paraleli
Ukoliko se polazi od postojeeg sekvencijalnog koda, potrebno je i njega dobro razumeti
Potrebno je utvrditi da li je problem uopte mogue paralelizovati
Razmotriti druge algoritme za reavanje istog problema
esto su restrukturirani algoritmi pogodniji za paralelizaciju
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 55/142
Razumevanje problema koji se reava (2)
Potrebno je paralelizovati najbitnije delove (hotspots) Delovi koda koji troe najvie vremena
Nema svrhe paralelizovati delove koda koji malo koriste procesor
Identifikovati inhibitore paralelizma (bottlenecks) Uobiajeno su to I/O operacije i komunikacija
Vrlo esto su to zavisnosti po podacima
Profajleri koda i programi za analizu performansi mogu pomoi pri odreivanju navedenih mesta
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 56/142
Razumevanje problema koji se reava (3)
Primeri:
Mnoenje dve matrice
Problem izuzetno pogodan za paralelizaciju
Raunanje jednog elementa rezultujue matrice je nezavisno u odnosu na druge
Izraunavanje Fibonaijevih brojeva
Problem nemogu za paralelizaciju
Izraunavanje (k+2)-og broja u seriji zahteva poznavanje (k+1)-og i k-tog Fibonaijevog broja
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 57/142
Dekompozicija problema
Jedan od prvih koraka prilikom dizajniranja paralelnih programa je podela (particionisanje) problema koji se reava na diskretne delove posla
Diskretni delovi se potom alju razliitim paralelnim zadacima na obradu
Dva tipa dekompozicije
Dekompozicija domena
Funkcionalna dekompozicija
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 58/142
Dekompozicija domena (1)
Podaci u vezi sa problemom se dele
Svaki paralelni zadatak potom radi na delu podataka
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 59/142
Dekompozicija domena (2)
Nekoliko naina za podelu podataka
1D, 2D, ciklino
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 60/142
Funkcionalna dekompozicija (1)
Svaki zadatak dobija deo problema koji treba da se rei
Fokus je na raunskom poslu koji treba izvriti, a manje nad podacima koji se koriste prilikom raunanja
Funkcionalna dekompozicija je pogodna za odreene klase problema
Modelovanje ekosistema
Procesiranje signala
Modelovanje klimatskih promena
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 61/142
Funkcionalna dekompozicija (2)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 62/142
Funkcionalna dekompozicija (3)
Primer modeliranje klimatskih promena
Svaka komponenta modela je zaseban zadatak
Komponente meusobno komuniciraju da dou do neophodnih podataka
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 63/142
Komunikacija izmeu zadataka (1)
Potreba za komunikacijom izmeu zadataka zavisi od tipa problema koji se reava Ne postoji potreba za komunikacijom
Ovakvi problemi se nazivaju embarrassingly parallel, jer zahtevaju vrlo malo komunikacije izmeu zadataka
Primeri su odreeni algoritmi za obradu slike
Postoji potreba za komunikacijom
Veina paralelnih aplikacija zahteva razmenu podataka izmeu paralelnih zadataka
Simulacija klimatskih promena je takav primer Neophodna je komunikacija izmeu razliitih delova modela
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 64/142
Komunikacija izmeu zadataka (2)
Komunikacija meu zadacima iziskuje dodatne reijske trokove Glavni izvor paralelnog overhead-a
Zbog sinhronizacije, zaguenja komunikacionih kanala, ekanja
Kanjenje (latency) i propusni opseg (bandwidth) utiu na performanse komunikacije
Slanje velikog broja malih poruka dovodi do toga da kanjenje dominira u reijskim trokovima komunikacije
Vidljivost komunikacije je bitan faktor
Da li je komunikacija eksplicitna ili implicitna?
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 65/142
Komunikacija izmeu zadataka (3)
Sinhrona i asinhrona komunikacija Sinhrona komunikacija zahteva
neku vrstu handshaking protokola izmeu zadataka
Moe je implementirati programer ili moe biti transparentna
Sinhrona komunikacija je blokirajua, jer ostali posao mora da saeka dok se komunikacija ne zavri
Asinhrona komunikacija dozvoljava prenos podataka izmeu zadataka nezavisno jedan od drugih
Trenutak kada primalac stvarno prima podatke nije bitan, poto poiljalac moe da nastavi da radi drugi posao
Asinhrona komunikacija je neblokirajua, jer poiljalac moe da nastavi da radi svoj posao
Da li je dobitak od preklapanja komunikacije i raunanja vredan komplikovanja programskog koda?
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 66/142
Komunikacija izmeu zadataka (4)
Opseg komunikacije
Pojedinana, izmeu dva zadatka (point-to-point)
Ukljuuje komunikaciju dva zadatka, od kojih se prvi ponaa kao proizvoa/poiljilac, a drugi kao potroa/primalac podataka
Grupna, izmeu vie zadataka (collective)
Ukljuuje komunikaciju vie zadataka, najee pripadnika iste grupe
Efikasnost komunikacije
Performanse istog modela variraju izmeu platformi
Zavisi i od vrste mree za komunikaciju
Koju mreu izabrati ukoliko ima vie dostupnih?
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 67/142
Primeri kolektivne komunikacije
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 68/142
Reijsko vreme i kompleksnost
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 69/142
Sinhronizacija izmeu zadataka (1)
Sinhronizacija je neizostavna za koordinaciju paralelnih zadataka
Sinhronizacija na barijeri (barrier) Obino ukljuuje sve zadatke
Svaki zadatak radi posao dok ne doe do barijere, kada prekida posao i blokira se
Kada poslednji zadatak dosegne barijeru svi zadaci su sinhronizovani Barijeru obino sledi kritina sekcija
koja se mora sekvencijalno izvriti
Alternativno, zadaci se deblokiraju i nastavljaju svoj posao
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 70/142
Sinhronizacija izmeu zadataka (2)
Brava (lock) Moe uestvovati bilo koji broj zadataka
Samo jedan zadatak moe istovremeno da koristi bravu i ue u kritinu sekciju
Prvi zadatak koji naie na slobodnu bravu je zakljuava i obavlja posao, ostali moraju da ekaju
Semafori (semaphores) Moe uestvovati bilo koji broj zadataka
Odreeni broj zadataka moe istovremeno da koristi semafor i koristi resurs ili ue u kritinu sekciju
Blokirajui, binarni (brave) i brojaki semafori
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 71/142
Sinhronizacija izmeu zadataka (3)
Uslovne promenljive (conditional variables) Naredni zadatak nastavlja tek kad prethodni zavri
Postoji red zadataka koji ekaju na uslovnoj promenljivoj zadatak se obavezno blokira prilikom
izvravanja operacije ekanja na uslovnoj promenljivoj
Sinhrone komunikacione primitive Ukljuuje samo one zadatke koji komuniciraju
Zahteva odreeni nivo koordinacije izmeu zadataka koji komuniciraju Pre nego to izvri slanje, poiljalac mora da dobije
potvrdu da je primalac spreman da prihvati poruku
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 72/142
Zavisnosti po podacima (1)
Zavisnost u programu postoji kada redosled izvravanja naredbi u programu utie na krajnji rezultat odreenog dela programa ili celog programa Zavisnost izmeu instrukcija postoji ako e izmena redosleda
instrukcija uticati na rezultate programa Zavisnost po podacima nastaje usled korienja
memorijskih lokacija od strane vie paralelnih zadataka
Zavisnosti su primarni inhibitori paralelizma! Najee reenje je sinhronizacija zadataka
Na sistemima sa distribuiranom memorijom je neophodne podatke potrebno razmeniti na sinhronizacionim takama
Na sistemima sa deljenom memorijom je potrebno je sinhronizovati operacije itanja i upisa podataka izmeu paralelnih zadataka
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 73/142
Zavisnosti po podacima (2)
Primer loop-dependent zavisnosti po podacima DO 500 J = MYSTART,MYEND
A(J) = A(J-1) * 2.0 500 CONTINUE
Vrednost A(J-1) se mora izraunati pre vrednosti A(J) i stoga postoji zavisnost po podacima Paralelizam je onemoguen
Loop-dependent zavisnosti je jako bitno uoiti prilikom razvoja paralelnih programa, jer to utie na paralelizaciju petlji, koja se najee vri u procesu paralelizacije
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 74/142
Zavisnosti po podacima (3)
Primer loop-independent zavisnosti po podacima task 1 task 2
------ ------ X = 2 X = 4 . . . . Y = X**2 Y = X**3
Paralelizam je onemoguen, jer izraunavanje vrednosti Y zahteva poznavanje vrednosti X, koja zavisi od toga da li e vrednost X biti slata izmeu zadataka i koji e je zadatak prvi menjati
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 75/142
Balansiranje optereenja (1)
Balansiranje optereenje (load balancing) se odnosi na podelu posla meu zadacima tako da svi podaci budu zauzeti sve vreme
Osnovni cilj je da svi zadaci stalno neto rade
Primer barijere svi zavise od najsporijeg zadatka
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 76/142
Balansiranje optereenja (2)
Ravnomerna podela posla svim zadacima Podela iteracija petlji, ravnomerna raspodela podataka
Statika i dinamika podela posla
Dinamika podela posla Neke vrste problema izazivaju neravnomerno optereenje
i kad su podaci podjednako podeljeni po zadacima Retko posednuti nizovi i retko posednute matrice Adaptivne tehnike obrade, kada odreeni zadaci imaju potrebu
da izvre finiju obradu nad odreenim podacima
Veliina posla se ne moe unapred predvideti Korienje rasporeivaa i depoa poslova
moe reiti problem (scheduler - task pool) Kada jedan zadatak zavri deo posla,
staje u red i eka da dobije sledei
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 77/142
Granularnost (1)
Odnos vremena potroenog na raunanje i vremena potroenog na komunikaciju (computation to communication ratio) Periodi u kojima se vri neki raunski posao su
odvojeni od perioda kada se vri komunikacija sinhronizacionim dogaajima
Fine-grain paralelizam Relativno mala koliina raunskog posla
se izvri izmeu dve komunikacije Olakava balansiranje optereenja Veliko reijsko vreme za komunikaciju
Moda ak due od vremena potrebnog za raunski posao
Smanjena mogunost za popravljanje performansi
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 78/142
Granularnost (2)
Coarse-grain paralelizam Relativno velika koliina raunskog posla se
izvri izmeu dva komunikaciona dogaaja
Vie mogunosti za popravljanje performansi
Tee je odrati balansiranje optereenja
Bolji ukoliko je reijsko vreme komunikacije i sinhronizacije veliko u odnosu na vreme izvravanja
Izbor najvie zavisi od konkretnog problema i platforme
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 79/142
I/O operacije
Ulazno-izlazne operacije su esto inhibitor paralelizma
Mogua reenja Neke platforme nude paralelne fajl sisteme
GPFS, Lustre, OrangeFS/PVFS
Podrka u okviru MPI-2 standarda
Nedovoljna zrelost
Smanjiti I/O poslove na minimum
Korienje veih blokova podataka za upis
Izbegavanje rada sa malim fajlovima
Lokalizacija I/O poslova u manji broj zadataka
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 80/142
Analiza performansi paralelnih programa
Znaajno komplikovanija nego kod sekvencijalnih programa
Slino je i sa debugging-om
Analizu performansi je potrebno izvriti i pre i posle paralelizacije programa
Bitno je odrediti odnos vremena raunanja i vremena komunikacije
Postoji veliki broj alata za ovu namenu
Razliiti tajmeri, profajleri i namenski alati
Neki su multiplatformski
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 81/142
Ubrzanje
Ubrzanje (p procesora) = (speedup)
Za problem fiksne veliine (ulazni podaci), performanse = 1/vreme
Ubrzanje (p procesora) =
Koliko je ubrzanje mogue?
Performanse (p procesora)
Performanse (1 procesor)
Vreme (1 procesor)
Vreme(p procesora)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 82/142
sekvencijalni deo aplikacije, p broj procesora
Ti vreme izvravanja sa i procesora
Ubrzanje je ogranieno sekvencijalnim delom aplikacije nezavisno od broja procesora
Amdalov zakon (1)
p
TTTp
11
1
1
11111
11
lim1
1
TT
TTTTT
TT
pp
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 83/142
sekvencijalni deo aplikacije, p broj procesora Ti vreme izvravanja sa i procesora
Ubrzanje je ogranieno sekvencijalnim delom
aplikacije nezavisno od broja procesora
Amdalov zakon (2)
1
1
1lim
11limlim
111
1
111
pp
p
pS
p
pS
ppp
p
11 p
pS p
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 84/142
Vreme u zavisnosti od broja procesora i udela sekvencijalnog dela aplikacije
Zavisnost vremena izvravanja od broja procesora
0,00
20,00
40,00
60,00
80,00
100,00
120,00
1
10
19
28
37
46
55
64
73
82
91
10
Broj procesora
Vre
me Vreme 0,1
Vreme 0,5
Vreme 0,9
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 85/142
Ubrzanje u zavisnosti od broja procesora i udela sekvencijalnog dela aplikacije
Zavisnost ubrzanja od broja procesora
0,00
1,00
2,00
3,00
4,00
5,00
6,00
7,00
8,00
9,00
10,00
1
10
19
28
37
46
55
64
73
82
91
10
Broj procesora
Vre
me Ubrzanje 0,1
Ubrzanje 0,5
Ubrzanje 0,9
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 86/142
Ogranienja paralelnog programiranja (1)
Sloenost
Paralelne aplikacije su za red veliine sloenije od sekvencijalnih programa
Ne samo da postoji vie tokova izvravanja programa, ve postoji i tok podataka meu njima
Paralelno programiranje zahteva da programer potroi vie vremena prilikom dizajna programa, kodiranja, debagovanja, podeavanja performansi i odravanja
Pridravanje uobiajenih tehnika razvoja softvera je znaajno ako na projektu radi vei tim
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 87/142
Ogranienja paralelnog programiranja (2)
Prenosivost (portability)
Situacija je prilino dobra, jer postoji nekoliko standarda za paralelno programiranje
MPI, POSIX threads, HPF, OpenMP standardi
Problem sa razliitim implementacijama standarda na razliitim platformama
Znaajan uticaj operativnih sistema
Hardverske platforme mogu biti znaajno razliite i mogu uticati na prenosivost
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 88/142
Ogranienja paralelnog programiranja (3)
Skalabilnost Prosto dodavanje novih resursa (procesora) esto nije reenje
Moe dovesti do zasienja ili opadanja performansi zbog niza faktora
Korieni algoritam po svojoj prirodi moe imati ogranienja po pitanju skalabilnosti
Hardver znaajno utie na skalabilnost Propusni opseg magistrale na SMP mainama Propusni opseg komunikacione mree Ukupna raspoloiva memorija Brzina (takt) procesora
Paralelne biblioteke mogu ograniiti skalabilnost
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 89/142
Ogranienja paralelnog programiranja (4)
Zahtevi za resursima Da bi se smanjilo ukupno vreme izvravanja programa
potrebno je potroiti vie procesorskog vremena
Paralelni programi mogu zahtevati vie memorije za svoje izvravanje Replikacija podataka na vie procesora
Dodatni troak za paralelne biblioteke i podsisteme
Reijski trokovi paralelizacije (overhead) Kreiranje zadataka, komunikacija,
pokretanje paralelnog okruenja
Paralelizacija esto nije reenje za probleme malih dimenzija!
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 90/142
Primeri paralelnih programa
Primeri paralelnih programa
Raunanje broja PI
Obrada 2D niza (array processing)
Simple heat equation problem
1-D Wave Equation problem
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 92/142
Raunanje broja PI (1)
Jedan jednostavan algoritam za priblino raunanje broja PI
Upisati krug u kvadrat
Sluajno generisati take u datom kvadratu
Utvrditi broj taaka u kvadratu koje su istovremeno i u krugu
PI se moe priblino izraunati po formuli
PI = 4.0 * (broj taaka u krugu)/(ukupan broj taaka)
to se vie taaka generie, aproksimacija je bolja
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 93/142
Raunanje broja PI (2)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 94/142
Raunanje broja PI (3)
Sekvencijalni kod
npoints = 10000 circle_count = 0 do j = 1,npoints generate 2 random numbers between 0 and 1 xcoordinate = random1 ; ycoordinate = random2 if (xcoordinate, ycoordinate) inside circle then circle_count = circle_count + 1 end do PI = 4.0*circle_count/npoints
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 95/142
Raunanje broja PI (4)
Veina vremena u izvravanju ovog koda bi bila potroena na izvravanje petlje
Jo jedan od embarrassingly parallel problema Raunski zahtevan, minimalna komunikacija i I/O
Paralelna strategija Razbiti petlju na delove koje e izvravati zadaci
Svaki zadatak obavlja svoj deo raunanja petlje
Ne postoje zavisnosti po podacima, pa nema ni komunikacije meu zadacima
Koristi se SPMD model Jedan zadatak se ponaa kao master i sakuplja rezultate
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 96/142
Raunanje broja PI (5)
npoints = 10000 circle_count = 0 p = number of tasks num = npoints/p find out if I am MASTER or WORKER do j = 1,num generate 2 random numbers between 0 and 1 xcoordinate = random1 ; ycoordinate = random2 if (xcoordinate, ycoordinate) inside circle then circle_count = circle_count + 1 end do
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 97/142
Raunanje broja PI (6)
if I am MASTER receive from WORKERS their circle_counts compute PI (use MASTER and WORKER calculations) else if I am WORKER send to MASTER circle_count endif
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 98/142
Obrada 2D niza (1)
Radi se obrada nad elementima 2D niza, a raunski posao nad svakim elementom je nezavisan u odnosu na druge
Sekvencijalni program rauna jedan element u jednom trenutku idui sekvencijalno kroz niz
Ceo problem je raunski veoma zahtevan
Problem je tzv. embarrassingly parallel, jer je izraunavanje jednog elementa nezavisno od drugih elemenata
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 99/142
Obrada 2D niza (2)
Sekvencijalno reenje
do j = 1,n do i = 1,n a(i,j) = fcn(i,j) end do end do
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 100/142
Obrada 2D niza (3)
Paralelno reenje
Elementi niza se podele tako da svaki procesor dobije jednu podmatricu na obradu
Prilikom izbora eme za distribuciju podmatrica, gleda se da maksimizuje korienje ke memorije
Komunikacija izmeu zadataka nije potrebna zbog karakteristika problema
Nakon to se matrica distribuira, svaki zadatak izvrava deo petlje, u zavisnosti koji deo podataka je dobio na obradu
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 101/142
Obrada 2D niza (4)
Primer koda
do j = mystart, myend do i = 1,n a(i,j) = fcn(i,j) end do end do
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 102/142
Obrada 2D niza (5)
Jedno mogue reenje
Implementirati SPMD model
Master zadatak inicijalizuje niz, alje podatke radnicima i prima rezultate
Zadatak-radnik prima podatke, izvrava svoj deo raunanja i alje rezultate masteru
Ovakvo reenje se moe oblikovati prema pseudo-kodu datom na sledeoj stranici
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 103/142
Obrada 2D niza (6)
find out if I am MASTER or WORKER if I am MASTER initialize the array send each WORKER info on part of array it owns send each WORKER its portion of initial array receive from each WORKER results
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 104/142
Obrada 2D niza (7)
else if I am WORKER receive from MASTER info on part of array I own receive from MASTER my portion of initial array # calculate my portion of array do j = my first column,my last column do i = 1,n a(i,j) = fcn(i,j) end do end do send MASTER results endif
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 105/142
Obrada 2D niza (8)
Prethodno reenje prikazuje statiko balansiranje optereenja
Svaki zadatak dobija podjednaku koliinu posla
Ukoliko su procesori razliitih karakteristika, moe doi do gubitka procesorskog vremena u ekanju
Statiko balansiranje optereenje obino nije problem ukoliko zadaci izvravaju podjednak posao na identinim mainama
Ukoliko postoji problem balansiranosti optereenja, moe se koristiti ema bazena poslova (pool of tasks) za reavanje problema
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 106/142
Obrada 2D niza (9)
Depo poslova (task pool) Postoje dve vrste procesa: master i proces-radnik
Master proces
Sadri i odrava depo poslova koje radnici treba da obave
alje radniku posao kada to ovaj zahteva
Sakuplja rezultate od procesa-radnika
Po potrebi, i master moe da se ukljui u obavljanje posla
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 107/142
Obrada 2D niza (10)
Proces-radnik
Dobija poslove od master procesa
Izvrava raunanje
alje rezultate master procesu
Proces-radnik ne zna pre vremena izvravanja koji deo posla e obaviti i koliko poslova
Dinamiko balansiranje optereenja se deava u vreme izvravanja
Bri procesi-radnici dobijaju vie posla da obave
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 108/142
Obrada 2D niza (11)
find out if I am MASTER or WORKER if I am MASTER do until no more jobs send to WORKER next job receive results from WORKER end do tell WORKER no more jobs
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 109/142
Obrada 2D niza (12)
else if I am WORKER do until no more jobs receive from MASTER next job calculate array element: a(i,j) = fcn(i,j) send results to MASTER end do endif
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 110/142
Obrada 2D niza (13)
Depo poslova
U datom primeru, svaki zadatak je smatrao jedan element niza za poseban posao (job)
Primer fine-grain implementacije
Fine-grain implementacije podrazumevaju vie reijskog vremena za komunikaciju, kako bi se smanjilo rasipanje procesorskog vremena
Optimalnije reenje bi bilo da svaki posao koji se alje sadri veu koliinu raunskog posla
Koliina posla zavisi od konkretnog problema
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 111/142
Simple heat equation problem (1)
Veina paralelnih problema zahteva komunikaciju meu zadacima
Postoji itava klasa problema koji zahtevaju komunikaciju sa susednim zadacima
Simple heat equation problem opisuje promenu temperature na nekom prostoru kroz vreme, kada su poznati poetna temperatura i granini uslovi
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 112/142
Simple heat equation problem (2)
Postoji konana ema za reavanje ovog problema numeriki na kvadratnoj povrini
Poetna temperatura na granicama je nula, a u sredini je visoka
Granina temperatura se uvek dri na nuli
Kvadratna povrina se deli na mreu manjih kvadrata
Predstavljaju se matricom iji elementi predstavljaju temperaturu odgovarajueg polja u kvadratu
Koristi se time stepping algoritam izraunaju se temperature svih polja u datom vremenskom trenutku, pa se prelazi na sledei vremenski trenutak
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 113/142
Simple heat equation problem (3)
Izraunavanje vrednosti jednog elementa zavisi od vrednosti susednih elemenata
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 114/142
Simple heat equation problem (4)
Sekvencijalno reenje
do iy = 2, ny 1 do ix = 2, nx 1 u2(ix, iy) = u1(ix, iy) + cx * (u1(ix+1,iy) + u1(ix-1,iy) - 2.*u1(ix,iy)) + cy * (u1(ix,iy+1) + u1(ix,iy-1) - 2.*u1(ix,iy)) end do end do
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 115/142
Simple heat equation problem (5)
Jedno paralelno reenje
Implementirati SPMD model
Cela matrica se deli na i svaki zadatak dobija deo posla
Master proces alje podatke procesima-radnicima, proverava konvergenciju reenja i sakuplja rezultate
Procesi-radnici raunaju podatke, komuniciraju po potrebi sa susednim procesima i alju rezultate masteru
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 116/142
Simple heat equation problem (6)
Postoje zavisnosti po podacima
Unutranji elementi koji pripadaju zadatku ne zavise od drugih zadataka
Granini elementi zahtevaju komunikaciju, jer su im potrebni podaci iz susednih zadataka
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 117/142
Simple heat equation problem (7)
find out if I am MASTER or WORKER if I am MASTER initialize array send each WORKER starting info and subarray do until all WORKERS converge gather from all WORKERS convergence data broadcast to all WORKERS convergence signal end do receive results from each WORKER
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 118/142
Simple heat equation problem (8)
else if I am WORKER receive from MASTER starting info and subarray do until solution converged update time send neighbors my border info receive from neighbors their border info update my portion of solution array determine if my solution has converged send MASTER convergence data receive from MASTER convergence signal end do send MASTER results endif
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 119/142
Simple heat equation problem (9)
U prethodnom reenju je pretpostavljeno da je komunikacija izmeu zadataka blokirajua Blokirajua komunikacija podrazumeva da zadatak ne nastavlja
dalje sa izvravanjem dok god primalac ne preuzme podatke
U prethodnom reenju susedni zadaci razmene podatke, a zatim svaki od njih izrauna svoj deo matrice
Vreme raunanja se moe esto smanjiti korienjem neblokirajue komunikacije Neblokirajua komunikacija dozvoljava
da se nastavi sa radom dok komunikacija jo traje
Svaki zadatak moe da izrauna svoje unutranje elemente dok se vri razmena podataka o graninim elementima, a zatim da izrauna vrednost svojih graninih elemenata
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 120/142
Simple heat equation problem (10)
find out if I am MASTER or WORKER if I am MASTER initialize array send each WORKER starting info and subarray do until all WORKERS converge gather from all WORKERS convergence data broadcast to all WORKERS convergence signal end do receive results from each WORKER
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 121/142
Simple heat equation problem (11)
else if I am WORKER receive from MASTER starting info and subarray do until solution converged update time non-blocking send neighbors my border info non-blocking receive neighbors border info update interior of my portion of solution array wait for non-blocking communication complete update border of my portion of solution array
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 122/142
Simple heat equation problem (12)
determine if my solution has converged send MASTER convergence data receive from MASTER convergence signal end do send MASTER results endif
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 123/142
1-D Wave Equation problem (1)
Treba izraunati amplitudu talasa du uniformne, vibrirajue ice nakon odgovarajueg vremenskog trenutka
Raunanje ukljuuje
Vrednost amplitude talasa na y osi
Poziciju take koja se prati du x ose
Presene take talasa du ice
Promenu amplitude talasa u diskretnim vremenskim intervalima
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 124/142
1-D Wave Equation problem (2)
Amplituda talasa u jednoj taki se izraunava po formuli
A(i,t+1) = (2.0 * A(i,t)) - A(i,t-1)+ (c * (A(i-1,t) - (2.0 * A(i,t)) + A(i+1,t)))
Amplituda talasa u nekoj taki zavisi i od susednih taaka i od amplitude take u prethodnim vremenskim trenucima
Paralelno reenje e zahtevati komunikaciju
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 125/142
1-D Wave Equation problem (3)
Mogue reenje
Implementirati SPMD model
Talas predstaviti pomou niza amplituda u izabranim takama
Niz amplituda podjednako podeliti i poslati podnizove svim zadacima koji rade
Obrada svake take zahteva podjednako vreme, tako da svi zadaci treba da dobiju jednak broj taaka
Obratiti panju da zadaci dobiju to vei kontinualni deo niza, kako bi se izbegla nepotrebna komunikacija
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 126/142
1-D Wave Equation problem (4)
Komunikacija potrebna na granicama podnizova
susedni zadaci e morati da razmenjuju podatke
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 127/142
1-D Wave Equation problem (5)
find out number of tasks and task identities #Identify left and right neighbors left_neighbor = mytaskid 1 right_neighbor = mytaskid +1 if mytaskid = first then left_neigbor = last if mytaskid = last then right_neighbor = first find out if I am MASTER or WORKER if I am MASTER initialize array send each WORKER starting info and subarray else if I am WORKER receive starting info and subarray from MASTER endif
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 128/142
1-D Wave Equation problem (6)
#Update values for each point along string #In this example the master participates in calculations do t = 1, nsteps send left endpoint to left neighbor receive left endpoint from right neighbor send right endpoint to right neighbor receive right endpoint from left neighbor #Update points along line do i = 1, npoints newval(i) = (2.0 * values(i)) - oldval(i) + (sqtau * (values(i-1) - (2.0 * values(i)) + values(i+1))) end do end do
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 129/142
1-D Wave Equation problem (7)
#Collect results and write to file if I am MASTER receive results from each WORKER write results to file else if I am WORKER send results to MASTER endif
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 130/142
Opta terminologija
Opta terminologija (1)
Zadatak (task) Logiki diskretan deo posla, tipino program ili
skup instrukcija koje izvrava procesor
Paralelni zadatak (parallel task) Zadatak koji se bezbedno moe izvriti na
multiprocesorskom sistemu (daje korektne rezultate)
Sekvencijalno izvravanje (serial execution) Izvravanje programa sekvencijalno,
jedna instrukcija u jednom trenutku
U svim paralelnim programima postoje sekcije koje se moraju izvriti sekvencijalno
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 132/142
Opta terminologija (2)
Paralelno izvravanje (parallel execution) Izvravanje programa u vidu vie zadataka koji mogu
da izvravaju razliite instrukcije u istom trenutku
Deljena memorija (shared memory) U hardverskom smislu, to je raunarska arhitektura
kod koje svi procesori imaju direktan pristup zajednikoj, deljenoj fizikoj memoriji
U programskom smislu, to je model kod koga svi paralelni zadaci imaju istu sliku memorije i mogu direktno da pristupe istim logikim memorijskim lokacijama gde god se fizika memorija stvarno nalazi
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 133/142
Opta terminologija (3)
Distribuirana memorija (distributed memory) Hardverski, model zasnovan na
pristupu fizikoj memoriji putem mree
Programski, zadaci logiki vide samo podatke iz svog adresnog prostora i za razmenu podataka sa drugim zadacima koriste komunikacione primitive
Komunikacija (communication) Paralelni zadaci imaju potrebu da razmenjuju podatke
Vie naina da se to ostvari
Ovaj termin se upotrebljava da oznai razmenu podataka bez obzira na nain na koji se to radi
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 134/142
Opta terminologija (4)
Sinhronizacija (synchronization) Koordinacija paralelnih zadataka
u vremenu izvravanja, po pravilu u vezi sa komunikacijom
esto se implementira kao taka u programu koju zadatak ne sme da pree pre nego to drugi zadaci dostignu logiki ekvivalentnu taku (barijera)
Sinhronizacija obino ukljuuje stanje ekanja bar jednog zadatka, i stoga produava vreme izvravanja paralelne aplikacije
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 135/142
Opta terminologija (5)
Granularnost (granularity) U paralelnom raunarstvu, to je kvalitativna mera
odnosa korisnog rada (raunskog posla) i komunikacije
Gruba (coarse grain) granularnost
Relativno velika koliina raunskog posla se obavi izmeu dve komunikacije
Fina (fine grain) granularnost
Relativno mala koliina raunskog posla se obavi izmeu dve komunikacije
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 136/142
Opta terminologija (6)
Primeeno ubrzanje (observed speedup) Odnosi se na ubrzanje dobijeno paralelizacijom
nekog sekvencijalnog koda
Definie se kao odnos vremena sekvencijalne i paralelizovane aplikacije
Jedan od najjednostavnijih i najkorienijih indikatora performansi paralelnog programa
Masovno paralelan (massively parallel) Odnosi se na hardver koji obuhvata mnogo procesora
Znaenje rei mnogo raste, a trenutno se moe opisati sa 5 ili 6 cifara
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 137/142
Opta terminologija (7)
Reijsko vreme paralelizacije (parallel overhead) Koliina vremena
potrebna da se koordiniu paralelni zadaci
Ukljuuje faktore kao to su vreme pokretanja i zavretka, sinhronizacija, komunikacija, utroak vremena zbog paralelnih prevodilaca, biblioteka, alata, operativnih sistema
Klaster raunarstvo (cluster computing) Upotreba uobiajenih komponenti (procesora, mrenih
komponenti i slino) za izgradnju paralelnog sistema
Raunarstvo visokih performansi (supercomputing / high performance computing) Upotreba najmonijih raunara za reavanje velikih problema
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 138/142
Opta terminologija (8)
Viejezgarni procesori (multi-core processors) Procesori sa vie jezgara na istom ipu
Skalabilnost (scalability) Odnosi se na mogunost paralelnog sistema
da proporcionalno ubrza svoj rad sa dodavanjem novih procesora (resursa) u sistem
Faktori koji utiu na skalabilnost Hardver, naroito propusni opseg procesora i memorije i
mrena komunikacija
Algoritam i karakteristike same paralelne aplikacije
Reijsko vreme paralelizacije (parallel overhead)
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 139/142
Opta terminologija (9)
Kanjenje (latency) Vreme potrebno da se prazna poruka prenese
iz take A u taku B i najee se izraava u mikrosekundama
Propusni opseg (bandwidth) Predstavlja koliinu podataka koja moe da se prenese
u jedinici vremena i izraava se u MB/s
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 140/142
Izvori o paralelnom programiranju
Literatura i izvori
Blaise Barney, Introduction to Parallel Computing, https://computing.llnl.gov/tutorials/parallel_comp/, 2016.
Ian Foster, Designing and Building Parallel Programs
Grama, Gupta, Karypis, Kumar, Introduction to Parallel Computing
Culler, Singh, Gupta, Parallel Computer Architecture (A Hardware/Software Approach), 1998.
ETF Beograd::Multiprocesorski sistemi::Uvod u paralelno raunarstvo 142/142
https://computing.llnl.gov/tutorials/parallel_comp/