Fig. Quad-Core Core 2 Quad procesor Q6600
Potențialul noilor microprocesoare este foarte dificil de dezvăluit. Cipurile dedicate nu sunt singurul motiv. În cazul în care dezvoltatorii de programe au mers imediat să lucreze cu procesoare multi-core, acestea puteau deja să compenseze performanțe îmbunătățite din aproape toate programele.
Arta de separare: Multithreading
Pentru program ar putea rula mai multe nuclee de microprocesoare, trebuie să fie executate în paralel cu fire separate, așa-numitele fire ( «fire»). Când filetat (multithreading), parte a programului, care necesită calcul intensiv, poate rula în fundal, și interfața - actualizat potokom.No privat continuu mic cu greu dă un impuls general de performanță, deoarece operațiunea, deși distribuite în mod egal tot timpul de calcul, totuși ei sunt executați unul după altul. Intel Pentium 4 datorită tehnologiei HyperThreading a început să lucreze cu două nuclee virtuale logice, capabile să execute simultan două operații de calcul. Aici și au existat probleme, atunci când ambele din cele două procese care au nevoie de acces la aceleași resurse, cum ar fi o celulă de memorie, unul dintre fluxuri se pot ocupa calcule înainte și cealaltă după o întârziere. Prin urmare, rezultatul unui alt fir nu este gata încă, și el nu se poate folosi o resursă partajată - se numește cursă-condiție, sau o „condiție cursă“. A doua problemă mare - firele pot interfera unele cu altele, așteptând accesul la o singură resursă și blocând orice altul - această stare este numită blocare. sau "blocaj". În cazul în care procesoarele Hyperthreading și dual-core, o problemă limitată la două fire (fire de), apoi ca numărul de CPU miezuri de situația este complicată, iar dezvoltatorii de software trebuie să caute noi soluții la aceste probleme.
Pro și Contra de Multi-Core
Intel Compiler 10 vs. OpenMP