Strumenti di programmazione per sistemi paralleli e distribuiti

Teacher: Dr. Massimo Coppola

Contact info
e-mail :
Phone : 050 315 2992
Office : CNR Reseach Area, ISTI-CNR, Building C, room 33

This page concerns the SPD course (308AA) for the academic year 2011-2012

Please see the NEWS section
Information about SPD for the 2009-2010 academic year can be found here
Information about SPD for the 2010-2011 academic year can be found here

APU chip picture from AMD


This is expected to be the final timetable from 10/10/2011 on

Monday 11-13 Room N1 (Polo Fibonacci)
Wednesday 9-11 Room L1 (Polo Fibonacci)
Thursday 11-13 Room N1 (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

  • 7/03/2012 FINAL SEMINARS TOMORROW for students of the 2010-2011 course, students from the 2011-2012 course are invited.
    Thursday 8/3 from 14-16, in the C.S. Dept., room Seminari EST.
    Code projects developed for the course final examination are described.
    • Daniele De Sensi “Dancing Links with MPI/Intel TBB”
    • Andrea Bozzi, Francesco Piccinno “PomeGranate, a Fault tolerant MapReduce Framework”
    • Tudor Serban “Data-parallel computations on heterogeneous hardware: Combining TBB and CUDA”
  • 6/12/2011 Extra lessons As agreed yesterday, extra lesson today 6/12 16:00-18:00 Room B, and Friday 9/12/2011 9:00-11:00 Room B
  • 09/11/2011 FOR TOMORROW 10/11/2011 : note that we will have another lab session.
  • 08/11/2011 We will have a lab time tomorrow 09/11. Tomorrow the designated room is L1, may not be available (because of technical problems several courses are being moved). We will meet there and possibly move to a different room.
  • 26/10/2011 Tomorrow, 27/10, we will continue the MPI lab session.
  • 25/10/2011 As stated on Monday, lesson on the 26/10 will be an MPI lab session.
  • 13/10/2011 Lesson tomorrow 14/10/2011, slot 9-11 in room L1. NOTE THAT NEXT WEEK, from 17/10 to 21/10, THERE WILL BE NO LESSONS.
  • 10/10/2011 Lesson today was unfortunately cancelled this morning, notice was given via the personnel at the Polo Fibonacci. Next lessons will be Wednesday and Thursday.
  • 9/10/2011 Final timetable (except extra slot) valid from this week on. For this week we'll also have an extra slot either on Tuesday or on Friday.
  • 3/10/2011 For this week, lessons will be on Wednesday 5/10 9-11 (room TBD) and Friday 7/10 9-11 (room N1). Next week, we hopefully will converge to the following final timetable : Mon 11-13, Wed 9-11, Thu 11-13; potential extra slots Tue 16-18, Thu 9-11, Fri 9-11.
  • 20/09/2011 Tomorrow lesson (Wed. 21 September) will be 9-11 in Room I 1. The meeting after the lesson to discuss projects is moved to 16:00 at CNR (same time, different place)
  • 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.

Course Journal

TILEPro64™ Processor Block Diagram

The 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
    • OpenNebula
  • Programming systems/frameworks
    • MPI (the core part of the MPI 2.2 standard)
    • ASSIST
    • Multicore oriented frameworks : Thread Building Blocks
  • Massively Multicore computation
    • GPGPU frameworks : CUDA, Brooks+
  • Example Applications

Further details are given in the first lesson (see online slides in the course journal).

Teaching material


  • Standard MPI 2.2 Only those parts that we will specify during the lessons.
    On the 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:Tutorial ASSIST Febbraio 2007
    Slightly newer version (in English) Assist Tutorial Nov 2007
    Tutorial of the deployment server GEA 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 course journal


Data Mining Algorithms


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, but can be proposed by the students. 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. Experimental projects are usually strongly encouraged. As the project topic is agreed, you are expected to send a two-page summary of the problem to tackle / application to write with enough insight to explain it, and stating which parallel/distributed tools are you going to use and how the code produced will be evaluated.

Almost obviously, the same project cannot be discussed/presented twice unless substantial changes are made.

Project Person(s) Status
magistraleinformaticanetworking/spd/spd-11-12.txt · Ultima modifica: 24/09/2012 alle 15:38 (5 anni fa) da Massimo Coppola