Statistiques
| Révision :

root / www / HPL_plindx1.html

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

1
<HTML>
2
<HEAD>
3
<TITLE>HPL_plindx1 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_plindx1</B> Compute local swapping index arrays.
11

    
12
<H1>Synopsis</H1>
13
<CODE>#include "hpl.h"</CODE><BR><BR>
14
<CODE>void</CODE>
15
<CODE>HPL_plindx1(</CODE>
16
<CODE>HPL_T_panel *</CODE>
17
<CODE>PANEL</CODE>,
18
<CODE>const int</CODE>
19
<CODE>K</CODE>,
20
<CODE>const int *</CODE>
21
<CODE>IPID</CODE>,
22
<CODE>int *</CODE>
23
<CODE>IPA</CODE>,
24
<CODE>int *</CODE>
25
<CODE>LINDXA</CODE>,
26
<CODE>int *</CODE>
27
<CODE>LINDXAU</CODE>,
28
<CODE>int *</CODE>
29
<CODE>IPLEN</CODE>,
30
<CODE>int *</CODE>
31
<CODE>IPMAP</CODE>,
32
<CODE>int *</CODE>
33
<CODE>IPMAPM1</CODE>,
34
<CODE>int *</CODE>
35
<CODE>PERMU</CODE>,
36
<CODE>int *</CODE>
37
<CODE>IWORK</CODE>
38
<CODE>);</CODE>
39

    
40
<H1>Description</H1>
41
<B>HPL_plindx1</B>
42
computes two local arrays  LINDXA and  LINDXAU  containing
43
the  local  source and final destination position  resulting from the
44
application of row interchanges.  In addition, this function computes
45
three arrays IPLEN, IPMAP and IPMAPM1  that contain  the  logarithmic
46
mapping information for the spreading phase.
47

    
48
<H1>Arguments</H1>
49
<PRE>
50
PANEL   (local input/output)          HPL_T_panel *
51
        On entry,  PANEL  points to the data structure containing the
52
        panel information.
53
</PRE>
54
<PRE>
55
K       (global input)                const int
56
        On entry, K specifies the number of entries in IPID.  K is at
57
        least 2*N, and at most 4*N.
58
</PRE>
59
<PRE>
60
IPID    (global input)                const int *
61
        On entry,  IPID  is an array of length K. The first K entries
62
        of that array contain the src and final destination resulting
63
        from the application of the interchanges.
64
</PRE>
65
<PRE>
66
IPA     (global output)               int *
67
        On exit,  IPA  specifies  the number of rows that the current
68
        process row has that either belong to U  or should be swapped
69
        with remote rows of A.
70
</PRE>
71
<PRE>
72
LINDXA  (global output)               int *
73
        On entry, LINDXA  is an array of dimension 2*N. On exit, this
74
        array contains the local indexes of the rows of A I have that
75
        should be copied into U.
76
</PRE>
77
<PRE>
78
LINDXAU (global output)               int *
79
        On exit, LINDXAU  is an array of dimension 2*N. On exit, this
80
        array contains  the local destination  information encoded as
81
        follows.  If LINDXAU(k) >= 0, row  LINDXA(k)  of A  is  to be
82
        copied in U at position LINDXAU(k).  Otherwise, row LINDXA(k)
83
        of A should be locally copied into A(-LINDXAU(k),:).
84
</PRE>
85
<PRE>
86
IPLEN   (global output)               int *
87
        On entry, IPLEN is an array of dimension NPROW + 1. On  exit,
88
        this array is such that  IPLEN[i]  is the number of rows of A
89
        in  the  processes  before  process  IPMAP[i]  after the sort
90
        with the convention that IPLEN[nprow]  is the total number of
91
        rows of the panel.  In other words IPLEN[i+1]-IPLEN[i] is the
92
        local number of rows of A that should be moved to the process
93
        IPMAP[i]. IPLEN is such that the number of rows of the source
94
        process  row can be computed as  IPLEN[1] - IPLEN[0], and the
95
        remaining  entries  of  this  array  are  sorted  so that the
96
        quantities IPLEN[i+1] - IPLEN[i] are logarithmically sorted.
97
</PRE>
98
<PRE>
99
IPMAP   (global output)               int *
100
        On entry, IPMAP is an array of dimension NPROW. On exit, this
101
        array contains  the logarithmic mapping of the processes.  In
102
        other words, IPMAP[myrow] is the corresponding sorted process
103
        coordinate.
104
</PRE>
105
<PRE>
106
IPMAPM1 (global output)               int *
107
        On entry, IPMAPM1  is an array of dimension NPROW.  On  exit,
108
        this  array  contains  the inverse of the logarithmic mapping
109
        contained  in  IPMAP:  IPMAPM1[ IPMAP[i] ] = i,  for all i in
110
        [0.. NPROCS)
111
</PRE>
112
<PRE>
113
PERMU   (global output)               int *
114
        On entry,  PERMU  is an array of dimension JB. On exit, PERMU
115
        contains  a sequence of permutations,  that should be applied
116
        in increasing order to permute in place the row panel U.
117
</PRE>
118
<PRE>
119
IWORK   (workspace)                   int *
120
        On entry, IWORK is a workarray of dimension 2*JB.
121
</PRE>
122

    
123
<H1>See Also</H1>
124
<A HREF="HPL_pdlaswp00N.html">HPL_pdlaswp00N</A>,
125
<A HREF="HPL_pdlaswp00T.html">HPL_pdlaswp00T</A>,
126
<A HREF="HPL_pdlaswp01N.html">HPL_pdlaswp01N</A>,
127
<A HREF="HPL_pdlaswp01T.html">HPL_pdlaswp01T</A>.
128

    
129
</BODY>
130
</HTML>