CSCI 338T Parallel Processing (Not offered 2006-2007; to be offered 2007-2008) (Q)
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 and a minisymposium where each group will present their project to the
class.
Prerequisite: Computer Science 237, Corequisite: Computer Science 256. Enrollment limit : 10 (expected: 10). Preference given to Computer Science majors.