HPL_plindx1(3) HPL Library Functions HPL_plindx1(3) NAME HPL_plindx1 - Compute local swapping index arrays. 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 ); DESCRIPTION HPL_plindx1 computes two local arrays LINDXA and LINDXAU containing the local source and final destination position resulting from the applica- tion of row interchanges. In addition, this function computes three arrays IPLEN, IPMAP and IPMAPM1 that contain the logarithmic mapping informa- tion for the spreading phase. ARGUMENTS PANEL (local input/output) HPL_T_panel * On entry, PANEL points to the data structure containing the panel information. K (global input) const int On entry, K specifies the number of entries in IPID. K is at least 2*N, and at most 4*N. IPID (global input) const int * On entry, IPID is an array of length K. The first K entries of that array contain the src and final destination resulting from the application of the interchanges. IPA (global output) int * On exit, IPA specifies the number of rows that the current process row has that either belong to U or should be swapped with remote rows of A. LINDXA (global output) int * On entry, LINDXA is an array of dimension 2*N. On exit, this array contains the local indexes of the rows of A I have that should be copied into U. LINDXAU (global output) int * On exit, LINDXAU is an array of dimension 2*N. On exit, this array contains the local destination information encoded as follows. If LINDXAU(k) >= 0, row LINDXA(k) of A is to be copied in U at position LINDXAU(k). Otherwise, row LINDXA(k) of A should be lo- cally copied into A(-LINDXAU(k),:). IPLEN (global output) int * On entry, IPLEN is an array of dimension NPROW + 1. On exit, this array is such that IPLEN[i] is the number of rows of A in the processes before process IPMAP[i] after the sort with the con- vention that IPLEN[nprow] is the total number of rows of the panel. In other words IPLEN[i+1]-IPLEN[i] is the local number of rows of A that should be moved to the process IPMAP[i]. IPLEN is such that the number of rows of the source process row can be com- puted as IPLEN[1] - IPLEN[0], and the remaining entries of this array are sorted so that the quantities IPLEN[i+1] - IPLEN[i] are logarithmically sorted. IPMAP (global output) int * On entry, IPMAP is an array of dimension NPROW. 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, IPMAPM1 is an array of dimension NPROW. On exit, this array contains the inverse of the logarithmic mapping contained in IPMAP: IPMAPM1[ IPMAP[i] ] = i, for all i in [0.. NPROCS) PERMU (global output) int * On entry, PERMU is an array of dimension JB. On exit, PERMU con- tains a sequence of permutations, that should be applied in in- creasing order to permute in place the row panel U. IWORK (workspace) int * On entry, IWORK is a workarray of dimension 2*JB. SEE ALSO HPL_pdlaswp00N (3), HPL_pdlaswp00T (3), HPL_pdlaswp01N (3), HPL_pd- laswp01T (3). HPL 2.3 December 2, 2018 HPL_plindx1(3)
NAME | SYNOPSIS | DESCRIPTION | ARGUMENTS | SEE ALSO
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=HPL_plindx1&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
