====== Strumenti di programmazione per sistemi paralleli e distribuiti ====== ** Teacher: ** Dr. Massimo Coppola This page concerns the SPD course (308AA) for the academic year 2010-2011 |** Information about SPD for the 2009-2010 academic year can be found [[magistraleinformaticanetworking:spd:spd-09-10|here]] **| **Contact info**\\ e-mail : massimo.coppola@isti.cnr.it \\ Phone : 050 315 2992 \\ Office : CNR Reseach Area, ISTI-CNR, Building C, room 33 {{ :magistraleinformaticanetworking:spd:tilera-wafer.jpg?300|Wafer picture from Tilera}} ==== Timetable ==== ^Monday | 9-11 | Room O1 (Polo Fibonacci) | ^Tuesday | 16-18 | Room 27B (S.Anna - CNR Research Area) | | Thursday | 16-18 | //time slot for extra lessons in May// | ^Friday | 16-18 | Room B (Polo Fibonacci) | In case of exceptions, notice will be given in the News section below in this page. ** Question time ** Students should contact the teacher in advance by phone / e-mail. A different time can be agreed upon if needed. ^ Tuesday| 15.30-17 | ISTI-CNR room 25a or C.S. Dept. Room 385| -------- === News and Updates === * ** 09/9/11 The SPD course for the 2011-2012 academic year has been moved to the 1st teaching term. Due to work constraint, the lessons __will NOT__ start next week. The first lesson will be on Monday 19/09/2011. ** * 30/5/11 After the end of the course, there will be one or two short seminars given by your colleagues from the previous course; the seminars will be scheduled on a day in July. A doodle pool will be set to check avaiability, all students are invited to attend these seminars. * 20/5/11 The MPI Lab Exercise with triangular column-based matrices will not work correctly due to a bug in the datatype routines of OpenMPI (column 2 of the upper triangular has incorrect typemap). The bug has been verified at least in OpenMPI v 1.2.8 and v1.4.3. Mpich is reported to work correctly. * ** 19/5/11 Lesson today is in S. Anna building, Room 27B. ** Lesson on Thursday 26/5 will be in the same building, Computer Room. * 19/5/11 There will be extra lessons today and on Thursday 26/5, as confirmed last monday. * 11/5/11 Extra lesson for tomorrow 12/5 is confirmed, 16-18 hours, Blue Room at S.Anna building, CNR Research Area. //Other extra lessons will likely be scheduled on Thu 19/05 and 26/05.// * 10/5/11 During May there will be an extra lesson on Thursday 16-18 hours, room TBD. * 6/5/11 Also today's lesson will not be held. Teaching will restart regularly on Monday 9/5. * 2/5/11 Today's lesson is canceled due to illness; if I get better, tomorrow afternoon (3/3) there will be a lab time. News will be posted on the site. * 27/4/11 Please note that my office location at CNR has changed. Office locationat the C.S. Dept. is about to change too. * (04/04/11) As noted in the course calendar and confirmed last week, the teacher is on travel and the lesson tomorrow (5/04) has to be canceled. This week on Friday (8/04) the course time slot is taken by a fundamental course of the 2nd year. A recap on MPI will be presented instead. * (23/03/11) The lesson for next Friday has been be moved to tomorrow ** Thursday 24/03/2011, 11-13, at the PC room in S.Anna Buildings ** due to an exceptional superposition with other courses. * (11/03/2011) There will be no lessons on next Monday and Tuesday (14-15/3), the next lesson will be on Friday afternoon (18/03). * (11/03/2011) As all the students which follow the course are at their 2nd year, the timetable has been modified concerning Tuesday, on order to avoid that students need to from S.Anna to Fibonacci Area buildings between morning lessons. * (07/03/2011) Agreement on changing the time table shall be reached ** tomorrow **. Either attend the lesson or write the teacher. * (07/03/2011) Last-minute change to the timetable brought the Tuesday lesson to the morning. * (02/03/2011) Monday lesson moved to **9:00-11:00**. First lesson will be on Monday 07/03/2011 * (25/02/2011) New page created -------- ==== Course Journal ==== {{ :magistraleinformaticanetworking:spd:tilepro64-block-diagram3.jpg?300|TILEPro64™ Processor Block Diagram}} The [[magistraleinformaticanetworking:spd:lezioni10.11|course journal]] is a separate page in this wiki. ==== Aim of the Course ==== The course will provide a description and analysis of a few key parallel and distributed programming platforms and models, starting from their theoretical foundations, where not covered by previous courses, and focusing on (1) existing standards for platforms and programming systems and (2) State-of-the-art solutions. The course will include practical use of those systems to develop simple applications. ==== Overall Program ==== The course will cover the following topics. * Foundation, Technologies * Elementary mechanisms to distribute computation * Basics of scheduling algorithms and resource management * Basics of Service Oriented Architectures SOA * Platforms * Grids and Clouds * XtreemOS * Contrail * Programming systems/frameworks * MPI (the core part of the MPI 2.2 standard) * ASSIST * Multicore oriented frameworks * Example Applications Further details are given in the first lesson (see online slides in the course journal). ==== Teaching material ==== === Books === * [[http://www.mpi-forum.org/docs/mpi-2.2/mpi22-report.pdf|Standard MPI 2.2]] Only those parts that we will specify during the lessons. \\ On the [[http://www.mpi-forum.org/|MPI forum web site]] you will find alternate formattings and some translations; version 2.2 of the MPI standard collects all the material from previous versions of the standard (1.0, 1.1, 2.0 and so on) within a single document. * B. Wilkinson, M. Allen Parallel Programming, 2nd edition. 2005, Prentice-Hall. This book will be also used; at least the 1st edition is available in the University Library of Math/Comp.Sc./Physiscs, under code C.1.2 w74 INF . * Tutorial on the Assist Compiler. Old version:{{ccp:tutorial_assist_03_2007.pdf|Tutorial ASSIST Febbraio 2007}}\\ Slightly newer version (in English) {{:magistraleinformaticanetworking:spd:assisttutorial-30112007.pdf|Assist Tutorial Nov 2007}}\\ Tutorial of the deployment server GEA {{ccp:descrizioneloader1.1.pdf|GEA documentation, November 2006}}. === Papers and reading material === ^** The content in this subsection has not yet been updated for year 2010-2011; please check the table of references at the end of the [[magistraleinformaticanetworking:spd:lezioni10.11|course journal]] **| Virtualization * {{:magistraleinformaticanetworking:spd:virmach_overview_smith-04.pdf|An Overview of Virtual Machine Architectures}} J. E. Smith and Ravi Nair * [[http://dx.doi.org/10.1109/MC.2005.173|The architecture of virtual machines]] J.E. Smith, Ravi Nair. IEEE Computer Vol. 38, Issue 5, 2005, Pages 32 - 38. Data Mining Algorithms * [[http://www.di.unipi.it/~coppola/didattica/ccp0506/papers/dhillon-modha-corretto_parkmeans.ps|Dhillon & Modha Technical Report su K-means parallelo]] A Data-Clustering Algorithm On Distributed Memory Multiprocessors. I.S. Dhillon, D.S.Modha, LNAI 1759, pag 245. **Nota:** la versione disponibile online via LNCS riporta un algoritmo errato, il technical report è corretto. * [[http://www.di.unipi.it/~coppola/didattica/ccp0506/papers/i0871.pdf|Ottimizzazioni sequenziali e parallele per K-means]] Large-Scale Parallel Data Clustering. Dan Judd, Philip K. Mckinley, Anil K. Jain. Ieee Transaction On Pattern Analysis And Machine Intelligence, Vo. 20, No. 8 August 1998. ==== Prerequisites ==== ==== Final test ==== Final test: Project + short colloquium to be held during one of the exam sessions. Topic //to be previously agreed// with the teacher. Individual projects are assigned to the students by the teacher. For difficult projects, 2 students, no more than that, can work on the same project. The projects can be assigned during the second half of the lesson period, or later on, during the academic year, when the student ask for it. Project can be experimental (coding + testing + written relation) and discussed with the teacher, or seminarial (relation and public talk about assigned papers) to be presented during one exam session. The same project cannot be discussed/presented twice unless substantial changes are made. ^ Project ^ Person(s) ^ Status ^ | | Mura M. | Assigned | | Hirschberg's Algorithm with MPI (and threads?) | Giuliani S. | Exploration | | Prim's Algorithm for Min Support Tree | Martinelli F. | Exploration | | Dantzig-Wolfe decomposition with TBB | Buccarella M. | Assigned | | Dancing Links with MPI/threads | De Sensi D. | Assigned | | Parallel Shortest Paths with TBB (Bellman-Ford, Thresold) | De Leo D. | Assigned | | Map&Reduce engine in python+MPI| Bozzi A., Piccinno F. | Assigned | | | Serban T. | |