Global Arrays, or GA, is the library developed by scientists at
Pacific Northwest National Laboratory
Pacific Northwest National Laboratory (PNNL) is one of the United States Department of Energy national laboratories, managed by the Department of Energy's (DOE) Office of Science. The main campus of the laboratory is in Richland, Washington ...
for
parallel computing
Parallel computing is a type of computing, computation in which many calculations or Process (computing), processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. ...
. GA provides a friendly
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
for shared-memory programming on distributed-memory computers for multidimensional arrays. The GA library is a predecessor to the GAS (
global address space
In computer science, partitioned global address space (PGAS) is a parallel programming model paradigm. PGAS is typified by communication operations involving a global memory address space abstraction that is logically partitioned, where a portion ...
) languages currently being developed for high-performance computing.
The GA toolkit has additional libraries including a Memory Allocator (MA), Aggregate Remote Memory Copy Interface (ARMCI), and functionality for out-of-core storage of arrays (ChemIO). Although GA was initially developed to run with TCGMSG, a message passing library that came before the MPI standard (
Message Passing Interface
The Message Passing Interface (MPI) is a portable message-passing standard designed to function on parallel computing architectures. The MPI standard defines the syntax and semantics of library routines that are useful to a wide range of use ...
), it is now fully compatible with MPI. GA includes simple matrix computations (matrix-matrix multiplication, LU solve) and works with
ScaLAPACK The ScaLAPACK (or Scalable LAPACK) library includes a subset of LAPACK routines redesigned for distributed memory MIMD parallel computers. It is currently written in a Single-Program-Multiple-Data style using explicit message passing for interpro ...
. Sparse matrices are available but the implementation is not optimal yet.
GA was developed by Jarek Nieplocha, Robert Harrison, R. J. Littlefield, Manoj Krishnan, and Vinod Tipparaju. The ChemIO library for out-of-core storage was developed by Jarek Nieplocha, Robert Harrison and
Ian Foster.
The GA library is incorporated into many quantum chemistry packages, including
NWChem
NWChem is an ab initio computational chemistry software package which includes quantum chemical and molecular dynamics functionality.
It was designed to run on high-performance parallel supercomputers as well as conventional workstation clusters. ...
,
MOLPRO
MOLPRO is a software package used for accurate ''Ab initio quantum chemistry methods, ab initio'' quantum chemistry calculations. It is developed by Peter Knowles at Cardiff University and Hans-Joachim Werner at Universität Stuttgart in collabor ...
,
UTChem,
MOLCAS
MOLCAS is an Ab initio quantum chemistry methods, ab initio computational chemistry program, developed as a joint project by a number of international institutes. MOLCAS is developed by scientists to be used by scientists. It is not primarily a ...
, and
TURBOMOLE
TURBOMOLE is an ab initio computational chemistry program that implements various quantum chemistry methods. It was initially developed by the group of Prof. Reinhart Ahlrichs at the University of Karlsruhe. In 2007, TURBOMOLE GmbH, founded by ...
. The GA library is also incorporated into sub-surface cod
STOMP
The GA toolkit is
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
, licensed under
self-made license.
References
See also
Global Arrays Home Page
Parsoft Home Page
{{Parallel computing
Concurrent programming libraries