How Shall We Program High Performance Computers?

11/21/00

Click here to view HTML slides

or

Click here to view slides in Acrobat

Table of Contents

How Shall We Program High Performance Computers?

Parallel programming is still hard

Languages: chickens or eggs?

Languages should drive architecture

Avoid message passing1

Shmem

Co-array Fortran and UPC

Automatic scheduling: HPF

An array-oriented language: ZPL

Bulk-synchrony: BSP

Nested parallelism: NESL and ADL

Avoid shared memory2

Producer-consumer variables

Single-assignment variables

Linear variables

Avoid functional programming3

A transactional example

Javaspaces

Transactions on the Cray MTA

Conclusions

Author: Burton Smith

Email: burton@cray.com