globalarrays OverviewThe Global Arrays (GA) toolkit provides an efficient and portable “shared-memory” programming interface for distributed-memory computers. Each process in a MIMD parallel program can asynchronously access logical blocks of physically distributed dense multi-dimensional arrays, without need for explicit cooperation by other processes. Unlike other shared-memory environments, the GA model exposes to the programmer the non-uniform memory access (NUMA) characteristics of the high performance computers and acknowledges that access to a remote portion of the shared data is slower than to the local portion. The locality information for the shared data is available, and a direct access to the local portions of shared data is provided.
Global Arrays have been designed to complement rather than substitute for the message-passing programming model. The programmer is free to use both the shared-memory and message-passing paradigms in the same program, and to take advantage of existing message-passing software libraries. Global Arrays are compatible with the Message Passing Interface (MPI).
The Global Arrays toolkit has been in the public domain since 1994. It has been actively supported and employed in several large codes since then.
EMSL software products such as NWChem use the Global Arrays programming toolkit to provide high-performance parallel processing.
The following information is available by running
module help ga
The modulefile defines the system paths and
variables for the product, global arrays.
Global Arrays (GA) 5.0.2:
This version has the following support
* Autotools build including support for shared libraries. This new capability
simplifies GA build system on several platforms, and follows standard
autotools rules to compile and install GA.
* Restricted arrays:
Restricted arrays are being added to the Global Arrays toolkit to provide
users with another mechanism for controlling how data is distributed on
processors. The restricted array properties are specified when the GA is
created. Restricted GAs can only be created using new interface employing the
ga_create_handle, ga_allocate calls. Restricted arrays can be used to only
allocate data to a subset of processors, even if the GA is visible to all
processors. They can also be used to remap how data is assigned to processors.
For example, a data block in a GA that ordinarily might be mapped to process 0
can be mapped to some other process using the restricted array capability.
* ARMCI runtime enhancements
* On-demand connection management for infiniband
* Improved scalability for fence
* Optimized ARMCI_GetS(strided gets)
* New Python interface
* Task Scheduling Library (tascel)
Certain components, files or programs contained within this package or
product are Copyright 2011 Cray Inc. All rights reserved.
Bugs Closed with this release:
Product and OS Dependencies for Gemini systems:
The Global Arrays 5.0.2 release is supported on Cray XE and Cray XK
systems running the CLE 4.0 or later operating systems.
PGI 11.0.0 or greater
See the man page: man globalarrays
For more information see Global Arrays home page:
rpm -ivh ga-5.0.2-3.x86_64.rpm
To make this the default version, execute:
To re-display ga/5.0.2 release information,
type: less /opt/cray/ga/5.0.2/release_info