High performance computers, especially scalable distributed memory architectures, are becoming increasingly important in solving the most challenging problems of science and engineering. It is likely that massively parallel machines capable of executing 1.0e+12 floating point operations per second will be available in the near future. However, programming and problem solving on machines of this kind is a notoriously difficult process.
This course will focus on programming and problem solving environments for modern high performance computers. We will examine software tools that enable users to solve large scale problems more conveniently, primarily on distributed memory multiprocessors. Such tools include message passing libraries (e.g., PVM, MPI), mathematical software libraries, parallelizing compilers, parallel debuggers and performance evaluation systems, and new parallel languages and language extensions.
There will be some emphasis on scientific applications as examples, but no advanced numerical analysis or scientific computing experience is necessary. Some familiarity with parallel processing will be helpful.
For further information contact Dr. Cal Ribbens, 632 McBryde, 231-6262, ribbens@vt.edu.
Index Number: 1344
Schedule: MWF 2:00 p.m.
Beyond attendance and participation in class and at least one class presentation, the student's responsibilities will include reading (in order to participate intelligently in class and in preparation for the class presentation) and one larger project. Project topics can be quite varied, are best tailored to the particular interests and goals of the student, and will generally involve some hands-on experience with high performance computing systems. We may also do one or two very simple hands-on exercises with parallel computing systems available here at Virginia Tech. We will try to shape the focus of the class somewhat depending on who shows up. There will be no tests other than a modest take-home final.