HPL_indxg2lp(3)

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

πŸ’– 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, IL specifies the local index corresponding to IG. IL is at least zero. no negatives allowed bestie, we don't do that here ✨
  • PROC β€” (output) int *. on exit, PROC is the coordinate of the process owning the entry specified by the global index IG. PROC is at least zero and less than NPROCS. so she's bounded, she knows her limits, we love a self-aware queen 🌈
  • IG β€” (input) const int. on entry, IG specifies the global index of the matrix entry. IG must be at least zero. do not test her 🚨
  • INB β€” (input) const int. on entry, INB specifies the size of the first block of the global matrix. INB must be at least one. the first block is special, she gets her own variable, main character energy only πŸŽ€
  • NB β€” (input) const int. on entry, NB specifies the blocking factor used to partition and distribute the matrix A. NB must be larger than one. so like, strictly greater. not equal. bigger. πŸ’€
  • SRCPROC β€” (input) const int. on entry, if SRCPROC = -1, the data is not distributed but replicated, in which case this routine returns IG in all processes. otherwise, the value of SRCPROC is ignored. so it's either -1 and doing the replicated thing, or she's just not listening to you πŸ™ˆ
  • NPROCS β€” (input) const int. on entry, NPROCS specifies the total number of process rows or columns over which the matrix is distributed. NPROCS must 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 β€” remember SRCPROC = -1 means replicated data and you get IG back in every process, and NB is 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