Chapter 4. Overview of POOMA Concepts

Table of Contents
4.1. POOMA Containers
4.2. Computation Modes
4.3. Computation Environment

In the previous chapter, we presented several different implementations of the Doof2d simulation program. The implementations illustrate the various containers, computation modes, and computation environments that POOMA supports. In this chapter, we describe the concepts associated with each of these three categories. Specific details needed for their use are deferred to later chapters.

The most important POOMA concepts can be grouped into three separate categories:

containers

data structures holding one or more values and usually accessed using indices

computation modes

styles of expressing computations and accesses to container values

computation environment

description of resources for computing, e.g., single processor or multiprocessor.

Table 4-1 categorizes the POOMA concepts. Many POOMA programs select one possibility from each category. For example, Example 3-4 used Array containers and stencils for sequential computation, while Example 3-7 used Field containers and data-parallel statements with distributed computation. A program may use multiple containers and various computation modes, but the computation environment is either distributed or not.

Table 4-1. POOMA Concepts

  Computation
ContainerComputation ModesEnvironment
Arrayelement-wisesequential
DynamicArraydata-paralleldistributed
Fieldstencil-based 
Tensorrelational 
TinyMatrix  
Vector  

In the rest of this chapter, we explore these three categories. First, we describe POOMA containers, illustrating the purposes of each, and explaining the concepts needed to declare them. Then, we describe the different computation modes and distributed computation concepts.