713 matches
-
de un thread specializat care primește un punct de intrare și un triunghi de la care se începe căutarea. Problema de baza este asigurarea comunicării între thread-ul specializat și cel de căutare. Aceasta poate fi rezolvată prin folosirea cozilor în memoria partajată. Dacă aceasta coada este goala thread-ul specializat trebuie sa aștepte. Întrebarea este cât de mare trebuie sa fie coada pentru a evita blocarea thread-urilor de căutare. Pe acest și sistem localizarea trebuie sa dureze mult mai mult decât subdivizarea și
Triangulația Delaunay paralelă () [Corola-website/Science/326511_a_327840]
-
ieftine. Dar sunt câteva dezavantaje cum ar fi lățimea benzii de comunicație redusa și scumpa. In plus nu pot rezolva anumite probleme în paralel. O alta abordare este legata de utilizarea calculatoarelor paralele și utilizarea resurselor acestora într-un mod partajat, ceea ce va permite un transfer al datelor foarte mare. COPACOBANA (Cost-Optimized Parallel Code Breaker, spărgătorul de coduri optimizat din punct de vedere al costurilor) folosește pana la 120 de FPGA-uri Xilinx Spartan-3 conectate printr-o interfața paralela care interfațează
Prelucrare paralela cu FPGA-uri () [Corola-website/Science/326516_a_327845]
-
la defect, și nu se opresc în mod neașteptat. Unele sisteme concurente pun în aplicare o formă de concurență transparentă, în care entitățile computaționale pot concura și partaja o resursă unică, însă complexitatea mecanismului este ascunsă programatorului. Deoarece folosesc resurse partajate, sistemele concurente necesită în general includerea unui "arbitru" în implementare (de multe ori în hardware-ul sistemului), pentru a controla accesul la aceste resurse. Utilizarea de "arbitri" introduce posibilitatea nedeterminării în calculul concurent, care are implicații majore în practică, afectând
Concurență (informatică) () [Corola-website/Science/326517_a_327846]
-
anului 2009 PCIe domină piața; cardurile și plăcile AGP au fost încă produse, dar suportul de driver OEM a fost minim. Calculatoarele devenind din ce in ce mai grafic-orientate, generații succesive de adaptoare grafice începeau să împingă limitele de PCI, un bus cu banda partajata. Această a condus la dezvoltarea de AGP, un "bus" dedicat adaptoarelor grafice. Principalul avantaj al AGP față de PCI este că asigura o cale dedicată între slot și procesorul mai degrabă decât de partajarea PCI bus. În plus la o lipsă
Accelerated Graphics Port () [Corola-website/Science/326050_a_327379]
-
aplicate fiecărui element din flux. În GPU-uri, nodurile și fragmentele sunt elementele din fluxuri și shaderele vertex și fragment sunt nucleele pe care sunt rulate acestea. Deoarece GPU-urile procesează elemente independent nu există posibilitatea de a avea date partajate sau statice. Pentru fiecare element se poate citi de la intrare, se poate executa operații pe el, și se poate afișa la ieșire. Este permis să se aibă intrări și ieșiri multiple, dar niciodată o parte de memorie care poate fi
GPGPU () [Corola-website/Science/322733_a_324062]
-
Arhitecturile cu memorie partajată sunt arhitecturi ce se găsesc in calculatoarele cu memorie partajată, unde există un spațiu comun de memorie pentru toate procesoarele din sistem. Aceste calculatoare mai sunt numite și multiprocesoare, iar datorită gradului mare de interacțiune între procesoare, care împart aceeași
Arhitectură cu memorie partajată () [Corola-website/Science/322787_a_324116]
-
Arhitecturile cu memorie partajată sunt arhitecturi ce se găsesc in calculatoarele cu memorie partajată, unde există un spațiu comun de memorie pentru toate procesoarele din sistem. Aceste calculatoare mai sunt numite și multiprocesoare, iar datorită gradului mare de interacțiune între procesoare, care împart aceeași memorie și între care există o bună sincronizare, se spune
Arhitectură cu memorie partajată () [Corola-website/Science/322787_a_324116]
-
Aceste calculatoare mai sunt numite și multiprocesoare, iar datorită gradului mare de interacțiune între procesoare, care împart aceeași memorie și între care există o bună sincronizare, se spune că aceste sisteme au un cuplaj strâns. În cazul arhitecturilor cu memorie partajată s-a pornit de la mașina von Neumann, iar fiecărui procesor i s-a adăugat o memorie cache, pentru un acces mai rapid la date și instrucțiuni. Deoarece memoria este partajată, dezavantajul major îl constituie scăderea performanțelor sistemului odată cu creșterea numărului
Arhitectură cu memorie partajată () [Corola-website/Science/322787_a_324116]
-
constituie scăderea performanțelor sistemului odată cu creșterea numărului de procesoare. În funcție de resurse, există două tipuri de sisteme, care la rândul lor se împart în următoarele arhitecturi: Calculatoarele din această categorie au ca trăsătură esențială faptul că procesoarele care folosesc o memorie partajată, au același timp de acces la memorie. Totuși un număr prea mare de procesoare poate introduce întârzieri, pentru că apare accesul concurent la aceeași resursă. Procesoarele ce comunică cu memoria sunt conectate prin intermediul unei rețele. Această arhitectură reprezintă o îmbunătățire a
Arhitectură cu memorie partajată () [Corola-website/Science/322787_a_324116]
-
sunt conectate prin intermediul unei rețele. Această arhitectură reprezintă o îmbunătățire a versiunii anterioare. Aici fiecare procesor conține o memorie cache. Dacă datele necesare procesorului se găsesc în cache-ul aferent acestuia, atunci procesorul le utilizeaza, fără a mai apela la memoria partajată. Astfel se reduce timpul de acces și se reduce în anumite proporții si accesul la aceeași resursă aflată în memorie. Dacă unele date din memoria partajată sunt conținute și în memoriile cache, atunci modificarea datelor din memoria comună presupune și
Arhitectură cu memorie partajată () [Corola-website/Science/322787_a_324116]
-
în cache-ul aferent acestuia, atunci procesorul le utilizeaza, fără a mai apela la memoria partajată. Astfel se reduce timpul de acces și se reduce în anumite proporții si accesul la aceeași resursă aflată în memorie. Dacă unele date din memoria partajată sunt conținute și în memoriile cache, atunci modificarea datelor din memoria comună presupune și modificarea datelor din memoriile cache, lucru necesar pentru asigurarea consistenței. În cazul arhitecturii NUMA, fiecare procesor are asociată o memorie locală, iar toate memoriile locale formează
Arhitectură cu memorie partajată () [Corola-website/Science/322787_a_324116]
-
care comunicația între procese are o importanță majoră. Complexitatea algoritmilor paraleli este calculată în funcție de memoria folosită și timp. Ei trebuie să mai optimizeze folosirea unei alte resurse, comunicarea între procese/procesoare. Sunt două modalități prin care procesele/procesoarele comunică: Memorie partajată sau Folosind mesaje. Modelul cu memorie partajată se referă la programarea într-un mediu multiprocesor pentru care comunicația între procese se realizează prin intermediul unei memorii comune. Modelul cu transfer de mesaje este adecvat implementării unui algoritm paralel într-o rețea
Algoritmi de calcul paralel () [Corola-website/Science/322791_a_324120]
-
majoră. Complexitatea algoritmilor paraleli este calculată în funcție de memoria folosită și timp. Ei trebuie să mai optimizeze folosirea unei alte resurse, comunicarea între procese/procesoare. Sunt două modalități prin care procesele/procesoarele comunică: Memorie partajată sau Folosind mesaje. Modelul cu memorie partajată se referă la programarea într-un mediu multiprocesor pentru care comunicația între procese se realizează prin intermediul unei memorii comune. Modelul cu transfer de mesaje este adecvat implementării unui algoritm paralel într-o rețea de calculatoare. Pentru ca un program să poată
Algoritmi de calcul paralel () [Corola-website/Science/322791_a_324120]
-
eliberată atunci cand obiectul RÂII va fi distrus. Pentru acest scop, sunt incluși în TR1 (și marcați pentru a fi incluși în următorul standard C++0x), [ tip smart pointer ce au implementată semantica de memorie comun alocată (shared-memory). Pe scurt, pointerii partajați sunt obiecte C++ ce simulează comportamentul pointerilor clasici, prin suprascrierea operatorilor -> și *, împreună cu o serie de alte instrucțiuni. Pentru a exemplifică implementarea standard, ne vom referii la clasa shared ptr, așa cum este definită în librăria Boost (și cum va fi inclusă
RAII () [Corola-website/Science/322811_a_324140]
-
Lisp face uz de o structură de date numită mediu în felul că valoarea parametrilor nu trebuie să fie substituită în corpul expresiilor lambda invocate. Această a dat voie la partajarea efectelor secundare cum ar fi updatarea structurilor de date partajate dar nu a îngăduit și concurența. Simula 67 a fost un pioner în transmiterea mesajelor pentru calcule, motivat de aplicațiile de simulare a evenimentelor discrete. Aceste aplicații erau mari și nemodulare în limbile de simulare de dinainte. La fiecare pas
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
este rulat pentru a așeza informația într-un buffer de unde poate fi retrasă mai târziu. În anii 1960, întreruperile au început să fie folosite să simuleze execuția concurentă a mai multor programe pe un singur procesor. Având concurență cu memorie partajată, s-a născut problema controlului de concurență. Original, această problemă era privită ca fiind una dintre excusiunile mutuale pe un singur calculator. Edsger Dijkstra a dezvoltat semafoarele și mai târziu, între 1971 și 1973, Tony Hoare si Per Brinch Hansen
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
mai târziu, între 1971 și 1973, Tony Hoare si Per Brinch Hansen developed monitors, pentru a rezolva problema excluziunii mutuale. Totuși, nici una dintre soluțiile aduse nu a dat o structură pentru un limbaj de programare care încapsulează accesul la resursele partajate. Această încapsulare a venit mai târziu printr-un serializer construct ([Hewitt and Atkinson 1977, 1979] and [Atkinson 1980]). Primele modele de calcul ("e.g." Turing machines, Post productions, the lambda calculus, "etc.") au fost bazate pe matematică și folosesc o stare
Modelul Actor () [Corola-website/Science/322835_a_324164]
-
scăzută. Modele productive, performanțe dar și simple de programare paralelă pe sisteme multicore și manycore. Metode de evidențiere a paralelismelor la nivelul limbajelor de programare. Să se pună în evident paralelismele inter-thread-uri, alocările de memorie, accesul la zonele de date partajate și modurile de sincronizare. Transactional Memory TM Tranzacția constituie o secvență de cod care excuta în mod speculative, mai multe citiri și scrieri la nivelul unei memorii partajate. Tranzacția este atomică (se execută din punct de vedere logic în totalitate
Modele de programare paralelă () [Corola-website/Science/330098_a_331427]
-
în evident paralelismele inter-thread-uri, alocările de memorie, accesul la zonele de date partajate și modurile de sincronizare. Transactional Memory TM Tranzacția constituie o secvență de cod care excuta în mod speculative, mai multe citiri și scrieri la nivelul unei memorii partajate. Tranzacția este atomică (se execută din punct de vedere logic în totalitate sau deloc), consistent(din punct de vedere al variabilelor partajate inter-tranzactii) și durabilă (odată începută, nu mai poate fi abordată). Speculativ-rularea programului nu ține cont de secțiunile critice
Modele de programare paralelă () [Corola-website/Science/330098_a_331427]
-
o secvență de cod care excuta în mod speculative, mai multe citiri și scrieri la nivelul unei memorii partajate. Tranzacția este atomică (se execută din punct de vedere logic în totalitate sau deloc), consistent(din punct de vedere al variabilelor partajate inter-tranzactii) și durabilă (odată începută, nu mai poate fi abordată). Speculativ-rularea programului nu ține cont de secțiunile critice. Dacă apar conflicte pe variabilele partajate se vor detecte-firele violate își vor relua execuția tranzactiilor-roll-backs (checkpoint). TM simplifica mult tehnicile de excluziune
Modele de programare paralelă () [Corola-website/Science/330098_a_331427]
-
din punct de vedere logic în totalitate sau deloc), consistent(din punct de vedere al variabilelor partajate inter-tranzactii) și durabilă (odată începută, nu mai poate fi abordată). Speculativ-rularea programului nu ține cont de secțiunile critice. Dacă apar conflicte pe variabilele partajate se vor detecte-firele violate își vor relua execuția tranzactiilor-roll-backs (checkpoint). TM simplifica mult tehnicile de excluziune mutual din programarea paralelă. Avantajul principal nu îl constituie atât performanță rulării, cât corectitudinea acesteia,chiar și în condițiile în care programatrul efectuează în
Modele de programare paralelă () [Corola-website/Science/330098_a_331427]
-
sistemul de operare, fie pornit de utilizator, poate rula pe oricare din procesoarele disponibile. Un aspect important al sistemelor computerizate care implementează acest concept este reprezentat de faptul ca două sau mai multe procesoare identice se conectează la aceeași memorie partajată. Deși conceptul de multiprocesare asimetrică nu mai este implementat în sistemele computerizate din ziua de azi, acesta poate fi aplicat din punct de vedere software, deși arhitectura este de tip simetric. În cadrul unei aplicații se poate alege un anumit procesor
Multiprocesare () [Corola-website/Science/329327_a_330656]
-
care să ruleze procesele importante, partajând anumite task-uri nesemnificative cu celelalte procesoare. Cuplarea puternică a sistemelor bazate pe multiprocesare conțin mai multe unități centrale de procesare care sunt conectate la nivelul magistralei și pot avea acces la o memorie centrală partajată sau pot participa într-o ierarhie de memorie, conținând memorie locală și memorie partajată. Multiprocesoarele la nivel de chip, având numele de multi-core computing, implică plasarea mai multor procesoare pe același chip, fiind cea mai severă formă de cuplare puternică
Multiprocesare () [Corola-website/Science/329327_a_330656]
-
a sistemelor bazate pe multiprocesare conțin mai multe unități centrale de procesare care sunt conectate la nivelul magistralei și pot avea acces la o memorie centrală partajată sau pot participa într-o ierarhie de memorie, conținând memorie locală și memorie partajată. Multiprocesoarele la nivel de chip, având numele de multi-core computing, implică plasarea mai multor procesoare pe același chip, fiind cea mai severă formă de cuplare puternică în contextul multiprocesării. Cuplarea slabă în cadrul sistemelor de tip multiprocesor implică un set de
Multiprocesare () [Corola-website/Science/329327_a_330656]
-
de domenii de aplicații, cum ar fi proiectarea asistată de calculator / fabricarea asistată de calculator, simulare, modelare, și switch-uri (întrerupătoare) de comunicații. Din punct de vedere al memoriei, calculatoarele bazate pe arhitectura MIMD pot fi de două tipuri: cu memorie partajată sau cu memorie distribuită. Această clasificare se referă la modul în care procesoarele MIMD acceseaza memoria. Calculatoarele cu memorie partajată pot fi de tip ierarhic, extins, sau bazat pe magistrală, pe când cele cu memorie distribuită pot avea scheme de interconectare
MIMD () [Corola-website/Science/329519_a_330848]