Statistiques
| Révision :

root / www / HPL_plindx1.html

Historique | Voir | Annoter | Télécharger (4,48 ko)

1 1 equemene
<HTML>
2 1 equemene
<HEAD>
3 1 equemene
<TITLE>HPL_plindx1 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_plindx1</B> Compute local swapping index arrays.
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_plindx1(</CODE>
16 1 equemene
<CODE>HPL_T_panel *</CODE>
17 1 equemene
<CODE>PANEL</CODE>,
18 1 equemene
<CODE>const int</CODE>
19 1 equemene
<CODE>K</CODE>,
20 1 equemene
<CODE>const int *</CODE>
21 1 equemene
<CODE>IPID</CODE>,
22 1 equemene
<CODE>int *</CODE>
23 1 equemene
<CODE>IPA</CODE>,
24 1 equemene
<CODE>int *</CODE>
25 1 equemene
<CODE>LINDXA</CODE>,
26 1 equemene
<CODE>int *</CODE>
27 1 equemene
<CODE>LINDXAU</CODE>,
28 1 equemene
<CODE>int *</CODE>
29 1 equemene
<CODE>IPLEN</CODE>,
30 1 equemene
<CODE>int *</CODE>
31 1 equemene
<CODE>IPMAP</CODE>,
32 1 equemene
<CODE>int *</CODE>
33 1 equemene
<CODE>IPMAPM1</CODE>,
34 1 equemene
<CODE>int *</CODE>
35 1 equemene
<CODE>PERMU</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_plindx1</B>
42 1 equemene
computes two local arrays  LINDXA and  LINDXAU  containing
43 1 equemene
the  local  source and final destination position  resulting from the
44 1 equemene
application of row interchanges.  In addition, this function computes
45 1 equemene
three arrays IPLEN, IPMAP and IPMAPM1  that contain  the  logarithmic
46 1 equemene
mapping information for the spreading phase.
47 1 equemene
48 1 equemene
<H1>Arguments</H1>
49 1 equemene
<PRE>
50 1 equemene
PANEL   (local input/output)          HPL_T_panel *
51 1 equemene
        On entry,  PANEL  points to the data structure containing the
52 1 equemene
        panel information.
53 1 equemene
</PRE>
54 1 equemene
<PRE>
55 1 equemene
K       (global input)                const int
56 1 equemene
        On entry, K specifies the number of entries in IPID.  K is at
57 1 equemene
        least 2*N, and at most 4*N.
58 1 equemene
</PRE>
59 1 equemene
<PRE>
60 1 equemene
IPID    (global input)                const int *
61 1 equemene
        On entry,  IPID  is an array of length K. The first K entries
62 1 equemene
        of that array contain the src and final destination resulting
63 1 equemene
        from the application of the interchanges.
64 1 equemene
</PRE>
65 1 equemene
<PRE>
66 1 equemene
IPA     (global output)               int *
67 1 equemene
        On exit,  IPA  specifies  the number of rows that the current
68 1 equemene
        process row has that either belong to U  or should be swapped
69 1 equemene
        with remote rows of A.
70 1 equemene
</PRE>
71 1 equemene
<PRE>
72 1 equemene
LINDXA  (global output)               int *
73 1 equemene
        On entry, LINDXA  is an array of dimension 2*N. On exit, this
74 1 equemene
        array contains the local indexes of the rows of A I have that
75 1 equemene
        should be copied into U.
76 1 equemene
</PRE>
77 1 equemene
<PRE>
78 1 equemene
LINDXAU (global output)               int *
79 1 equemene
        On exit, LINDXAU  is an array of dimension 2*N. On exit, this
80 1 equemene
        array contains  the local destination  information encoded as
81 1 equemene
        follows.  If LINDXAU(k) >= 0, row  LINDXA(k)  of A  is  to be
82 1 equemene
        copied in U at position LINDXAU(k).  Otherwise, row LINDXA(k)
83 1 equemene
        of A should be locally copied into A(-LINDXAU(k),:).
84 1 equemene
</PRE>
85 1 equemene
<PRE>
86 1 equemene
IPLEN   (global output)               int *
87 1 equemene
        On entry, IPLEN is an array of dimension NPROW + 1. On  exit,
88 1 equemene
        this array is such that  IPLEN[i]  is the number of rows of A
89 1 equemene
        in  the  processes  before  process  IPMAP[i]  after the sort
90 1 equemene
        with the convention that IPLEN[nprow]  is the total number of
91 1 equemene
        rows of the panel.  In other words IPLEN[i+1]-IPLEN[i] is the
92 1 equemene
        local number of rows of A that should be moved to the process
93 1 equemene
        IPMAP[i]. IPLEN is such that the number of rows of the source
94 1 equemene
        process  row can be computed as  IPLEN[1] - IPLEN[0], and the
95 1 equemene
        remaining  entries  of  this  array  are  sorted  so that the
96 1 equemene
        quantities IPLEN[i+1] - IPLEN[i] are logarithmically sorted.
97 1 equemene
</PRE>
98 1 equemene
<PRE>
99 1 equemene
IPMAP   (global output)               int *
100 1 equemene
        On entry, IPMAP is an array of dimension NPROW. On exit, this
101 1 equemene
        array contains  the logarithmic mapping of the processes.  In
102 1 equemene
        other words, IPMAP[myrow] is the corresponding sorted process
103 1 equemene
        coordinate.
104 1 equemene
</PRE>
105 1 equemene
<PRE>
106 1 equemene
IPMAPM1 (global output)               int *
107 1 equemene
        On entry, IPMAPM1  is an array of dimension NPROW.  On  exit,
108 1 equemene
        this  array  contains  the inverse of the logarithmic mapping
109 1 equemene
        contained  in  IPMAP:  IPMAPM1[ IPMAP[i] ] = i,  for all i in
110 1 equemene
        [0.. NPROCS)
111 1 equemene
</PRE>
112 1 equemene
<PRE>
113 1 equemene
PERMU   (global output)               int *
114 1 equemene
        On entry,  PERMU  is an array of dimension JB. On exit, PERMU
115 1 equemene
        contains  a sequence of permutations,  that should be applied
116 1 equemene
        in increasing order to permute in place the row panel U.
117 1 equemene
</PRE>
118 1 equemene
<PRE>
119 1 equemene
IWORK   (workspace)                   int *
120 1 equemene
        On entry, IWORK is a workarray of dimension 2*JB.
121 1 equemene
</PRE>
122 1 equemene
123 1 equemene
<H1>See Also</H1>
124 1 equemene
<A HREF="HPL_pdlaswp00N.html">HPL_pdlaswp00N</A>,
125 1 equemene
<A HREF="HPL_pdlaswp00T.html">HPL_pdlaswp00T</A>,
126 1 equemene
<A HREF="HPL_pdlaswp01N.html">HPL_pdlaswp01N</A>,
127 1 equemene
<A HREF="HPL_pdlaswp01T.html">HPL_pdlaswp01T</A>.
128 1 equemene
129 1 equemene
</BODY>
130 1 equemene
</HTML>