Overview

Distributed Computing is a study in the architectures, algorithms, tools and techniques for doing computations on a Distributed System - A network of autonomous nodes tasked with achieving a singular objective. Autonomy of nodes imply Ethernet/Infiniband based interconnect supporting communication and synchronization between nodes by message passing instead of shared memory. Some famous applications include WWW, Massively multi-player online games, Online banking, ATM networks, Airline reservation systems, Industrial control systems, CAN networks in modern auto-mobiles, Beowulf clusters, SETI@Home etc. This course will offer an introduction to the core concepts, some industry-strength tools as well as recent breakthroughs in Distributed Computing. By the end of this course, the student should be able to analyze problems in Distributed Computing, break them into simpler problems, associate the simpler problems to established techniques, design efficient algorithms using these techniques and finally realize the algorithms by developing computer programs

Course Outline


Week
Lecture
Topic
1
1
Introduction
2
Basic Concepts
2
3
Architecture 1
4
Architecture 2
3
5
Client-Server Tutorial
6
Synchronization 1
4
7
Synchronization 2
8
Coursework Tutorial
5
9
Presentations/Revision
10
First-Term Exam
6
11
Remote Procedure Calls 1
12
Remote Procedure Calls 2
7
13
Introduction to Erlang 1
14
Introduction to Erlang 2
8
15
Erlang Tutorial
16
Fault Tolerance 1
9
17
Fault Tolerance 2
18
Fault Tolerance Invited Talk
10
19
Security in Distributed Systems
20
Coursework Tutorial
11
21
Presentations/Revision
22
Second-Term Exam
12
23
MapReduce 1
24
MapReduce 2
13
25
MapReduce Tutorial
26
BOINC
14
27
SETI@Home Case Study
28
BOINC Tutorial
15
29
P2P Case Study
30
Mobile Applications Case Study
16
31
DVCS Case Study
32
Cloud Computing Video Lecture
17
33
Presentations/Revision
34
Final Exam

Resources


Books


Assignments (Coming up in a couple of days)

  • First term assignment
  • Second term assignment
  • Final assignment

Miscellaneous

  • I have decided that I am going to give away 5 marks for 'Class Participation'. Check out the formula:
    • (Number of valid entries in discussion forums) * 5.0 / (Maximum number of valid entries in discussion forums by a student)
    • Good luck :)
  • If you are wondering what a Wiki is and why does it exist, please check this out.