Concepts and design of parallel and distributed computing systems. Topics include: fundamentals of OS, network and MP systems; message passing; remote procedure calls; process migration and mobile agents; distributed synchronization; distributed shared memory; distributed file system; fault tolerance; and grid computing. Prerequisite: CSS 343.
This is not a course that introduces surficial aspects of distributed computing. We always consider the necessity, contribution, merits, and drawbacks of distributed-computing architectures, mechanisms, and algorithms we study. To understand such aspects in detail, you are given java-based programming homework and a paper-reading assignment.
Student learning goals
General method of instruction
The first five weeks focus on the basic communication and process control concept in distributed computing. The instruction is based on lectures (and some class discussions if necessary.)
The last five weeks discuss about several advanced topics, where the instructor will overivew each topic and student will review a topic-related research paper in the class.
Study Java language by yourself. All programming assignments will be achieved using Java.
Class assignments and grading
Four programming assignments and one paper reading assignments will be given.
Grades are given linearly. In other words, 95%, 85%, 75% and 65% achievements correspond to 4.0, 3.0, 2.0, and 1.0 respectively.