Global Arrays

Global Arrays (GA)Paradigm| parallel, one-sided message passing, imperative (procedural), structured

|

First appeared| 1994
Stable release|

5.8.2/November 2022 (2022-11)

Typing discipline| static, weak
OS| Cross-platform
Website| hpc.pnl.gov/globalarrays/

Global Arrays, or GA, is the library developed by scientists at Pacific Northwest National Laboratory for parallel computing. GA provides a friendly API for shared-memory programming on distributed-memory computers for multidimensional arrays. The GA library is a predecessor to the GAS (global address space) languages currently being developed for high-performance computing.[1][2][3][4]

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), it is now fully compatible with MPI. GA includes simple matrix computations (matrix-matrix multiplication, LU solve) and works with ScaLAPACK. 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, MOLPRO, UTChem, MOLCAS, and TURBOMOLE. The GA library is also incorporated into sub-surface code STOMP [5]

The GA toolkit is free software, licensed under a self-made license .

## References

1. ↑ Nieplocha, Jarek; Harrison, Robert (1997). "Shared Memory Programming in Metacomputing Environments: The Global Array Approach". The Journal of Supercomputing 11 (2): 119–136. doi:10.1023/A:1007955822788.
2. ↑ Nieplocha, Jarek (2006). "Advances, Applications and Performance of the Global Arrays Shared Memory Programming Toolkit". International Journal of High Performance Computing Applications 20 (2): 203–231. doi:10.1177/1094342006064503.
3. ↑ Nieplocha, Jaroslaw; Harrison, Robert J.; Littlefield, Richard J. (1996). "Global arrays: A nonuniform memory access programming model for high-performance computers". The Journal of Supercomputing 10 (2): 169–189. doi:10.1007/BF00130708.
4. ↑ Tipparaju, Vinod; Krishnan, Manoj; Palmer, Bruce; Petrini, Fabrizio; Nieplocha, Jarek (2008). "Towards Fault Resilient Global Arrays". in Bischof, Christian; Bücker, Martin; Gibbon, Paul et al.. Parallel Computing: Architectures, Algorithms and Applications. Advances in Parallel Computing. 15. Amsterdam: IOS Press. pp. 339–345. ISBN 978-1-58603-796-3. OCLC 226966397. http://www.booksonline.iospress.nl/Content/View.aspx?piid=8409. Retrieved 2012-07-17.
5. ↑ "Gordon Bell Finalist at SC09 - GA Crosses the Petaflop Barrier". PNNL. 2009. http://hpc.pnl.gov/globalarrays/performance.shtml.

## See also

* Global Arrays Home Page
* Parsoft Home Page

* v
* t
* e

Parallel computing

General|

* Distributed computing
* Parallel computing
* Massively parallel
* Cloud computing
* High-performance computing
* Multiprocessing
* Manycore processor
* GPGPU
* Computer network
* Systolic array

Levels|

* Bit
* Instruction
* Thread
* Task
* Data
* Memory
* Loop
* Pipeline

Multithreading|

* Temporal
* Simultaneous (SMT)
* Speculative (SpMT)
* Preemptive
* Cooperative
* Clustered Multi-Thread (CMT)
* Hardware scout

Theory|

* PRAM model
* PEM Model
* Analysis of parallel algorithms
* Amdahl's law
* Gustafson's law
* Cost efficiency
* Karp–Flatt metric
* Slowdown
* Speedup

Elements|

* Process
* Thread
* Fiber
* Instruction window
* Array data structure

Coordination|

* Multiprocessing
* Memory coherency
* Cache coherency
* Cache invalidation
* Barrier
* Synchronization
* Application checkpointing

Programming|

* Stream processing
* Dataflow programming
* Models
* Implicit parallelism
* Explicit parallelism
* Concurrency
* Non-blocking algorithm

Hardware|

* Flynn's taxonomy
* SISD
* SIMD
* SIMT
* MISD
* MIMD
* Dataflow architecture
* Pipelined processor
* Superscalar processor
* Vector processor
* Multiprocessor
* symmetric
* asymmetric
* Memory
* shared
* distributed
* distributed shared
* UMA
* NUMA
* COMA
* Massively parallel computer
* Computer cluster
* Grid computer
* Hardware acceleration

APIs|

* Ateji PX
* Boost.Thread
* Chapel
* HPX
* Charm++
* Cilk
* Coarray Fortran
* CUDA
* HIP
* Dryad
* C++ AMP
* Global Arrays
* MPI
* OpenMP
* OpenCL
* OpenHMPP
* OpenACC
* TPL
* PLINQ
* PVM
* POSIX Threads
* RaftLib
* UPC
* TBB
* ZPL

Problems|

* Automatic parallelization
* Deadlock
* Livelock
* Deterministic algorithm
* Embarrassingly parallel
* Parallel slowdown
* Race condition
* Software lockout
* Scalability
* Starvation

* Category: parallel computing
* Media related to Parallel computing at Wikimedia Commons

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Global Arrays. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Global_Arrays&oldid=4348388"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template