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