=====Journal of Lessons, SPD year 2010-2011==== ====Journal==== * 07/03/2010 ** Introduction to the course** --- Aim and purpose, program, structure, rules and kind of final tests. --- ** Message Passing Interface, Part 1 ** --- The MPI standard, brief history and purpose. Message Passing programming and portability, functional and performance portability. The library approach of MPI. MPI basic concepts: communicators. * 08/03 ** Message Passing Interface, Part 1 continued ** --- MPI basic concepts: communicators, point to point primitives, collective primitives, datatypes; communication semantics in MPI: envelopes, local/global completion, (non)blocking operations, communication modes. Opaque Objects. Primitive datatypes. * 11/03 ** MPI, Part 2 ** --- MPI Datatypes: role in MPI, primitive datatypes, derived datatypes. Datatypes and data conversion/packing/unpacking. Basic Send and Receive and their differences: checking communication result, count of received items, asymmetric receives (wildcard TAG and SOURCE) and the status opaque object in receives. Derived datatypes as //local// opaque objects. Typemaps and type signatures of an MPI datatype. Type signatures and send-receive compatibility, different typemaps corresponding to a same type signature. Basic datatype constructors MPI_CONTIGUOUS, MPI_VECTOR. * 14/03 __No lesson__ * 15/03 __No lesson__ * 18/03 ** MPI, Part 3 ** --- Array and Struct Datatype Constructors: MPI_HVECTOR, MPI_INDEXED, MPI_HINDEXED, MPI_INDEX_BLOCK, MPI_STRUCT; effect of extent and size in composing datatypes in memory, upper bound and lower bound markers, related auxiliary functions: MPI_GET_ADDRESS, MPI_TYPE_SIZE, MPI_TYPE_GET_EXTENT, MPI_TYPE_CREATE_RESIZED, MPI_TYPE_GET_TRUE_EXTENT. Commit and free operations, MPI_TYPE_DUP. MPI_INIT and MPI_FINALIZE. * 21/03 ** MPI, Part 4 ** --- MPI Collective operations (except the ALLTOALLW and reduce/scan operations). * 22/03 ** MPI, Part 5 ** --- MPI Collective operations ALLTOALLW and reduce/scan; user-defined reduction operators. Groups and Communicators: semantics (local versus global), creation and manipulation primitives. * 25/03 24/03 ** MPI, Part 6 ** --- Communication modes: Buffered, Ready, Synchronous. Attaching buffers to MPI: semantics and primitives. Incomplete communications: semantics, MPI_REQUEST opaque objects, MPI_GET_STATUS. Semantics of Incomplete Sends with modes, Incomplete Receive. Semantics and use of MPI_TEST and MPI_WAIT primitives in the plain, *SOME, *ANY and *ALL variants. Brief description of MPI_CANCEL and MPI_REQUEST_FREE. * 28/03 ** Assist, Part 1 ** --- Recap on Parallel Skeleton Languages, introduction to a line of SPP languages (co-)developed at the C.S. Dept. : P3L, OcamlP3L, SKIE, ASSIST. See Assist Tutorials on the course main page. * 29/03 ** MPI lab time ** bring your laptops! * 01/04 ** Assist, Part 2 ** * 04/04 ** Assist, Part 3 ** * 05/04 __No lesson__ * 08/04 ** MPI recap ** --- we will have a short survey of MPI to help who started the course late to get on par with the rest of the class. * 11/04 ** Assist Part 4 ** * 12/04 ** MPI Lab ** Program with multiple parallel modules in MPI. See document at the end of this web page. * 15/04 ** MPI Lab ** Program with multiple parallel modules in MPI. See document at the end of this web page. POLL FOR SETTING UP AN EXTRA LESSON EACH WEEK IN MAY : [[http://www.doodle.com/red98k9t29p49ta6|Doodle poll]] Correction : please disregard previous doodle poll. * 29/04 **Coarse grain and Parallel Bridging models** --- Recap of the RAM model; the Parallel RAM (PRAM) model of algorithmic cost. Theoretical vs realistic cost models, and the quest for parallel bridging models. Modeling communication abstracting away from the network structure: QSM and LogP (mention) and the BSP model. Superstep model, cost of a superstep, cost of an algorithm. BSP can be a programming model: mention of BSPlib and NestStep / BlockLib \\ Doodle poll to fill : [[http://www.doodle.com/4qdx3em9y4mbwrsv|New Doodle poll]] -- please report **NO** for unavailable times, **YES** if you are sure that the time slot is free, and **(yes)** if you don't know for sure. * 02/05 __Lesson canceled for illness__ * 03/05 __Lesson canceled for illness__ * 06/05 __Lesson canceled for illness__ * 09/05 ** XtreemOS ** __to be completed, see slides__ * 10/05 MPI Lab time * 12/05 ** Lesson room: Blue Room at S.Anna building, 16-18 hours (see news in the main page) ** BSP practice. * 13/05 MPI Lab Time * 16/05 ** From Grids to Clouds (and beyond ?) ** Very short survey of Grids and Service oriented architectures. Differences between Grids and Clouds. Basic definitions related to Clouds: Public/Private/Hybrid clouds, Cloudbursting. Introduction to the Contrail Research Project and to Cloud Federations. * 17/05 ** Cloud computing: Open Nebula ** * 19/05 ** Cloud computing: Open Nebula ** * 20/05 * 23/05 GPU computing * 24/05 Discussion on projects * 26/05 GPU computing continued * 27/05 The Cell Broadband Engine processor (CBE) * 30/05 ** The Intel Thread Building Block Library (TBB) ** Introduction, story of the library, approach: high-level constructs, implementation over thread sets; general concepts; current structure of classes+templates over C++ with a runtime library to support them; constructs (parallel_for, parallel_reduce); use of lambda expressions; partitioners; containers (hash_map, vector, queue); types of mutexes. ====Slides, Notes and References to papers==== ^ Date ^ Slides ^ Student notes ^ Other information | | 7-8/3/2011 | {{:magistraleinformaticanetworking:spd:spd-2010-11-intro.pdf|Intro}} {{:magistraleinformaticanetworking:spd:spd010-mpi-lesson1.pdf| MPI part 1}} | |Relevant Material from MPI standard:\\ Chapter 1: have a look at it;\\ Chapter 2: sec. 2.3, 2.4, 2.5.1, 2.5.4, 2.5.6, 2.6.3, 2.6.4, 2.7, 2.8;\\ Chapter 3: sec. 3.1, 3.2.3, 3.4; 3.5, (skim through 3.7). | | 11-18/3/2011 | | |Relevant Material from MPI standard:\\ Chapter 3: sec. 3.2.2 - 3.2.6, 3.3;\\ Chapter 4: sec. 4 up to 4.1.2; 4.1.5 -- 4.1.11 | | 21-22/3/2011 | | |Relevant Material from MPI standard:\\ Chapter 5: sec up to 5.2.1, 5.3 -- 5.8, 5.9, 5.11, 5.12 \\ Chapter 6: up to 6.4 skipping intercommunicators | | 24/3/2011 | | |Relevant Material from MPI standard:\\ Chapter 3: sec 3.4, 3.5, 3.6, 3.7; (skim through 3.8 -- 3.10); 3.11 | | 28/3-11/4/2011 | {{:magistraleinformaticanetworking:spd:assist-2010.part1.pdf|Slides about ASSIST, part I}} | |[[magistraleinformaticanetworking:spd:ASSISTexamples|Assist coding examples]] | | | {{:magistraleinformaticanetworking:spd:assist-v2010.part2.pdf|Slides about ASSIST, part II}} | | | | | {{:magistraleinformaticanetworking:spd:assist-2010.part3.pdf|Slides about ASSIST, part III}} {{:magistraleinformaticanetworking:spd:assist-2010-marcod.part3b.pdf|Slides on ASSIST, part III B}} | | | | 29/3/2011 \\ 12/4/2011 \\ 15/4/2011 \\ 10/5/2011 | {{:magistraleinformaticanetworking:spd:spd10-11_lab_time.pdf|Lab time exercises}} | | | | 29/4/2011 | | | [[http://www.springerlink.com/content/0wpxd6j3l63w/ | "Hierarchical Models and Software Tools for Parallel Programming" - LNCS 2625, cap 15]]\\ [[http://portal.acm.org/citation.cfm?id=79181|Articolo di Valiant sui Parallel Bridging Models]]\\ [[http://delivery.acm.org/10.1145/250000/242490/a208-cormen.html?key1=242490&key2=2755925031&coll=DL&dl=ACM&ip=146.48.82.79&CFID=20752830&CFTOKEN=55191931|Link al position paper di T.H.Cormen]]\\ [[http://www.cs.dartmouth.edu/~thc/papers.html|Pagina degli articoli di Cormen]] | | 9/05/2011 | {{:magistraleinformaticanetworking:spd:xtreemos-confsl_09.pdf|XtreemOS slides (used for the lesson)}}\\ {{:magistraleinformaticanetworking:spd:xtreemos-intro.pdf|XtreemOS slides (longer presentation, for reference)}} | |See paper [[http://www.computer.org/portal/web/csdl/doi/10.1109/MIC.2008.47|Virtual Organization Support within a Grid-Wide Operating System]] | | 12/5/2011 | | | | | 13/5/2011 | | | | | 16/5/2011 | {{:magistraleinformaticanetworking:spd:spd10-11-grids_to_clouds.pdf|Grid and Cloud Introductory Slides}} \\ ** presentation was updated, uploaded on 19/05 ** | | [[http://www.globus.org/alliance/publications/papers/anatomy.pdf|Foster, Kesselman, Tuecke, The Anatomy of the Grid]]\\ [[http://portal.acm.org/citation.cfm?id=1851542|Craig Lee, A perspective on scientific cloud computing - HPDC2010]]\\ [[http://cordis.europa.eu/fp7/ict/ssai/docs/cloud-report-final.pdf|“The Future Of Cloud Computing” – report of EU expert group]] | | 17/5/2011 \\ 19/5/2011 \\ 20/5/2011 | {{:magistraleinformaticanetworking:spd:spd10-11-tutorial_v2_open_nebula.pdf|Tutorial about OpenNebula}} \\ {{:magistraleinformaticanetworking:spd:spd-10-11-contrail-overview.pdf|Contrail overview}} \\ {{:magistraleinformaticanetworking:spd:spd-10-11-contrail-federations.pdf|Contrail and Cloud federations}} | | | | 27/5/2011 | | | {{:magistraleinformaticanetworking:spd:spd-10-ieeemicro-cell.pdf|Articolo sul processore Cell BE}} | | 30/5/2011 | {{:magistraleinformaticanetworking:spd:spd-10-11-tbb.pdf|Introduction to the Thread Building Blocks}} | | |