Strumenti Utente

Strumenti Sito


ccp:lezioni0708

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 revisione Revisione precedente
Prossima revisione
Revisione precedente
ccp:lezioni0708 [29/04/2008 alle 06:50 (14 anni fa)]
Massimo Coppola
ccp:lezioni0708 [29/05/2008 alle 09:03 (14 anni fa)]
Massimo Coppola altri link
Linea 13: Linea 13:
   * **3/03** __MPI operazioni collettive e operatori MPI__ \\ Primitive collettive Reduce, ReduceAll. Operatori MPI predefiniti, operatori utente, loro definizione ed applicazione, polimorfismo e meccanismi per la gestione dei datatype. Operazione di scan (parallel prefix). Varianti della semantica delle comunicazione: approfondimento su send sincrona e buffered. Ready-send ed esempio di utilizzo: emettitore di un farm. Operazioni di comunicazione incomplete (receive e varianti della send); meccanismo delle ''MPI_request''. Controllo delle comunicazioni in sospeso e primitive ''WAIT'' e ''TEST''. Varianti multiple ''WAIT_ANY'', ''TEST_ANY'', ''WAIT_ALL'', ''TEST_ALL''. Primitive ''CANCEL'' e ''MPI_FREE_REQUEST''. Introduzione al controllo del nondeterminismo ed alle primitive ''MPI_WAIT_SOME'' ed ''MPI_TEST_SOME''.   * **3/03** __MPI operazioni collettive e operatori MPI__ \\ Primitive collettive Reduce, ReduceAll. Operatori MPI predefiniti, operatori utente, loro definizione ed applicazione, polimorfismo e meccanismi per la gestione dei datatype. Operazione di scan (parallel prefix). Varianti della semantica delle comunicazione: approfondimento su send sincrona e buffered. Ready-send ed esempio di utilizzo: emettitore di un farm. Operazioni di comunicazione incomplete (receive e varianti della send); meccanismo delle ''MPI_request''. Controllo delle comunicazioni in sospeso e primitive ''WAIT'' e ''TEST''. Varianti multiple ''WAIT_ANY'', ''TEST_ANY'', ''WAIT_ALL'', ''TEST_ALL''. Primitive ''CANCEL'' e ''MPI_FREE_REQUEST''. Introduzione al controllo del nondeterminismo ed alle primitive ''MPI_WAIT_SOME'' ed ''MPI_TEST_SOME''.
   * **6/03** __MPI - primitive incomplete e persistenti e controllo del nondeterminismo__ \\ ''MPI_TEST_SOME'', ''MPI_WAIT_ALL''. Operazioni persistenti, semantica, ''MPI_START'' e ''MPI_STARTALL''. MPI_request attive e non attive relazione con le varianti di ''MPI_WAIT'' ed ''MPI_TEST'', e con la ''MPI_CANCEL''. Implementazione di meccanismi di comunicazione a canali tramite MPI, differenze nella semantica. Esempi con il linguaggio LC: implementazione del canale, delle primitive sincrone ed asincrone (via buffered send e processo buffer), del comando alternativo (variante con send incomplete e permanenti, ''MPI_TEST_SOME'').   * **6/03** __MPI - primitive incomplete e persistenti e controllo del nondeterminismo__ \\ ''MPI_TEST_SOME'', ''MPI_WAIT_ALL''. Operazioni persistenti, semantica, ''MPI_START'' e ''MPI_STARTALL''. MPI_request attive e non attive relazione con le varianti di ''MPI_WAIT'' ed ''MPI_TEST'', e con la ''MPI_CANCEL''. Implementazione di meccanismi di comunicazione a canali tramite MPI, differenze nella semantica. Esempi con il linguaggio LC: implementazione del canale, delle primitive sincrone ed asincrone (via buffered send e processo buffer), del comando alternativo (variante con send incomplete e permanenti, ''MPI_TEST_SOME'').
- 
 ==== Programmazione a skeleton paralleli, ASSIST ==== ==== Programmazione a skeleton paralleli, ASSIST ====
   * **10/03** __Applicazioni; skeleton e programmazione parallela__ \\ Costrutto //farm// in MPI, varianti di implementazione, uso di comunicatori e struttura del programma SPMD. Uso di comunicatori per strutturare programmi più complessi (annidamento di forme di parallelismo) mantenendo la portabilità del codice.  Un benchmark "classico", il calcolo dell'insieme di Mandelbrot: proprietà matematiche, parallelismo e bilanciamento del carico. Introduzione ai Parallel Skeletons e formalismi di programmazione parallela strutturata.   * **10/03** __Applicazioni; skeleton e programmazione parallela__ \\ Costrutto //farm// in MPI, varianti di implementazione, uso di comunicatori e struttura del programma SPMD. Uso di comunicatori per strutturare programmi più complessi (annidamento di forme di parallelismo) mantenendo la portabilità del codice.  Un benchmark "classico", il calcolo dell'insieme di Mandelbrot: proprietà matematiche, parallelismo e bilanciamento del carico. Introduzione ai Parallel Skeletons e formalismi di programmazione parallela strutturata.
Linea 23: Linea 22:
  
 | ** Tutorial di ASSIST ** | | ** Tutorial di ASSIST ** |
-[[http://|aggiungere riferimenti]] +{{ccp:tutorial_assist_03_2007.pdf|Tutorial ASSIST Febbraio 2007}} | 
 +| {{:ccp:descrizioneloader1.1.pdf| GEA, versione Novembre 2006}} | 
 +| {{:ccp:assisttutorial_02_2008.pdf|Tutorial ASSIST Febbraio 2008}} 
  
   * **20/03** __ASSIST : semantica essenziale__ \\ Composizione di costrutti paralleli e livelli di annidamento, collegamento a formalismi a componenti. Approccio a linguaggio di coordinamento: meccanismo di compilazione a due fasi, integrazione di linguaggi sequenziali diversi in compilazione. Blocchi fondamentali: moduli sequenziali e proc. Parmod, esempi: input e output section; topologia (array, none, one) e concetto di processore virtuale (VP); distribuzioni (broadcast, on demand, scatter) e collezioni (from any, from all); parallelismo task-parallel (topologia none) e data-parallel (topologia array), definizioni dei VP associate.   * **20/03** __ASSIST : semantica essenziale__ \\ Composizione di costrutti paralleli e livelli di annidamento, collegamento a formalismi a componenti. Approccio a linguaggio di coordinamento: meccanismo di compilazione a due fasi, integrazione di linguaggi sequenziali diversi in compilazione. Blocchi fondamentali: moduli sequenziali e proc. Parmod, esempi: input e output section; topologia (array, none, one) e concetto di processore virtuale (VP); distribuzioni (broadcast, on demand, scatter) e collezioni (from any, from all); parallelismo task-parallel (topologia none) e data-parallel (topologia array), definizioni dei VP associate.
Linea 30: Linea 31:
   * **10/04** __Modelli astratti di calcolo parallelo ed in memoria secondaria__ \\ La PRAM (Parallel Random Access Machine). Assunzioni (parallelismo e memoria illimitati, sincronia, scalabilità); scopo del modello e varianti standard (EREW, CREW, CRCW e regole di risoluzione dei conflitti). Modelli di calcolo per memoria secondaria. Il PDM (Parallel Disk Model). Struttura essenziale, parametri M,B,N,Z e derivati m=(M/B), n=(N/B), z=(Z/B). Misura di complessità orientata ai blocchi, algoritmi base e loro complessità. Effetto pratico dei termini logaritmici a base elevata (M/B) nella complessità algoritmica.     * **10/04** __Modelli astratti di calcolo parallelo ed in memoria secondaria__ \\ La PRAM (Parallel Random Access Machine). Assunzioni (parallelismo e memoria illimitati, sincronia, scalabilità); scopo del modello e varianti standard (EREW, CREW, CRCW e regole di risoluzione dei conflitti). Modelli di calcolo per memoria secondaria. Il PDM (Parallel Disk Model). Struttura essenziale, parametri M,B,N,Z e derivati m=(M/B), n=(N/B), z=(Z/B). Misura di complessità orientata ai blocchi, algoritmi base e loro complessità. Effetto pratico dei termini logaritmici a base elevata (M/B) nella complessità algoritmica.  
   * **17/04** //lezione annullata//   * **17/04** //lezione annullata//
-  * **21/04** __Modelli di calcolo Bulk - Synchronous__ \\ BSP e modelli derivati: BSP*, D-BSP. Cenni ai modelli CGMLogP+  * **21/04** __Modelli astratti di calcolo parallelo e in memoria secondaria__ \\ PRAM, esempi di algoritmi, complessità in processori e tempo, work ed efficienza. Aumento di efficienza con riduzione del numero di processori (esempio di riduzione logaritmica). Modello PDM, complessità di operazioni di permutazione e sort, relazione con il modello BSP. 
-  * **24/04** __ __ +  * **24/04** __Modelli di calcolo Bulk - Synchronous__ \\ Modelli coarse parallel (o bulk-synchronous). Modello BSP, schema parametri, valutazione del costo algoritmico. Bridging models: Cenni a CGM e LogP. Realisticità del modello BSP, cenni alle estensioni: BSP*, D-BSP. Implementabilità, cenni a BSPlib. Cenni all'uso di modelli BSP-like per la valutazione del costo di skeleton paralleli [Tesi di dottorato di Andrea Zavanella]. Cenni alla possibilità di simulazione efficiente in memoria esterna di algoritmi BSP-* (vedi riferimenti su  M.CoppolaM.Schmollinger //"Hierarchical Models and Software Tools for Parallel Programming"// LNCS 2625, cap 15 ). 
-  * **28/04** __ __ + 
-  * **5/05** __ __ +| [[http://portal.acm.org/citation.cfm?id=79181|Articolo di Valiant sui Parallel Bridging Models]] | 
-  * **8/05** __ __ +| [[http://www.acm.org/pubs/citations/journals/surveys/1996-28-4es/a208-cormen/|Link al position paper di T.H.Cormen]] | 
-  * **12/05** __ __ +| [[http://www.cs.dartmouth.edu/~thc/papers.html|Pagina degli articoli di Cormen]]. | 
-  * **15/05** __ __ +| [[http://www.springerlink.com/content/0wpxd6j3l63w/ |LNCS 2625, cap 15]] | 
-  * **19/05** __ __ +  
-  * **22/05** __ __ + 
-  * **26/05** __ __+  * **29/04** __Memorie Condivise Distribuite__ \\ Concetto di DSM (distributed shared memory). [** capitolo 9 del libro, escluso 9.6.3 **] \\ Vantaggi e svantaggi (portabilità, prestazioni, scalabilità). Modelli di consistenza (weak, strict / sequential), unità di coerenza (pagine, variabili, oggetti), livello dei meccanismi di implementazione (hardware, sistema operativo, libreria, linguaggio di programmazione). Problema del false sharing. Eager and lazy release consistency (associata alle operazioni), entry consistency (data dalla struttura dei dati), scope consistency (data dalla struttura del programma). [Tesi Dottorato Marco Aldinucci , Capitolo 3] \\ Implementazione su meccanismi (hw/sw) di tipo message passing. Supporto ad hardware, supporto tramite librerie, supporto tramite thread/ processi serventi. Uso del supporto DSM in Assist: libreria smReference per l'interfacciamento ad una DVSM. Astrazione esposta, modello di consistenza esplicita, suo uso da ASSIST.  Primitive, confronto tra due implementazioni: la DSM DVSA, il supporto DSM AdHoc. Impatto sulla gestione di strutture dati dinamiche, sulla dimensione dello spazio condiviso, sulla riconfigurabilità dinamica dell'insieme di nodi che supportano l'astrazione DSM. Strutture dati in memoria condivisa ed algoritmi out-of core; esempio: implementazione di Shared Tree in SkIE / ASSIST. 
 +  * **5/05** // lezione annullata // 
 +  * **8/05** __Introduzione al Data Mining__ 
 +  * **12/05** __Clustering Parallelo : K-means__  
 + 
 +| [[http://www.di.unipi.it/~coppola/didattica/ccp0506/papers/dhillon-modha-corretto_parkmeans.ps|Dhillon, Modha Technical Report su K-means parallelo]] | A Data-Clustering Algorithm On Distributed Memory Multiprocessors. I.S. Dhillon, D.S.Modha, LNAI 1759, pag 245. **Nota:** la versione disponibile online via LNCS riporta un algoritmo errato, il technical report è corretto. | 
 +| [[http://www.di.unipi.it/~coppola/didattica/ccp0506/papers/i0871.pdf|Ottimizzazioni sequenziali e parallele per K-means]] | Large-Scale Parallel Data Clustering. Dan Judd, Philip K. Mckinley, Anil K. Jain. Ieee Transaction On Pattern Analysis And Machine Intelligence, Vo. 20, No. 8 August 1998. | 
 + 
 +  * **15/05** __Context-aware High Performance Computing__ 
 + 
 +| {{:ccp:seminario_insyeme.pdf| Lucidi sul progetto InSyEme }} | Prima versione delle slide in pdf; N.B. le animazioni non si vedono correttamente. | 
 + 
 +  * **19/05** __Multi-core CPUs__ 
 + 
 +| [[http://download.intel.com/design/network/ProdBrf/27905302.pdf|Intel IXP 2400]]| Documentazione dal sito Intel | 
 +| [[|IBM Cell]]| 
 +| [[http://doi.ieeecomputersociety.org/10.1109/MM.2006.49| Articolo sul Cell ]]| Kistler, Perrone, Petrini, IEEE Micro May/June 2006 (Vol. 26, No. 3) "Cell Multiprocessor Communication Network: Built for Speed"
 + 
 +  * **22/05** __GPU programming__ 
 + 
 +| | GPU Programming GEMS 2, fotocopie distribuite a lezione| 
 +| [[http://mags.acm.org/queue/20080304/data/queue20080304-dl.pdf|ACM Queue March/April 2008]]| Numero di ACM Queue su parallel programming e GPU| 
 + 
 +  * **26/05** __Data Mining : Parallel Tree Induction__
   * **29/05** __ __   * **29/05** __ __
  
  
ccp/lezioni0708.txt · Ultima modifica: 29/05/2008 alle 09:03 (14 anni fa) da Massimo Coppola