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:09 (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**: 
 +  * 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.1510661367.txt.gz · Ultima modifica: 14/11/2017 alle 12:09 (7 anni fa) da Marco Danelutto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki