Indice
Distributed systems: paradigms and models
This page will host all the support material relative to the course: useful links, teacher's notes, articles, etc. The notes relative to the structured parallel programming models that were supposed to be available before Christmas will not be published before end of January (presumably). We apologize for this. All the course lessons are now available on the course web pages (slides and recordings) and we updated the support material web page in such a way most of the arguments dealt with in the course have some pointers to online documentation and/or already published papers.
Logistics
- This link shows you the position of all the buildings somehow relevant to the Master
Admin
Slides of all the lessons given in the course
Lesson slides for the single lessons given during the course can be taken from the 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.
Course introduction and motivations
- Link to the Top500.org home page
- Presentation by Prof. Antonio González on Elastic Parallel Architectures, at Europar'2009
- Intel 80 core teraflop chip
- Tilera multicore chip home page
- The book Introduction to parallel computing (Amazon pointer) by Grama, Karypis, Kumar and Gupta, has in Chapter 5 a good introduction to performance modelling of parallel forms. Most of the analytical modelling presented in SPM lessons is discussed in the book by M. Vanneschi “Architettura degli elaboratori”, PLUS ed. 2010 in chapter X (this is in Italian, however).
Structured parallel/distributed programming
Skeletons
- the Skeletal parallelism home page maintained by Murray Cole
- Cole's PhD thesis (gzipped postscript)
- Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming paper (Cole's manifesto on skeletal programming)
- Paper Algorithmic skeletons meeting grids by Aldinucci, Danelutto, Parallel Computing 32 (2006) 449–462, extending the principles of Cole's manifesto.
- P3L paper Draft here.
- Paper introducing the macro data flow implementation model for skeletons
- 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).
- 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. //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 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 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 (Amazon pointer) by Grama et al. has also a chapter with the definitions of the measures we used to evaluate performance.
- The book by S. Pelagatti Structured development of parallel programs is a quite old book on skeletons that can be found in our library
Design patterns
- 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)
- 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 resource page
NEW!
- A fresh look at the parallel programming problems: 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)
Non structured
- Sample POSIX/TCP code (pipeline)
- Code for opening two connections (server and client) with pthreads
- Code for opening two connections (server and client) with OpenMP
- Code for the Pipeline example (naif version, only integers, connections opened for each communication)
- Code for the RTS answering discovery messages
- Code for the discoverer process
- Code for the enhanced, standalone Pipeline example
- OpenMP
- MPI
- TBB
- Intel Thread Building Block library partially adopts skeleton concepts and technology.
Structured
C(++) + MPI based
- eSkel
- eSkel home page. This is the skeleton library maintained at the group of Murray Cole in Edinburgh.
- Muesli
- SkeTo
- SkeTo is the skeleton library running on top of MPI by Tokyo skeleton group. The home page has links to download the library and the relative documentation.
- MALLBA
- This is a project run by Spanish Univ. Here is the project home page
- ASSIST
- This is not targeting MPI, actually (it uses a POSIX/TCP target). Most of the concepts in ASSIST come from the skeleton and coordination language frameworks. ASSIST home page is here
Java based
- ProActive/Calcium home page
- Mario Leyton has recently released a new version of Calcium, which is named Skandium. This is the Skandium home page where you can download code (GPL) and documentation.
- Behavioural skeletons
- Behavioural skeletons run on top of ProActive and provide rule based autonomic managers of non functional features (performance). This is the home page within the GridCOMP project web pages.
- Muskel
AOP/annotations based
- Joao Sobral AOP skeletons
ML based
Notes
- 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)