root / www / HPL_rollN.html
Historique | Voir | Annoter | Télécharger (2,97 ko)
1 | 1 | equemene | <HTML>
|
---|---|---|---|
2 | 1 | equemene | <HEAD>
|
3 | 1 | equemene | <TITLE>HPL_rollN 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_rollN</B> Roll U and forward the column panel. |
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_rollN(</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>N</CODE>, |
24 | 1 | equemene | <CODE>double *</CODE> |
25 | 1 | equemene | <CODE>U</CODE>, |
26 | 1 | equemene | <CODE>const int</CODE> |
27 | 1 | equemene | <CODE>LDU</CODE>, |
28 | 1 | equemene | <CODE>const int *</CODE> |
29 | 1 | equemene | <CODE>IPLEN</CODE>, |
30 | 1 | equemene | <CODE>const int *</CODE> |
31 | 1 | equemene | <CODE>IPMAP</CODE>, |
32 | 1 | equemene | <CODE>const int *</CODE> |
33 | 1 | equemene | <CODE>IPMAPM1</CODE> |
34 | 1 | equemene | <CODE>);</CODE> |
35 | 1 | equemene | |
36 | 1 | equemene | <H1>Description</H1> |
37 | 1 | equemene | <B>HPL_rollN</B> |
38 | 1 | equemene | rolls the local arrays containing the local pieces of U, so |
39 | 1 | equemene | that on exit to this function U is replicated in every process row. |
40 | 1 | equemene | In addition, this function probe for the presence of the column panel |
41 | 1 | equemene | and forwards it when available. |
42 | 1 | equemene | |
43 | 1 | equemene | <H1>Arguments</H1> |
44 | 1 | equemene | <PRE>
|
45 | 1 | equemene | PBCST (local input/output) HPL_T_panel * |
46 | 1 | equemene | On entry, PBCST points to the data structure containing the |
47 | 1 | equemene | panel (to be broadcast) information. |
48 | 1 | equemene | </PRE>
|
49 | 1 | equemene | <PRE>
|
50 | 1 | equemene | IFLAG (local input/output) int * |
51 | 1 | equemene | On entry, IFLAG indicates whether or not the broadcast has |
52 | 1 | equemene | already been completed. If not, probing will occur, and the |
53 | 1 | equemene | outcome will be contained in IFLAG on exit. |
54 | 1 | equemene | </PRE>
|
55 | 1 | equemene | <PRE>
|
56 | 1 | equemene | PANEL (local input/output) HPL_T_panel * |
57 | 1 | equemene | On entry, PANEL points to the data structure containing the |
58 | 1 | equemene | panel (to be rolled) information. |
59 | 1 | equemene | </PRE>
|
60 | 1 | equemene | <PRE>
|
61 | 1 | equemene | N (local input) const int |
62 | 1 | equemene | On entry, N specifies the number of columns of U. N must be |
63 | 1 | equemene | at least zero. |
64 | 1 | equemene | </PRE>
|
65 | 1 | equemene | <PRE>
|
66 | 1 | equemene | U (local input/output) double * |
67 | 1 | equemene | On entry, U is an array of dimension (LDU,*) containing the |
68 | 1 | equemene | local pieces of U in each process row. |
69 | 1 | equemene | </PRE>
|
70 | 1 | equemene | <PRE>
|
71 | 1 | equemene | LDU (local input) const int |
72 | 1 | equemene | On entry, LDU specifies the local leading dimension of U. LDU |
73 | 1 | equemene | should be at least MAX(1,IPLEN[NPROW]). |
74 | 1 | equemene | </PRE>
|
75 | 1 | equemene | <PRE>
|
76 | 1 | equemene | IPLEN (global input) const int * |
77 | 1 | equemene | On entry, IPLEN is an array of dimension NPROW+1. This array |
78 | 1 | equemene | is such that IPLEN[i+1] - IPLEN[i] is the number of rows of U |
79 | 1 | equemene | in each process row. |
80 | 1 | equemene | </PRE>
|
81 | 1 | equemene | <PRE>
|
82 | 1 | equemene | IPMAP (global input) const int * |
83 | 1 | equemene | On entry, IMAP is an array of dimension NPROW. This array |
84 | 1 | equemene | contains the logarithmic mapping of the processes. In other |
85 | 1 | equemene | words, IMAP[myrow] is the absolute coordinate of the sorted |
86 | 1 | equemene | process. |
87 | 1 | equemene | </PRE>
|
88 | 1 | equemene | <PRE>
|
89 | 1 | equemene | IPMAPM1 (global input) const int * |
90 | 1 | equemene | On entry, IMAPM1 is an array of dimension NPROW. This array |
91 | 1 | equemene | contains the inverse of the logarithmic mapping contained in |
92 | 1 | equemene | IMAP: For i in [0.. NPROW) IMAPM1[IMAP[i]] = i. |
93 | 1 | equemene | </PRE>
|
94 | 1 | equemene | |
95 | 1 | equemene | <H1>See Also</H1> |
96 | 1 | equemene | <A HREF="HPL_pdlaswp01N.html">HPL_pdlaswp01N</A>. |
97 | 1 | equemene | |
98 | 1 | equemene | </BODY>
|
99 | 1 | equemene | </HTML> |