MIDAPACK - MIcrowave Data Analysis PACKage  1.1b
Parallel software tools for high performance CMB DA analysis
Examples

Example #1: Column-wise data distribution.

This figure illustrates the operations performed by the mpi_stbmm routine. On the input the routine requires a definition of the Toeplitz-blocks and the data matrix. The latter is assumed to be distributed in the column-wise order - here between 3 MPI-processes, as marked by three different colors. The routine will multiply each Toeplitz-block by the corresponding set of rows of each column of the data matrix. The rows of the data matrix which do not correspond to any of the blocks will be copied without change to the resulting matrix. The dashed lines mark the data divisions between the processes which will require some MPI communication to be performed. The communication will affect only the data of a single column which happens to be shared between two processes. We note that for the result to be correct each of the three processes considered here has to have both Toeplitz blocks defined in the same way on each of them.

Example #2: Row-wise data distribution.

This figure corresponds to the analogous operation as the one in Example #1 just assuming that the data matrix is distributed between 3 processes in the row-wise order. The dashed lines indicate communication instances between the processes. Note that unlike in the previous case this time the data for all columns have to be exchanged. In this case for the operation to be consistent process #0 needs only the first Toeplitz block in its memory, process #2 - only the second, and process #1 - both.