|
Abstract : |
This paper explains why the Force parallel programming language has been easily portable between eight different shared memory multiprocessors. We show how a two-layer macro processor allows us to hide machine dependencies and to build machine-independent high-level language constructs. The importance of packaging low-level synchronization operations is demonstrated by a proof of mutual exclusion for asynchronous variable operations. The Force constructs enable us to write portable parallel programs largely independent of the number of processes executing them., |