HPL_plindx1(3)
π HPL_plindx1(3) π
okay bestie, welcome to the HPL Library Functions corner of the group chat, where today's main character is HPL_plindx1 and honestly? she's doing the most (in a good way). π
β¨ NAME β¨
HPL_plindx1 β bestie, she computes local swapping index arrays. that's it, that's the whole vibe. π
πΈ SYNOPSIS πΈ
#include "hpl.h"
void HPL_plindx1( HPL_T_panel * PANEL, const int K, const int * IPID,
int * IPA, int * LINDXA, int * LINDXAU, int * IPLEN, int * IPMAP, int *
IPMAPM1, int * PERMU, int * IWORK );
like, copy it exactly, don't freestyle the signature, i'm begging π
π¦ DESCRIPTION π¦
so HPL_plindx1 computes two local arrays, LINDXA and LINDXAU, and they're holding the local source and final destination position that come out of applying row interchanges. it's giving "where did you come from, where are you going" but for rows. β¨
on top of that, she also computes three arrays, IPLEN, IPMAP and IPMAPM1, which contain the logarithmic mapping information for the spreading phase. yes bestie, log mapping, we love a queen who does math. π₯
π ARGUMENTS π
PANEL(local input/output)HPL_T_panel *β on entry,PANELpoints to the data structure that's holding the panel information. she's the info hub, ok? πK(global input)const intβ on entry,Ksays how many entries are inIPID.Kis at least2*N, and at most4*N. that's the range, don't push her. π«ΆIPID(global input)const int *β on entry,IPIDis an array of lengthK. the firstKentries of that array contain the src and final destination resulting from the application of the interchanges. lowkey the receipts of who moved where. π§IPA(global output)int *β on exit,IPAsays how many rows the current process row has that either belong toUor should be swapped with remote rows ofA. β¨LINDXA(global output)int *β on entry,LINDXAis an array of dimension2*N. on exit, this array contains the local indexes of the rows ofAI have that should be copied intoU. πLINDXAU(global output)int *β on exit,LINDXAUis an array of dimension2*N. on exit, this array contains the local destination information, encoded like this:- if
LINDXAU(k) >= 0, rowLINDXA(k)ofAis to be copied inUat positionLINDXAU(k). - otherwise, row
LINDXA(k)ofAshould be locally copied intoA(-LINDXAU(k),:).
- if
yeah, the negative sign is doing heavy lifting, it's giving main character energy, do not ignore it. π
IPLEN(global output)int *β on entry,IPLENis an array of dimensionNPROW + 1. on exit, this array is such thatIPLEN[i]is the number of rows ofAin the processes before processIPMAP[i]after the sort, with the convention thatIPLEN[nprow]is the total number of rows of the panel. in other words,IPLEN[i+1]-IPLEN[i]is the local number of rows ofAthat should be moved to the processIPMAP[i].IPLENis such that the number of rows of the source process row can be computed asIPLEN[1] - IPLEN[0], and the remaining entries of this array are sorted so that the quantitiesIPLEN[i+1] - IPLEN[i]are logarithmically sorted. β¨ sorting! logarithmically! she's an overachiever and we stan. πIPMAP(global output)int *β on entry,IPMAPis an array of dimensionNPROW. on exit, this array contains the logarithmic mapping of the processes. in other words,IPMAP[myrow]is the corresponding sorted process coordinate. πIPMAPM1(global output)int *β on entry,IPMAPM1is an array of dimensionNPROW. on exit, this array contains the inverse of the logarithmic mapping contained inIPMAP:IPMAPM1[ IPMAP[i] ] = i, for alliin[0.. NPROCS). it's the reverse uno card bestie, periodt. πPERMU(global output)int *β on entry,PERMUis an array of dimensionJB. on exit,PERMUcontains a sequence of permutations, that should be applied in increasing order to permute in place the row panelU. order matters, don't be chaotic. πIWORK(workspace)int *β on entry,IWORKis a workarray of dimension2*JB. she's just here to help, no output, no drama. π
π₯ SEE ALSO π₯
the sisterhood of the traveling swap routines, go say hi:
HPL_pdlaswp00N (3)HPL_pdlaswp00T (3)HPL_pdlaswp01N (3)HPL_pdlaswp01T (3)
and that's the whole page bestie!! this was HPL 2.2, dated February 24, 2016, brought to you by the HPL Library Functions crew β go forth and compute those local swapping index arrays, you absolute icon ππβ¨
π¦ 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