HPL_pdtrsv(3)

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

πŸ’– HPL_pdtrsv πŸ’–

okay bestie, sit down, grab a boba, because we're talking about HPL_pdtrsv from the HPL library functions, and it's literally the moment. this one solves triu( A ) x = b ✨ like, that's the whole vibe.


πŸ¦‹ SYNOPSIS πŸ¦‹

#include "hpl.h"

void HPL_pdtrsv( HPL_T_grid * GRID, HPL_T_pmat * AMAT );

look at her. two pointers, one dream. πŸ’…


🌸 DESCRIPTION 🌸

so HPL_pdtrsv solves an upper triangular system of linear equations. that's the assignment. no notes. πŸ‘‘

the rhs? it's the last column of the N by N+1 matrix A. and here's the tea: the solve starts in the process column that owns the Nth column of A, which means the rhs b may need to get moved one process column to the left at the beginning. so rude of it, but okay. πŸ™ˆ

because of that little shuffle, the routine needs a column vector in every process column but the one owning b. the result then gets replicated in all process rows and returned in XR β€” meaning XR is of size nq = LOCq( N ) in all processes. same size everywhere, we love consistency. πŸ’–

the algorithm itself? it uses decreasing one-ring broadcast in process rows and columns, implemented in terms of synchronous communication point to point primitives. the lookahead of depth 1 is there to minimize the critical path, because we're efficient like that. 🧚

this entire operation is essentially ``latency'' bound, and an estimate of its running time is given by:

(move rhs) lat + N / ( P bdwth ) +
(solve)    ((N / NB)-1) 2 (lat + NB / bdwth) +
           gam2 N^2 / ( P Q ),

where gam2 is an estimate of the Level 2 BLAS rate of execution. there are N / NB diagonal blocks. and get this β€” you gotta exchange 2 messages of length NB to compute the next NB entries of the vector solution, plus do a total of N^2 floating point operations. it's giving math girlboss. πŸ”₯


✨ ARGUMENTS ✨

  • GRID β€” (local input) HPL_T_grid * β€” on entry, GRID points to the data structure containing the process grid information. she's the map, bestie. πŸ—ΊοΈ
  • AMAT β€” (local input/output) HPL_T_pmat * β€” on entry, AMAT points to the data structure containing the local array information. she's the data, she goes in and comes out. main character energy fr fr. πŸ‘‘

πŸŽ€ SEE ALSO πŸŽ€

  • HPL_pdgesv (3) β€” her sister. go say hi. 🫢

HPL 2.2 Β· February 24, 2016 β€” that's the version and the date, babes, and that's the whole page. slay, you understood it, i'm so proud of you, no cap πŸ’…πŸ’–βœ¨

πŸ“¦ where this page comes from