The two preceding columns have covered the Global Arrays Toolkit (GA), developed at the U.S. Department of Energy’s Pacific Northwest National Laboratory (PNNL). The GA Toolkit is an applications programming interface (API) for handling shared data structures in a distributed computing environment, including Beowulf-style Linux clusters. GA supports one-sided communications through library calls that manipulate array data, alleviating the need, in many cases, for you to develop explicit message passing code.
The first column in this series introduced GA, and described the Aggregate Remote Memory Copy (ARMCI) library, which provides remote memory access via one-sided communications over a wide variety of network interfaces. The first column also explained the Memory Allocator (MA), which provides dynamic memory allocation for mixed-language applications, and included installation instructions. GA sits on top of and uses the ARMCI and MA libraries for communications and memory management respectively. In addition, a simple “Hello World! ” program using GA was included in the first column, demonstrating how to initialize MPI (the Message-Passing Interface), GA, and MA; how to allocate a small shared global array and discover its distribution across processes; and how to finalize and end such a program.
Last month’s column included a more realistic example GA program, one that performed matrix-matrix multiplication, and the article demonstrated some of the array manipulation routines available in GA. That code was similar to the example code used to demonstrate Unified Parallel C (UPC) in an earlier column. Like UPC, GA provides data…
Please log in to view this content.
Not Yet a Member?
Register with LinuxMagazine.com and get free access to the entire archive, including: