logo
Runtimes for concurrency and distribution
Master Degree in Computer Science
University of Padova, a.y. 2020/2021

Instructor: Tullio Vardanega

(Latest update: 18 December 2020, 16:20)
[published specification of exam requirements
published material for lecture 22]

Outline of course

Learning outcomes

The higher the level of abstraction (and thus the expressive power) of the programming language -- which actually means the more distant from the actual operation of the underlying processor hardware --, the larger the role played by the software layer that implements the fraction of semantics of it that cannot be fully resolved at compile time. That software layer is usually termed language runtime.
Most evidently, such language features as concurrency and distribution involve semantics that is not primitive to the computer hardware, and therefore require the compilation system of the corresponding programming language to be augmented with software libraries dedicated to make the relevant semantics happen at run time.
This class aims at exploring the requirements placed on such runtimes, and their typical operation, considering exemplary paradigms of language-level concurrency and distribution, progressively ranging from single-CPU computers to the Cloud.
The instructional method used in this class will combine frontal lectures with multimedia resources, homework assignments, and flipped-class activities.

Useful reading

  1. Concurrent and Real-Time Programming in Ada
    Alan Burns and Andy Wellings
    Cambridge University Press ISBN 978-0-521-86697-2

  2. Distributed Systems - Principles and paradigms (2nd edition)
    Andrew S Tanenbaum, Maarten van Steen
    Pearson Prentice Hall ISBN 0-13-239227-5

Technology resources

Lecture schedule

Week Date Lecture # Lecture Topic
1
28 September
1 On the notion of run-time support
30 September
2
On multi-programming
2
05 October
3
On virtualization
Homework: Investigate the inner workings (under the hood) of Virtualbox
07 October
4
On concurrent programming
Homework: Scrutinize the "driving motivation" of modern languages that have chosen to support co-routines or other forms of concurrency
Resources: C#'s concurrency model
Resources: Per Brinch Hansen on Java concurrency
Resources: The inheritance anomaly problem
3
12 October
5
Continuation of lecture 4
14 October 6 On communication among threads
4
19 October
7
Continuation of lecture 6
Resources: Ada's base concurrency model
Resources: About Ada tasking
Resources: Ada for the C++ or Java developer
Example: The notion of master & dependent
21 October
8
On synchronous communication
Example: Programmatic realization of the Dining Philosophers case
5
26 October 9 Continuation of lecture 8
In-class exercise: analysis of Eratosthenes' sieve: synchronous version
Homework: try and reproduce the above program in your language of election
28 October
10
On asynchronous communication
Example: Application-level control of call queuing
Example: A producer-consumer system with bounded buffer
Homework: Study Eratosthenes' sieve: asynchronous version and reproduce in your language of election
Resources: Per Brinch Hansen: "Structured Multiprogramming" (CACM, 1972)
6 02 November 11 Continuation of lecture 10
04 November FC1 (Flipped class) You report on other models of language-level concurrency and we all discuss your findings
7
09 November 12 On the multiple facets of synchronization
Example: Application-level allocation of resources
Resources: Toby Bloom: "Evaluating Synchronization Mechanisms" (CACM, 1979)
11 November FC2 (Flipped class) You constructively solve a design-and-programming problem posed by the instructor
8
16 November FC3
Continuation of FC2
Example: An elegant solution in Ada
Homework: Try and reproduce (or improve) the example solution in your language of election and single out the comparative pros and cons
18 November 13 An introduction to distributed systems
Resources: On system scalability
9
24 November
(08:30-10:15)
14
Continuation of lecture 13
25 November 15
Distributed inter-process communication
Resources: Naming & DNS
10
30 November 16 Continuation of lecture 15
02 December 17 Distributed concurrency
Resources: Statelessness
11
09 December 18
Distributed synchronization
Homework: Study the inner workings of this Ada demonstrative concurrent implementation of Chandy-Lamport's distributed snapshot
Resources: Chandy and Lamport's "distributed snapshot"
Resources: Lecture material @ Cornell University (Ken Birman)
10 December
(14:30-16:15)
19 The native distribution model in (early) Java
12
14 December 20
The native distribution model in Ada
Example: Distributed version of Eratosthenes' sieve in Ada - source code
Resources
: Another use-case example
Resources (implementazione middleware): GLADE, RT-GLADE
Resources: YAMI4: un middleware per scambio messaggi in distribuito
16 December 21 Continuation of lecture 20

Exam requirements
13
21 December
22 Cloud computing
- general introduction
- Ken Birman @ Cornell view of the Cloud
Homework (self-study, material in Italian):
- on Cloud-enabled applications
- on scalability and multitenancy
15 11 January 23 Cloud computing: orchestration as the new middleware
[Closing seminar]

Hall assignment and Zoom links

The hall assignment for the lectures in the schedule are reported in the relevant UNIPD's app.
The corresponding Zoom links will be communicated via the Moodle page of this class.

Appointments with students

Students are welcome to request personal or group appointments with the instructor, who will offer either a face-to-face or a Zoom-based meeting as the circumstances will allow.

Exam requirements

In the second-half of the lecture series, the instructor will single out themes that the students shall be invited to select as their exam study topic. The students, whether individually or collaboratively (in groups of 2-3 individuals), shall review the state of the art on the selected topic, and implement a software demonstrator that highlights aspects of interest in keeping with the course focus (hence the runtime involvement in the realization of advanced concurrency or distribution features).

The exam will consist in the student(s)' first submitting a technical report on the main findings of the said effort (including the highlights of the software demonstrator), and then, in an oral presentation and discussion of the same.

Should students not feel sufficiently engaged by the themes as proposed, they will be allowed to negotiate elective alternative topics of pertinence with the instructor.

Exam schedule

The students ready to make their own oral presentation shall request an appointment with the instructor. Pass grades will be entered in the Uniweb system at the date in the official exam schedule that is closest to said appointment.

Valid HTML
          4.01 Transitional