Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente |
magistraleinformaticanetworking:spm:sdpm09support [20/01/2010 alle 08:54 (15 anni fa)] – Marco Danelutto | magistraleinformaticanetworking:spm:sdpm09support [23/09/2010 alle 15:36 (15 anni fa)] (versione attuale) – Marco Danelutto |
---|
==== Slides of all the lessons given in the course ==== | ==== Slides of all the lessons given in the course ==== |
Lesson slides for the single lessons given during the course can be taken from the [[http://www.cli.di.unipi.it/doku/doku.php/magistraleinformaticanetworking/spm/sdpm09lessons|lessons]] web page. | Lesson slides for the single lessons given during the course can be taken from the [[http://www.cli.di.unipi.it/doku/doku.php/magistraleinformaticanetworking/spm/sdpm09lessons|lessons]] web page. |
Here is a link with a PDF with all the slides used (included handwritings, if available), in a two slides per page format. | Here is a [[http://backus.di.unipi.it/~marcod/SPM/AllLessonsB2p.pdf|link]] with a PDF with all the slides used (included handwritings, if available), in a two slides per page format. |
| |
==== Course introduction and motivations ==== | ==== Course introduction and motivations ==== |
* Paper //[[http://calvados.di.unipi.it/storage/paper_files/2006_advske_PC.pdf|Algorithmic skeletons meeting grids]]// by Aldinucci, Danelutto, Parallel Computing 32 (2006) 449–462, extending the principles of Cole's manifesto. | * Paper //[[http://calvados.di.unipi.it/storage/paper_files/2006_advske_PC.pdf|Algorithmic skeletons meeting grids]]// by Aldinucci, Danelutto, Parallel Computing 32 (2006) 449–462, extending the principles of Cole's manifesto. |
* P3L paper [[http://calvados.di.unipi.it/storage/paper_files/1995_p3l_concurrency.pdf|Draft]] here. | * P3L paper [[http://calvados.di.unipi.it/storage/paper_files/1995_p3l_concurrency.pdf|Draft]] here. |
* [[http://cotognata.di.unipi.it/~marcodanelutto/SPM/mdf_paper.pdf|Paper]] introducing the macro data flow implementation model for skeletons | * [[http://backus.di.unipi.it/~marcod/SPM/mdf_paper.pdf|Paper]] introducing the macro data flow implementation model for skeletons |
* [[http://cotognata.di.unipi.it/~marcodanelutto/SPM/assistmdf.pdf|Paper]] comparing template based and macro data flow based implementation of the ASSIST parmod skeleton (//An alternative implementation schema for ASSIST parmod// by M. Danelutto, C. Migliore & C. Pantaleo). | * [[http://backus.di.unipi.it/~marcod/SPM/assistmdf.pdf|Paper]] comparing template based and macro data flow based implementation of the ASSIST parmod skeleton (//An alternative implementation schema for ASSIST parmod// by M. Danelutto, C. Migliore & C. Pantaleo). |
* [[http://www.di.unipi.it/~aldinuc/papers/2007_SCPE_muskel.pdf|Muskel: an expandable skeleton environment]] by M. Aldinucci, M. Danelutto and P. Dazzi (paper on Muskel expandability through macro data flow graphs) | * [[http://www.di.unipi.it/~aldinuc/papers/2007_SCPE_muskel.pdf|Muskel: an expandable skeleton environment]] by M. Aldinucci, M. Danelutto and P. Dazzi (paper on Muskel expandability through macro data flow graphs) |
* Structured and unstructured parallelism exploitation using macro data flow. [[http://cotognata.di.unipi.it/~marcodanelutto/SPM/IC.59_PAPP06_reading.pdf|//Joint Structured/Unstructured Parallelism Exploitation in muskel//]], by Danelutto, Dazzi, Proc. of ICCS: Intl. Conference on Computational Science, Workshop on Practical Aspects of High-level Parallel Programming, LNCS Springer, 2006. | * Structured and unstructured parallelism exploitation using macro data flow. [[http://backus.di.unipi.it/~marcod/SPM/IC.59_PAPP06_reading.pdf|//Joint Structured/Unstructured Parallelism Exploitation in muskel//]], by Danelutto, Dazzi, Proc. of ICCS: Intl. Conference on Computational Science, Workshop on Practical Aspects of High-level Parallel Programming, LNCS Springer, 2006. |
* Skeleton semantics. One [[http://www.di.unipi.it/~aldinuc/paper_files/2005_semantics_CLSS.pdf|paper]] from our group in Pisa (//Skeleton-based parallel programming: Functional and parallel semantics in a single shot// by Aldinucci, Danelutto, Computer Languages, Systems & Structures 33 (2007) pages 179 – 192. Another [[http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=04457103|paper]] by Mario Leyton (//Type Safe Algorithmic Skeletons// by Leyton, Caromel, 16th Euromicro PDP conference, Toulouse 2008). | * Skeleton semantics. One [[http://www.di.unipi.it/~aldinuc/paper_files/2005_semantics_CLSS.pdf|paper]] from our group in Pisa (//Skeleton-based parallel programming: Functional and parallel semantics in a single shot// by Aldinucci, Danelutto, Computer Languages, Systems & Structures 33 (2007) pages 179 – 192. Another [[http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=04457103|paper]] by Mario Leyton (//Type Safe Algorithmic Skeletons// by Leyton, Caromel, 16th Euromicro PDP conference, Toulouse 2008). |
* Performance modeling of skeleton implementations. The notes "ASE" by M. Vanneschi, edited by SEU, have a chapter on analytical modelling of skeleton, which is basically what we used in this course (this is in Italian, unfortunately). The book mentioned above //Introduction to parallel computing// ([[http://www.amazon.com/Introduction-Parallel-Computing-Ananth-Grama/dp/0201648652|Amazon pointer]]) by Grama et al. has also a chapter with the definitions of the measures we used to evaluate performance. | * Performance modeling of skeleton implementations. The notes "ASE" by M. Vanneschi, edited by SEU, have a chapter on analytical modelling of skeleton, which is basically what we used in this course (this is in Italian, unfortunately). The book mentioned above //Introduction to parallel computing// ([[http://www.amazon.com/Introduction-Parallel-Computing-Ananth-Grama/dp/0201648652|Amazon pointer]]) by Grama et al. has also a chapter with the definitions of the measures we used to evaluate performance. |
=== NEW! === | === NEW! === |
* A fresh look at the parallel programming problems: [[http://delivery.acm.org/10.1145/1570000/1562783/p56-asanovic.pdf?key1=1562783&key2=4491499521&coll=portal&dl=ACM&ip=131.114.88.241&CFID=66597108&CFTOKEN=59109785|A View of the Parallel Computing Landscape]] by Krste AsAnoViC, rAstisLAV boDiK, JAmes DemmeL, tonY KeAVenY, Kurt KeutZer, John KubiAtoWiCZ, neLson morGAn, DAViD PAtterson, KoushiK sen, John WAWrZYneK, DAViD WesseL, AnD KAtherine YeLiCK. | * A fresh look at the parallel programming problems: [[http://delivery.acm.org/10.1145/1570000/1562783/p56-asanovic.pdf?key1=1562783&key2=4491499521&coll=portal&dl=ACM&ip=131.114.88.241&CFID=66597108&CFTOKEN=59109785|A View of the Parallel Computing Landscape]] by Krste AsAnoViC, rAstisLAV boDiK, JAmes DemmeL, tonY KeAVenY, Kurt KeutZer, John KubiAtoWiCZ, neLson morGAn, DAViD PAtterson, KoushiK sen, John WAWrZYneK, DAViD WesseL, AnD KAtherine YeLiCK. |
| |
==== Target architectures (sw) ==== | ==== Target architectures (sw) ==== |
=== Non structured === | === Non structured === |
* Sample POSIX/TCP code (pipeline) | * Sample POSIX/TCP code (pipeline) |
* [[http://cotognata.di.unipi.it/~marcodanelutto/SPM/main_thread.cpp|Code]] for opening two connections (server and client) with pthreads | * [[http://backus.di.unipi.it/~marcod/SPM/main_thread.cpp|Code]] for opening two connections (server and client) with pthreads |
* [[http://cotognata.di.unipi.it/~marcodanelutto/SPM/main_openmp.cpp|Code]] for opening two connections (server and client) with OpenMP | * [[http://backus.di.unipi.it/~marcod/SPM/main_openmp.cpp|Code]] for opening two connections (server and client) with OpenMP |
* [[http://cotognata.di.unipi.it/~marcodanelutto/SPM/pipeline1.tgz|Code]] for the Pipeline example (naif version, only integers, connections opened for each communication) | * [[http://backus.di.unipi.it/~marcod/SPM/pipeline1.tgz|Code]] for the Pipeline example (naif version, only integers, connections opened for each communication) |
* [[http://cotognata.di.unipi.it/~marcodanelutto/SPM/rts.tgz|Code]] for the RTS answering discovery messages | * [[http://backus.di.unipi.it/~marcod/SPM/rts.tgz|Code]] for the RTS answering discovery messages |
* [[http://cotognata.di.unipi.it/~marcodanelutto/SPM/discoverer.cpp|Code]] for the discoverer process | * [[http://backus.di.unipi.it/~marcod/SPM/discoverer.cpp|Code]] for the discoverer process |
* [[http://cotognata.di.unipi.it/~marcodanelutto/SPM/omp_stage.cpp|Code]] for the enhanced, standalone Pipeline example | * [[http://backus.di.unipi.it/~marcod/SPM/omp_stage.cpp|Code]] for the enhanced, standalone Pipeline example |
* OpenMP | * OpenMP |
* [[http://openmp.org/wp/|Home page]] | * [[http://openmp.org/wp/|Home page]] |
Java based | Java based |
* ProActive/Calcium home page | * ProActive/Calcium home page |
* [[http://proactive.inria.fr/Home page]] | * [[http://proactive.inria.fr|Home page]] |
* Mario Leyton has recently released a new version of Calcium, which is named Skandium. This is the [[http://skandium.niclabs.cl|Skandium home page]] where you can download code (GPL) and documentation. | * Mario Leyton has recently released a new version of Calcium, which is named Skandium. This is the [[http://skandium.niclabs.cl|Skandium home page]] where you can download code (GPL) and documentation. |
* Behavioural skeletons | * Behavioural skeletons |
* Behavioural skeletons run on top of ProActive and provide rule based autonomic managers of non functional features (performance). This is the [[http://gridcomp.ercim.org/content/view/26/34/|home page]] within the GridCOMP project web pages. | * Behavioural skeletons run on top of ProActive and provide rule based autonomic managers of non functional features (performance). This is the [[http://gridcomp.ercim.org/content/view/26/34/|home page]] within the GridCOMP project web pages. |
* Muskel | * Muskel |
* Muskel [[http://cotognata.di.unipi.it/~marcodanelutto/wiki/doku.php?id=muskel|home page]] | * Muskel [[http://backus.di.unipi.it/~marcod/wiki/doku.php?id=muskel|home page]] |
* Download muskel from [[http://cotognata.di.unipi.it/~marcodanelutto/SPM/muskel.tgz|this link]] | * Download muskel from [[http://backus.di.unipi.it/~marcod/SPM/muskel.tgz|this link]] |
| |
AOP/annotations based | AOP/annotations based |
* OcamlP3L | * OcamlP3L |
* This is an implementation of P3L written in Ocaml, the french dialect of ML ([[http://ocamlp3l.inria.fr/eng.htm|home page]]). | * This is an implementation of P3L written in Ocaml, the french dialect of ML ([[http://ocamlp3l.inria.fr/eng.htm|home page]]). |
* Skipper | * Skipper |
* Several version of Skipper was developed by J. Serot at LASMEA, here is the [[http://wwwlasmea.univ-bpclermont.fr/Personnel/Jocelyn.Serot/skipperd.html|home page]] of the last version, Skipper-D. Skipper adopts a macro data flow implementation. | * Several version of Skipper was developed by J. Serot at LASMEA, here is the [[http://wwwlasmea.univ-bpclermont.fr/Personnel/Jocelyn.Serot/skipperd.html|home page]] of the last version, Skipper-D. Skipper adopts a macro data flow implementation. |
| |
| === Notes === |
| * [[http://backus.di.unipi.it/~marcod/Tools/ProactiveScaLab.pdf|Notes]] on components with ProActive and SCA Tuscany (draft, all the examples detailed have been tested, but there are more recent versions of both ProActive and Tuscany SCA) |