root / www / HPL_pdmxswp.html
Historique | Voir | Annoter | Télécharger (3,24 ko)
1 |
<HTML>
|
---|---|
2 |
<HEAD>
|
3 |
<TITLE>HPL_pdmxswp 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_pdmxswp</B> swaps and broacast the pivot row. |
11 |
|
12 |
<H1>Synopsis</H1> |
13 |
<CODE>#include "hpl.h"</CODE><BR><BR> |
14 |
<CODE>void</CODE> |
15 |
<CODE>HPL_pdmxswp(</CODE> |
16 |
<CODE>HPL_T_panel *</CODE> |
17 |
<CODE>PANEL</CODE>, |
18 |
<CODE>const int</CODE> |
19 |
<CODE>M</CODE>, |
20 |
<CODE>const int</CODE> |
21 |
<CODE>II</CODE>, |
22 |
<CODE>const int</CODE> |
23 |
<CODE>JJ</CODE>, |
24 |
<CODE>double *</CODE> |
25 |
<CODE>WORK</CODE> |
26 |
<CODE>);</CODE> |
27 |
|
28 |
<H1>Description</H1> |
29 |
<B>HPL_pdmxswp</B> |
30 |
swaps and broadcasts the absolute value max row using |
31 |
bi-directional exchange. The buffer is partially set by HPL_dlocmax. |
32 |
|
33 |
Bi-directional exchange is used to perform the swap::broadcast |
34 |
operations at once for one column in the panel. This results in a |
35 |
lower number of slightly larger messages than usual. On P processes |
36 |
and assuming bi-directional links, the running time of this function |
37 |
can be approximated by |
38 |
|
39 |
log_2( P ) * ( lat + ( 2 * N0 + 4 ) / bdwth ) |
40 |
|
41 |
where lat and bdwth are the latency and bandwidth of the network for |
42 |
double precision real elements. Communication only occurs in one |
43 |
process column. Mono-directional links will cause the communication |
44 |
cost to double. |
45 |
|
46 |
<H1>Arguments</H1> |
47 |
<PRE>
|
48 |
PANEL (local input/output) HPL_T_panel * |
49 |
On entry, PANEL points to the data structure containing the |
50 |
panel information. |
51 |
</PRE>
|
52 |
<PRE>
|
53 |
M (local input) const int |
54 |
On entry, M specifies the local number of rows of the matrix |
55 |
column on which this function operates. |
56 |
</PRE>
|
57 |
<PRE>
|
58 |
II (local input) const int |
59 |
On entry, II specifies the row offset where the column to be |
60 |
operated on starts with respect to the panel. |
61 |
</PRE>
|
62 |
<PRE>
|
63 |
JJ (local input) const int |
64 |
On entry, JJ specifies the column offset where the column to |
65 |
be operated on starts with respect to the panel. |
66 |
</PRE>
|
67 |
<PRE>
|
68 |
WORK (local workspace) double * |
69 |
On entry, WORK is a workarray of size at least 2 * (4+2*N0). |
70 |
It is assumed that HPL_dlocmax was called prior to this |
71 |
routine to initialize the first four entries of this array. |
72 |
On exit, the N0 length max row is stored in WORK[4:4+N0-1]; |
73 |
Note that this is also the JJth row (or column) of L1. The |
74 |
remaining part is used as a temporary array. |
75 |
</PRE>
|
76 |
|
77 |
<H1>See Also</H1> |
78 |
<A HREF="HPL_dlocmax.html">HPL_dlocmax</A>, |
79 |
<A HREF="HPL_dlocswpN.html">HPL_dlocswpN</A>, |
80 |
<A HREF="HPL_dlocswpT.html">HPL_dlocswpT</A>, |
81 |
<A HREF="HPL_pdpancrN.html">HPL_pdpancrN</A>, |
82 |
<A HREF="HPL_pdpancrT.html">HPL_pdpancrT</A>, |
83 |
<A HREF="HPL_pdpanllN.html">HPL_pdpanllN</A>, |
84 |
<A HREF="HPL_pdpanllT.html">HPL_pdpanllT</A>, |
85 |
<A HREF="HPL_pdpanrlN.html">HPL_pdpanrlN</A>, |
86 |
<A HREF="HPL_pdpanrlT.html">HPL_pdpanrlT</A>, |
87 |
<A HREF="HPL_pdrpancrN.html">HPL_pdrpancrN</A>, |
88 |
<A HREF="HPL_pdrpancrT.html">HPL_pdrpancrT</A>, |
89 |
<A HREF="HPL_pdrpanllN.html">HPL_pdrpanllN</A>, |
90 |
<A HREF="HPL_pdrpanllT.html">HPL_pdrpanllT</A>, |
91 |
<A HREF="HPL_pdrpanrlN.html">HPL_pdrpanrlN</A>, |
92 |
<A HREF="HPL_pdrpanrlT.html">HPL_pdrpanrlT</A>, |
93 |
<A HREF="HPL_pdfact.html">HPL_pdfact</A>. |
94 |
|
95 |
</BODY>
|
96 |
</HTML>
|