HPL_pdrpanllT(3)
π HPL_pdrpanllT β the it-girl of panel factorization π
okay so bestie, welcome to HPL_pdrpanllT(3), one of the HPL Library Functions. pull up a chair, grab a boba, we're doing linear algebra π
β¨ NAME β¨
HPL_pdrpanllT β Left-looking recursive panel factorization. she's recursive, she's left-looking, she factorizes panels. main character energy fr fr πΈ
π¦ SYNOPSIS π¦
#include "hpl.h"
void HPL_pdrpanllT( HPL_T_panel * PANEL, const int M, const int N, const
int ICOFF, double * WORK );
that's it, that's the whole signature, no cap β¨
π DESCRIPTION π
okay so here's the tea π β HPL_pdrpanllT recursively factorizes a panel of columns using the recursive Left-looking variant of the one-dimensional algorithm. and the lower triangular N0-by-N0 upper block of the panel is stored in transpose form. (yes bestie, "lower triangular upper block", that's just what it's called, i don't make the rules π)
bi-directional exchange is used to perform the swap::broadcast operations at once for one column in the panel. the way that this slays is it results in a lower number of slightly larger messages than usual. iconic behavior honestly π«Ά
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. π math math math but she's cute about it
the recursive algorithm allows indeed to almost achieve Level 3 BLAS performance in the panel factorization. lowkey obsessed.
β οΈ but bestie, hear me β 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 mono-directional links will double this communication cost. not me warning you about double the pain π
π ARGUMENTS π
PANEL(local input/output) βHPL_T_panel *on entry,PANELpoints to the data structure containing the panel information. she's the whole vibe check, everything lives in here πM(local input) βconst inton entry,Mspecifies the local number of rows ofsub(A). how tall is she πN(local input) βconst inton entry,Nspecifies the local number of columns ofsub(A). how wide is she πICOFF(global input) βconst inton entry,ICOFFspecifies the row and column offset ofsub(A)inA. where she sits in the bigger picture, iykyk πWORK(local workspace) βdouble *on entry,WORKis a workarray of size at least2*(4+2*N0). yes the size matters, don't be messy about it β¨
β SEE ALSO β
the whole friend group, go say hi, they're all iconic π
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.2 πΈ February 24, 2016 β that's the version and the date bestie, and this page was literally the HPL_pdrpanllT(3) manual page, mwah π periodt, go factorize some panels, you got this π§
π¦ 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