Manal Helal
Dimension and Shape Invariant Array Programming: The Implementation and the Application
Designing an architecture to handle large conceptual data blocks is very much needed. This paper implements a model for the shape and dimension invariant programming of arrays based on the notation of the Mathematics of Arrays (MOA) algebra. It focuses on dimension and shape invariance and their effect in parallel computing. The MOA algebra is implemeted as a library of APIs, that contains object oriented classes implemented in C++. The APIs reduce the erroneous loops starts, strides, and stops used by programmers in the traditional models of handling multi-dimension arrays. The library defines the dimension and shape of the arrays at runtime, and gives the code of the problem at hand better chances to be automatically parallelized. An image- processing tool is implemented using the new MOA library, proving the correctness and effecicy of the model. Some video processing operations such as transformation of AVI frames and motion detection schemes are implemented using the MOA library. The parallelization factors inherent in the MOA implementation are demonstrated in terms of shape polymorphism, MOA parallel architecture, data redistribution, and tiling algorithms. Furthermore, pipelining MOA computations has also been demonstrated.