Statistiques
| Révision :

root / www / HPL_spreadN.html

Historique | Voir | Annoter | Télécharger (3,92 ko)

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