Santa Clara (USA) – I processori a basso consumo stanno guadagnando spazi di mercato sempre più ampi, accomunando ormai una gamma di sistemi che va dai notebook ai server blade passando per i PC small-form factor e i thin client. In attesa di migrare il suo intero parco di CPU verso l’architettura dei Pentium M, Intel si sta muovendo per spingere già ora i suoi processori mobili verso il mercato dei server x86.
Il chipmaker ha infatti annunciato di aver certificato i suoi giovani chipset E7520 ed E7320 per supportare, oltre agli Xeon, i Pentium M e i Celeron M. Questo semplifica la progettazione, da parte dei produttori, di server a singolo processore basati sui chip a basso consumo di Intel.
I chipset E7520 ed E7320 sono stati specificamente progettati per i server dual-Xeon con bus di sistema a 800 MHz e tecnologia a 64 bit EM64T. I chipset supportano le memorie DDR2-400 dual-channel con ECC, schede PCI Express x4 e x8 e controller RAID. I due modelli si differenziano unicamente per il numero di link PCIe x8 supportati: uno nel caso dell’E7320, tre nel caso dell’E7520.
C’è da notare che Intel ha a catalogo Xeon low e ultra-low voltage capaci di consumare rispettivamente un massimo di 55 e di 30 watt: quest’ultimo valore non è molto distante dai circa 25 watt dei Pentium M più veloci, tuttavia questi ultimi, grazie alla loro architettura di nuova generazione, forniscono un rapporto performance/watt inarrivabile per gli Xeon. Questo del resto spiega perché Intel abbia già pianificato la convergenza di tutte le sue CPU, incluse quelle server e desktop, verso la propria tecnologia mobile: ciò decreterà il definitivo abbandono della vecchia architettura NetBurst introdotta 5 anni or sono con il Pentium 4.
-
Non esiste niente del genere...
E' falso. Fumo negli occhi. Non esiste e non esisterà mai alcun compilatore capace di tradurre un linguaggio in istruzioni ottimizzate per più cpu che funzionano in parallelo. Non solo la maggior parte degli algoritmi sono inerentemente NON parallelizzabili, ma anche quei pochi che lo sono devono essere appositamente strutturati già dal programmatore per evitare dipendenze, cosa che un compilatore semplicemente non può sapere in anticipo quando va a generare il codice. In sostanza, quella di Intel è una bufala per chi non capisce nulla di informatica. Ormai sono talmente disperati dal fatto che AMD li sta surclassando in tutto, che non sanno più a che inventarsi...AnonimoRe: Non esiste niente del genere...
"Quelli di Intel includono una funzione, detta auto-parallelization, che analizza il codice alla ricerca di opportunità per creare più thread di esecuzione: il chipmaker ammette che questa funzione non può sostituirsi alla perizia e all'abilità del programmatore ma, in molti casi, aiuta a generare binari più efficienti e ottimizzati per le moderne architetture multi-threading."Prima di parlare di informatica, impara a capire l'italiano.AnonimoRe: Non esiste niente del genere...
infatti dice: "sono state studiate per aiutare gli sviluppatori a scrivere codice ottimizzato per il multi-threading"non dice: "faccio miracoli" :)egRe: Non esiste niente del genere...
> quella di Intel è una bufala> per chi non capisce nulla di informatica.e secondo te come fanno i processori ad eseguire in parallelo 2 o più threads? Usando un algorimo, che quindi esiste ed è possibile utilizzare per ottimizzare in partenza i programmi.AnonimoRe: Non esiste niente del genere...
- Scritto da: Anonimo> > quella di Intel è una bufala> > per chi non capisce nulla di informatica.> > e secondo te come fanno i processori ad eseguire> in parallelo 2 o più threads? Usando un algorimo,> che quindi esiste ed è possibile utilizzare per> ottimizzare in partenza i programmi.??? Ma che hai fumato?AnonimoRe: Non esiste niente del genere...
> e secondo te come fanno i processori ad eseguire> in parallelo 2 o più threads? Usando un algorimo,> che quindi esiste ed è possibile utilizzare per> ottimizzare in partenza i programmi.sbagliato.una unità di calcolo fa necessariamente una cosa alla volta.un core ne ha diverse di unità di calcolo, ma queste possono fare più cose contemporaneamente solo se:1) le risorse richieste (specifici circuiti) sono liberi;2) ciascuna cosa non influisce sull'altra es se viene testa fai x se viene croce fai y, prima di avere il risultato di testa o croce non posso eseguire x o y, a volte (come nell'esempio) posso speculativamente eseguirli tutte le ramificazioni e scegliere la strada giusta (sarebbe più difficile se fosse "dammi in intero casuale", avrei 4 mld di ramificazioni :| ) ma sempre se ci sono, tra le molte risorse, unità adatte libere. Se le varie parti in esecuzione non si influenzano (multiprocesso, multitask, multithread tra di loro indipendenti... a seconda della granularità del sistema, dove una maggiore granularità in genre aiuta) si tratta sempre di aspettare di avere le necessarie risorse libere.Da qui la non perfetta scalabilità empiricamente rilevabile delle prestazioni "sui generis" del calcolo parallelo.Poi ci sono algoritmi che non si prestano per nulla alla parallelizzazione (quindi più subunità, più core o più cpu servono "solo" a smalitire altri task/thread/processi e la macchina rimane più responsiva anche se la specifica elaborazione di quel calcolo non si avvantaggia) ed altre che ne traggono enormi benefici, fermo restando che la scalabilità di risorse/prestazioni non sarà mai 1:1 se non in condizioni teoriche praticamente mai raggiungibili (il famoso teorema degli n uomini che non possono scavare una buca nel tempo/n impiegato da un uomo solo)==================================Modificato dall'autore il 16/06/2005 10.23.32AnonimoRe: Non esiste niente del genere...
> 1) le risorse richieste (specifici circuiti) sono> liberi;> 2) ciascuna cosa non influisce sull'altra es se> viene testa fai x se viene croce fai y, prima di> avere il risultato di testa o croce non posso> eseguire x o y, a volte (come nell'esempio) posso> speculativamente eseguirli tutte le ramificazioni> e scegliere la strada giusta appunto tutte quelle cose possono essere fatte oltre che via software anche via hardware analizzando le istruzioni del programma che stanno dentro alla cache della cpuAnonimoRe: Non esiste niente del genere...
- Scritto da: Anonimo> > E' falso. Fumo negli occhi.> > Non esiste e non esisterà mai alcun> compilatore capace di tradurre un> linguaggio in istruzioni ottimizzate> per più cpu che funzionano in parallelo.Esiste e il principio è banale....Se tu hai due blocchi di istruzioni (macchina) successivi privi di dipendenza puoi eseguirli in parallelo avendo cura di proseguire l'esecuzione quando entrambi i thread hanno completato il calcolo.L'algoritmo non fa altro che cercare questi blocchi, spezzarli in dimensioni simili e assegnarne uno ad un core e uno ad un altro e quindi inserire un punto di sincronizzazione alla fine.E' una ottimizzazione che i processori come Pentium, ad esempio, fanno su piccoli blocchi di codice (quelli presenti nelle pipeline) da molto tempo. A livello di pipeline si chiama out-of-order execution. Mai sentito dire?AnonimoGrazie, il tuo commento è in fase di approvazioneGrazie, il tuo commento è stato pubblicatoCommento non inviatoGrazie per esserti iscritto alla nostra newsletterOops, la registrazione alla newsletter non è andata a buon fine. Riprova.Leggi gli altri commentiPubblicato il 16 giu 2005Ti potrebbe interessare