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.

    Email Contact: restrepo@math.arizona.edu

    Non-virtual Office hours: by appointment.

    The Mathematics computer lab: Located in Math 226. Open MWF:10-4. T Th noon-4pm.

    Computer Help available afternoons from systems staff.


    Computer Accounts


    VIRTUAL OFFICE HOURS

    FAQ's


    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.
    1. Homework #1 Perl Scripting, shell scripting, task-farming, and cluster design (Due)
    2. Homework #2 Solving Poisson's Equation on a parallel machine using MPI. (Due)
    3. Homework #3 Computational Performance, Profiling, Load Balancing (Due)
    4. Homework #4 Production quality scientific software: AMR, Matlab's simulink and parallel matlab
    5. Homework #5 Using PETSc to solve large-scale computing problems (Due)
    6. Homework #6 Designing code using Object Oriented Programming. Using advanced graphics. (Due)

    Course page created 10-20/97