<project.out>.timedim

<project.out>.procdim

<project.out>.pardim


Read
: Directory lccp/oiallocator, File oiallocator.cc, Function main
Write: Directory lccp/oiallocator, File basevectors.cc, Function main

These files contain projection matrices to "interesting dimensions". As such, any matrix not consisting entirely of unit vectors does notreally have a proper meaning and may cause trouble!

The files <project.out>.timedim and <project.out>.procdim contain 2 projection matrices (with possible use for others in the future):

  1. Projection onto physical dimensions, i.e. time dimensions that really will be synchronized in the output program in order to guarantee the correctness of the program, or physically available processor dimensions.
  2. Projection onto virtual dimensions, i.e., dimensions that are introduced only in order to model the complete original index space; e.g., if the original index space contained (i,j,k), and the target space is (t,p), the resulting code will have to enumerate an additional dimension t' or p' (this is not the only application: virtual dimensions may also be used to indicate which dimension was ignored, if the original index space had too few dimensions).
The file <project.out>.pardim contains only a single projection matrix, since virtual parameters are not needed (actually, pseudo parameters are quite exactly the same as the virtual dimensions mentioned above, however, we could only use the symbol table to recover the information what a dimension is good for; this more general approach is chosen here).

Format:

  file           --> <nr_projections> [<proj_matrix>]
(where proj_matrix appears nr_projections times)
proj_matrix --> matrix
(where matrix represents a projection that maps, e.g.,
 the vector coordinate that represents the i-th physical
 processor dimension to the i-th dimension in its target space)

Peter Faber, 13.01.2003