HPL_pdlaswp01N(3)
π HPL_pdlaswp01N π
okay so bestie, welcome to the HPL Library Functions corner of the manual, and today's main character is HPL_pdlaswp01N β¨ no cap, she's a whole vibe. Let's get into it π«Ά
πΈ NAME πΈ
HPL_pdlaswp01N β broadcast a column panel L and swap the row panel U. periodt π
β¨ SYNOPSIS β¨
#include "hpl.h"
void HPL_pdlaswp01N( HPL_T_panel * PBCST, int * IFLAG, HPL_T_panel *
PANEL, const int NN );
literally just four args, she's lowkey minimal and I respect it π
π¦ DESCRIPTION π¦
HPL_pdlaswp01N applies the NB row interchanges to NN columns of the trailing submatrix and broadcasts a column panel. two things at once, multitasking queen π
so there's this algorithm called "Spread then roll" and it does the swap :: broadcast of the row panel U all at once β which means the communication volume is minimal and the use of the connectivity is, and I quote, "very good" if it's available. iykyk π«
now if you've got P process rows and we're assuming bi-directional links, the running time of this function can be approximated by:
(log_2(P)+(P-1)) * lat + K * NB * LocQ(N) / bdwth
where:
NBis the number of rows of the row panelUNis the global number of columns being updatedlatandbdwthare the latency and bandwidth of the network for double precision real wordsKis a constant in(2,3]that depends on the achieved bandwidth during a simultaneous message exchange between two processes. an empirical optimistic value ofKis typically2.4β
so yeah. math. she ate π₯
π ARGUMENTS π
PBCSTβ (local input/output)HPL_T_panel *on entry,PBCSTpoints to the data structure containing the panel (to be broadcast) information. she's the one holding the gossip fr fr πIFLAGβ (local input/output)int *on entry,IFLAGindicates whether or not the broadcast has already been completed. if not, probing will occur, and the outcome will be contained inIFLAGon exit. so she goes in as a question and comes out with an answer, we love a glow-up πPANELβ (local input/output)HPL_T_panel *on entry,PANELpoints to the data structure containing the panel information. iconic struct behavior, no notes πNNβ (local input)const inton entry,NNspecifies the local number of columns of the trailing submatrix to be swapped and broadcast starting at the current position.NNmust be at least zero β bestie do not come in here with a negative, that's not the vibe π
π SEE ALSO π
the whole friend group, love them all:
HPL_pdgesv (3), HPL_pdgesvK2 (3), HPL_pdupdateNN (3), HPL_pdupdateTN (3), HPL_pipid (3), HPL_plindx1 (3), HPL_plindx10 (3), HPL_spreadN (3), HPL_equil (3), HPL_rollN (3), HPL_dlaswp00N (3), HPL_dlaswp01N (3), HPL_dlaswp06N (3).
π«Ά and that's the whole page, bestie. go forth and swap those rows. main character energy only. π
this lil manual page came from HPL 2.2, dated February 24, 2016 β yeah she's an elder but she's still slaying, and you can find her hanging out under HPL_pdlaswp01N(3) whenever you need her. β¨π§π
π¦ 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