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 |