Fire multiplu
Tehnica cunoscută sub numele de multithreading ( în engleză : multithreading ) permite unităților centrale de procesare (CPU) să mărească performanța nucleului unui procesor fără a fi nevoie să modifice frecvența. Procesorul, bazat pe această tehnică, poate procesa mai multe sarcini simultan. Fiecare fir, din punct de vedere tehnic, este un fir care este legat de un proces și acestea constituie, la rândul lor, un program individual. Obiectivul principal al acestei tehnici este de a optimiza CPU, reducând timpii de așteptare între procese [ 1 ] .
Paradigma multithreading a devenit mai populară pe măsură ce eforturile de a continua paralelismul la nivel de instruire au stagnat de la sfârșitul anilor 1990 . Acest lucru a permis conceptului de calcul de performanță să reapară la proeminență din domeniul mai specializat al procesării tranzacționale :
- Deși este foarte dificil să accelerezi un singur thread sau un singur program, majoritatea sistemelor informatice sunt de fapt multitasking între mai multe fire sau programe.
- Tehnicile care ar permite ca performanța totală de procesare a sistemului să fie accelerată pentru toate sarcinile (sarcinile) ar avea ca rezultat câștiguri semnificative de performanță.
Cele două tehnici principale pentru calculul de performanță sunt multithreading și multithreading.
Unele critici la adresa multithreading includ:
- Firele multiple pot interfera unele cu altele prin partajarea resurselor hardware, cum ar fi cache-urile sau Translation Lookaside Buffer (TLB).
- Timpii de execuție a unui singur fir nu sunt îmbunătățiți, ci pot fi retrogradați.
- Suportul hardware pentru multithreading este mai vizibil pentru software decât multithreading , necesitând astfel mai multe modificări atât la aplicații , cât și la sistemul de operare .
Tehnicile hardware utilizate pentru a susține multithreading sunt adesea paralele cu tehnicile software utilizate pentru programele de calculator multitasking .
Limbaje de programare care acceptă multithreading
- C=
- Cilk
- Cilk Plus
- Cind
- C#
- clovn
- Concomitent Pascal
- smarald
- Fork – limbaj de programare pentru modelul PRAM .
- Merge
- Java [ 2 ]
- ParaSail
- Rugina [ 3 ]
- SecvențaL
Referințe
- ^ „Multithreading: mai multă putere pentru procesoare” . Ghid digital IONOS . Preluat 2022-07-25 .
- ↑ „Definiți și rulați fire în java” .
- ^ „Fire - Limbajul de programare Rust” . doc.rust-lang.org (în engleză) . Recuperat la 15 septembrie 2017 .