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

  
 
  

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

NAME
     HPL_pdrpanllT - Left-looking recursive panel factorization.

SYNOPSIS
     #include "hpl.h"

     void  HPL_pdrpanllT(  HPL_T_panel	* PANEL, const int M, const int N, const
     int ICOFF, double * WORK );

DESCRIPTION
     HPL_pdrpanllT recursively	factorizes  a panel of columns	using	the  re-
     cursive  Left-looking  variant of the one-dimensional algorithm.  The lower
     triangular  N0-by-N0  upper block	of  the panel  is  stored  in  transpose
     form.

     Bi-directional  exchange  is  used  to  perform  the  swap::broadcast oper-
     ations   at  once	 for  one column in the panel.	This  results in a lower
     number of slightly larger	messages than usual.  On P processes and  assum-
     ing bi-directional links,	the running time of this function can be approx-
     imated by (when N is equal to N0):

	N0 * log_2( P ) * ( lat + ( 2*N0 + 4 ) / bdwth ) +
	N0^2 * ( M - N0/3 ) * gam2-3

     where  M  is the local number of rows of  the panel, lat and bdwth  are the
     latency and bandwidth of the network for  double	precision   real  words,
     and   gam2-3  is an estimate of the  Level 2 and Level 3  BLAS rate of exe-
     cution. The  recursive  algorithm	allows indeed to almost achieve  Level 3
     BLAS  performance	in the panel factorization.  On a large  number of  mod-
     ern machines,  this  operation is however latency bound,  meaning	that its
     cost  can	 be  estimated	by only the latency portion N0 * log_2(P) * lat.
     Mono-directional links will double this communication cost.

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

     M	     (local input)	     const int
	     On entry,	M specifies the local number of rows of sub(A).

     N	     (local input)	     const int
	     On entry,	N specifies the local number of columns of sub(A).

     ICOFF   (global input)	     const int
	     On entry, ICOFF specifies the row and column offset of sub(A) in A.

     WORK    (local workspace)	     double *
	     On entry, WORK  is a workarray of size at least 2*(4+2*N0).

SEE ALSO
     HPL_dlocmax (3),	HPL_dlocswpN (3),   HPL_dlocswpT (3),	HPL_pdmxswp (3),
     HPL_pdpancrN (3),	 HPL_pdpancrT (3),  HPL_pdpanllN (3),  HPL_pdpanllT (3),
     HPL_pdpanrlN (3), HPL_pdpanrlT (3),  HPL_pdrpancrN (3),  HPL_pdrpancrT (3),
     HPL_pdrpanllN (3), HPL_pdrpanrlN (3), HPL_pdrpanrlT (3), HPL_pdfact (3).

HPL 2.3 			December 2, 2018		HPL_pdrpanllT(3)

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

home | help