1HPL_equil(3) HPL Library Functions HPL_equil(3)
2
3
4
6 HPL_equil - Equilibrate U and forward the column panel L.
7
9 #include "hpl.h"
10
11 void HPL_equil( HPL_T_panel * PBCST, int * IFLAG, HPL_T_panel * PANEL,
12 const enum HPL_TRANS TRANS, const int N, double * U, const int LDU, int
13 * IPLEN, const int * IPMAP, const int * IPMAPM1, int * IWORK );
14
16 HPL_equil equilibrates the local pieces of U, so that on exit to
17 this function, pieces of U contained in every process row are of the
18 same size. This phase makes the rolling phase optimal. In addition,
19 this function probes for the column panel L and forwards it when
20 possible.
21
23 PBCST (local input/output) HPL_T_panel *
24 On entry, PBCST points to the data structure containing the
25 panel (to be broadcast) information.
26
27 IFLAG (local input/output) int *
28 On entry, IFLAG indicates whether or not the broadcast has
29 already been completed. If not, probing will occur, and the
30 outcome will be contained in IFLAG on exit.
31
32 PANEL (local input/output) HPL_T_panel *
33 On entry, PANEL points to the data structure containing the
34 panel (to be equilibrated) information.
35
36 TRANS (global input) const enum HPL_TRANS
37 On entry, TRANS specifies whether U is stored in transposed
38 or non-transposed form.
39
40 N (local input) const int
41 On entry, N specifies the number of rows or columns of U. N
42 must be at least 0.
43
44 U (local input/output) double *
45 On entry, U is an array of dimension (LDU,*) containing the
46 local pieces of U in each process row.
47
48 LDU (local input) const int
49 On entry, LDU specifies the local leading dimension of U. LDU
50 should be at least MAX(1,IPLEN[nprow]) when U is stored in
51 non-transposed form, and MAX(1,N) otherwise.
52
53 IPLEN (global input) int *
54 On entry, IPLEN is an array of dimension NPROW+1. This array
55 is such that IPLEN[i+1] - IPLEN[i] is the number of rows of U
56 in process IPMAP[i].
57
58 IPMAP (global input) const int *
59 On entry, IPMAP is an array of dimension NPROW. This array
60 contains the logarithmic mapping of the processes. In other
61 words, IPMAP[myrow] is the absolute coordinate of the sorted
62 process.
63
64 IPMAPM1 (global input) const int *
65 On entry, IPMAPM1 is an array of dimension NPROW. This array
66 contains the inverse of the logarithmic mapping contained in
67 IPMAP: For i in [0.. NPROCS) IPMAPM1[IPMAP[i]] = i.
68
69 IWORK (workspace) int *
70 On entry, IWORK is a workarray of dimension NPROW+1.
71
73 HPL_pdlaswp01N (3), HPL_pdlaswp01T (3).
74
75
76
77HPL 2.2 February 24, 2016 HPL_equil(3)