HPL_pdtest(3)
β¨ HPL_pdtest β bestie's guide to running ONE (1) test β¨
okay so like. hi. you're here because you wanna know about HPL_pdtest from the HPL library functions, and honestly? valid. this one's a lil function that does a WHOLE lot of work and we're gonna break it down together, no cap π
πΈ NAME πΈ
HPL_pdtest β Perform one test. that's it. that's the whole vibe. one test. iconic behavior honestly.
π SYNOPSIS π
#include "hpl.h"
void HPL_pdtest( HPL_T_test * TEST, HPL_T_grid * GRID, HPL_T_palg *
ALGO, const int N, const int NB );
look at her. five args. serving real "trust the process" energy π«Ά
π DESCRIPTION π
okay so HPL_pdtest performs one test given a whole lil set of parameters β think the process grid, the problem size, the distribution blocking factor, the whole squad β¨
here's the pipeline, bestie, and it's giving main character energy from start to finish:
- it generates the data
- it calls and times the linear system solver
- it checks the accuracy of the obtained vector solution
- it writes all that info to the file pointed to by
TEST->outfp
periodt. that's the whole job. she does data, she does timing, she does accuracy check, she does the receipts π
π ARGUMENTS π
TEST(global input) βHPL_T_test *
On entry, TEST points to a testing data structure, and she's carrying a LOT of lore, so listen up:
outfpspecifies the output file where the results will be printed. it's only defined and used by the process0of the grid β so like, process zero is the one holding the pen, everyone else is just vibing ποΈthrshspecifies the threshhold value for the test ratio.
concretely, a test is declared "PASSED" if and only if this inequality is satisfied:
||Ax-b||_oo / ( epsil * ( || x ||_oo * || A ||_oo + || b ||_oo ) * N ) < thrsh
where epsil is the relative machine precision of the distributed computer. (math girlies rise up, this is your moment π)
and finally, the test counters kfail, kpass, kskip and ktest get updated like so:
- if the test passes,
kpassis incremented by one β - if the test fails,
kfailis incremented by one π - if the test is skipped,
kskipis incremented by one π ktestis left unchanged. she's not like the other counters. she's chillin π
GRID(local input) βHPL_T_grid *
On entry, GRID points to the data structure containing the process grid information. it's the map of who's where, basically πΊοΈ
ALGO(global input) βHPL_T_palg *
On entry, ALGO points to the data structure containing the algorithmic parameters to be used for this test. all the little knobs and dials, bestie βοΈ
N(global input) βconst int
On entry, N specifies the order of the coefficient matrix A. and here's the rule: N must be at least zero. zero is fine. negative is NOT the vibe. π«
NB(global input) βconst int
On entry, NB specifies the blocking factor used to partition and distribute the matrix A. and heads up: NB must be larger than one. so 1 is a no, 0 is a no, negative is a big no. 2 and up, slay π
fr fr though β those constraints onNandNBare not suggestions.Nβ₯ 0 andNB> 1. don't test the function's patience, she WILL be dramatic about it.
π₯ SEE ALSO π₯
HPL_pddriver (3)HPL_pdinfo (3)
go read those too, they're the friend group, you can't just know one of them π
and that's the whole page, bestie!! you understood it, you ate, no crumbs left π β¨
this was HPL version 2.2, dated February 24, 2016 β so yeah she's a lil vintage but she still serves. mwah π«Άπ
π¦ 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