HPL_pdrpanrlT(3)
π HPL_pdrpanrlT π
okay bestie, welcome to the HPL_pdrpanrlT page from the HPL Library Functions β this is the one about right-looking recursive panel factorization and honestly? it's giving main character energy in the linear algebra world. β¨
πΈ NAME πΈ
HPL_pdrpanrlT β Right-looking recursive panel factorization. no cap, that's literally the whole job description. π
π¦ SYNOPSIS π¦
#include "hpl.h"
void HPL_pdrpanrlT( HPL_T_panel * PANEL, const int M, const int N, const
int ICOFF, double * WORK );
β¨ DESCRIPTION β¨
So HPL_pdrpanrlT recursively factorizes a panel of columns using the recursive Right-looking variant of the one-dimensional algorithm. π
The lower triangular N0-by-N0 upper block of the panel is stored in transpose form. yes, transpose form, that's the whole T in the name, iykyk.
Bi-directional exchange is used to perform the swap::broadcast operations at once for one column in the panel. π«Ά This results in a lower number of slightly larger messages than usual β fewer texts, longer texts, group-chat behavior fr fr.
On P processes and assuming bi-directional links, the running time of this function can be approximated 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 execution. π
The recursive algorithm allows indeed to almost achieve Level 3 BLAS performance in the panel factorization. iconic behavior honestly. But on a large number of modern machines, this operation is however latency bound π β meaning that its cost can be estimated by only the latency portion N0 * log_2(P) * lat.
and bestie, listen: mono-directional links will double this communication cost. double. not a vibe. π
π ARGUMENTS π
PANEL(local input/output) βHPL_T_panel *On entry,PANELpoints to the data structure containing the panel information. it's the whole mood board for the panel, okay?M(local input) βconst intOn entry,Mspecifies the local number of rows ofsub(A).N(local input) βconst intOn entry,Nspecifies the local number of columns ofsub(A).ICOFF(global input) βconst intOn entry,ICOFFspecifies the row and column offset ofsub(A)inA.WORK(local workspace) βdouble *On entry,WORKis a workarray of size at least2*(4+2*N0). yes, that exact expression, don't get cute with it. π
π SEE ALSO π
the whole friend group, go say hi:
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_pdrpanllT(3)HPL_pdrpanrlN(3)HPL_pdfact(3)
and that's the whole page bestie!! πβ¨ this masterpiece is from HPL 2.2, dated February 24, 2016 β an absolute classic, we stan a vintage release. π mwah, go factorize something. π¦πΈ
π¦ where this page comes from
- fedora 43: hpl-doc 2.2-22.fc43 Β· LicenseRef-Callaway-BSD-with-advertising
- fedora 44: hpl-doc 2.2-23.fc44 Β· LicenseRef-Callaway-BSD-with-advertising
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms