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++.
-
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
|
First lecture on Mon Sep. 30th, 2013
Mon. 10:30-13:30
ADInform1 room.
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.
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.
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)
|
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/).