Algoritmi Paraleli și Distribuiți

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Care dintre următoarele nu este o funcție a transmiterii de mesaje în contextul algoritmilor distribuiți?

  • Verificarea integrității datelor transmise. (correct)
  • Facilitarea interacțiunii între procese.
  • Sincronizarea proceselor prin mesaje care nu pot fi recepționate înainte de a fi transmise.
  • Asigurarea că datele ajung de la transmițător la receptor.

Care este o caracteristică definitorie a comunicării asincrone prin mesaje, conform textului?

  • Operația `send` este blocantă, necesitând confirmarea primirii.
  • Canalele de comunicare nu mențin ordinea mesajelor trimise.
  • Operația `receive` este blocantă, așteptând sosirea unui mesaj. (correct)
  • Canalele de comunicare pot pierde mesaje.

În modelul Replicated Workers pentru integrare numerică, ce rol are procesul Administrator?

  • Calculează ariile parțiale și le trimite procesului principal.
  • Împarte intervalul inițial în subintervale și distribuie aceste subintervale proceselor `Lucru`. (correct)
  • Calculează integral aria sub o curbă folosind metoda trapezelor.
  • Realizează comunicarea inter-proces, evitând blocajele.

Ce se întâmplă dacă un proces Lucru din modelul Replicated Workers primește un subinterval de la Administrator și consideră că diferența dintre aria totală și suma ariilor parțiale este 'mică'?

<p>Trimite rezultatul ariei procesului <code>Administrator</code> și încheie lucrul. (B)</p> Signup and view all the answers

Cum se diferențiază comunicarea sincronă de cea asincronă, în contextul transmiterii de mesaje?

<p>În comunicarea sincronă, operația <code>send</code> este blocantă, în cea asincronă nu. (D)</p> Signup and view all the answers

În exemplul de comunicare producător/consumator, ce scop are utilizarea synch_send în procesul prod?

<p>Pentru a trimite date către procesul <code>cons</code> și a se asigura că acestea au fost recepționate înainte de a continua. (D)</p> Signup and view all the answers

Care este principalul dezavantaj al comunicării sincrone, menționat în text?

<p>Reduce concurența datorită blocajelor pe operatia <code>send</code>. (B)</p> Signup and view all the answers

Ce reprezintă chan în contextul programării distribuite, conform textului?

<p>Un canal de comunicare între procese. (A)</p> Signup and view all the answers

În exemplul de comunicare asincronă Filtru, ce condiție determină procesul car_linii să trimită un rând de caractere procesului de ieșire?

<p>Când se întâlnește caracterul CR (carriage return) sau s-a ajuns la lungimea maximă a liniei. (B)</p> Signup and view all the answers

Care este funcția operației empty(nume_canal) în contextul textului?

<p>Verifică dacă un canal de comunicare este gol. (D)</p> Signup and view all the answers

Conform modelului Foster, care dintre următorii timpi contribuie la timpul total de execuție?

<p>Timpul de calcul, timpul de comunicare și timpul idle (B)</p> Signup and view all the answers

Ce factor afectează în mod direct timpul de calcul ($T_{comp}$)?

<p>Numărul de procesoare implicate și dimensiunea problemei (C)</p> Signup and view all the answers

Care este presupunerea făcută în text, referitor la costurile timpului de comunicare, între procesoare și în interiorul unui procesor?

<p>Au costuri comparabile (C)</p> Signup and view all the answers

În formula $T_{msg} = t_s + t_wL$, ce reprezintă $t_w$?

<p>Costul transmiterii per word (A)</p> Signup and view all the answers

Ce reprezintă 'S' în modelul revizuit al timpului de comunicare $T_{msg-b} = t_s + t_wSL$?

<p>Numărul de procesoare care comunică concurent pe același canal (D)</p> Signup and view all the answers

Care este scopul principal al algoritmului Floyd în forma sa secvențială?

<p>Să calculeze cele mai scurte drumuri între toate perechile de noduri dintr-un graf (C)</p> Signup and view all the answers

În contextul timpului idle ($T_{idle}$), ce înseamnă 'overlapping computation and communication'?

<p>Efectuarea simultană a calculelor și a transferului de date, pentru a reduce timpul de așteptare (D)</p> Signup and view all the answers

Care dintre următoarele afirmații descrie cel mai bine 'timpul total de execuție' în contextul algoritmilor distribuiți?

<p>Timpul scurs de la începerea primului proces până la terminarea ultimului proces (A)</p> Signup and view all the answers

În algoritmul Floyd, ce reprezintă $I[i,j]^k$?

<p>Cel mai scurt drum între nodurile i și j, folosind drumuri formate din noduri intermediare până la k (A)</p> Signup and view all the answers

În modelul revizuit de comunicare, cum afectează numărul de procesoare care comunică simultan pe același canal timpul de transmitere a unui mesaj?

<p>Timpul de comunicare pe mesaj creşte proporțional cu numărul de procesoare concurente (C)</p> Signup and view all the answers

Flashcards

Comunicarea prin mesaje

Transmiterea de date între procesoare, permițând schimbul de informații și coordonarea acțiunilor.

Canal de mesaje

Un container care stochează mesaje, asigurând o ordine specificată de primire a lor.

Comunicare asincronă

Un model de comunicare unde un proces nu are garanția că un mesaj a fost primit.

Comunicare sincronă

Un model de comunicare unde un proces se blochează până când un mesaj este primit.

Signup and view all the flashcards

Canalele în modelaseincron

O coadă FIFO (First In, First Out) cu capacitate nelimitată, care păstrează mesajele în ordinea primirii.

Signup and view all the flashcards

send (asincron)

O operație care trimite un mesaj printr-un canal, fără a se opri până când mesajul este primit.

Signup and view all the flashcards

receive (asincron)

O operație care primește un mesaj dintr-un canal, blocând procesul până când mesajul este disponibil.

Signup and view all the flashcards

synch_send (sincron)

O operație care trimite un mesaj printr-un canal, blocând procesul până când mesajul este primit.

Signup and view all the flashcards

receive (sincron)

O operație care primește un mesaj dintr-un canal, blocând procesul până când mesajul este disponibil.

Signup and view all the flashcards

Modelul Replicated Workers

Un model de programare distribuită în care mai multe procesoare execută aceeași sarcină, obținând rezultate parțiale care sunt apoi combinate.

Signup and view all the flashcards

Timpul total de executie

Timpul total scurs de la inceperea executiei primului proces pana la terminarea executiei ultimului proces.

Signup and view all the flashcards

Timpul de calcul - Tcomp

Timpul scurs cu efectuarea calculelor in cadrul proceselor.

Signup and view all the flashcards

Timpul de comunicare - Tcomm

Timpul scurs cu transmiterea de date intre procesoare.

Signup and view all the flashcards

Timpul idle - Tidle

Timpul in care procesoarele sunt inactive, asteptand date sau calcule.

Signup and view all the flashcards

Costul comunicarii - Tmsg-b

O masura a costului comunicarii care ia in considerare competitia pentru banda intre procesoare.

Signup and view all the flashcards

Distanta

O masura a distantei dintre procesoare, care poate fi inter-procesor sau intra-processor.

Signup and view all the flashcards

Modelul revizuit pentru costul comunicarii

Un model care ia in considerare costul comunicarii si competitia pentru banda.

Signup and view all the flashcards

Algoritmul Floyd

Un algoritm de calcul al distantei minime dintre noduri intr-un graf.

Signup and view all the flashcards

Algoritmul Floyd paralel

O varianta paralela a algoritmului Floyd, care descompune matricea de distanta pe randuri.

Signup and view all the flashcards

Scaling

Scalarea problemei sau a numarului de procesoare poate afecta performanta cache-ului si eficienta pipelining-ului procesorului.

Signup and view all the flashcards

Study Notes

Comunicarea prin Mesaje

  • Transmiterea de mesaje îndeplinește două funcții: comunicarea (transmiterea datelor de la emițător la receptor) și sincronizarea (un mesaj nu poate fi recepționat înainte de a fi transmis).
  • Canalele sunt obiecte puse în comun de procese.
  • Programele distribuite utilizează comunicarea prin mesaje.

Comunicare Asincronă prin Mesaje

  • Canalele păstrează ordinea mesajelor.
  • Canalele nu pierd mesajele.
  • Canalele sunt cozi FIFO (First-In, First-Out) de mesaje cu capacitate nelimitată.
  • Operația send nu este blocantă.
  • Operația receive este blocantă.

  • Declarație generală: chan nume_canal (tip1 id1,..., tipn idn).
  • Grup indexat de canale: chan rezultat [1:n](int).
  • Operații: send nume_canal(expresie₁,..., expresien), receive nume_canal(variabila₁,..., variabilan), empty(nume_canal).

Modelul Replicated Workers

  • Modelul este prezentat ca un exemplu de aplicare a algoritmilor distribuiți.

  • Un administrator gestionează un set de procese "Lucru(i)" care rulează în paralel.

  • O structură de canal sac este utilizată pentru coordonarea muncii.

  • Integrarea numerică este abordată prin două variante: secvențială și distribuită.

  • Varianta secvențială calculează iterativ cu dublarea numărului de subintervale.

  • Varianta distribuită împarte intervalul în subintervale pentru a se calcula ariile, compare suma și continuă calcule separate dacă este necesar.

Comunicarea sincrona prin mesaje

  • Caracteristici similare cu comunicarea asincrona
  • DIFERENTA: si operaţia send este blocantă transmitatorul se blocheaza pana cand mesajul este receptionat

Complexitatea Algoritmilor Distribuiți

  • Folosirea modelului Foster pentru analizarea complexității.
  • Modelul Foster evidențiază etapele de calcul și comunicare în algoritmi distribuiți.
  • Timpul total de execuție este funcție de numărul de procesoare (P) și de complexitatea (computationala, comunicationala și inactiva)

Modelul Foster

  • Diagramă care arată activitatea de calcul și comunicare în timp, pentru un algoritm ilustrat în diagrama Foster.

Timpul de Calcul

  • Timpul de calcul depinde de dimensiunea problemei, numărul de procesoare, și caracteristicile acestora.
  • Scalarea problemie sau a numărului de procesoare poate modifica performanța cache-ului și pipelining-ului procesorului.

Timpul de Comunicare (Tcomun)

  • Timpul de comunicare (Tcomun) reflectă timpul petrecut în transferul datelor între procesoare (inter-procesor sau intra-procesor).
  • Există presiupuneri despre costuri comparabile.
  • Se utilizează măsurători experimentale (RTT - round-trip time) pentru a analiza timpul de comunicare în funcție de dimensiunea mesajelor.

Timpul de Așteptare (Tidle)

  • Timpul de așteptare (Tidle) rezultă din lipsa calculelor (load balancing), datelor sau lipsa coordonării mesajelor (overlapping computation and communication).

Modelul Revizuit pentru Costul de Comunicare

  • Modelul comunicării simplificate: Tmsg = ts + twL.
  • Există competiție pentru bandă : Tmsg-b = ts + twSL, unde SL este costul de redirecționare în bandă.
  • S este numărul de procesoare care comunică concurent pe același canal.

Exemplu - Algoritmul Floyd (Sequential and Parallel)

  • Algoritmul Floyd prezentat atât în variantă secvențială cât și paralelă, cu detalii despre descompunerea algoritmului pentru procesare paralelă.

Modelul LogP

  • Este un model general utilizat pentru predicția performanțelor aplicațiilor paralele..
  • Include factori ca: latența (L), overhead-ul (o), g-gap, numărul de procesoare (P).
  • Modelul este prezentat cu un exemplu de difuzarea unei valori.

Exemplu - Difuzarea unei valori

  • Folosind modelul PRAM, difuzarea unei valori.
  • Presupuneri despre g, o și L, rezultatul difuzării.
  • Exemplu cu 8 procesoare și diagramă care ilustrează cum funcționează algoritmul.

Comparație

  • Comparație grafică a execuției algoritmelor.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

More Like This

Parallel Systems and Algorithms Lecture 1
15 questions
Algoritmi Paraleli și Distribuiți - Introducere
40 questions
Algoritmi Paraleli și Distribuiți
45 questions
Use Quizgecko on...
Browser
Browser