MIDAPACK - MIcrowave Data Analysis PACKage  1.1b
Parallel software tools for high performance CMB DA analysis
 All Data Structures Files Functions Variables Typedefs Groups Pages
Functionnality

Sparse matrix operations

Pointing and Unpointing are usefull operators in the CMB data analysis. It refers to the applications from time-signal-domain to sky-direction domain. It usually consist in recangular sparse matrices with few non-zero values. It is assumed that unpointing matrix has couples time more rows than columns. That means dimension of the time-signal domain(tod) is greater than the sky-direction domain(map). Pointing matrix is exactly the transposed of the unpointing matrix.

This module contains functionnalities for applying these operations. Which means creating sparse matrices into an efficient sparse matrix format, and also applying matrix vector multiplication or transposed matrix vector multiplication.

The two core functions provided are :

Parallel execution

As CMB data analysis works with large data sets, it require the aibility to execute programs in parallel. Matrices can reach hundred billions of rows, hundred million of columns and be distributed over thousand cores. The aim is to deliver fast and highly scalable operation for sparse rectangular matrices. That's why midapack adopts a customized storage format and several communication schemes for pointing operators.

MIDAPACK parallel execution model is based on distributed memory architecture via the Message Passing Interface(MPI). Most of effort have been done for minmizing communication between processors. Especially we have developed algorithms for collective reduce operations. Moreover, most of the functions can also benefit from a sublevel parallellism using OpenMP. Thus programs build with MIDAPACK can works on big data sets and be runned on big computer in a multi-many-cores context.