x
Loading
 Loading
Hello, Guest | Login | Register
Today's HPC Clusters Resource Center

The Global Arrays Toolkit, Part Three

A powerful little package to eliminate the details of communication and data distribution on distributed memory systems — like, say, Linux clusters.

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:

  • Hands-on Content
  • White Papers
  • Community Features
  • And more.
Already a Member?
Log in!
Username

Password

Remember me

Forgotten your password?
Forgotten your username?
Read More
  1. Cluster 3.0: Dynamic Provisioning with MOAB and XCAT
  2. InfiniBand Interconnects for Computing Clusters
  3. Optimizing Performance for HPC: Part 2 - Interconnect with InfiniBand
  4. Optimizing the Nehalem for HPC
  5. Sledgehammer HPC