root / www / HPL_spreadT.html @ 8
Historique | Voir | Annoter | Télécharger (3,91 ko)
1 |
<HTML>
|
---|---|
2 |
<HEAD>
|
3 |
<TITLE>HPL_spreadT HPL 2.0 Library Functions September 10, 2008</TITLE> |
4 |
</HEAD>
|
5 |
|
6 |
<BODY BGCOLOR="WHITE" TEXT = "#000000" LINK = "#0000ff" VLINK = "#000099" |
7 |
ALINK = "#ffff00"> |
8 |
|
9 |
<H1>Name</H1> |
10 |
<B>HPL_spreadT</B> Spread row panel U and forward current column panel. |
11 |
|
12 |
<H1>Synopsis</H1> |
13 |
<CODE>#include "hpl.h"</CODE><BR><BR> |
14 |
<CODE>void</CODE> |
15 |
<CODE>HPL_spreadT(</CODE> |
16 |
<CODE>HPL_T_panel *</CODE> |
17 |
<CODE>PBCST</CODE>, |
18 |
<CODE>int *</CODE> |
19 |
<CODE>IFLAG</CODE>, |
20 |
<CODE>HPL_T_panel *</CODE> |
21 |
<CODE>PANEL</CODE>, |
22 |
<CODE>const enum HPL_SIDE</CODE> |
23 |
<CODE>SIDE</CODE>, |
24 |
<CODE>const int</CODE> |
25 |
<CODE>N</CODE>, |
26 |
<CODE>double *</CODE> |
27 |
<CODE>U</CODE>, |
28 |
<CODE>const int</CODE> |
29 |
<CODE>LDU</CODE>, |
30 |
<CODE>const int</CODE> |
31 |
<CODE>SRCDIST</CODE>, |
32 |
<CODE>const int *</CODE> |
33 |
<CODE>IPLEN</CODE>, |
34 |
<CODE>const int *</CODE> |
35 |
<CODE>IPMAP</CODE>, |
36 |
<CODE>const int *</CODE> |
37 |
<CODE>IPMAPM1</CODE> |
38 |
<CODE>);</CODE> |
39 |
|
40 |
<H1>Description</H1> |
41 |
<B>HPL_spreadT</B> |
42 |
spreads the local array containing local pieces of U, so |
43 |
that on exit to this function, a piece of U is contained in every |
44 |
process row. The array IPLEN contains the number of columns of U, |
45 |
that should be spread on any given process row. This function also |
46 |
probes for the presence of the column panel PBCST. If available, |
47 |
this panel will be forwarded. If PBCST is NULL on input, this |
48 |
probing mechanism will be disabled. |
49 |
|
50 |
<H1>Arguments</H1> |
51 |
<PRE>
|
52 |
PBCST (local input/output) HPL_T_panel * |
53 |
On entry, PBCST points to the data structure containing the |
54 |
panel (to be broadcast) information. |
55 |
</PRE>
|
56 |
<PRE>
|
57 |
IFLAG (local input/output) int * |
58 |
On entry, IFLAG indicates whether or not the broadcast has |
59 |
already been completed. If not, probing will occur, and the |
60 |
outcome will be contained in IFLAG on exit. |
61 |
</PRE>
|
62 |
<PRE>
|
63 |
PANEL (local input/output) HPL_T_panel * |
64 |
On entry, PANEL points to the data structure containing the |
65 |
panel (to be spread) information. |
66 |
</PRE>
|
67 |
<PRE>
|
68 |
SIDE (global input) const enum HPL_SIDE |
69 |
On entry, SIDE specifies whether the local piece of U located |
70 |
in process IPMAP[SRCDIST] should be spread to the right or to |
71 |
the left. This feature is used by the equilibration process. |
72 |
</PRE>
|
73 |
<PRE>
|
74 |
N (global input) const int |
75 |
On entry, N specifies the local number of rows of U. N must |
76 |
be at least zero. |
77 |
</PRE>
|
78 |
<PRE>
|
79 |
U (local input/output) double * |
80 |
On entry, U is an array of dimension (LDU,*) containing the |
81 |
local pieces of U. |
82 |
</PRE>
|
83 |
<PRE>
|
84 |
LDU (local input) const int |
85 |
On entry, LDU specifies the local leading dimension of U. LDU |
86 |
should be at least MAX(1,N). |
87 |
</PRE>
|
88 |
<PRE>
|
89 |
SRCDIST (local input) const int |
90 |
On entry, SRCDIST specifies the source process that spreads |
91 |
its piece of U. |
92 |
</PRE>
|
93 |
<PRE>
|
94 |
IPLEN (global input) const int * |
95 |
On entry, IPLEN is an array of dimension NPROW+1. This array |
96 |
is such that IPLEN[i+1] - IPLEN[i] is the number of rows of U |
97 |
in each process before process IPMAP[i], with the convention |
98 |
that IPLEN[nprow] is the total number of rows. In other words |
99 |
IPLEN[i+1] - IPLEN[i] is the local number of rows of U that |
100 |
should be moved to process IPMAP[i]. |
101 |
</PRE>
|
102 |
<PRE>
|
103 |
IPMAP (global input) const int * |
104 |
On entry, IPMAP is an array of dimension NPROW. This array |
105 |
contains the logarithmic mapping of the processes. In other |
106 |
words, IPMAP[myrow] is the absolute coordinate of the sorted |
107 |
process. |
108 |
</PRE>
|
109 |
<PRE>
|
110 |
IPMAPM1 (global input) const int * |
111 |
On entry, IPMAPM1 is an array of dimension NPROW. This array |
112 |
contains the inverse of the logarithmic mapping contained in |
113 |
IPMAP: For i in [0.. NPROW) IPMAPM1[IPMAP[i]] = i. |
114 |
</PRE>
|
115 |
|
116 |
<H1>See Also</H1> |
117 |
<A HREF="HPL_pdlaswp01T.html">HPL_pdlaswp01T</A>. |
118 |
|
119 |
</BODY>
|
120 |
</HTML>
|