Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
HPL_plindx1(3)		     HPL Library Functions		HPL_plindx1(3)

NAME
       HPL_plindx1 - Compute local swapping index arrays.

SYNOPSIS
       #include	"hpl.h"

       void  HPL_plindx1(  HPL_T_panel * PANEL,	const int K, const int * IPID,
       int * IPA, int *	LINDXA,	int * LINDXAU, int * IPLEN, int	* IPMAP, int *
       IPMAPM1,	int * PERMU, int * IWORK );

DESCRIPTION
       HPL_plindx1  computes two local arrays  LINDXA and  LINDXAU  containing
       the  local  source and final destination	position  resulting  from  the
       application  of	row interchanges.  In addition,	this function 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.

       IPA     (global output)	       int *
	       On  exit,   IPA	specifies  the number of rows that the current
	       process row has that either belong to U	or should  be  swapped
	       with remote rows	of A.

       LINDXA  (global output)	       int *
	       On  entry,  LINDXA  is an array of dimension 2*N. On exit, this
	       array contains the local	indexes	of the rows of A I  have  that
	       should be copied	into U.

       LINDXAU (global output)	       int *
	       On  exit,  LINDXAU  is an array of dimension 2*N. On exit, this
	       array contains  the local destination  information  encoded  as
	       follows.	  If  LINDXAU(k) >= 0, row  LINDXA(k)  of A  is	 to be
	       copied in U at position LINDXAU(k).  Otherwise,	row  LINDXA(k)
	       of A should be locally copied into A(-LINDXAU(k),:).

       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  IPMAP[i]	after the sort
	       with the	convention that	IPLEN[nprow]  is the total  number  of
	       rows  of	 the panel.  In	other words IPLEN[i+1]-IPLEN[i]	is the
	       local number of rows of A that should be	moved to  the  process
	       IPMAP[i].  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.. NPROCS)

       PERMU   (global output)	       int *
	       On entry,  PERMU	 is an array of	dimension JB. On  exit,	 PERMU
	       contains	  a  sequence of permutations,	that should be applied
	       in increasing order to permute in place the row panel U.

       IWORK   (workspace)	       int *
	       On entry, IWORK is a workarray of dimension 2*JB.

SEE ALSO
       HPL_pdlaswp00N (3),  HPL_pdlaswp00T (3),	 HPL_pdlaswp01N	(3),   HPL_pd-
       laswp01T	(3).

HPL 2.1			       October 26, 2012			HPL_plindx1(3)

NAME | SYNOPSIS | DESCRIPTION | ARGUMENTS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=HPL_plindx1&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help