161 matches
-
algoritmului și alocarea proceselor. Partiționarea reprezintă specificarea setului de taskuri care implementează algoritmul în modul cel mai eficient pe o mașină de calcul paralel. Alocarea reprezintă modul de distribuire a task-urilor procesoarelor. Performanța unui algoritm de calcul paralel depinde de granularitate. Aceasta se referă la mărimea task-ului în comparație cu timpul necesar comunicației și sincronizării datelor. Dacă timpul necesar comunicației și sincronizării este mai mare decât timpul de execuție al task-ului atunci granularitatea este mică. O soluție este partiționarea programului în taskuri de
Algoritmi de calcul paralel () [Corola-website/Science/322791_a_324120]
-
task-urilor procesoarelor. Performanța unui algoritm de calcul paralel depinde de granularitate. Aceasta se referă la mărimea task-ului în comparație cu timpul necesar comunicației și sincronizării datelor. Dacă timpul necesar comunicației și sincronizării este mai mare decât timpul de execuție al task-ului atunci granularitatea este mică. O soluție este partiționarea programului în taskuri de dimensiuni mai mari cu o granularitate grosieră. Dezavantajul acestei metode este reducerea gradului de paralelism. Îmbunătățirea performanțelor unui algoritm de calcul paralel se face prin găsirea unui compromis între mărimea
Algoritmi de calcul paralel () [Corola-website/Science/322791_a_324120]
-
task-ului în comparație cu timpul necesar comunicației și sincronizării datelor. Dacă timpul necesar comunicației și sincronizării este mai mare decât timpul de execuție al task-ului atunci granularitatea este mică. O soluție este partiționarea programului în taskuri de dimensiuni mai mari cu o granularitate grosieră. Dezavantajul acestei metode este reducerea gradului de paralelism. Îmbunătățirea performanțelor unui algoritm de calcul paralel se face prin găsirea unui compromis între mărimea task-ului și consumul suplimentar de resurse. De obicei este găsită o corelare între numărul de taskuri
Algoritmi de calcul paralel () [Corola-website/Science/322791_a_324120]
-
paralel se face prin găsirea unui compromis între mărimea task-ului și consumul suplimentar de resurse. De obicei este găsită o corelare între numărul de taskuri, dimensiunea acestora și menținerea la minimu necesar a consumului suplimentar de resurse. Cea mai bună granularitate este cea obținută prin adaptarea algoritmului pe platforma hardware pe care rulează. În majoritatea cazurilor overhead-ul asociat comunicațiilor și sincronizării este mare în comparație cu timpul de execuție caz în care se preferă o granularitate grosieră. Partiționarea unui algoritm se poate face
Algoritmi de calcul paralel () [Corola-website/Science/322791_a_324120]
-
consumului suplimentar de resurse. Cea mai bună granularitate este cea obținută prin adaptarea algoritmului pe platforma hardware pe care rulează. În majoritatea cazurilor overhead-ul asociat comunicațiilor și sincronizării este mare în comparație cu timpul de execuție caz în care se preferă o granularitate grosieră. Partiționarea unui algoritm se poate face în două moduri: Alocarea reprezintă distribuirea de taskuri procesoarelor. Planificarea ca și în cazul partiționării poate fi statică sau dinamică. În cazul alocării statice sarcinile și ordinea de execuție sunt cunoscute înainte de execuție
Algoritmi de calcul paralel () [Corola-website/Science/322791_a_324120]
-
document în timp ce utilizatorul scrie. Conceptul de multithreading poate fi folosit și pentru accelerarea unui singur thread prin utilizarea, atunci când procesorul nu este foarte solicitat, a execuției speculative pe mai multe căi și a firelor de execuție ajutătoare. Principiul multithreading-ului cu granularitate fină stă în faptul că fiecare instrucțiune va fi preluată de un alt fir de execuție, astfel neavând două instrucțiuni din același fir de execuție prezente în același timp în pipeline. Avantajul major al acestui tip de procesor este faptul
Multithreading () [Corola-website/Science/329331_a_330660]
-
execuție câte etape are pipe-ul, altfel fiind mai ineficiente decât procesoarele scalare. Complexitatea hardware crește deoarece fiecare registru trebuie duplicat pentru fiecare fir de execuție, însă complexitatea pipeline-ului scade deoarece fiecare instrucțiune este independentă de toate celelalte. -ul cu granularitate aspră gestionează în mod similar firele de execuție din pipeline, însă fiecare nouă instrucțiune poate deriva din orice fir de execuție, independent de instrucțiunile aflate în pipeline. Acest lucru are ca rezultat o eficiență identică între acest tip de procesor
Multithreading () [Corola-website/Science/329331_a_330660]
-
în care primul menționat rulează un singur fir de execuție. Avantajul major al acestui tip de procesare este evident în configurațiile software care necesită puține fire de execuție, fiind mai eficient decât procesoarele scalare sau cele care prezintă multithreading cu granularitate fină, având totuși o complexitate hardware mult mai mare. Un procesor cu mai multe fire de execuție, capabil să proceseze multiple instrucțiuni din surse diferite poartă numele de procesor cu multithreading simultan. Această tehnică prezintă cea mai mare flexibilitate în
Multithreading () [Corola-website/Science/329331_a_330660]
-
multe fire de execuție, capabil să proceseze multiple instrucțiuni din surse diferite poartă numele de procesor cu multithreading simultan. Această tehnică prezintă cea mai mare flexibilitate în acoperirea ineficiențelor procesoarelor cu un singur fir de execuție, depășind arhitecturile multithreading cu granularitate fină sau aspră, deoarece aceasta permite execuția unei instrucțiuni din orice fir de execuție în paralel cu procesarea altei instrucțiuni din alt fir de execuție.
Multithreading () [Corola-website/Science/329331_a_330660]
-
vor beneficia de tehnologia "thread-level parallelism" (TLP) care presupune rularea diverselor thread-uri in paralel, în plus față de ILP ("instruction level parallelism"). "Instruction (instrucțiune)". Toate procesele din cadrul aplicației manifestă paralelism între instrucțiuni individuale. Acest nivel nu este prezentat în figură întrucât granularitatea se rezumă la simple instrucțiuni. Arhitecturile superscalare pot beneficia cu succes de acest tip de paralelism. "Basic Block (bloc de bază)". Grupuri mici de instrucțiuni prezente pe o ramură de execuție poartă numele de blocuri de bază. Arhitecturile tradiționale nu
Chip multiprocessor () [Corola-website/Science/329357_a_330686]
-
dedicate precum POSIX). "Processes (procese)". Dincolo de task-urile complet independente de procesele sistemului de operare, toate aplicațiile au propriul lor spațiu separat de adrese virtuale. Exploatarea paralelismului la acest nivel este precum exploatarea paralelismului la nivel de task, cu excepția faptului că granularitatea este mai mare. Apariția CMP schimbă spectrul tehnicilor de paralelizare. Spre deosebire de convenționalele uniprocesoare, chip-urile multicore pot utiliza TLP, și, prin urmare, pot profita de thead-uri pentru utilizarea paralelismului. În plus, datorită latențelor de comunicare mici dintre unitățile core ale
Chip multiprocessor () [Corola-website/Science/329357_a_330686]