HIGH PERFORMANCE SCIENTIFIC COMPUTING
MATH 697 HIGH PERFORMANCE SCIENTIFIC COMPUTING
Tentative Schedule: Fall 1999
Course Background
This graduate course covers scientific software production and design
techniques, cluster design, computational performance, graphics.
Three basic paradigms are presented: extensible sequential coding,
distributed computing, object oriented computing.
One third of the lectures are dedicated to having
leading computational scientists from Lawrence Berkeley Lab, Argonne
National Lab, Los Alamos National Lab feature their state of the
art scientific computing software.
This is a great course to highlight in your job and graduate school
application. The skills learned in this course are in high demand in
industry and government labs.
Hardware
Students will
be using the Mathematics Department
16-processor computer cluster as well as several powerful
multi-processor SGI machines from the ACMS.
Software
We will be using several portable extensible and scalable packages
developed by the
Mathematics and Computer Science Division at Argonne National Laboratory
in the context of programs of our own design.
We will be studying the design and contruction philosophy of Argonne's
PETSc, Chris Anderson's UCLA CAM C++, and Lawrence Berkeley Laboratory's
varden and amrvis fluid dynamics and graphics software.
These are different paradigms of good, production-quality,
scientific software. Application of these design principles will be
made in the context of 5 programming assignments. In addition to these
packages, we will be using a variety of common comercial and
non-commercial packages, such as visual C++ and c, fortran90, IDL, tecplot,
AVS, Matlab, LINUX.
Prerequisites
This course cannot be audited. Space is limited.
This course is open to graduate students, and
faculty. The prerequisites are Math475A/B (taken with Restrepo) or
Math575A/B or equivalent, Math 481/581, proficiency in either
fortran, c, C++...and as Prof. Chris Anderson (UCLA) puts it:
"You should enjoy the intellectual challenges associated with programming."
Course Outline
Topics will be selected from:
Building a Beowulf-class machine.
Basic Computational Performance analysis
Shell-scripting and Perl
Task Farming
Matlab's Simulink and Parallel Matlab
Object Oriented Programming. C++ classes and templates.
Using MPI. Parallel Programming on distributed
memory architectures.
Amrvis and Varden. A paradign for production quality
sequential fluid mechanics
code with graphics.
PETSc. A paradigm for portable and extensible code for
numerical analysis.
UCLA CAM C++. A paradigm for Object Oriented Code design.
Scientific Visualization, using OpenGL, AVS, IDL, Tecplot.
Instructor: Prof. Juan M. Restrepo
Office: Math Bldg 707. Phone: 621-4367.
Non-virtual Office hours: by appointment.
Computer Help available afternoons from systems staff.
Homeworks and Grading (links disabled till classes begin):
There will be 5 homework assignments.The grading of the homeworks
and the preparation of model solutions will be shared by students
enrolled for this course. No exams. Course grade: 80 % on homeworks
+ 20 % on grading of homeworks and preparation of model solutions.
- Homework #1
Perl Scripting, shell scripting, task-farming,
and cluster design (Due)
- Homework #2 Solving Poisson's Equation
on a parallel machine using MPI. (Due)
- Homework #3
Computational Performance, Profiling, Load Balancing (Due)
- Homework #4 Production quality
scientific software: AMR, Matlab's simulink and parallel matlab
- Homework #5 Using PETSc to solve
large-scale computing problems (Due)
- Homework #6 Designing code using Object
Oriented Programming. Using advanced graphics. (Due)
Course page created 10-20/97