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)

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

home | help