Introduction
Users
Documentation
Developers
Availability
Download


Applications


halo-alkane dehalogenase enzyme


liquid octanol

Global Arrays

Introduction

The Global Arrays (GA) toolkit is a library for writing parallel programs that use large arrays distributed across processing nodes. The library has both Fortran and C interfaces. Originally developed to support arrays as vectors and matrices (one or two dimensions), it now supports up to seven dimensions in Fortran and even more in C. GA offers two types of operations: collective operations and local operations.

  • Collective operations require participation (and synchronization) of all processes. They include array creation, copying, and destruction. They also include data-parallel operations on arrays such as vector dot product and matrix multiplication.
  • Local operations may be invoked independently by all processes. They include local access to array elements, and fetching and storing data from and to remote locations. (Contrary to MPI, GA does not require cooperation between sender and receiver to transfer data.)
GA also comes with a Global Array Visualizer that uses trace files to animate array access patterns. Its main purpose is to analyze the impact of distribution on performance. GA is meant to complement rather than replace the message-passing model, and is interoperable with MPI. GA offers a shared-memory view of distributed arrays without destroying their NUMA characteristics.

Users

Global Arrays were originally developed for use in the NWChem computational chemistry package which finds approximate solutions to the Schrodinger's equation through various techniques (eg. pre-conditioned conjugate gradient schemes). GA has since been used in many other chemistry packages, which cumulatively account for two to three million lines of code (with NWChem being about 0.5 million lines of code). Other computational chemistry packages using Global Arrays include GAMESS-UK, Columbus, Molpro, Molcas, and SOCI.

Most of the documented use of Global Arrays has been by computational chemistry packages, but it has also been broadly used elsewhere. The developers have worked directly with many of the chemistry applications, but GA has also been generally available by anonymous FTP since 1994. GA is known to have found application in codes ranging from molecular dynamics to parallel polygon rendering to financial security forecasting.

The images in the left panel come from applications that use GA (click on the icon to display the full image in a new window). The first image is from a molecular dynamics simulation of a halo-alkane dehalogenase enzyme after 100 pico-seconds. The simulation was performed by a molecular dynamics code developed by T.P. Straatsma at PNNL, and uses GA. The simulation visualized here began from a crystal structure and was evolved for 100 pico-seconds, with AMBER95 force field (cutoff of 1 nm) including particle-mesh Ewald (PME) long range force and energy contributions. The second image shows the results of a second classical molecular dynamics simulation, in this case of liquid octanol. The 1000 step simulation was obtained on a 1300-node Cray T3E-900. In the simulation pictured here, the system size was 216,000 atoms, and a cutoff radius of 2.4nm was used. The molecular dynamics code (NWArgos) has been included in the NWChem chemistry package.

Documentation

Developers

Global Arrays was developed at the Environmental Molecular Sciences Laboratory (EMSL) at Pacific Northwest National Laboratory. Its principal developers were Jarek Nieplocha and Jialin Ju.




Tools News Home