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

FreeBSD Manual Pages

  
 
  

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

NAME
       HPL_spreadN - Spread row	panel U	and forward current column panel.

SYNOPSIS
       #include	"hpl.h"

       void  HPL_spreadN(  HPL_T_panel	*  PBCST,  int	* IFLAG, HPL_T_panel *
       PANEL, const enum HPL_SIDE SIDE,	const int N, double  *	U,  const  int
       LDU, const int SRCDIST, const int * IPLEN, const	int * IPMAP, const int
       * IPMAPM1 );

DESCRIPTION
       HPL_spreadN spreads the local array containing local pieces  of	U,  so
       that  on	 exit  to this function,  a piece of  U	 is contained in every
       process row. The	array IPLEN contains the number	of rows	 of  U,	  that
       should  be  spread  on any given	process	row. This function also	probes
       for the presence	of the column panel PBCST. In case  of	success,  this
       panel  will  be	forwarded.  If	PBCST  is NULL on input,  this probing
       mechanism will be disabled.

ARGUMENTS
       PBCST   (local input/output)    HPL_T_panel *
	       On entry,  PBCST	 points	to the data structure  containing  the
	       panel (to be broadcast) information.

       IFLAG   (local input/output)    int *
	       On  entry,  IFLAG  indicates  whether or	not  the broadcast has
	       already been completed.	If not,	 probing will occur,  and  the
	       outcome will be contained in IFLAG on exit.

       PANEL   (local input/output)    HPL_T_panel *
	       On  entry,   PANEL  points to the data structure	containing the
	       panel (to be spread) information.

       SIDE    (global input)	       const enum HPL_SIDE
	       On entry, SIDE specifies	whether	the local piece	of  U  located
	       in  process  IPMAP[SRCDIST] should be spread to the right or to
	       the left. This feature is used by the equilibration process.

       N       (global input)	       const int
	       On entry,  N  specifies	the  local number of columns of	 U.  N
	       must be at least	zero.

       U       (local input/output)    double *
	       On  entry,   U  is an array of dimension	(LDU,*)	containing the
	       local pieces of U.

       LDU     (local input)	       const int
	       On entry, LDU specifies the local leading dimension of  U.  LDU
	       should be at least MAX(1,IPLEN[nprow]).

       SRCDIST (local input)	       const int
	       On  entry,   SRCDIST  specifies the source process that spreads
	       its piece of U.

       IPLEN   (global input)	       const int *
	       On entry, IPLEN is an array of dimension	NPROW+1.   This	 array
	       is  such	 that IPLEN[i+1] - IPLEN[i] is the number of rows of U
	       in each process before process IPMAP[i],	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  U  that
	       should be moved to process IPMAP[i].

       IPMAP   (global input)	       const int *
	       On  entry,  IPMAP is an array of	dimension  NPROW.  This	 array
	       contains	 the  logarithmic mapping of the processes.  In	 other
	       words,  IPMAP[myrow]   is the absolute coordinate of the	sorted
	       process.

       IPMAPM1 (global input)	       const int *
	       On entry,  IPMAPM1 is an	array of dimension NPROW.  This	 array
	       contains	  the  inverse of the logarithmic mapping contained in
	       IPMAP: For i in [0.. NPROW) IPMAPM1[IPMAP[i]] = i.

SEE ALSO
       HPL_pdlaswp01N (3).

HPL 2.3			       December	2, 2018			HPL_spreadN(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_spreadN&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help