CS 258 Instructor Page

Course Name: Parallel and Distributed Systems

Spring 2013

Both parallel and distributed systems can be defined as a collection of processing elements that communicate and cooperate to achieve a common goal. Advances in processor technology have resulted in today's computer systems using parallelism at all levels: within each CPU by executing multiple instructions from the same thread of control simultaneously (superscalar architectures/instruction-level parall elism); by executing multiple intructions from different threads of control simultaneously (simultaneous multithreading); by introducing multiple cores in a single chip (chip multiprocessors); by using multiple chips to form multiprocessors; or via multiple networked nodes to form a cluster; making parallel systems increasingly ubiquitous. Simultaneously, advances in networking technology have created an explosion of distributed applications, making distributed computing an inherent fabric in our day-to-day lives. This course will focus on the principles of parallel and distributed systems and the implementation and performance issues associated with them. We will examine programming models/interfaces to parallel and distributed computing, interprocess communication, synchronization and consistency models, fault tolerance and reliability, distributed process management, parallel machine architectures, parallel program optimization, and the interaction of the compiler, run-time, and machine architecture.

Class time: 3.25---4.40 p.m., Tuesdays and Thursdays.
Class location: CSB 601.

Instructor:

Sandhya Dwarkadas
e-mail: sandhya at cs
Office: CSB 717, 275-5647
Office hours by appointment, but don't be afraid to drop by. If you want to be sure I'm in my office, use e-mail to contact me.

TA:

Brandon Shroyer
e-mail: bshroyer at cs
Office: CSB 624, 275-1348
Office hours: Tuesdays and Wednesdays, 2-3 p.m.

Course Home Page