Quote:
Originariamente inviato da alesc
E siamo arrivati ad oggi, quando spunta sto fantomatico reverse hyperthreading che ci dice: ideona, ho 1 o più core a spasso (chissà chi è stato...), perché non mi invento qualcosa da fargli fare ah...un attimo, basta scovare dei parallelismi nel software spacchettare riorganizzare ed il gioco è fatto! ....Buongiorno! Benvenuto nel 1988!
|
Ehm...no, non funziona così.
I produttori di CPU, sono andati sul multicore perchè
a) non si riusciva più a salire di frequenza mantenendo i consumi accettabili ^_^
b) mi costa meno fare un chip più piccolo e metterene 2, 3, 4 o quanti saranno in futuro, nello stesso package
Ora il problema è questo: chi scrive il codice, lo vuole scrivere single thread, perchè è più facile (guarda Crysis

).
Chi fa l'hw però, deve fornire potenze sempre maggiori per vendere...ma come fà? Il modo è quello di cui sopra: prendo più core e li metto in parallelo nel modo migliore possibile (anche se non tutti hanno seguito quella strada, guarda il Cell di IBM).
Questo però cosa comporta? Comporta che i coders devono sbattersi a scrivere codice multi-threaded e questa non è la cosa più semplice in molti casi...
Il fantomatico reverse-hypertrading cosa fà? Fa vedere, via hw, all'OS e all'applicazione una sola CPU quando in realtà sotto ce ne sono 4, 6 8 (o chissà) e fa eseguire TUTTO il codice (single e multithreaded) a quell'unico mega core che così facendo viene sfruttato sempre completamente (perlomeno in base all'applicazione) e
soprattutto in ogni situazione. ^_^