With the explosion of the Internet over the past 10 years, and with the proliferation of PC clusters in the server marketplace, distributed computing has become central to most of computer science. It also remains the dominant computing paradigm in very high-end scientific computation. Shared-memory parallel computing, once limited to the “enterprise” (business server) market and midrange scientific computing, is now undergoing a similar revolution. Sun now sells inexpensive rack-mounted servers (the T1000 and T2000) with 8 processors and 32 thread contexts on a single chip. Dual-core laptops and quad-core desktops are now common. Within the next few years, every nontrivial program will need to be multithreaded.
CSC 2/458 is a loosely structured course devoted to all aspects of parallel and distributed systems. Core topics to be covered include
In keeping with the “multicore revolution” and the instructor's current interests, the course this semester will be weighted somewhat toward shared memory parallelism.
Prerequisites: CSC 252 or equivalent; CSC 254 and 256 or equivalent recommended. Satisfies the Systems breadth requirement of the CS Ph.D. program.
Warning: This will be a discussion-heavy class. There is no textbook. Rather we will read a wide variety of original sources. Reading is mandatory and must be done in advance. Grades will depend heavily on in-class participation. If you can't come to class prepared, please don’t take the course.
Additional topics will depend to some degree on the interests of participants. Possibilities include