Multicore e ottimizzazione software

Multicore e ottimizzazione software

La prossima disponibilità di architetture multicore richiede un lavoro di ottimizzazione da parte dei programmatori; Intel sviluppa a riguardo alcuni nuovi tool

di pubblicata il , alle 13:29 nel canale Processori
Intel
 

Il mercato dei processori si sta spingendo chiaramente, da alcuni anni a questa parte, nella direzione delle architetture dual core, nelle quali cioè siano integrati due distinti core di processore che possano operare in modo indipendente tra di loro.

Il prossimo futuro vede all'orizzonte il debutto delle architetture quad core, nelle quali pertanto il numero di core integrati raddoppierà rispetto alle attuali proposte di mercatodi Intel e AMD.

Le prime soluzioni di questo tipo sono attese al debutto nel corso della fine dell'anno, nella forma dei processori Kentsfield di Intel della famiglia Core 2 Extreme.

L'avere a disposizione più core di processori, operanti in parallelo tra di loro, non implica tuttavia un diretto e immediato incremento delle prestazioni velocistiche che con questi processori è possibile ottenere. E' necessario, infatti, che le applicazioni che vengono utilizzate siano in grado di beneficiare della presenza di un secondo o più core di processore.

Per questo motivo è indispensabile che i programmatori e gli sviluppatori abbiano a disposizione tool che permettano di ottimizzare i propri programmi per le architetture di processore multicore.

Intel è da sempre molto attiva in questo settore, potendo vantare nel proprio organico un gran numero di sviluppatori software. Intel Threading Building Blocks è il nome di un'applicazione sviluppata da Intel che verrà presentata proprio questa settimana: si tratta di un tool, che opera come estensione del linguaggio di programmazione C++, che permette agli sviluppatori di ottimizzare le proprie applicazioni per un loro migliore utilizzo in ambiti multicore, facilitando la scrittura di routine o threads che operino in parallelo, e che quindi possano venir destinate a ciascun core presente nel sistema.

Intel ha già sviluppato applicazioni di questo tipo, attualmente a disposizione pe gli sviluppatori: si tratta di Intel Thread Checker 3.0 e Intel Thread Profiler 3.0, ottimizzate per applicazioni sia a 32 che a 64bit anche con sistema operativo Linux.

Del resto, non ha alcun senso l'avere a disposizione un elevato numero di processori in un sistema, nel momento in cui questi non possono essere sfruttati in parallelo così da ridurre i tempi di elaborazione dello specifico software.

Resta aggiornato sulle ultime offerte

Ricevi comodamente via email le segnalazioni della redazione di Hardware Upgrade sui prodotti tecnologici in offerta più interessanti per te

Quando invii il modulo, controlla la tua inbox per confermare l'iscrizione

18 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
Darkangel66628 Agosto 2006, 13:39 #1
L'uso di istruzioni dedicate porterebbe forse ad un avvicinamento alle prestazioni di un dual Processor (tipo Xeon od Optheron).
JOHNNYMETA28 Agosto 2006, 13:48 #2
Se tutti programmassero avendo come linea guida la vera genuina astrazione, nel momento in cui un software è stato scritto per usare core plurali sarebbe pronto,con variazioni in linea di massima a seconda del servizio, per qualsiasi futuro numero di core (dai due in su).Non voglio neppure immaginare ci siano sviluppatori di importanti software professionali che agiscano diversamente.
Luca6928 Agosto 2006, 14:00 #3
Si vede che non hai mai lavorato in una SW house
Narmo28 Agosto 2006, 14:16 #4
No, si vede che non si è mai scontrato con le problematiche derivanti dalla compatibilità dei linguaggi di programmazzione con le varie macchine della famiglia x86
Sig. Stroboscopico28 Agosto 2006, 14:17 #5
Per me dovrebbero farci degli standard su queste cose.
Se lo fa solo Intel (quale monopolista) in formato unicamente proprietario, tutte le case concorrenti ne avrebbero solo degli handicap... che ovviamente pagheremmo comunque noi.

Comunque i dual core sono fuori da un pezzo... di ottimizzazioni ancora un pò pochine... si dessero una mossa...

Ciao
Bongio228 Agosto 2006, 14:45 #6
Guarda che dal punto di vista software Intel non ha rivali, addirittura si dice che parte del successo di AMD nei server con gli Opteron sia dovuta al fatto che queste cpu lavoravano meglio con il compilatore Intel C++ dei p4......
Murdorr28 Agosto 2006, 14:57 #7
Mhmmm mi sà di marmotta che confeziona la cioccolata quest'ultima affermazione...
Octane28 Agosto 2006, 15:31 #8
Originariamente inviato da: Sig. Stroboscopico
Per me dovrebbero farci degli standard su queste cose.
Se lo fa solo Intel (quale monopolista) in formato unicamente proprietario, tutte le case concorrenti ne avrebbero solo degli handicap... che ovviamente pagheremmo comunque noi.

Comunque i dual core sono fuori da un pezzo... di ottimizzazioni ancora un pò pochine... si dessero una mossa...

Ciao


non solo... i dual processors lo sono anche da molto di piu'
quasi tutti i software applicativi per server sono multithread, le cose devono invece ancora maturare per gli applicativi client.

thread crackers e profilers sono ottimi strumenti, ma la cosa piu' importante e' programmare pensando di far girare poi il software su n processori (o cores/threads)
purtroppo nella realtaà troppo spesso ci si mette ad ottimizzare il codice in ottica multithreading solo quando ci si rende conto che l'applicativo sta diventando un autentico collo di bottiglia..(di solito in seguito alle lamentele dei clienti )
sirus28 Agosto 2006, 15:33 #9
Beh Intel è sempre stata all'avanguardia nella progettazione di software che permette di sfruttare al massimo i suoi processori, come il suo compilatore C/C++ che permette di avere un notevolissimo boost prestazionale con i processori della serie Pentium.
Non mi stupisce che ora si stiano muovendo verso l'ottimizzazione per i multicore considerando che nel loro compilatore hanno il miglior vettorizzatore in grado di sfruttare al massimo le chiamate alle SSE.

Sul fatto che invece AMD traesse vantaggio dal Intel C/C++ Compiler ho i miei forti dubbi dato che gli AMD64 venivano forzati sul code path del Pentium 3 quando sarebbe stato meglio forzarli sul code path dei Pentium M, oppure venivano indirizzati su code path non ottimizzati (senza SSE).
piffe28 Agosto 2006, 15:45 #10

Problema di licenza

Scusate una domanda: ma dato che la licenza di Windows è legata al numero di CPU presenti nel sistema, ed il kernel penso non possa utilizzarne più di 2, come si pone il problema davanti a 4 core?

La tecnologia HT ovvia a questo problema in quanto il secondo processore è logico e non fisico, ma con 4 core? Conta il package o il numero di core?

Scusate se sono OT.

Ciauz!

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^