1_introducere_2013-3

15
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Algoritmi paraleli si distribuiti 1 1. Introducere Calcul paralel = impartirea unei aplicatii in task-uri executate simultan Calcul distribuit = impartirea unei aplicatii in task-uri executate in sisteme diferite (cu resurse diferite) Convergenta paralel distribuit Folosesc din ce in ce mai mult aceleasi arhitecturi Sisteme distribuite folosite in calcul paralel Calculatoare paralele folosite ca servere de mare performanta Au zone de aplicatii comune Problemele de cercetare se intrepatrund si sunt abordate in comun Se foloseste termenul comun de calcul de inalta performanta(HPC – High Performance Computing)

Upload: bogdan-vlad

Post on 22-Oct-2015

5 views

Category:

Documents


3 download

DESCRIPTION

weqwe

TRANSCRIPT

Page 1: 1_introducere_2013-3

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

Algoritmi paraleli si distribuiti 1

1. Introducere

•  Calcul paralel = impartirea unei aplicatii in task-uri executate simultan

•  Calcul distribuit = impartirea unei aplicatii in task-uri executate in sisteme diferite (cu resurse diferite)

•  Convergenta paralel ó distribuit –  Folosesc din ce in ce mai mult aceleasi arhitecturi

•  Sisteme distribuite folosite in calcul paralel •  Calculatoare paralele folosite ca servere de mare performanta

–  Au zone de aplicatii comune –  Problemele de cercetare se intrepatrund si sunt abordate in

comun –  Se foloseste termenul comun de “calcul de inalta

performanta” (HPC – High Performance Computing)

Page 2: 1_introducere_2013-3

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

Algoritmi paraleli si distribuiti 2

De ce folosim APD?

•  creşterea performanţelor •  siguranţa în funcţionare

•  faze cu funcţionalităţi distincte

•  aplicaţii inerent paralele

Page 3: 1_introducere_2013-3

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

Algoritmi paraleli si distribuiti 3

Arhitectura unui sistem de calcul

Modelul clasic “von Neumann”

(C = Control; P = Procesor; M = Memorie)

Ø SISD – Single Instruction Stream, Single Data Stream

Page 4: 1_introducere_2013-3

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

Algoritmi paraleli si distribuiti 4

Arhitecturi Paralele

•  Taxonomia Flynn (1986) Ø SISD – Single Instruction Stream, Single Data Stream Ø SIMD – Single Instruction Stream, Multiple Data

Stream Ø MISD – Multiple Instruction Stream, Single Data

Stream Ø MIMD – Multiple Instruction Stream, Multiple Data

Stream •  Importanta pentru implementarea algoritmilor paraleli si

distribuiti

Page 5: 1_introducere_2013-3

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

Algoritmi paraleli si distribuiti 5

SIMD

•  Implementat ca

–  sisteme cu memorie partajata - Shared Memory (PRAM) – multiprocesoare interconectate - Interconnected

Multiprocessors

Page 6: 1_introducere_2013-3

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

Algoritmi paraleli si distribuiti 6

SIMD (2)

•  Shared memory (Parallel Random Access Machine - PRAM)

– EREW - Exclusive Read Exclusive Write – CREW - Concurrent Read Exclusive Write – ERCW - Exclusive Read Concurrent Write – CRCW - Concurrent Read Concurrent Write

•  Influenteaza performanta

– Exemplu: citirea valorii unei variabila partajate •  Un pas in CREW, CRCW •  log N pasi in EREW, ERCW

Page 7: 1_introducere_2013-3

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

Algoritmi paraleli si distribuiti 7

v

P1 P2 P3 P4

X1 X2 X3 X4 A v

v v

v v

v v

v

Memoria comuna

citirile unei celule sunt exclusive (nu se pot face simultan)

•  Valoarea este in variabila A in memoria comuna

•  Foloseste X1, X2,… din memoria comuna pentru copiere

–  numarul de còpii se dubleaza la fiecare pas è pentru N procesoare operatia se termina dupa log N pasi

Page 8: 1_introducere_2013-3

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

Algoritmi paraleli si distribuiti 8

SIMD (4)

•  Retele de interconectare

•  topologii –  tablou –  arbore –  cub –  hiper-cub

•  Functionare; la fiecare cilcu, fiecare procesor –  Citeste intrarile –  Face calcule si modifica memoria proprie –  Scrie iesirile

Page 9: 1_introducere_2013-3

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

Algoritmi paraleli si distribuiti 9

Arbore

Page 10: 1_introducere_2013-3

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

Algoritmi paraleli si distribuiti 10

Tablou

a[i,j] = (a[i-1,j]+ a[i+1,j]+ a[i,j-1]+ a[i,j+1])/4

Page 11: 1_introducere_2013-3

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

Algoritmi paraleli si distribuiti 11

MISD

•  Fara relevanta practica

Page 12: 1_introducere_2013-3

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

Algoritmi paraleli si distribuiti 12

MIMD

•  Implementata ca Multi-calculatoare (memorie distribuita) sau Multi-procesoare (memorie partajata)

Page 13: 1_introducere_2013-3

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

Algoritmi paraleli si distribuiti 13

MIMD (2)

•  "Shared memory" –  Uniform Memory Access (UMA) –  Non-Uniform Memory Access (NUMA) –  cache coherent Non-Uniform Memory Access (ccNUMA)

•  "Multi-computer" –  Massively Parallel Processors (MPP) –  Network Of Workstations (NOW)

Page 14: 1_introducere_2013-3

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

Algoritmi paraleli si distribuiti 14

Metode de programare (1)

•  Date partajate (Shared data)

Page 15: 1_introducere_2013-3

Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare

Algoritmi paraleli si distribuiti 15

Metode de Programare (2)

•  Transmitere de mesaje - Message passing