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: Dr. Burton Smith
Further information: Seminar presented at NSC in Linköping, June 20, 2001
Best viewed with