1HPL_spreadT(3)               HPL Library Functions              HPL_spreadT(3)
2
3
4

NAME

6       HPL_spreadT - Spread row panel U and forward current column panel.
7

SYNOPSIS

9       #include "hpl.h"
10
11       void  HPL_spreadT(  HPL_T_panel  *  PBCST,  int  * IFLAG, HPL_T_panel *
12       PANEL, const enum HPL_SIDE SIDE, const int N, double  *  U,  const  int
13       LDU, const int SRCDIST, const int * IPLEN, const int * IPMAP, const int
14       * IPMAPM1 );
15

DESCRIPTION

17       HPL_spreadT spreads  the local array containing local pieces of  U,  so
18       that  on  exit  to this function,  a piece of  U  is contained in every
19       process row.  The array  IPLEN  contains the number of  columns  of  U,
20       that  should  be  spread on any given process row.  This function  also
21       probes for the presence of  the column panel   PBCST.   If   available,
22       this   panel  will  be forwarded.  If  PBCST  is  NULL  on input,  this
23       probing mechanism will be disabled.
24

ARGUMENTS

26       PBCST   (local input/output)    HPL_T_panel *
27               On entry,  PBCST  points to the data structure  containing  the
28               panel (to be broadcast) information.
29
30       IFLAG   (local input/output)    int *
31               On  entry,  IFLAG  indicates  whether or not  the broadcast has
32               already been completed.  If not,  probing will occur,  and  the
33               outcome will be contained in IFLAG on exit.
34
35       PANEL   (local input/output)    HPL_T_panel *
36               On  entry,   PANEL  points to the data structure containing the
37               panel (to be spread) information.
38
39       SIDE    (global input)          const enum HPL_SIDE
40               On entry, SIDE specifies whether the local piece of  U  located
41               in  process  IPMAP[SRCDIST] should be spread to the right or to
42               the left. This feature is used by the equilibration process.
43
44       N       (global input)          const int
45               On entry,  N  specifies the local number of rows of U.  N  must
46               be at least zero.
47
48       U       (local input/output)    double *
49               On  entry,   U  is an array of dimension (LDU,*) containing the
50               local pieces of U.
51
52       LDU     (local input)           const int
53               On entry, LDU specifies the local leading dimension of  U.  LDU
54               should be at least MAX(1,N).
55
56       SRCDIST (local input)           const int
57               On  entry,   SRCDIST  specifies the source process that spreads
58               its piece of U.
59
60       IPLEN   (global input)          const int *
61               On entry, IPLEN is an array of dimension NPROW+1.   This  array
62               is  such  that IPLEN[i+1] - IPLEN[i] is the number of rows of U
63               in each process before process IPMAP[i], with  the   convention
64               that  IPLEN[nprow]  is the total number of rows. In other words
65               IPLEN[i+1] - IPLEN[i]  is  the local number of rows of  U  that
66               should be moved to process IPMAP[i].
67
68       IPMAP   (global input)          const int *
69               On  entry,  IPMAP is an array of dimension  NPROW.  This  array
70               contains  the  logarithmic mapping of the processes.  In  other
71               words,  IPMAP[myrow]   is the absolute coordinate of the sorted
72               process.
73
74       IPMAPM1 (global input)          const int *
75               On entry,  IPMAPM1 is an array of dimension NPROW.  This  array
76               contains   the  inverse of the logarithmic mapping contained in
77               IPMAP: For i in [0.. NPROW) IPMAPM1[IPMAP[i]] = i.
78

SEE ALSO

80       HPL_pdlaswp01T (3).
81
82
83
84HPL 2.2                        February 24, 2016                HPL_spreadT(3)
Impressum