Component Functions


Name
Purpose
Calculations
Communication
Input/Output
S
Build the signal correlation matrix as the weighted sum of the signal derivative matrices with respect to the bin-powers:

S = sum Cb dSdCb
Legendre polynomial recursion.

Weighted summation.
None.
NO_BIN writes each of
O(NO_PIX2) bytes on NO_PE processors.
D
Build the data correlation matrix from the signal and (pseudo)noise matrices and invert it

D-1 = (S + N)-1
1 Cholesky decomposition (pdpotrf) & matrix inversion (pdpotri) on NO_PE processors.
ScaLAPACK BLACS calls.
None.
W
Calculate the matrix product for each bin

Wb = D-1 dSdCb
NO_BIN general matrix-matrix multiplications (pdgemm) each on NO_PE/NO_GANG processors.
If NO_GANG>1 then NO_BIN+1 all-to-gang matrix remappings.

ScaLAPACK BLACS calls.
NO_BIN reads each of
O(NO_PIX2) bytes on NO_PE processors.

NO_BIN writes each of
O(NO_PIX2) bytes on NO_PE/NO_GANG processors.
C
Calculate the first two derivatives of the likelihood function of the (pseudo)data d

dLdCb = dT Wb D-1 d - Tr Wb
d2LdCbdCb' = Tr [ Wb Wb' ]

and the quadratic bin-power correction

dCb = - d2LdCbdCb'-1 dLdCb
1 symmetric matrix-vector multiplications (pdsymv) over NO_PE/NO_GANG processors.

NO_BIN general matrix-vector multiplications (pdgemv) each on NO_PE/NO_GANG processors.

NO_BIN matrix transpositions (pdtran) each on NO_PE/NO_GANG processors.

1 symmetric triangular solve (dpotrs) on 1 processor.
If NO_GANG>1 then O(NO_BIN2) inter-gang matrix transfers.

ScaLAPACK BLACS calls.
O(NO_BIN2/NO_GANG) reads each of O(NO_PIX2) bytes on NO_PE/NO_GANG processors.

Note that in IO mode:
      (i) the component functions replace their calculation and communication with busy-work.
     (ii) the D function is skipped entirely.
    (iii) the C function performs only NO_BIN/NO_GANG reads each of O(NO_PIX2) bytes on NO_PE/NO_GANG processors.