Algoritmi Paraleli și Distribuiți - Introducere
40 Questions
0 Views

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 descrie corect accesul la memorie în sistemele UMA?

  • Toate procesoarele accesează aceeași memorie partajată cu latență uniformă. (correct)
  • Memoria este distribuită, iar accesul depinde de locația procesorului.
  • Fiecare procesor are propria sa memorie privată.
  • Procesoarele accesează memoria printr-o rețea complexă.
  • Ce tip de arhitectură de memorie este specific sistemelor NUMA?

  • Memoria locală a fiecărui procesor.
  • Memoria accesată prin intermediul unui singur bus.
  • Memoria distribuită cu acces neuniform. (correct)
  • Memoria partajată cu acces uniform.
  • Care dintre următoarele topologii de rețea nu este menționată ca fiind utilizată în sistemele de calcul paralel?

  • Tablou
  • Stea (correct)
  • Cub
  • Arbore
  • Ce tip de paralelism permite executarea simultană a mai multor instrucțiuni pe diferite seturi de date?

    <p>Paralelism la nivel de instrucțiune.</p> Signup and view all the answers

    Ce caracteristică definește multiprocesarea la nivel de task, spre deosebire de multithreading?

    <p>Task-urile (procesele) pot comunica între ele.</p> Signup and view all the answers

    Care dintre următoarele NU este un beneficiu al calculului paralel și distribuit?

    <p>Reducerea complexității algoritmilor.</p> Signup and view all the answers

    Care dintre următoarele afirmații despre variabilele atomice este adevărată ?

    <p>Variabilele atomice garantează ca o operație de 64 biți va fi executată în întregime, chiar și pe un procesor de 32 biți.</p> Signup and view all the answers

    Care dintre următoarele poate fi considerat un mecanism de sincronizare ?

    <p>Variabilele atomice</p> Signup and view all the answers

    Care dintre următoarele este un exemplu de condiție de cursă în contextul specificat?

    <p>Două procese încearcă să acceseze simultan un cont bancar.</p> Signup and view all the answers

    Ce este o secțiune critică?

    <p>Un bloc de cod care este accesat de un singur proces la un moment dat.</p> Signup and view all the answers

    Ce rol au semafoarele în sincronizarea proceselor ?

    <p>Semafoarele blochează procesele care încearcă să acceseze simultan resursele.</p> Signup and view all the answers

    Care este diferența dintre un semafor binar (Mutex) și un semafor generic?

    <p>Semafoarele binare permit accesul doar unui singur proces la un moment dat, în timp ce semafoarele generice permit accesul mai multor.</p> Signup and view all the answers

    Care dintre următoarele opțiuni descrie corect funcționarea semaforului binar (Mutex) ?

    <p>Mutex blochează accesul la o resursă partajată până când procesul care a obținut accesul la resursă o eliberează.</p> Signup and view all the answers

    Care dintre următoarele exemple este un exemplu de utilizare a barierei în sincronizarea proceselor ?

    <p>Verificarea dacă toate procesele au terminat o sarcină specifică.</p> Signup and view all the answers

    Ce este o variabilă atomică?

    <p>O variabilă care este modificată atomic, adică modificarea este indivizibilă și nu poate fi întreruptă de alte procese.</p> Signup and view all the answers

    Care dintre următoarele reprezintă o limitare a programării secvențiale legată de viteza de transmisie a datelor?

    <p>Viteza luminii ca limită maximă</p> Signup and view all the answers

    Care dintre următoarele tehnologii este un exemplu de mediu de procesare paralelă și distribuită?

    <p>Tehnologia Blockchain</p> Signup and view all the answers

    Ce tip de arhitectură de procesor este specifică unui sistem SISD (Single Instruction Stream, Single Data Stream)?

    <p>Un calculator clasic one-core</p> Signup and view all the answers

    În contextul memoriei partajate, ce înseamnă termenul 'CREW'?

    <p>Concurrent Read Exclusive Write</p> Signup and view all the answers

    Ce reprezintă acronimul MIMD în taxonomia lui Flynn?

    <p>Multiple Instruction Streams, Multiple Data Streams</p> Signup and view all the answers

    Ce tip de memorie partajată permite ca o variabilă să fie citită într-un singur pas, dar necesită log(N) pași pentru a fi citită într-un alt context anume?

    <p>CR – Concurrent Read</p> Signup and view all the answers

    Care dintre următoarele opțiuni descrie cel mai bine modul în care majoritatea aplicațiilor utilizează thread-uri în prezent?

    <p>Folosesc mai multe thread-uri</p> Signup and view all the answers

    Ce semnifică termenul 'multi-core' în contextul procesoarelor moderne?

    <p>Mai multe nuclee de procesare pe același chip</p> Signup and view all the answers

    Care dintre următoarele NU este o caracteristică comună a supercomputerelor?

    <p>Număr redus de procesoare</p> Signup and view all the answers

    Ce concept descrie executarea mai multor task-uri simultan?

    <p>Multitasking</p> Signup and view all the answers

    Care este o caracteristică principală a multi-threading-ului?

    <p>Thread-urile împărtășesc memoria procesului</p> Signup and view all the answers

    Ce se întâmplă în cazul unei condiții de competiție?

    <p>Valoarea finală poate varia în funcție de ordinea execuției</p> Signup and view all the answers

    Ce politică este utilizată pentru planificarea thread-urilor de către sistemul de operare?

    <p>Timp esalonat</p> Signup and view all the answers

    Care dintre următoarele afirmații este adevărată despre hyperthreading?

    <p>Crește numărul de thread-uri care pot rula simultan pe un procesor</p> Signup and view all the answers

    Poate un sistem de operare să suporte multitasking pe mai multe core-uri?

    <p>Da, este posibil</p> Signup and view all the answers

    Cum se comportă thread-urile în cadrul unei aplicații multi-threaded?

    <p>Thread-urile împărtășesc același bloc de control al procesului</p> Signup and view all the answers

    Ce reprezintă o condiție de competiție în multi-threading?

    <p>O situație unde mai multe thread-uri accesează resurse comune simultan</p> Signup and view all the answers

    Care este valoarea finală a lui a dacă cele două thread-uri rulează simultan și fiecare adaugă 2 la a?

    <p>4</p> Signup and view all the answers

    Ce se va întâmpla cu variabila a dacă Thread 1 termină prima operațiune înainte de Thread 2?

    <p>Va fi egal cu 2.</p> Signup and view all the answers

    Ce este un race condition în contextul thread-urilor?

    <p>Un conflict între două sau mai multe thread-uri care accesează aceleași resurse.</p> Signup and view all the answers

    Dacă cele două thread-uri utilizează aceleași regiuni de memorie, ce se poate întâmpla cu rezultatul final al lui a?

    <p>Rezultatul poate varia nelimitat între 0 și 4.</p> Signup and view all the answers

    Când ambele thread-uri încarcă aceeași valoare a lui a, ce se întâmplă cu registrele eax?

    <p>Unul dintre registre este 0 iar celălalt este 2.</p> Signup and view all the answers

    Care este rezultatul executării thread-urilor asupra valorii a dacă unul dintre ele modifică a înainte de celălalt?

    <p>Valoarea finală va fi influențată de ordinea de execuție.</p> Signup and view all the answers

    Ce strategie poate fi utilizată pentru a evita un race condition?

    <p>Sincronizarea thread-urilor.</p> Signup and view all the answers

    Ce se poate deduce despre valorile eax în timpul execuției thread-urilor?

    <p>Valorile eax pot fi diferite datorită execuției concurente.</p> Signup and view all the answers

    Study Notes

    Algoritmi Paraleli și Distribuiți - Introducere

    • Motivul programării paralele și distribuite:
      • Timpul de execuție mai scurt.
      • Abordarea problemelor de dimensiuni mari
      • Resurse accesibile aflate la distanţă.
      • Reducerea costurilor.
      • Toleranță la erori/defecte/probleme
      • Ascunderea timpilor de așteptare
      • Redundanţă
      • Scalabilitatea
      • Scaderea timpului de răspuns
      • Securitate îmbunătățită.
    • Informatii despre limitările programării secvențiale:
      • Viteza de transmisie este limitată de viteza luminii.
      • Miniaturizarea are o frontieră - tranzistor de dimensiunea unui atom. (A reda ceva la scară redusă)
      • Costurile de cercetare și proiectare sunt enorme.
    • Tehnologiile paralele și distribuite: Blockchain, Peer-to-Peer, Quad-Core.
    • Alte tehnologii disponibile ca suport in curs: Eclipse, Visual Studio.
    • Aplicatii distribuite: Dropbox, Spark, Boinc.
    • Aproape toate aplicațiile folosesc mai multe thread-uri.
    • Taxonomia Flynn clasifică arhitecturile de calcul în funcție de numărul de fluxuri de instrucțiuni și de date, având ca scop îmbunătățirea paralelismului și a procesării eficiente a informațiilor.
    • Noțiuni de bază:
      • SISD (Single Instruction Single Data) se referă la un model de arhitectură în care un singur procesor execută o singură instrucțiune pe un singur set de date.
        • Arhitectura von Neumann se referă la un model de arhitectură de calcul care integrează stocarea programelor și a datelor într-un singur sistem, optimizând performanța și eficiența procesării.
        • Calculatorul Clasic one-core
      • SIMD (Single Instruction Multiple Data) permite într-o singură instrucțiune procesarea mai multor elemente de date simultan, fiind eficient în procesarea vectorială.
        • Suportul SSE; procesoare GPU
      • MISD (Multiple Instruction Single Data) implică aplicarea mai multor instrucțiuni la același set de date.
        • Sisteme specializate
      • MIMD (Multiple Instruction Multiple Data) face posibilă executarea simultană a diferitelor instrucțiuni pe diferite seturi de date, adaptându-se bine la sarcini variate și complexitate crescută.
        • Procesoare actuale
    • Memoriile partajate sunt modalități prin care multiple procesore sau nuclee pot accesa aceeași zonă de memorie. În arhitectura Uniform Memory Access (UMA), fiecare procesor are același timp de acces la memorie, ceea ce oferă o realizare simetrică și eficientă a resurselor.
    • Memorie distribuita: Pe de altă parte, arhitectura Non-Uniform Memory Access (NUMA) permite ca procesorii să aibă timpi de acces diferiți la memoriile asociate, în funcție de distanța față de sursa de date, ceea ce poate influența și optimiza performanța în funcție de topologia sistemului.
    • Tipuri de paralelism:
      • La nivel de bit - operatii logice
      • La nivel de instructiune (ex. adunarea a doi vectori)
      • La nivel de task:
        • Multi-Tasking(pot comunica și procesele)
        • Multi-Threading
    • Threads vs cores
      • Procesele reprezintă instanțe de program.
      • Un proces poate avea mai multe fire de execuție (threads).
      • Fir de execuție (thread) - Flux de control secvențial în cadrul unui proces
      • Există mai multe modalități de execuție a thread-urilor: în paralel, de către sistemul de operare (time sharing), prioritate.
      • Hyperthreading - tehnologie pentru utilizarea mai eficientă a resurselor hard.
    • Primitive de sincronizare:
      • variabile atomice,
      • semafoare
        • semafoare binare (mutexe)
        • secțiuni critice
      • bariere
    • Excluderea mutuală, cunoscută și sub denumirea de mutex, este esențială pentru a preveni accesul simultan la resurse partajate.
      • Algoritmul lui Dekker:
        • Este unul dintre primele algoritmi care oferă o soluție la problema excluziunii mutuale.
        • Funcționează doar cu două fire de execuție
        • Nu există starvation (adică un proces nu va fi blocat la nesfârșit).
      • Algoritmul lui Dijkstra este o extensie a ideilor lui Dekker și oferă o soluție similară, însă este mai complex și permite implementarea pentru un număr mai mare de procese.
      • Algoritmul lui Peterson, pe de altă parte, este elegant și simplu, fiind destinat de asemenea pentru două procese, și se bazează pe utilizarea a două variabile pentru a controla accesul la secțiunile critice.

    Alte notiuni

    • O situație de concurență în care rezultatul final al unui proces depinde de ordinea în care procesele concurente sunt executate. Aceasta poate duce la comportamente neprevăzute și erori, cum ar fi pierderea datelor sau rezultatele incorecte. Race condition apare adesea în sisteme de operare sau în programele multi-thread, unde mai multe fire de execuție accesează simultan resurse partajate fără o sincronizare adecvată. Prevenirea acestor condiții de cursă se poate realiza prin utilizarea de mecanisme de sincronizare, cum ar fi mutex-uri, semafoare sau blocaje. Evaluarea și designul sistemelor trebuie să includă măsuri pentru a evita apariția acestor probleme, asigurând astfel corectitudinea și stabilitatea aplicațiilor.
    • Alte primitive de procesare: lock(), unlock()

    Studying That Suits You

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

    Quiz Team

    Related Documents

    Description

    Acest curs oferă o introducere în algoritmii paraleli și distribuiți, explorând conceptele fundamentale și aplicațiile acestora. Profesorul Ciprian Dobre va ghida studenții printr-un program structurat, care include teme, laboratoare și evaluări. Este esențial să participați pentru a obține nota minimă necesară în semestrul universitar.

    More Like This

    Parallel Algorithms and PRAM
    5 questions
    Parallel Systems and Algorithms Lecture 1
    15 questions
    Parallel Algorithms and Concurrency
    10 questions
    Use Quizgecko on...
    Browser
    Browser