The aim of Multidimensional Parallel Programming is to investigate a higher level abstraction of parallel programming based on different 'dimensions' of programming. The research is concentrated on two dimensions identified as (1) Control structure (2) Data Interaction Mechanism. In control structure we implement the algorithm independent of any architecture, based on a universal virtual architecture. The second part concentrates on actual data management on a target architecture relative to other dimensions.
For the thesis, the above two broad dimensions are further filtered down to specific objectives. The research will concentrate more on the memory management part of the second dimension. To investigate the situation, high performance programming is further classified into two broad categories (1) Efficient Algorithm Implementation (2) Architecture Oriented Optimisations. The first part concentrates on making an efficient algorithm easily implementable without architecture concerns (portability). The second part concentrates on achieving architecture dependent performance improvements based on access patterns and system resource (optimisations).
The project is motivated by the prospective simplification of the programming exercise without losing programming flexibility. The model should also produce programs completely portable from invariant dimensions; and hence targeting to another architecture should be modification of the affected dimensions only. This work will also help in understanding the factors affecting parallel program abstraction in general.