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

  
 
  

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

NAME
     HPL_logsort - Sort the processes in logarithmic order.

SYNOPSIS
     #include "hpl.h"

     void  HPL_logsort(  const int NPROCS, const int ICURROC, int * IPLEN, int *
     IPMAP, int * IPMAPM1 );

DESCRIPTION
     HPL_logsort computes an array  IPMAP  and	its inverse  IPMAPM1  that  con-
     tain   the  logarithmic sorted processes id with repect to the local number
     of rows of  U  that they own. This is necessary to ensure	that  the  loga-
     rithmic  spreading of U is optimal in terms of number of steps and communi-
     cation volume as well.  In other words,  the larget pieces  of  U	will  be
     sent a minimal number of times.

ARGUMENTS
     NPROCS  (global input)	     const int
	     On  entry,  NPROCS   specifies  the  number  of process rows in the
	     process grid. NPROCS is at least one.

     ICURROC (global input)	     const int
	     On entry, ICURROC is the source process row.

     IPLEN   (global input/output)   int *
	     On entry, IPLEN is an  array  of  dimension  NPROCS+1,   such  that
	     IPLEN[0]  is 0, and IPLEN[i] contains the number of rows of U, that
	     process i-1 has.  On exit,  IPLEN[i]  is  the number  of rows of  U
	     in the processes before process IPMAP[i] after the sort,  with  the
	     convention  that	IPLEN[NPROCS]  is  the total number  of rows  of
	     the panel.  In other words,  IPLEN[i+1] - IPLEN[i] is  the   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  is
	     IPLEN[1]  -  IPLEN[0],  and the remaining	entries  of  this  array
	     are  sorted  so that the quantities IPLEN[i+1]-IPLEN[i]  are  loga-
	     rithmically sorted.

     IPMAP   (global output)	     int *
	     On entry,	IPMAP  is an array of dimension  NPROCS.  On exit, array
	     contains	the  logarithmic  mapping  of  the  processes.	In other
	     words, IPMAP[myroc] is the corresponding sorted process coordinate.

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

SEE ALSO
     HPL_plindx1 (3), HPL_plindx10 (3), HPL_pdlaswp01N (3), HPL_pdlaswp01T (3).

HPL 2.3 			December 2, 2018		  HPL_logsort(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=HPL_logsort&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help