Computer Science

Williams College

CSCI 338T

CSCI 338T: Parallel Processing(Q)

Description: As processor speeds approach physical limits, we will no longer be able to count on faster and faster processors being released on a regular basis. Performance increases will need to come from larger, parallel computer systems. Parallelism complicates everything from computer hardware design to operating systems and compilers to application programming, yet it will become pervasive in the not-too-distant future. This course examines methods, techniques, and languages for parallel programming, libraries and extensions to sequential languages to support parallel programming, parallel computing environments, performance analysis, efficiency and complexity of parallel algorithms, and applications of parallel computation. Readings will be taken from recent technical literature and a textbook. This course is taught in the tutorial format. Students meet weekly with the instructor in pairs to discuss the week's readings and to present solutions to problem sets. Students complete several programming projects, using parallel computers both in the department and at national supercomputing centers. There is a midterm and a final exam.

Format: Tutorial. Evaluation will be based on the weekly assignments that will include both programming and written components (40%), exams (25%), and tutorial participation (10%). The final project (25%) will include a research paper a minisymposium where each group will present their project to the class.

Fulfills the Quantitative Reasoning requirement

Prerequisites: Computer Science 237, Corequisite: Computer Science 256.

Scheduled Offerings: