root / www / HPL_pdlaswp01T.html
Historique | Voir | Annoter | Télécharger (2,92 ko)
1 | 1 | equemene | <HTML>
|
---|---|---|---|
2 | 1 | equemene | <HEAD>
|
3 | 1 | equemene | <TITLE>HPL_pdlaswp01T 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_pdlaswp01T</B> Broadcast a column panel L and swap the row panel U. |
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_pdlaswp01T(</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 int</CODE> |
23 | 1 | equemene | <CODE>NN</CODE> |
24 | 1 | equemene | <CODE>);</CODE> |
25 | 1 | equemene | |
26 | 1 | equemene | <H1>Description</H1> |
27 | 1 | equemene | <B>HPL_pdlaswp01T</B> |
28 | 1 | equemene | applies the NB row interchanges to NN columns of the |
29 | 1 | equemene | trailing submatrix and broadcast a column panel. |
30 | 1 | equemene | |
31 | 1 | equemene | A "Spread then roll" algorithm performs the swap :: broadcast of the |
32 | 1 | equemene | row panel U at once, resulting in a minimal communication volume and |
33 | 1 | equemene | a "very good" use of the connectivity if available. With P process |
34 | 1 | equemene | rows and assuming bi-directional links, the running time of this |
35 | 1 | equemene | function can be approximated by: |
36 | 1 | equemene | |
37 | 1 | equemene | (log_2(P)+(P-1)) * lat + K * NB * LocQ(N) / bdwth |
38 | 1 | equemene | |
39 | 1 | equemene | where NB is the number of rows of the row panel U, N is the global |
40 | 1 | equemene | number of columns being updated, lat and bdwth are the latency and |
41 | 1 | equemene | bandwidth of the network for double precision real words. K is |
42 | 1 | equemene | a constant in (2,3] that depends on the achieved bandwidth during a |
43 | 1 | equemene | simultaneous message exchange between two processes. An empirical |
44 | 1 | equemene | optimistic value of K is typically 2.4. |
45 | 1 | equemene | |
46 | 1 | equemene | <H1>Arguments</H1> |
47 | 1 | equemene | <PRE>
|
48 | 1 | equemene | PBCST (local input/output) HPL_T_panel * |
49 | 1 | equemene | On entry, PBCST points to the data structure containing the |
50 | 1 | equemene | panel (to be broadcast) information. |
51 | 1 | equemene | </PRE>
|
52 | 1 | equemene | <PRE>
|
53 | 1 | equemene | IFLAG (local input/output) int * |
54 | 1 | equemene | On entry, IFLAG indicates whether or not the broadcast has |
55 | 1 | equemene | already been completed. If not, probing will occur, and the |
56 | 1 | equemene | outcome will be contained in IFLAG on exit. |
57 | 1 | equemene | </PRE>
|
58 | 1 | equemene | <PRE>
|
59 | 1 | equemene | PANEL (local input/output) HPL_T_panel * |
60 | 1 | equemene | On entry, PANEL points to the data structure containing the |
61 | 1 | equemene | panel information. |
62 | 1 | equemene | </PRE>
|
63 | 1 | equemene | <PRE>
|
64 | 1 | equemene | NN (local input) const int |
65 | 1 | equemene | On entry, NN specifies the local number of columns of the |
66 | 1 | equemene | trailing submatrix to be swapped and broadcast starting at |
67 | 1 | equemene | the current position. NN must be at least zero. |
68 | 1 | equemene | </PRE>
|
69 | 1 | equemene | |
70 | 1 | equemene | <H1>See Also</H1> |
71 | 1 | equemene | <A HREF="HPL_pdgesv.html">HPL_pdgesv</A>, |
72 | 1 | equemene | <A HREF="HPL_pdgesvK2.html">HPL_pdgesvK2</A>, |
73 | 1 | equemene | <A HREF="HPL_pdupdateNT.html">HPL_pdupdateNT</A>, |
74 | 1 | equemene | <A HREF="HPL_pdupdateTT.html">HPL_pdupdateTT</A>, |
75 | 1 | equemene | <A HREF="HPL_pipid.html">HPL_pipid</A>, |
76 | 1 | equemene | <A HREF="HPL_plindx1.html">HPL_plindx1</A>, |
77 | 1 | equemene | <A HREF="HPL_plindx10.html">HPL_plindx10</A>, |
78 | 1 | equemene | <A HREF="HPL_spreadT.html">HPL_spreadT</A>, |
79 | 1 | equemene | <A HREF="HPL_equil.html">HPL_equil</A>, |
80 | 1 | equemene | <A HREF="HPL_rollT.html">HPL_rollT</A>, |
81 | 1 | equemene | <A HREF="HPL_dlaswp10N.html">HPL_dlaswp10N</A>, |
82 | 1 | equemene | <A HREF="HPL_dlaswp01T.html">HPL_dlaswp01T</A>, |
83 | 1 | equemene | <A HREF="HPL_dlaswp06T.html">HPL_dlaswp06T</A>. |
84 | 1 | equemene | |
85 | 1 | equemene | </BODY>
|
86 | 1 | equemene | </HTML> |