HPL_pdrpanllN(3)
β¨ HPL_pdrpanllN β¨
okay bestie, welcome to the HPL_pdrpanllN page from the HPL library functions manual π this one is a whole vibe: it's the Left-looking recursive panel factorization. yes queen, we're doing linear algebra in the group chat now π«Ά
πΈ NAME πΈ
HPL_pdrpanllN β Left-looking recursive panel factorization. that's it, that's the girl π
π¦ SYNOPSIS π¦
#include "hpl.h"
void HPL_pdrpanllN( HPL_T_panel * PANEL, const int M, const int N, const
int ICOFF, double * WORK );
π DESCRIPTION π
so HPL_pdrpanllN recursively factorizes a panel of columns using the recursive Left-looking variant of the one-dimensional algorithm. lowkey iconic. β¨
the lower triangular N0-by-N0 upper block of the panel is stored in no-transpose form (i.e. just like the input matrix itself). no flipping, no transposing, we're keeping it exactly how it came in π
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, bigger texts, we love efficiency fr fr π¬
on P processes, and assuming bi-directional links, the running time of this function can be approximated by this (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. okay werk π
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. not a drill, that's literally double π
π ARGUMENTS π
PANELβ (local input/output)HPL_T_panel *. on entry,PANELpoints to the data structure containing the panel information. it's giving β¨the source of truthβ¨Mβ (local input)const int. on entry,Mspecifies the local number of rows ofsub(A).Nβ (local input)const int. on entry,Nspecifies the local number of columns ofsub(A).ICOFFβ (global input)const int. on entry,ICOFFspecifies the row and column offset ofsub(A)inA. like, where does the little sub-matrix live inside the big one? there. found her πWORKβ (local workspace)double *. on entry,WORKis a workarray of size at least2*(4+2*N0). give her room to breathe, she needs it π«Ά
π SEE ALSO π
the whole friend group, no cap:
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_pdrpanllT(3)HPL_pdrpanrlN(3)HPL_pdrpanrlT(3)HPL_pdfact(3)
and that's the page, bestie!! this one's from HPL 2.2, dated February 24, 2016 π go forth and factorize those panels, you absolute main character π β¨
π¦ 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