Statistiques
| Révision :

root / man / man3 / HPL_logsort.3

Historique | Voir | Annoter | Télécharger (2,32 ko)

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