MIDAPACK - MIcrowave Data Analysis PACKage
1.1b
Parallel software tools for high performance CMB DA analysis
|
Go to the source code of this file.
Functions | |
int | butterfly_init (int *indices, int count, int **R, int *nR, int **S, int *nS, int **com_indices, int *com_count, int steps, MPI_Comm comm) |
Initialize tables for butterfly-like communication scheme This routine set up needed tables for the butterfly communication scheme. Sending and receiving tabs should be well allocated(at least size of number of steps in butterfly scheme). Double pointer are partially allocated, the last allocation is performed inside the routine. com_indices and com_count are also allocated inside the routine, thus they are passing by reference. They represent indices which have to be communicated an their number. Algotithm is based 2 parts. The first one identify intersection between processors indices, using 3 successives butterfly communication schemes : bottom up, top down, and top down again. The second part works locally to build sets of indices to communicate. More... | |
double | butterfly_reduce (int **R, int *nR, int nRmax, int **S, int *nS, int nSmax, double *val, int steps, MPI_Comm comm) |
Perform a sparse sum reduction (or mapped reduction) using a butterfly-like communication scheme. More... | |
int | truebutterfly_init (int *indices, int count, int **R, int *nR, int **S, int *nS, int **com_indices, int *com_count, int steps, MPI_Comm comm) |
double | truebutterfly_reduce (int **R, int *nR, int nRmax, int **S, int *nS, int nSmax, double *val, int steps, MPI_Comm comm) |
Perform a sparse sum reduction (or mapped reduction) using a butterfly-like communication scheme. More... | |
int butterfly_init | ( | int * | indices, |
int | count, | ||
int ** | R, | ||
int * | nR, | ||
int ** | S, | ||
int * | nS, | ||
int ** | com_indices, | ||
int * | com_count, | ||
int | steps, | ||
MPI_Comm | comm | ||
) |
Initialize tables for butterfly-like communication scheme This routine set up needed tables for the butterfly communication scheme. Sending and receiving tabs should be well allocated(at least size of number of steps in butterfly scheme). Double pointer are partially allocated, the last allocation is performed inside the routine. com_indices and com_count are also allocated inside the routine, thus they are passing by reference. They represent indices which have to be communicated an their number. Algotithm is based 2 parts. The first one identify intersection between processors indices, using 3 successives butterfly communication schemes : bottom up, top down, and top down again. The second part works locally to build sets of indices to communicate.
indices | set of indices(monotony) handle by a process. |
count | number of elements |
R | pointer to receiving maps |
nR | array of number of elements in each receiving map |
S | pointer to sending maps |
nS | array of number of elements in each sending map |
com_indices | set of indices(monotony) communicated by a process |
com_count | number of elements |
steps | number of communication exchange in the butterfly scheme |
comm | MPI communicator |
Definition at line 51 of file butterfly_extra.c.
double butterfly_reduce | ( | int ** | R, |
int * | nR, | ||
int | nRmax, | ||
int ** | S, | ||
int * | nS, | ||
int | nSmax, | ||
double * | val, | ||
int | steps, | ||
MPI_Comm | comm | ||
) |
Perform a sparse sum reduction (or mapped reduction) using a butterfly-like communication scheme.
R | pointer to receiving maps |
nR | array of number of elements in each receiving map |
nRmax | maximum size of received message |
S | pointer to sending maps |
nS | array of number of elements in each sending map |
nSmax | maximum size of sent message |
val | set of values (typically values associated to communicated indices) |
steps | number of communication exchange in the butterfly scheme |
comm | MPI communicator |
Definition at line 235 of file butterfly_extra.c.
int truebutterfly_init | ( | int * | indices, |
int | count, | ||
int ** | R, | ||
int * | nR, | ||
int ** | S, | ||
int * | nS, | ||
int ** | com_indices, | ||
int * | com_count, | ||
int | steps, | ||
MPI_Comm | comm | ||
) |
Definition at line 277 of file butterfly_extra.c.
double truebutterfly_reduce | ( | int ** | R, |
int * | nR, | ||
int | nRmax, | ||
int ** | S, | ||
int * | nS, | ||
int | nSmax, | ||
double * | val, | ||
int | steps, | ||
MPI_Comm | comm | ||
) |
Perform a sparse sum reduction (or mapped reduction) using a butterfly-like communication scheme.
R | pointer to receiving maps |
nR | array of number of elements in each receiving map |
nRmax | maximum size of received message |
S | pointer to sending maps |
nS | array of number of elements in each sending map |
nSmax | maximum size of sent message |
val | set of values (typically values associated to communicated indices) |
steps | number of communication exchange in the butterfly scheme |
comm | MPI communicator |
Definition at line 474 of file butterfly_extra.c.