Statistiques
| Révision :

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).