Next: Class 2: Assessment Up: Week 12 Previous: Last Year's Exam

Class 1: High Performance Fortran

Announcements:

  1. The exam has been scheduled for November 21 (the Tuesday before Thanksgiving). It will cover material talked about till 11/16. Please see the Web notes for details about what we have covered in this time.
  2. Last year's exam is available.
  3. Please turn in your marked up project reports, so I can assign numerical grades to them.
  4. The transputer homework is due today.
  5. Please pick up printer cards from me-either in class or in my office.
  6. Bring a copy of your code by, so I can see where you are at in your project effort (remember that copies of documented code needs to be included in your final html/hardcopy reports.

Today, we continue our discussion on HPF and the data parallel programming paradigm. Note that the data parallel paradigm is higher level and more restrictive than the task-channel paradigm. A number of the communication and mapping issues that make things harder for the designer in the task-channel approach, are either specified by directives in the program, or are inferred automatically by the compiler. This makes it easier to write programs in the data-parallel paradigm-however, it is still important to carefully design your program to get the best performance out of it. Also, because we are working at a higher level, it is harder to convert all algorithms into this programming paradigm.

Fortran 90 is the basis for HPF, and is a data-parallel programming language in its own right. We will therefore start our discussion of HPF by looking at the extensions F90 makes to F77. F90 augments F77 by providing pointers, dynamic memory allocation, recursion, etc. In addition to this, it also provides array assignment statements and array intrinsic functions. We will look at examples of these two F90 features from Section 7.2 of the text.

Next, we will look at the how to distribute data elements onto (abstract) processors. These are extensions that HPF makes to F90. By specifying an appropriate distribution of data onto processors, one can significantly reduce the amount of resulting communication. We will look at the PROCESSORS, ALIGN, and DISTRIBUTE compiler directives to achieve an appropriate data distribution.

Lecture notes not yet complete.



Next: Class 2: Assessment Up: Week 12 Previous: Last Year's Exam


mmisra@mines.edu
Tue Dec 5 07:44:03 MST 1995