HPL_pdfact(3)
๐ HPL_pdfact โ the girlies' guide to recursive panel factorization ๐
okay so bestie, welcome to HPL_pdfact(3), one of the HPL Library Functions, and she is lowkey the backbone of your panel factorization era. let's get into it ๐ซถ
โจ NAME โจ
HPL_pdfact โ recursive panel factorization. that's it, that's the vibe. ๐
๐ธ SYNOPSIS ๐ธ
#include "hpl.h"
void HPL_pdfact( HPL_T_panel * PANEL );
literally one function, one pointer, zero drama. iconic.
๐ฆ DESCRIPTION ๐ฆ
so HPL_pdfact recursively factorizes a 1-dimensional panel of columns. recursive!! like she's calling herself, main character energy fr fr. ๐ฅ
the RPFACT function pointer tells her which recursive algorithm to run โ she can go Crout, Left- looking, or Right looking. your choice bestie, she's flexible. โจ
then NBMIN lets you vary the recursive stopping criterium, measured in number of columns in the panel. and NDIV lets you specify how many subpanels each panel should be divided into โ usually a value of 2 is the one to pick, no cap. ๐
finally, PFACT is a function pointer specifying the non-recursive algorithm to be used on at most NBMIN columns. and yeah, here too you get to choose between Crout, Left- or Right looking. so many options, so much power. ๐
and bestie, the empirical tests?? they seem to indicate that values of 4 or 8 for NBMIN give the best results. so if you were wondering, now you know. iykyk. ๐
Bi-directional exchange is used to perform the swap::broadcast operations at once for one column in the panel. the way that results in a lower number of slightly larger messages than usualโฆ we love efficiency. ๐
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. periodt. ๐
but โ and this is the part where we get a lil real โ 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. ๐ญ
heads up bestie: Mono-directional links will double this communication cost. no like literally double. do with that information what you will. ๐
๐ ARGUMENTS ๐
PANELโ (local input/output)HPL_T_panel *โ on entry,PANELpoints to the data structure containing the panel information. she's both the input and the output, a true multi-hyphenate. ๐
๐ฅ SEE ALSO ๐ฅ
the whole friend group, all invited to the group chat:
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_pdrpanrlT (3)
and that's the whole page babes ๐ซถ this was HPL 2.2, dated February 24, 2016 โ yes she's a 2016 girlie and she still ate. go factorize something recursively, you've 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