Class Meeting: Tuesday and Thursday 11:10-12:25, HRBB 104
Instructor: Nancy Amato
office: 425H Harvey R. Bright Bldg
office hours: TBD
email: amato [at] cs.tamu.edu
url: http://parasol.tamu.edu/~amato
office phone: 1-979-862-2275
Teaching Assistant:
Roger Pearce
office: 229 Reed-McDonald Building
office hours: Mon 11am-1pm, Thu 3:30-5:30, Fri 11:00am-12:30pm
email: rpearce [at] cs.tamu.edu
url: http://parasol.tamu.edu/~rpearce
Course homepage: http://parasol.tamu.edu/~amato/Courses/626
Prerequisite: CPSC 629 (Analysis of Algorithms) or
CPSC 221 (Data Structures and Algorithms) or
CPSC 311 (Analysis of Algorithms) or instructor's approval.
Note: No prior experience with parallel machines or
algorithms is needed.
Reading Material: The suggested textbook for the course is: An Introduction to Parallel Algorithms, Joseph JaJa, Addison-Wesley Publishing Company, 1992. We will study papers from various journals and conferences; these will be made available on-line or copies will be passed out in class.
Course Description:
(Different from the description in the catalog.)
We will study techniques that are useful for designing algorithms suitable for implementation on parallel computers. This topic is of ever increasing importance due to the emergence of multicore processors - now virtually all computers can potentially be parallel! The main focus will be on the algorithmic side. In particular, the emphasis will be on studying different parallel techniques and using them to design scalable parallel algorithms for a variety of problems and architectures. For the most part, the algorithms will be designed and analyzed at a high level; however, they will be suitable for implementation on a variety of architectures, ranging from multicores to petascale computers.
The first part of the course will concentrate on basic parallel techniques. There will be homework assignments (including programming) and a midterm exam on this material.
The second part of the course will cover more specialized topics. Although there may be some homework assignments, the major emphasis will be on the project. The goal of the project is to study in depth some issue related to parallel or distributed computing. Projects may range from an investigation of an open problem in parallel algorithms (solution not required for a good grade...) to experimental studies of known algorithms. Project topics will be selected by the student (in consultation with the instructor) by the end of the first part of the course. Projects may be done with partners (of course, more will be expected than if the project is done individually).
Additionally, there will be some CS Culture assignments which will involve things such as attending seminars related to parallel computation (and preparing a brief report), preparing reports on researchers that have made major contributions to parallel computation, and reading and reviewing papers drawn from the technical literature. More information on these assignment will be made available on the course homepage.
Grading: Course grades will (tentatively) be determined as follows:
Computer use and accounts: You will need to check the course homepage frequently - all handouts for the course will be made available only on the web. In addition, email will be widely used for announcements regarding the course - you must read your email regularly.
For the programming assignments, and maybe also for your project, you will need to use parallel and distributed machines. The programming assignments will be done on hydra.tamu.edu, an IBM p575 cluster administrated by the TAMU Supercomputing facility. All students registered for this course have the right to an account on hydra - if you don't already have an account, you should apply for one asap.