HPL_plindx10 - Man Page

Compute the logarithmic maps for the spreading.

Synopsis

#include "hpl.h"
 void HPL_plindx10( HPL_T_panel * PANEL, const int K, const int * IPID, int * IPLEN, int * IPMAP, int * IPMAPM1 );

Description

HPL_plindx10 computes  three arrays  IPLEN,  IPMAP  and  IPMAPM1  that contain the logarithmic mapping information for the spreading phase.

Arguments

PANEL   (local input/output)    HPL_T_panel *

On entry,  PANEL  points to the data structure containing the panel information.

K       (global input)          const int

On entry, K specifies the number of entries in IPID.  K is at least 2*N, and at most 4*N.

IPID    (global input)          const int *

On entry,  IPID  is an array of length K. The first K entries of that array contain the src and final destination resulting from the application of the interchanges.

IPLEN   (global output)         int *

On entry, IPLEN  is an array of dimension NPROW + 1. On exit, this array is such that  IPLEN[i]  is the number of rows of A in the processes  before process IMAP[i] after the sort, with the convention that IPLEN[nprow] is the total number of rows. In other words,  IPLEN[i+1] - IPLEN[i] is the local number of rows of  A  that should be moved for each process.  IPLEN  is such that the number of rows of the source process row can be computed as IPLEN[1] - IPLEN[0], and the remaining entries of this  array are sorted  so  that  the quantities IPLEN[i+1] - IPLEN[i] are logarithmically sorted.

IPMAP   (global output)         int *

On entry, IPMAP is an array of dimension NPROW. On exit, this array contains  the logarithmic mapping of the processes.  In other words, IPMAP[myrow] is the corresponding sorted process coordinate.

IPMAPM1 (global output)         int *

On entry, IPMAPM1  is an array of dimension NPROW.  On  exit, this  array  contains  the inverse of the logarithmic mapping contained  in  IPMAP:  IPMAPM1[ IPMAP[i] ] = i,  for all i in [0.. NPROW)

See Also

HPL_pdlaswp00N (3), HPL_pdlaswp00T (3), HPL_pdlaswp01N (3), HPL_pdlaswp01T (3).

Referenced By

HPL_logsort(3), HPL_pdlaswp01N(3), HPL_pdlaswp01T(3).

February 24, 2016 HPL 2.2 HPL Library Functions