1HPL_logsort(3)               HPL Library Functions              HPL_logsort(3)
2
3
4

NAME

6       HPL_logsort - Sort the processes in logarithmic order.
7

SYNOPSIS

9       #include "hpl.h"
10
11       void HPL_logsort( const int NPROCS, const int ICURROC, int * IPLEN, int
12       * IPMAP, int * IPMAPM1 );
13

DESCRIPTION

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

ARGUMENTS

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

SEE ALSO

56       HPL_plindx1 (3),         HPL_plindx10 (3),          HPL_pdlaswp01N (3),
57       HPL_pdlaswp01T (3).
58
59
60
61HPL 2.2                        February 24, 2016                HPL_logsort(3)
Impressum