Strumenti Utente

Strumenti Sito


magistraleinformaticanetworking:spm:recupero17

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
magistraleinformaticanetworking:spm:recupero17 [14/11/2017 alle 12:29 (7 anni fa)] – [14 Nov] Marco Daneluttomagistraleinformaticanetworking:spm:recupero17 [13/12/2017 alle 18:08 (7 anni fa)] (versione attuale) – [December 12] Marco Danelutto
Linea 1: Linea 1:
- 
 ===== SPM 2017 recovery edition lessons ===== ===== SPM 2017 recovery edition lessons =====
  
Linea 103: Linea 102:
 ==== Nov 7 ==== ==== Nov 7 ====
  
-Introduction to parallel patterns/skeletons+2h: Introduction to parallel patterns/skeletons
  
   * using [[http://www.openmp.org/|OpenMP]] to implement parallel for (example of simple data parallel pattern) ([[http://www.openmp.org/wp-content/uploads/OpenMP-4.0-C.pdf|Summary of 4.0]], Old [[http://www.openmp.org/wp-content/uploads/omp-hands-on-SC08.pdf|Tutorial]] slides). OpenMP is available in g++ and in icc by specifying the flag **-fopenmp**.    * using [[http://www.openmp.org/|OpenMP]] to implement parallel for (example of simple data parallel pattern) ([[http://www.openmp.org/wp-content/uploads/OpenMP-4.0-C.pdf|Summary of 4.0]], Old [[http://www.openmp.org/wp-content/uploads/omp-hands-on-SC08.pdf|Tutorial]] slides). OpenMP is available in g++ and in icc by specifying the flag **-fopenmp**. 
Linea 123: Linea 122:
  
 ==== 14 Nov ==== ==== 14 Nov ====
 +2h: 
 +
 Sample code Sample code
   * [[traduttorecpp|code]] with different implementation of a "map" ...    * [[traduttorecpp|code]] with different implementation of a "map" ... 
Linea 128: Linea 129:
 Parallel design patterns and algorithmic skeletons Parallel design patterns and algorithmic skeletons
   * concepts, similarities and differences   * concepts, similarities and differences
 +  * Usage of performance models and rewriting rules (this is the reading key for the chapter 10 (sections 10.1 to 10.3) 
  
 {{ :magistraleinformaticanetworking:spm:spm14nova.mp4 |H1}} {{ :magistraleinformaticanetworking:spm:spm14nova.mp4 |H1}}
 {{ :magistraleinformaticanetworking:spm:spm14novb.mp4 |H2}} {{ :magistraleinformaticanetworking:spm:spm14novb.mp4 |H2}}
 +
 +{{ :magistraleinformaticanetworking:spm:spm17_14nov.pdf |Blackboard}}
  
 **Assignment**:  **Assignment**: 
-  * implement a divide and conquer computation using c++ threads. The computation should look for a word in a text. Recursively divide the text up to the point you either get something of the a given length (parameter), and in this case you look for the string sequentially. Return an integer value counting the occurences of the string.  +  * implement a divide and conquer computation using c++ threads. The computation should look for a word in a text. Recursively divide the text up to the point you either get something of the a given length (parameter), and in this case you look for the string sequentially. Return an integer value counting the occurrences of the string.  (//sub assignment: consider programming the solution in such a  way the code for the divide and conquer strategy may be used to program another divide and conquer application//
 + 
 + 
 +==== Nov 21 ==== 
 +2h 
 + 
 +  * data parallel patterns (map, reduce, google map reduce, stencil, stencil-reduce) 
 +  * implementation of pattern frameworks (supporting composition)  
 +    * template based  
 +    * data flow based 
 + 
 +{{ :magistraleinformaticanetworking:spm:spm21nova.mp4 |H1}} 
 +{{ :magistraleinformaticanetworking:spm:spm21novb.mp4 |H2}} 
 + 
 +{{ :magistraleinformaticanetworking:spm:spm21no17.pdf |PDF}} 
 + 
 +**Assignments** 
 +  * read Chapter 4 of the notes 
 +  * implement the word count with your own google mapreduce in C++ (//use threads to compute in parallel the map phase and again threads to compute in parallel the reduce phase//) 
 + 
 +==== Nov 28 ==== 
 +2h 
 + 
 +  * FastFlow programming framework: Introduction, core patterns.  
 +  * documentation may be found at [[http://calvados.di.unipi.it/fastflow|calvados.di.unipi.it]] 
 +  * download code (via SVN!!) at [[https://sourceforge.net/projects/mc-fastflow/|SourceForge]] 
 + 
 +{{ :magistraleinformaticanetworking:spm:spm28nova.mp4 |H1}} 
 +{{ :magistraleinformaticanetworking:spm:spm28novb.mp4 |H2}} 
 +{{ :magistraleinformaticanetworking:spm:spm28-17.pdf |PDF}} 
 + 
 +**Assignments** 
 +  * try to write a FF pipeline (with core patterns) that implements the Sieve of Eratostene: one stage emits the stream of integers and stage i filters out all the numbers multiple of i. The last stage prints the results. Try generating 20 integers and using k<20 filter stages. 
 + 
 +=== Afternoon lesson ===  
 +by David Del Rio Astorga: 1h 
 + 
 +  * Introduction to GrPPI (slides sent as PDF to the course mailing list).  
 + 
 +==== December 12 ==== 
 + 
 +Morning:  2h 
 + 
 +  * methodology to develop parallel code with structured programming 
 +  * final project presentation (see the [[http://didawiki.di.unipi.it/doku.php/magistraleinformaticanetworking/spm/esamirec17#program|exams]] page) 
 + 
 +{{ :magistraleinformaticanetworking:spm:spm12dic17a1.mp4 |Video1}}{{ :magistraleinformaticanetworking:spm:spm12dic17a2.mp4 |Video2}} 
 + 
 +{{ :magistraleinformaticanetworking:spm:spm12dic17a1.pdf |H1}}{{ :magistraleinformaticanetworking:spm:spm12dic17a2.pdf |H2}} 
 + 
 +Afternoon: 2h (By Massimo Torquati) 
 +  * high level usage of core FastFlow patterns 
 +  * {{ :magistraleinformaticanetworking:spm:fastflow_overview_spm12dic.pdf |Slides}} 
 +  * {{ :magistraleinformaticanetworking:spm:farmsquare.tgz |Additional code files}} 
 + 
 +==== End of lessons ====
magistraleinformaticanetworking/spm/recupero17.1510662551.txt.gz · Ultima modifica: 14/11/2017 alle 12:29 (7 anni fa) da Marco Danelutto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki