Strumenti Utente

Strumenti Sito


magistraleinformaticanetworking:spm:sdpm12support

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
magistraleinformaticanetworking:spm:sdpm12support [31/05/2012 alle 14:08 (12 anni fa)]
Marco Danelutto [Current year material]
magistraleinformaticanetworking:spm:sdpm12support [16/07/2012 alle 21:54 (12 anni fa)] (versione attuale)
Marco Danelutto [Most popular frameworks in SPM course (project)]
Linea 8: Linea 8:
  
   * POSIX syscalls: Stevens "Advanced programming in the Unix Enviroment" Addison Wesley + Stevens "UNIX Network programming", Prentice Hall.    * POSIX syscalls: Stevens "Advanced programming in the Unix Enviroment" Addison Wesley + Stevens "UNIX Network programming", Prentice Hall. 
-===== Current year material ===== 
  
 ==== Course notes ==== ==== Course notes ====
Linea 27: Linea 26:
     * Skandium [[http://skandium.niclabs.cl/|home page]]     * Skandium [[http://skandium.niclabs.cl/|home page]]
   * C/C++ based programming frameworks   * C/C++ based programming frameworks
-    * FastFlow [[http://calvados.di.unipi.it/dokuwiki/doku.php?id=ffnamespace:about|home page]]+    * FastFlow [[http://calvados.di.unipi.it/dokuwiki/doku.php?id=ffnamespace:about|home page]] and [[http://sourceforge.net/projects/mc-fastflow/|source forge home]]
     * SkeTo [[http://sketo.ipl-lab.org/|home page]]     * SkeTo [[http://sketo.ipl-lab.org/|home page]]
     * Muesli [[http://www.wi.uni-muenster.de/pi/forschung/Skeletons/index.html|home page]]     * Muesli [[http://www.wi.uni-muenster.de/pi/forschung/Skeletons/index.html|home page]]
Linea 35: Linea 34:
 The skeleton frameworks more commonly used within the projects are summarized in the following section, with more pointers and material. The skeleton frameworks more commonly used within the projects are summarized in the following section, with more pointers and material.
  
 +==== Design patterns material ====
 +  * [[http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612|Amazon pointer]] to //Design Patterns: Elements of Reusable Object-Oriented Software// book by Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides (this is not relative to "parallel" patterns, actually) 
 +  * [[http://www.amazon.com/Patterns-Parallel-Programming-Timothy-Mattson/dp/0321228111|Amazon pointer]] to //Patterns for Parallel Programming// by Mattson, Sanders and Massingill, this is the book of parallel design patterns mentioned during the lessons
 +  * Parallel design pattern [[http://www.cs.uiuc.edu/homes/snir/PPP/|resource page]]
 +  * [[http://www.cs.uiuc.edu/homes/snir/PPP/design/massingill.pdf|1]] [[http://www.cs.uiuc.edu/homes/snir/PPP/design/massingill2.pdf|2]] [[http://www.cs.uiuc.edu/homes/snir/PPP/design/massingill3.pdf|3]] [[http://www.cs.uiuc.edu/homes/snir/PPP/design/massingill4.pdf|4]] : pointers to papers by Massingill et al. illustrating parallel design patterns. 
 ==== Most popular frameworks in SPM course (project) ==== ==== Most popular frameworks in SPM course (project) ====
 +
 === FastFlow ===  === FastFlow === 
-FastFlow is a C++ skeleton programming framework targeting shared memory architectures. It will be used within the course as one of the reference programming environments. A chapter detailing FastFlow usage (kind of "handson" gentle introduction") will be included in the Course notes. FastFlow online documentation is available at the [[http://calvados.di.unipi.it/dokuwiki/doku.php?id=ffnamespace:about|FastFlow home page]]. The current version of the programming framework may be downloaded from [[http://sourceforge.net/projects/mc-fastflow/|sourceforge]].+FastFlow is a C++ skeleton programming framework targeting shared memory architectures. It will be used within the course as one of the reference programming environments. A chapter detailing FastFlow usage (kind of "handson" gentle introduction") will be included in the Course notes. FastFlow online documentation is available at the [[http://calvados.di.unipi.it/dokuwiki/doku.php?id=ffnamespace:about|FastFlow home page]]. The current version of the programming framework may be downloaded from [[http://sourceforge.net/projects/mc-fastflow/|sourceforge]] (follow tab "Develop". You'll find here the command needed to checkout the last version from the sourceforge SVN, which is usually more up to date than the version provided through tar.gz files from the same web site.  
 +Once downloaded, please consider issuing quite often an "svn update" from the FastFlow download directory to update last changes.
  
 +== Sample programs == 
 Sample programs used to introduce the programming framework:  Sample programs used to introduce the programming framework: 
   * HelloWorld with [[ffhwpipe|pipelines]]   * HelloWorld with [[ffhwpipe|pipelines]]
Linea 44: Linea 51:
   * Sample [[fffarms|farms]]    * Sample [[fffarms|farms]] 
  
 +== Tutorial ==
 A tutorial discussing how to use FastFlow has been prepared as part of the course notes. The PDF of this appendix to the course notes is available [[http://backus.di.unipi.it/~marcod/SPM1112/ff_tut.pdf|here]]. A tutorial discussing how to use FastFlow has been prepared as part of the course notes. The PDF of this appendix to the course notes is available [[http://backus.di.unipi.it/~marcod/SPM1112/ff_tut.pdf|here]].
  
 +== MISD skeleton (draft) == 
 +During the course lessons, we showed how the farm template in FastFlow may be specialized to implement other skeletons. In particular we we discussed a MISD (Multiple Instruction Single Data) skeleton, processing each item of the input stream by //n// different functions and returning a tuple with the //n// results computed. The FastFlow code for this skeleton is shown in the code on this [[http://backus.di.unipi.it/~marcod/PhD12/ff_misd_allgather.cpp|link]]. 
 +
 +== Using SkePu to support GPUs ==
 Sample FastFlow using a SkePU map stage is shown [[http://didawiki.cli.di.unipi.it/doku.php/magistraleinformaticanetworking/spm/skepu_ff|here]]. Sample FastFlow using a SkePU map stage is shown [[http://didawiki.cli.di.unipi.it/doku.php/magistraleinformaticanetworking/spm/skepu_ff|here]].
  
-The experimental version targeting clusters and presented in the lesson of M. Torqauti is available [[http://backus.di.unipi.it/~marcod/SPM1112/fastflow_dnode.tgz|here]]. +== Targeting COW/NOW ==  
 +The original experimental version targeting clusters and presented in the lesson of M. Torquati has been included in the version available through the sourceforge SVN [[http://sourceforge.net/projects/mc-fastflow/develop|sourceforge SVN]]. 
  
 === Skandium ===  === Skandium === 
magistraleinformaticanetworking/spm/sdpm12support.1338473333.txt.gz · Ultima modifica: 31/05/2012 alle 14:08 (12 anni fa) da Marco Danelutto