MIDAPACK - MIcrowave Data Analysis PACKage 1.0beta
Parallel software tools for high performance CMB DA analysis
Programming models

The Toeplitz algebra library routines allow the user to take advantage of both multithreaded and memory-distributed programming paradigms and are therefore adapted to run efficiently on heteregeneous computer architectures. The multithreading is implemented using openMP directives, while distributed programming uses MPI. Both shared and/or distributed parallelism can be switched of, at the compilation time, if so desired. Moreover, the user has always access to two versions of each of the routines: openMP/MPI and openMP-only.

We note that the MPI version of the routines are essentially just wrappers on openMP/sequential versions of the corresponding routines, which facilitate necessary data exchanges between distributed MPI processes.