next up previous contents
Next: NPAC PCRC Runtime Kernel Up: High Level Libraries for Previous: PARTI   Contents

The Global Array Toolkit

The main issue of the Global Array [35] (GA) programming model is to support a portable interface that allows each process independent, asynchronous, and efficient access to blocks of physically distributed arrays without explicit cooperation with other processes. In this respect, it has some characteristics of shared-memory programming. However, GA encourages data locality since it takes more work by the programmer to access remote data than local data. Thus, GA has some characteristic of message-passing as well. The GA Toolkit supports some primitive operations that are invoked collectively by all processes: create an array controlling alignment and distribution, destroy an array, and synchronize all processes. In addition, the GA Toolkit provides other primitive operations that are invoked in MIMD style: fetch, store, atomic accumulate into rectangular patches of a two-dimensional array; gather and scatter; atomic read and increment array element; inquire the location and distribution of data; directly access local elements of array to provide and improve performance of application-specific data parallel operations.

Bryan Carpenter 2004-06-09