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 Paolo Corsini pubblicata il 28 Agosto 2006, alle 13:29 nel canale ProcessoriIntel
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.
17 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoSe 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
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
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).
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".