HPL_pdgesv(3)

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

πŸ’– HPL_pdgesv β€” bestie's guide to solving A x = b πŸ’–

okay so this is HPL_pdgesv(3), one of the HPL Library Functions, and honestly? it's giving main character. it solves A x = b and it does it in parallel, periodt. 🫢


✨ SYNOPSIS ✨

#include "hpl.h"

void HPL_pdgesv( HPL_T_grid * GRID, HPL_T_palg * ALGO, HPL_T_pmat * A );

like, that's it. three pointers and a dream. πŸ’…


🌸 DESCRIPTION 🌸

okay so what this function actually DOES, bestie, is factor a N+1-by-N matrix using LU factorization with row partial pivoting. yes, the real thing. no shortcuts. πŸ”₯

the main algorithm is the "right looking" variant, and it can run with or without look-ahead β€” so it's flexible, it's adaptable, it's lowkey iconic.

two things to know so you don't get caught off guard:

  • the lower triangular factor is left unpivoted πŸ™ˆ
  • and the pivots are not returned πŸ’€

and the right hand side? it's the N+1 column of the coefficient matrix. that's the vibe. that's the whole setup. ✨


πŸ‘‘ ARGUMENTS πŸ‘‘

  • GRID (local input) HPL_T_grid * β€” on entry, GRID points to the data structure holding all the process grid information. basically the map of who's where in the parallel universe. 🌈
  • ALGO (global input) HPL_T_palg * β€” on entry, ALGO points to the data structure containing the algorithmic parameters. all the knobs and settings, all the little decisions. πŸŽ€
  • A (local input/output) HPL_T_pmat * β€” on entry, A points to the data structure containing the local array information. it goes in, it comes out changed. that's the input/output life. πŸ’«
ngl, if you're passing the wrong thing into any of these three, the whole thing is not gonna slay. double check your pointers, bestie. 😭

πŸ¦‹ SEE ALSO πŸ¦‹

  • HPL_pdgesv0 (3)
  • HPL_pdgesvK1 (3)
  • HPL_pdgesvK2 (3)
  • HPL_pdtrsv (3)

the whole friend group fr fr. go say hi. πŸ’œ


and that's the tea, bestie β€” this page is from HPL 2.2, dated February 24, 2016. old but still absolutely eating. no cap. β­πŸ§šβ€β™€οΈ

πŸ“¦ where this page comes from