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> |