root / man / man3 / HPL_spreadT.3 @ 1
Historique | Voir | Annoter | Télécharger (3,2 ko)
1 |
.TH HPL_spreadT 3 "September 10, 2008" "HPL 2.0" "HPL Library Functions" |
---|---|
2 |
.SH NAME |
3 |
HPL_spreadT \- Spread row panel U and forward current column panel. |
4 |
.SH SYNOPSIS |
5 |
\fB\&#include "hpl.h"\fR |
6 |
|
7 |
\fB\&void\fR |
8 |
\fB\&HPL_spreadT(\fR |
9 |
\fB\&HPL_T_panel *\fR |
10 |
\fI\&PBCST\fR, |
11 |
\fB\&int *\fR |
12 |
\fI\&IFLAG\fR, |
13 |
\fB\&HPL_T_panel *\fR |
14 |
\fI\&PANEL\fR, |
15 |
\fB\&const enum HPL_SIDE\fR |
16 |
\fI\&SIDE\fR, |
17 |
\fB\&const int\fR |
18 |
\fI\&N\fR, |
19 |
\fB\&double *\fR |
20 |
\fI\&U\fR, |
21 |
\fB\&const int\fR |
22 |
\fI\&LDU\fR, |
23 |
\fB\&const int\fR |
24 |
\fI\&SRCDIST\fR, |
25 |
\fB\&const int *\fR |
26 |
\fI\&IPLEN\fR, |
27 |
\fB\&const int *\fR |
28 |
\fI\&IPMAP\fR, |
29 |
\fB\&const int *\fR |
30 |
\fI\&IPMAPM1\fR |
31 |
\fB\&);\fR |
32 |
.SH DESCRIPTION |
33 |
\fB\&HPL_spreadT\fR |
34 |
spreads the local array containing local pieces of U, so |
35 |
that on exit to this function, a piece of U is contained in every |
36 |
process row. The array IPLEN contains the number of columns of U, |
37 |
that should be spread on any given process row. This function also |
38 |
probes for the presence of the column panel PBCST. If available, |
39 |
this panel will be forwarded. If PBCST is NULL on input, this |
40 |
probing mechanism will be disabled. |
41 |
.SH ARGUMENTS |
42 |
.TP 8 |
43 |
PBCST (local input/output) HPL_T_panel * |
44 |
On entry, PBCST points to the data structure containing the |
45 |
panel (to be broadcast) information. |
46 |
.TP 8 |
47 |
IFLAG (local input/output) int * |
48 |
On entry, IFLAG indicates whether or not the broadcast has |
49 |
already been completed. If not, probing will occur, and the |
50 |
outcome will be contained in IFLAG on exit. |
51 |
.TP 8 |
52 |
PANEL (local input/output) HPL_T_panel * |
53 |
On entry, PANEL points to the data structure containing the |
54 |
panel (to be spread) information. |
55 |
.TP 8 |
56 |
SIDE (global input) const enum HPL_SIDE |
57 |
On entry, SIDE specifies whether the local piece of U located |
58 |
in process IPMAP[SRCDIST] should be spread to the right or to |
59 |
the left. This feature is used by the equilibration process. |
60 |
.TP 8 |
61 |
N (global input) const int |
62 |
On entry, N specifies the local number of rows of U. N must |
63 |
be at least zero. |
64 |
.TP 8 |
65 |
U (local input/output) double * |
66 |
On entry, U is an array of dimension (LDU,*) containing the |
67 |
local pieces of U. |
68 |
.TP 8 |
69 |
LDU (local input) const int |
70 |
On entry, LDU specifies the local leading dimension of U. LDU |
71 |
should be at least MAX(1,N). |
72 |
.TP 8 |
73 |
SRCDIST (local input) const int |
74 |
On entry, SRCDIST specifies the source process that spreads |
75 |
its piece of U. |
76 |
.TP 8 |
77 |
IPLEN (global input) const int * |
78 |
On entry, IPLEN is an array of dimension NPROW+1. This array |
79 |
is such that IPLEN[i+1] - IPLEN[i] is the number of rows of U |
80 |
in each process before process IPMAP[i], with the convention |
81 |
that IPLEN[nprow] is the total number of rows. In other words |
82 |
IPLEN[i+1] - IPLEN[i] is the local number of rows of U that |
83 |
should be moved to process IPMAP[i]. |
84 |
.TP 8 |
85 |
IPMAP (global input) const int * |
86 |
On entry, IPMAP is an array of dimension NPROW. This array |
87 |
contains the logarithmic mapping of the processes. In other |
88 |
words, IPMAP[myrow] is the absolute coordinate of the sorted |
89 |
process. |
90 |
.TP 8 |
91 |
IPMAPM1 (global input) const int * |
92 |
On entry, IPMAPM1 is an array of dimension NPROW. This array |
93 |
contains the inverse of the logarithmic mapping contained in |
94 |
IPMAP: For i in [0.. NPROW) IPMAPM1[IPMAP[i]] = i. |
95 |
.SH SEE ALSO |
96 |
.BR HPL_pdlaswp01T \ (3). |