Spring 1994 3 credits
Modern problems in science and engineering, such as structural engineering, fluid mechanics, molecular dynamics, and other large scale physical simulations rely on high performance computing to make progress. These problems are so enormous as to swamp the computational power of conventional computers, so parallel computers must be used.
This course is intended to equip students to use existing parallel computing systems to effectively solve these and related problems. We invite students from Computer Science, Engineering, Mathematics, Physics, Chemistry and other disciplines where these large computing problems arise.
Since we expect students of widely varying backgrounds, we will discuss parallel computer architecture and software as well as algorithms exploiting these architectures effectively. We plan to organize the class around group projects, each of which would implement an interesting application on one or more parallel machines. Computer time will be available on several different machines, possibly including shared memory machines (Sequent and Kendall Square Research) and distributed memory machines (Paragon and Thinking Machines CM-5).
The course will broadly address the topic of parallel numerical computation. Areas to be covered include a description of different types of parallel architectures; the development of parallel algorithms for solving important numerical problems, and software tools intended to aid implementation of parallel numerical computation. It is assumed that the students have some knowledge of numerical computations.
An outline of the topics to be covered (not in order) includes:
Course work will consist primarily of reading and discussing current research paper in the areas outlined above and the use of the software tools on a number of parallel computers.