Statistiques
| Révision :

root / www / HPL_equil.html @ 8

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

1 1 equemene
<HTML>
2 1 equemene
<HEAD>
3 1 equemene
<TITLE>HPL_equil 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_equil</B> Equilibrate U and forward the column panel L.
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_equil(</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_TRANS</CODE>
23 1 equemene
<CODE>TRANS</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>int *</CODE>
31 1 equemene
<CODE>IPLEN</CODE>,
32 1 equemene
<CODE>const int *</CODE>
33 1 equemene
<CODE>IPMAP</CODE>,
34 1 equemene
<CODE>const int *</CODE>
35 1 equemene
<CODE>IPMAPM1</CODE>,
36 1 equemene
<CODE>int *</CODE>
37 1 equemene
<CODE>IWORK</CODE>
38 1 equemene
<CODE>);</CODE>
39 1 equemene
40 1 equemene
<H1>Description</H1>
41 1 equemene
<B>HPL_equil</B>
42 1 equemene
equilibrates  the  local  pieces  of U, so that on exit to
43 1 equemene
this function, pieces of U contained in every process row are of the
44 1 equemene
same size. This phase makes the rolling phase optimal.  In addition,
45 1 equemene
this  function probes  for  the  column panel L and forwards it when
46 1 equemene
possible.
47 1 equemene
48 1 equemene
<H1>Arguments</H1>
49 1 equemene
<PRE>
50 1 equemene
PBCST   (local input/output)          HPL_T_panel *
51 1 equemene
        On entry,  PBCST  points to the data structure containing the
52 1 equemene
        panel (to be broadcast) information.
53 1 equemene
</PRE>
54 1 equemene
<PRE>
55 1 equemene
IFLAG   (local input/output)          int *
56 1 equemene
        On entry, IFLAG  indicates  whether or not  the broadcast has
57 1 equemene
        already been completed.  If not,  probing will occur, and the
58 1 equemene
        outcome will be contained in IFLAG on exit.
59 1 equemene
</PRE>
60 1 equemene
<PRE>
61 1 equemene
PANEL   (local input/output)          HPL_T_panel *
62 1 equemene
        On entry,  PANEL  points to the data structure containing the
63 1 equemene
        panel (to be equilibrated) information.
64 1 equemene
</PRE>
65 1 equemene
<PRE>
66 1 equemene
TRANS   (global input)                const enum HPL_TRANS
67 1 equemene
        On entry, TRANS specifies whether  U  is stored in transposed
68 1 equemene
        or non-transposed form.
69 1 equemene
</PRE>
70 1 equemene
<PRE>
71 1 equemene
N       (local input)                 const int
72 1 equemene
        On entry, N  specifies the number of rows or columns of  U. N
73 1 equemene
        must be at least 0.
74 1 equemene
</PRE>
75 1 equemene
<PRE>
76 1 equemene
U       (local input/output)          double *
77 1 equemene
        On entry,  U  is an array of dimension (LDU,*) containing the
78 1 equemene
        local pieces of U in each process row.
79 1 equemene
</PRE>
80 1 equemene
<PRE>
81 1 equemene
LDU     (local input)                 const int
82 1 equemene
        On entry, LDU specifies the local leading dimension of U. LDU
83 1 equemene
        should be at least MAX(1,IPLEN[nprow]) when  U  is stored  in
84 1 equemene
        non-transposed form, and MAX(1,N) otherwise.
85 1 equemene
</PRE>
86 1 equemene
<PRE>
87 1 equemene
IPLEN   (global input)                int *
88 1 equemene
        On entry, IPLEN is an array of dimension NPROW+1.  This array
89 1 equemene
        is such that IPLEN[i+1] - IPLEN[i] is the number of rows of U
90 1 equemene
        in process IPMAP[i].
91 1 equemene
</PRE>
92 1 equemene
<PRE>
93 1 equemene
IPMAP   (global input)                const int *
94 1 equemene
        On entry, IPMAP is an array of dimension  NPROW.  This  array
95 1 equemene
        contains  the  logarithmic mapping of the processes. In other
96 1 equemene
        words, IPMAP[myrow]  is the absolute coordinate of the sorted
97 1 equemene
        process.
98 1 equemene
</PRE>
99 1 equemene
<PRE>
100 1 equemene
IPMAPM1 (global input)                const int *
101 1 equemene
        On entry, IPMAPM1  is an array of dimension NPROW. This array
102 1 equemene
        contains  the inverse of the logarithmic mapping contained in
103 1 equemene
        IPMAP: For i in [0.. NPROCS) IPMAPM1[IPMAP[i]] = i.
104 1 equemene
</PRE>
105 1 equemene
<PRE>
106 1 equemene
IWORK   (workspace)                   int *
107 1 equemene
        On entry, IWORK is a workarray of dimension NPROW+1.
108 1 equemene
</PRE>
109 1 equemene
110 1 equemene
<H1>See Also</H1>
111 1 equemene
<A HREF="HPL_pdlaswp01N.html">HPL_pdlaswp01N</A>,
112 1 equemene
<A HREF="HPL_pdlaswp01T.html">HPL_pdlaswp01T</A>.
113 1 equemene
114 1 equemene
</BODY>
115 1 equemene
</HTML>