1HPL_logsort(3) HPL Library Functions HPL_logsort(3)
2
3
4
6 HPL_logsort - Sort the processes in logarithmic order.
7
9 #include "hpl.h"
10
11 void HPL_logsort( const int NPROCS, const int ICURROC, int * IPLEN, int
12 * IPMAP, int * IPMAPM1 );
13
15 HPL_logsort computes an array IPMAP and its inverse IPMAPM1 that
16 contain the logarithmic sorted processes id with repect to the local
17 number of rows of U that they own. This is necessary to ensure that
18 the logarithmic spreading of U is optimal in terms of number of steps
19 and communication volume as well. In other words, the larget pieces
20 of U will be sent a minimal number of times.
21
23 NPROCS (global input) const int
24 On entry, NPROCS specifies the number of process rows in the
25 process grid. NPROCS is at least one.
26
27 ICURROC (global input) const int
28 On entry, ICURROC is the source process row.
29
30 IPLEN (global input/output) int *
31 On entry, IPLEN is an array of dimension NPROCS+1, such that
32 IPLEN[0] is 0, and IPLEN[i] contains the number of rows of U,
33 that process i-1 has. On exit, IPLEN[i] is the number of
34 rows of U in the processes before process IPMAP[i] after the
35 sort, with the convention that IPLEN[NPROCS] is the total
36 number of rows of the panel. In other words, IPLEN[i+1] -
37 IPLEN[i] is the number of rows of A that should be moved to
38 the process IPMAP[i]. IPLEN is such that the number of rows
39 of the source process row is IPLEN[1] - IPLEN[0], and the
40 remaining entries of this array are sorted so that the
41 quantities IPLEN[i+1]-IPLEN[i] are logarithmically sorted.
42
43 IPMAP (global output) int *
44 On entry, IPMAP is an array of dimension NPROCS. On exit,
45 array contains the logarithmic mapping of the processes. In
46 other words, IPMAP[myroc] is the corresponding sorted process
47 coordinate.
48
49 IPMAPM1 (global output) int *
50 On entry, IPMAPM1 is an array of dimension NPROCS. On exit,
51 this array contains the inverse of the logarithmic mapping
52 contained in IPMAP: IPMAPM1[ IPMAP[i] ] = i, for all i in
53 [0.. NPROCS)
54
56 HPL_plindx1 (3), HPL_plindx10 (3), HPL_pdlaswp01N (3),
57 HPL_pdlaswp01T (3).
58
59
60
61HPL 2.1 October 26, 2012 HPL_logsort(3)