MADmap: A Fast Parallel Maximum Likelihood CMB Map Making Code
Adapting your time stream to the MADmap data model
As mentioned in the introduction MADmap uses the following data model
where d is the time ordered data set n is a time
domain vector of piece wise stationary Gaussian noise, s is the
signal in some basis other than the time domain, and A
is the pointing matrix which is the linear operator that projects
from the signal basis to the time domain. Beyond this MADmap
assumes a particular form of the inverse time time noise
correlation matrix. This form is described in detail in the
MADmap man page. A schematic drawing
of the inverse time time noise correlation matrix is located
here.
Constructing the Input Files
This code is capable of dealing with many instrument specific
systematic effects. The way that these effects are included in
the map making is through the input files. These input files are
the time ordered data and inverse time time noise correlation files.
The format of these files is described in the
MADmap man page. If these files are
properly constructed MADmap can remove the effects of asymmetric
beams, multiple beams, chopping synchronous signal, piecewise stationary noise,
missing or bad data, line noise (noise which is localized in the
frequency domain), and micro-phonics. How these problems are
tackeled specifically is beond the scope of this documentation.
The reason MADmap can deal with these problems is due to the
generality of the MADmap data model.
Dealing with Limited Memory Resources
MADmap's memory usage scales like the number of time samples.
If it is not possible to distribute the entire time ordered data
set among the memory available on all of the processors then
MADmap will read the time stream in piece at a time, but it will
need to do so for every iteration of the PCG. This
requires a lot of I/O and on most systems the run time will be
dominated by I/O and not computation. To avoid this, be sure
to allocate enough memory resources to the job so that the
time stream can be stored on the available memory. If this
is not possible the computation can still be done, but more
slowly.