ECE 750 Topic 10 - Spring 2015

ECE 750 Topic 10 - Distributed Computing

Instructor

Professor Wojciech Golab
Office: DC-2528
Email: wgolab@uwaterloo.ca

Description

Distribution has become essential to scaling computation on modern hardware. This observation holds for a variety of computational tasks, ranging from caching web content to processing financial transactions and analyzing large data sets. This course will introduce students to software techniques for distributed computing with a focus on two fundamental concerns: parallelism and fault-tolerance. These will be studied in the context of web applications, peer-to-peer data sharing, distributed storage and database systems, as well as “big data” analytics.

Content

Textbook material: Principles of distributed systems, networks and protocols, inter-process communication and remote procedure calling (RPC), shared file systems, distributed transactions, client-server architectures, network-centric computing.

Case studies and applications (tentative): client-server (DNS, HTTP, REST, LDAP), P2P systems (BitTorrent), RPCs (Thrift or Protocol Buffers), distributed file systems (NFS, HDFS), analytics platforms (Hadoop, Spark), analytics computations (PageRank, clustering, community detection, collaborative filtering), NoSQL storage (Cassandra, HBase), distributed databases (MySQL Cluster, Hive).

Prerequisites

Strong Java programming skills, familiarity with Linux, and good writing abilities. Understanding of database systems at a level equivalent to ECE356. Understanding of network fundamentals, particularly TCP/IP, at a level equivalent to ECE358. Understanding of data structures and algorithms at a level equivalent to ECE250.

Evaluation

Default scheme: 30% assignments (involving substantial programming), 20% research survey paper (written individually), 50% final exam.

Note 1: Late assignments and survey papers will be penalized -20% if submitted up to 24 hours late, -40% if submitted more than 24 hours and up to 48 hours late, and will not be accepted at all after 48 hours.

Note 2: If the final exam grade is less than 50% then the final exam grade becomes the final course grade. Therefore, students must pass the final exam to pass the course.

Textbook

Distributed Systems: Principles and Paradigms, 2nd Edition, A. S. Tanenbaum, M. Van Steen. Pearson-Prentice Hall. 2006.

I have requested a reserve copy at the Davis Centre Library.