Name

HPL_rollN Roll U and forward the column panel.

Synopsis

#include <hpl.h>

void HPL_rollN( HPL_T_panel * PBCST, int * IFLAG, HPL_T_panel * PANEL, const int N, double * U, const int LDU, const int * IPLEN, const int * IPMAP, const int * IPMAPM1 );

Description

HPL_rollN rolls the local arrays containing the local pieces of U, so that on exit to this function U is replicated in every process row. In addition, this function probe for the presence of the column panel and forwards it when available.

Arguments

PBCST   (local input/output)          HPL_T_panel *
        On entry,  PBCST  points to the data structure containing the
        panel (to be broadcast) information.
IFLAG   (local intput/output)         int *
        On entry, IFLAG  indicates  whether or not  the broadcast has
        already been completed.  If not,  probing will occur, and the
        outcome will be contained in IFLAG on exit.
PANEL   (local input/output)          HPL_T_panel *
        On entry,  PANEL  points to the data structure containing the
        panel (to be rolled) information.
N       (local input)                 const int
        On entry, N specifies the number of columns of  U.  N must be
        at least zero.
U       (local input/output)          double *
        On entry,  U  is an array of dimension (LDU,*) containing the
        local pieces of U in each process row.
LDU     (local input)                 const int
        On entry, LDU specifies the local leading dimension of U. LDU
        should be at least  MAX(1,IPLEN[NPROW]).
IPLEN   (global input)                const int *
        On entry, IPLEN is an array of dimension NPROW+1.  This array
        is such that IPLEN[i+1] - IPLEN[i] is the number of rows of U
        in each process row.
IPMAP   (global input)                const int *
        On entry, IMAP  is an array of dimension  NPROW.  This  array
        contains  the  logarithmic mapping of the processes. In other
        words,  IMAP[myrow]  is the absolute coordinate of the sorted
        process.
IPMAPM1 (global input)                const int *
        On entry,  IMAPM1  is an array of dimension NPROW. This array
        contains  the inverse of the logarithmic mapping contained in
        IMAP: For i in [0.. NPROW) IMAPM1[IMAP[i]] = i.

See Also

HPL_pdlaswp01N