Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
La programmazione parallela al centro dell'Intel Software Conference 2010 (3/6)
Scritto da Ciro Fiorillo il 29-04-2010 ore 09:10
La tecnologia Intel Cilk propone alcuni strumenti per la parallelizzazione delle operazioni con il supporto del compilatore: il costrutto cilk_for, ad esempio, semanticamente equivalente alla classica operazione for sequenziale di C, utilizza una strategia di partizionamento del tipo divide and conquer, valutando la condizione di uscita dal loop una sola volta all'inizio del ciclo; sono messi a disposizione dello sviluppatore, inoltre, anche i costrutti cilk_spawn e cilk_sync, per eseguire operazioni in multitasking nello stile fork/join.

Dal punto di vista delle novità riguardanti le iniziative di ricerca, i tre settori in cui ci saranno novità nel futuro prossimo sono l'introduzione delle Intel Concurrent Collections, le estensioni Intel Cluster OpenMP e le Software Transactional Memory.

Nella conclusione del suo intervento, James Reinders sottolinea come nel prossimo futuro sarà importante anche l'utilizzo di differenti modelli di programmazione parallela all'interno dello stesso progetto software, ad esempio in un modello multi-tier si potrebbe avere un'architettura di tipo task-parallel per quanto riguarda le logiche di controllo, ed una data-parallel per affrontare le situazioni di forte parallelismo nei dati con semantica sequenziale o con parallelismo spinto.

Dopo l'intervento di James Reinders, è stato il turno di Hugo R. Falter, Chief Operating Officer per il ParTec Cluster Competence Center; egli ha illustrato le caratteristiche e il progetto che hanno portato alla costruzione nel Supercomputing Center di Julich di JuRoPA, una macchina basata su processori Intel e middleware ParaStation Cluster, evidenziando come nello sviluppo del progetto abbia giocato un ruolo determinante lo spirito collaborativo instaurato tra le diverse società che hanno preso parte all'iniziativa.

4562066917_cb1b79f42b_d.jpg

L'intervento successivo di Christian Terboven, HPC Team Lead, Aachen University, ha focalizzato l'attenzione sull'importanza di avere a disposizione dei tool per la misurazione e l'analisi delle performance. Viene proposto un processo incrementale di performance tuning, che parte dall'analisi a runtime del programma sequenziale, l'identificazione degli hotspot, ossia delle parti di programma compute-intensive, la parallelizzazione degli hotspot stessi (se non è possibile un tuning sequenziale), l'analisi del comportamento a runtime della versione parallela del programma.

4562070259_198565535f_d.jpg

Viene proposta da Terboven anche una comparazione dei profiler utilizzati dal Center for Computing and Communication per un caso di studio riguardante la simulazione numerica del comportamento di una goccia di silicone in un fluido: Visual Studio 2008 e gprof, Intel Parallel Amplifier e Intel VTune.

Dall'analisi si evince come con la seconda soluzione vi è una più semplice attivazione del profiler, un'identificazione immediata degli hotspot con collegamenti al codice sorgente, mancanti nella prima soluzione illustrata, mentre viene sottolineata la mancanza di misurazioni degli Hardware Counter, disponibili invece con l'ultimo prodotto provato.

Una seconda analisi comparativa riguarda invece il parallel profiling, utilizzando come strumenti Intel Parallel Inspector e Intel VTune, per completare la disamina con gli strumenti di verifica della correttezza del codice, ossia il debugger integrato in Visual Studio con e senza Allinea DDTlite, Intel Parallel Inspector e Intel Parallel Composer.
Precedente: I giorni del Flash Local Storage stanno per finire
Successiva: Zune Game Development Using XNA 3.0
Copyright Programmazione.it™ 1999-2014. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.209 secondi.