globalarraysο
- Version:
5.4, 5.7
- Category:
tools
- Cluster:
Loki
Descriptionο
Global Arrays (GA) provides a shared-memory programming model in distributed memory environments. It enables efficient and portable development of parallel applications by offering global array semantics and atomic operations across nodes.
Version 5.7 supports:
Distributed dense multidimensional arrays
One-sided communication via MPI and ARMCI
Atomic updates and lock mechanisms
Integration with high-level libraries like NWChem, TCGMSG, and DDI
Compatibility with OpenMPI and GCC for HPC workflows
This build is 64-bit and compiled with OpenMPI and GCC.
Documentationο
Compiling with GA:
------------------
mpifort -o myprog myprog.f90 -lga -larmci -lma
Environment variables:
----------------------
GA_USE_ARMCI_MPI=1 Use MPI as the communication layer
ARMCI_DEFAULT_SHMMAX Shared memory size hint
Runtime behavior:
* Memory is automatically distributed
* Arrays are accessed via GA APIs (get/put/acc)
* Synchronization provided via ga_sync(), ga_lock()
Help:
See the GA Programmerβs Guide:
https://hpc.pnl.gov/globalarrays/
Examples/Usageο
Load the module:
$ module load globalarrays/openmpi/gcc/64/5.7
Compile a simple program:
$ mpifort -o ga_example ga_example.f90 -lga -larmci -lma
Run with MPI:
$ mpirun -np 4 ./ga_example
Environment config (for MPI layer):
$ export GA_USE_ARMCI_MPI=1
$ export ARMCI_DEFAULT_SHMMAX=128000000
Unload the module:
$ module unload globalarrays/openmpi/gcc/64/5.7
Installationο
Source code is obtained from Global Arrays