Strumenti Utente

Strumenti Sito


apd:start

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
apd:start [25/02/2009 alle 16:46 (17 anni fa)] – inizio modifiche Massimo Coppolaapd:start [05/03/2009 alle 19:11 (17 anni fa)] (versione attuale) – Riferimento MPI v 2.1 Massimo Coppola
Linea 2: Linea 2:
 Docente: **Massimo Coppola** Docente: **Massimo Coppola**
  
-** Questa Pagina è relativa al corso di APD per l'A.A. 2008-2009 **+^** Questa Pagina è relativa al corso di APD per l'A.A. 2008-2009 **|
  
-La pagina si evolverà durante il corso, a partire dal programma del corso di CCP degli anni passati, con cui il corso di APD condvida una parte importante degli argomenti trattati.+La pagina si evolverà durante il corso, a partire dal programma del corso di CCP degli anni passati, con cui il APD condivide una parte importante degli argomenti trattati.
  
 Sono previsti maggiori approfondimenti, nel corso o per mezzo dei progetti individuali di fine corso, sulle seguenti tematiche: Sono previsti maggiori approfondimenti, nel corso o per mezzo dei progetti individuali di fine corso, sulle seguenti tematiche:
Linea 11: Linea 11:
   * processori multicore e problemi relativi alla loro programmazione (multicore, GPGPU)   * processori multicore e problemi relativi alla loro programmazione (multicore, GPGPU)
   * macchine virtuali e parallelismo (Java, CLI, meccanismi di JIT e uso nel parallelismo)   * macchine virtuali e parallelismo (Java, CLI, meccanismi di JIT e uso nel parallelismo)
 +
 +{{ APD:chips_APD.png| }}
  
 Nel frattempo invito gli studenti  Nel frattempo invito gli studenti 
-  * a fare riferimento anche alla pagina del corso di CCP degli [[ccp/#informazioni_corsi_CCP|anni precedenti]]. +  * a fare riferimento anche alle pagine del corso di CCP degli [[#archivio_dei_corsi_di_ccp_2006-07-08|anni precedenti]]. 
-  * a registrarsi per ricevere notifiche dalla pagina delle [[news]].+  * a registrarsi per ricevere notifiche dalla pagina [[news]]. 
 + 
 +---- 
 + 
 +==== Corso 2008-2009 (secondo semestre) ==== 
 + 
 +==== Orario delle lezioni ==== 
 +^Giovedì| 11-13 |Aula B| 
 +^Venerdì | 9-11 |Aula D1|    
 + 
 +//Aggiornato al 25/02/09// 
 + 
 + 
 +** Ricevimento ** 
 +Di regola il ricevimento si svolge su appuntamento (meglio via e-mail). 
 +L'orario riportato è indicativo.  
 +^Giovedì| 14:30-16:30| Dipartimento stanza 385| 
 + 
 +==== Obiettivo del corso ==== 
 + 
 +L'obiettivo del corso è introdurre un insieme di tecnologie in evoluzione o già utilizzate ad oggi nella realizzazione di applicazioni parallele e distribuite; la presentazione delle tecnologie avviene fondamentalmente grazie alla discussione di un insieme di esempi di applicazioni di particolare rilievo. Lo studente dovrà maturare capacità di analisi e padronanza tecnologica, ed essere in grado di riconoscere i problemi legati alla implementazione di A.P.D., individuare schemi di soluzioni note e saper scegliere gli strumenti di sviluppo appropriati. 
 + 
 +** Conoscenze. ** 
 + 
 +Al termine del corso lo studente avrà acquisito la conoscenza di tecnologie standard di basso ed alto livello (message passing, skeleton paralleli, component-oriented, stream-oriented) e di loro paradigmi di utilizzo nelle applicazioni. La preparazione di base fornita comprenderà sia strumenti di programmazione programmazione largamente diffusi (MPI) sia prototipi più avanzati allo stato dell'arte nella ricerca e nell'industria. 
 + 
 +==== Programma Preliminare ==== 
 + 
 +Sono affrontati modelli di programmazione diversi per tipo e livello di di astrazione (message passing vs shared memory, primitive vs skeleton e pattern), e per ambito applicativo (parallelismo on-chip, parallelismo su cluster, Grid/Cloud Computing). 
 +Sono fondamentali sia l'approfondimento individuale, sia l'utilizzo pratico degli strumenti via via presentati; alcune delle lezioni saranno per questo impostate sotto forma di esercitazione, o presupporranno una attività di programmazione ed uso individuale da parte degli studenti. 
 + 
 +   * Il paradigma a scambio di messaggi. Programmazione a basso livello: introduzione ad MPI. Esempi di applicazioni data parallel e task parallel, decomposizione del calcolo e bilanciamento del carico, problemi regolari ed irregolari. 
 +   * Programmazione parallela ad alto livello: l'ambiente ASSIST. Utilizzo delle forme di parallelismo base in Assist. Esempi di applicazioni e valutazione delle prestazioni. 
 +   * Il paradigma a memoria condivisa. Le gerarchie di memoria: memoria centrale / secondaria / locale / condivisa. Implementazione a software delle memorie condivise. Cenni agli algoritmi per le gerarchie di memoria, contenimento e mascheramento della latenza di accesso. 
 +   * Architetture stream-oriented, multicore generici e dedicati e forme di programmazione. 
 +   * Piattaforme di calcolo distribuito: Grid Computing, Cloud Computing, Sistemi operativi distribuiti, reti di sistemi mobili. Problematiche di realizzazione ed esempi di applicazione. 
 +   * Tra i possibili approfondimenti nella parte finale del corsi, e argomenti di progetto: I/O parallelo, algoritmi memory-intensive e data mining parallelo; calcolo stream-oriented, piattaforme multicore e GPGPU. 
 +==== Materiale didattico ==== 
 +  * B. Wilkinson, M. Allen Parallel Programming, 2nd edition. 2005, Prentice-Hall. Disponibile in Biblioteca la prima edizione, C.1.2 w74 INF . 
 +  * A. Grama, A. Gupta, G. Karypis, V. Kumar Introduction to Parallel Computing, 2nd edition. 2003, Addison Wesley. Disponibile in Biblioteca la prima edizione D.1.3 k96 INF  
 +Solo alcune parti, specificate a lezione. 
 +  * <del>Standard MPI, versione 1.1  Solo le parti specificate nell'elenco delle lezioni.</del>\\ [[http://www.mpi-forum.org/docs/mpi21-report.pdf|Standard MPI 2.1 (pdf letter)]] Solo le parti specificate nell'elenco delle lezioni. \\ È stata ufficializzata e pubblicata sul sito dello [[http://www.mpi-forum.org/|MPI forum]] la versione 2.1 dello standard MPI; useremo questa come riferimento, dato che raccoglie tutte le modifiche approvate negli anni (MPI 1.1, 1.2, 2.0, 1.3) in un unico documento. 
 +  * Tutorial di utilizzo del compilatore Assist. [[http://www.di.unipi.it/~coppola|Contattare il docente]] per la versione aggiornata a febbraio 2008. Vecchia versione:{{ccp:tutorial_assist_03_2007.pdf|Tutorial ASSIST Febbraio 2007}}\\ Tutorial del server di esecuzione {{ccp:descrizioneloader1.1.pdf|GEA, versione Novembre 2006}}. 
 +  * (Dispense di ASE) — M. Vanneschi, Architetture Parallele e Distribuite. Servizio Editoriale Universitario, Università di Pisa, 2006-07. 
 +  * Brevi fotocopie e dispense distribuite durante il corso 
 + 
 +==== Prerequisiti ==== 
 +Il corso assume come note le basi della programmazione parallela e distribuita, delle architetture di calcolo sequenziali e parallele e delle reti di interconnessione, ed una buona padronanza dei linguaggi C/C++ e Java. 
 +==== Elenco delle lezioni ==== 
 +L'elenco delle lezioni svolte è disponibile alla [[lezioni0809|pagina apposita]]. 
 + 
 +==== Prove d'esame ==== 
 +==== Archivio dei Corsi di CCP 2006-07-08 ====
  
 +^** CCP 2007/2008 **|  | [[ccp:| pagina Dokuwiki 07/08]] | 
 +^** CCP 2006/2007 **| [[http://www.di.unipi.it/~coppola/didattica/ccp0607/|pagina web del docente]] | [[ccp:ccp0607| pagina Dokuwiki 06/07]] | 
 +^** CCP 2005/2006 **| [[http://www.di.unipi.it/~coppola/didattica/ccp0506/|pagina web del docente]] |                 |
apd/start.1235580405.txt.gz · Ultima modifica: 25/02/2009 alle 16:46 (17 anni fa) da Massimo Coppola

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki