HPL_indxg2lp(3)
π HPL_indxg2lp β the HPL Library Functions era π
okay bestie, so this is HPL_indxg2lp(3) from the HPL Library Functions lineup, and she is lowkey the glow-up of index mapping. sit with me, this one's cute π
β¨ NAME β¨
HPL_indxg2lp β map a local index into a global one. yes bestie, the name says one thing and the description says the actual thing, iykyk ππ
π¦ SYNOPSIS π¦
#include "hpl.h"
void HPL_indxg2lp( int * IL, int * PROC, const int IG, const int INB,
const int NB, const int SRCPROC, const int NPROCS );
that's the whole vibe. seven args, two of them are pointers, no cap π«Ά
πΈ DESCRIPTION πΈ
so HPL_indxg2lp computes the local index of a matrix entry pointed to by the global index IG, and it also hands you the process coordinate that possesses this entry. the local returned index is the same in all processes. literally identical everywhere, iconic behavior fr fr π
π ARGUMENTS π
ILβ (output)int *. on exit,ILspecifies the local index corresponding toIG.ILis at least zero. no negatives allowed bestie, we don't do that here β¨PROCβ (output)int *. on exit,PROCis the coordinate of the process owning the entry specified by the global indexIG.PROCis at least zero and less thanNPROCS. so she's bounded, she knows her limits, we love a self-aware queen πIGβ (input)const int. on entry,IGspecifies the global index of the matrix entry.IGmust be at least zero. do not test her π¨INBβ (input)const int. on entry,INBspecifies the size of the first block of the global matrix.INBmust be at least one. the first block is special, she gets her own variable, main character energy only πNBβ (input)const int. on entry,NBspecifies the blocking factor used to partition and distribute the matrixA.NBmust be larger than one. so like, strictly greater. not equal. bigger. πSRCPROCβ (input)const int. on entry, ifSRCPROC = -1, the data is not distributed but replicated, in which case this routine returnsIGin all processes. otherwise, the value ofSRCPROCis ignored. so it's either-1and doing the replicated thing, or she's just not listening to you πNPROCSβ (input)const int. on entry,NPROCSspecifies the total number of process rows or columns over which the matrix is distributed.NPROCSmust be at least one. one is enough, one is valid, one is serving β
π SEE ALSO π
the friend group, the squad, the whole ensemble:
HPL_indxg2l(3)HPL_indxg2p(3)HPL_indxl2g(3)HPL_numroc(3)HPL_numrocI(3)
ok real talk though β rememberSRCPROC = -1means replicated data and you getIGback in every process, andNBis strictly bigger than one, not equal to one. these are not vibes, these are the rules. periodt π
and that's the whole page bestie!! this absolute banger shipped as part of HPL 2.2, dated February 24, 2016 π β so she's been out here mapping indices since 2016 and she's still that girl. 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