1HPL_pdmxswp(3) HPL Library Functions HPL_pdmxswp(3)
2
3
4
6 HPL_pdmxswp - swaps and broacast the pivot row.
7
9 #include "hpl.h"
10
11 void HPL_pdmxswp( HPL_T_panel * PANEL, const int M, const int II, const
12 int JJ, double * WORK );
13
15 HPL_pdmxswp swaps and broadcasts the absolute value max row using
16 bi-directional exchange. The buffer is partially set by HPL_dlocmax.
17
18 Bi-directional exchange is used to perform the swap::broadcast
19 operations at once for one column in the panel. This results in a
20 lower number of slightly larger messages than usual. On P processes
21 and assuming bi-directional links, the running time of this function
22 can be approximated by
23
24 log_2( P ) * ( lat + ( 2 * N0 + 4 ) / bdwth )
25
26 where lat and bdwth are the latency and bandwidth of the network for
27 double precision real elements. Communication only occurs in one
28 process column. Mono-directional links will cause the communication
29 cost to double.
30
32 PANEL (local input/output) HPL_T_panel *
33 On entry, PANEL points to the data structure containing the
34 panel information.
35
36 M (local input) const int
37 On entry, M specifies the local number of rows of the matrix
38 column on which this function operates.
39
40 II (local input) const int
41 On entry, II specifies the row offset where the column to be
42 operated on starts with respect to the panel.
43
44 JJ (local input) const int
45 On entry, JJ specifies the column offset where the column to
46 be operated on starts with respect to the panel.
47
48 WORK (local workspace) double *
49 On entry, WORK is a workarray of size at least 2 * (4+2*N0).
50 It is assumed that HPL_dlocmax was called prior to this
51 routine to initialize the first four entries of this array.
52 On exit, the N0 length max row is stored in WORK[4:4+N0-1];
53 Note that this is also the JJth row (or column) of L1. The
54 remaining part is used as a temporary array.
55
57 HPL_dlocmax (3), HPL_dlocswpN (3), HPL_dlocswpT (3), HPL_pdpancrN (3),
58 HPL_pdpancrT (3), HPL_pdpanllN (3), HPL_pdpanllT (3), HPL_pdpanrlN (3),
59 HPL_pdpanrlT (3), HPL_pdrpancrN (3), HPL_pdrpancrT (3), HPL_pdrpan‐
60 llN (3), HPL_pdrpanllT (3), HPL_pdrpanrlN (3), HPL_pdrpanrlT (3),
61 HPL_pdfact (3).
62
63
64
65HPL 2.1 October 26, 2012 HPL_pdmxswp(3)