HPL_pdlaswp00N(3)

πŸ“¦ version 2.2, in fedora 43, fedora 44

πŸ’– HPL_pdlaswp00N πŸ’–

okay bestie, welcome to the HPL Library Functions corner of the man pages β€” this one's HPL_pdlaswp00N(3), and she is busy but she is iconic. grab a boba, we're doing distributed linear algebra gossip πŸ§‹βœ¨


✨ NAME ✨

HPL_pdlaswp00N β€” broadcast a column panel L and swap the row panel U. πŸ¦‹


🌸 SYNOPSIS 🌸

#include "hpl.h"

void HPL_pdlaswp00N( HPL_T_panel * PBCST, int * IFLAG, HPL_T_panel *
PANEL, const int NN );

like yes she takes four things, we'll get to them, breathe πŸ’…


πŸŽ€ DESCRIPTION πŸŽ€

So HPL_pdlaswp00N does two things at once and honestly? multitasking queen behavior πŸ‘‘. She applies the NB row interchanges to NN columns of the trailing submatrix, and she broadcasts a column panel. Two jobs, one function call, no cap.

The way she pulls this off is with bi-directional exchange β€” that's how she does the swap :: broadcast of the row panel U all at once. And the payoff is real: fewer messages than the usual situation, plus a lower communication volume. it's giving efficiency fr fr πŸ”₯

Now here's the math bit β€” if you've got P process rows and you assume bi-directional links, the running time of this function can be approximated by:

log_2(P) * (lat + NB*LocQ(N) / bdwth)

where:

  • NB is the number of rows of the row panel U
  • N is the global number of columns being updated
  • lat and bdwth are the latency and bandwidth of the network for double precision real words
⚠️ heads up bestie: mono directional links will double this communication cost. so if your network is one-way-only, she's working twice as hard for the same clout 😭

πŸ’œ ARGUMENTS πŸ’œ

  • PBCST (local input/output) β€” HPL_T_panel * On entry, PBCST points to the data structure containing the panel (to be broadcast) information. πŸ“‘
  • IFLAG (local input/output) β€” int * On entry, IFLAG tells you whether or not the broadcast has already been completed. If it hasn't, probing will occur, and the outcome lands in IFLAG on exit. so like, she checks in, and she reports back 🫢
  • PANEL (local input/output) β€” HPL_T_panel * On entry, PANEL points to the data structure containing the panel (to be broadcast and swapped) information. yes both. she contains multitudes πŸ’…
  • NN (local input) β€” const int On entry, NN specifies the local number of columns of the trailing submatrix to be swapped and broadcast, starting at the current position. and listen β€” NN must be at least zero. negative numbers are NOT the vibe 🚫

🌈 SEE ALSO 🌈

the whole friend group, go say hi:

  • HPL_pdgesv (3)
  • HPL_pdgesvK2 (3)
  • HPL_pdupdateNN (3)
  • HPL_pdupdateTN (3)
  • HPL_pipid (3)
  • HPL_plindx0 (3)
  • HPL_dlaswp01N (3)
  • HPL_dlaswp02N (3)
  • HPL_dlaswp03N (3)
  • HPL_dlaswp04N (3)
  • HPL_dlaswp05N (3)

and that's the whole page, bestie β€” you ate that. this was HPL 2.2, dated February 24, 2016, from the HPL Library Functions collection. slay, periodt, go swap some panels responsibly πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from