Edition 2013/2014

Teacher: Alessio Bechini
CFU: 3 (out of 9)
Code : 589II


COURSE DESCRIPTION
tag cloud of common Concurrent Computing terms
The course is aimed at providing students with a comprehensive vision of the  foundations of concurrent and distributed programming. The main focus of the lectures is on system models and on different types of frameworks intended to support the development of concurrent systems at different abstraction levels and  on different underlying platforms.

Students will acquire the basic skills to participate in the design, implementation and integration of concurrent and distributed software systems, possibly made of heterogeneous components.

Prerequisites: knowledge of Operating Systems basics, and mastering of Java and C/C++.

 

NEWS/ALERTS

-   Dates for the next exams - In case of planned attendence, students are invited to inform the teacher by email.

1st test 2nd test 3rd test
Mon. June 16th, 2014
Lab Blu, dip. Ing. Inf.
h. 9:00
Mon. July 7th, 2014
Lab Blu, dip. Ing. Inf.
h. 9:00
Mon. July 28th, 2014
Lab Blu, dip. Ing. Inf.
h. 9:00
 
 

SCHEDULE
First lecture on Mon Sep. 30th, 2013

Mon. 10:30-13:30 ADInform1 room.



 

SYLLABUS

A detailed description is available via the record of lessons (see the left menu item).
Hereafter, a cathegorized list of topics can be interactively explored. 




 

FINAL TEST
The final test is organized as follows:

a)   brief written/practical test, immediately followed by
b)   oral exam.

Students can opt to substitute part a) for a project, to be assigned by the teacher.

 

CLASS MATERIAL
The main reference material is represented by class notes.
All the course contents are covered within the textbooks and other material reported hereafter. These references can also be taken as suggestions for in-depth discussions on class topics.

Books:
 
  T1 - Title        Programmazione concorrente e distribuita (in Italian)
         Authors   Paolo Ancilotti, Maurelio Boari
         Pub.        McGrow Hill
         ISBN       9788838663581
         Notes:     A solid reference on concurrent programming concepts.
  T2 - Title        Operating System Concepts 9th ed.
         Authors   Abraham Silberschatz, Peter B. Galvin, Greg Gagne
         Pub.        Wiley
         ISBN       9781118093757
         Notes:     A classical resource on OSs,
                       discussing synchronization problems as well.
  T3 - Title        Distributed Systems - Concepts and Design 5th ed.
         Authors   George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair
         Pub.        Addison-Wesley
         ISBN10    0132143011
         Notes:     A comprehensive overview of distributed systems,
                       addressing both theoretical and architectural issues.


Misc:


 S1 - Slides on basic MPI (from George Mason Univ.)

 W1 - Tutorial on Java concurrency (not all details have been mentioned at lesson)

 W2 - Tutorial on custom Java networking

 W3 - Tutorial on Java RMI (for "general" distributed objects: Java IDL)

 C2 - Simple example of an RMI application - source code (three NetBeans projects)

 W3 - Tutorial on Java EE (massive official document: only Servlets, EJBs, and JMS are in our course programme)

 C3 - Simple example of a JMS application - source code (three NetBeans projects)

 M1 - Material on GPU/CUDA (PhD School in GPU Scientific Computing, DTU, Copenhagen)

 S2 - Slides on MapReduce/Hadoop (from Univ. of Washington)



 

LINKS
 The following web references can be useful for practical programming.


 L1 - NetBeans IDE

 L2 - Eclipse IDE

 L3 - MPI home, Open MPI

 L4 - CUDA toolkit

 L5 - Apache Hadoop






The backgroung images for this pages have been obtained by reworking the "simple icons" for AWS (http://aws.amazon.com/architecture/icons/).