Monem is studying at the Department of Computer Science in University of Victoria, working on Dimensional Analysis for Data-flow Programming for my research, and interested in analyzing and visualizing datasets.
In this presentation we show an algorithm for Dimensional Analysis (DA) of a multidimensional dialect of the dataflow language Lucid. A Lucid program is a set of equations defining a family of multidimensional datasets; each data set being a collection of data points indexed by coordinates in a number of dimensions. Every variable in a Lucid program denotes one such dataset, and they are defined in terms of input and transformations applied to other variables. In general, not every dimension is relevant in every data set. It is very important not to include irrelevant dimensions because otherwise you have the same data duplicated with different values of the coordinates in the irrelevant dimension. In most multidimensional systems it is the programmer’s responsibility to exclude irrelevant dimensions and to keep track of changes in dimensionality that result from transformations. In other words, DA is performed manually. In Lucid, however, we have an alternative, namely automated DA. Static program analysis allows us to calculate or estimate the dimensionality of program variables. This is the goal of our research. We use an iterative algorithm that computes a series of approximation that settle down after a few steps. The algorithm is a first step towards the most general case; it does not yet handle local dimensions and user defined transformations.