S3L_get_attribute returns a requested attribute of an S3L dense array or sparse matrix. The user specifies one of a set of predefined req_attr values and, on return, the integer value of the requested attribute is stored in attr. For attributes associated with array axes--such as the extents or blocksizes of an array--the user specifies the axis as well.
The req_attr entry must be one of the following:
S3L_ELEM_TYPE - Retrieves in attr the S3L type of the elements of an S3L dense array or sparse matrix as they are defined in s3l-c.h or s3l-f.h.
S3L_ELEM_SIZE - Retrieves in attr the size (in bytes) of the elements of an S3L dense array or sparse matrix.
S3L_RANK - Retrieves in attr the rank (number of dimensions) of an S3L dense array or sparse matrix.
S3L_EXTENT - If a is an S3L array handle, S3L_EXTENT retrieves in attr the extent of an S3L dense array or sparse matrix along the dimension given in axis. If a is an S3L process grid handle, it returns in attr the number of processes over which a given axis of an array is distributed.
S3L_BLOCK_SIZE - Retrieves in attr the block size of the block-cyclic distribution of an S3L dense array along the dimension given in axis.
S3L_BLOCK_START - Retrieves in attr the index of the starting process of the block-cyclic distribution of an S3L dense array along the dimension given in axis.
S3L_SGRID_SIZE - Retrieves in attr the subgrid size of the block-cyclic distribution of an S3L dense array along the dimension given in axis.
S3L_AXIS_LOCAL - Assigns 0 to attr if the axis is not distributed and 1 if it is.
S3L_SGRID_ADDRESS - Returns in attr the starting address of the local subgrid (local per-process part) of an S3L dense array.
S3L_MAJOR - If a is an S3L dense array, S3L_MAJOR returns in attr the majorness of the elements in the local part of the array. It can be either S3L_MAJOR_COLUMN (F77 major) or S3L_MAJOR_ROW (C major). If a is an S3L process grid descriptor, it returns in attr the majorness (F77 or C) of the internal process grid associated with an S3L process grid.
S3L_ALLOC_TYPE - Returns in attr one of the predefined allocation types for dense S3L arrays. The user can use this option to determine, for example, whether the array has been allocated in shared memory, whether the local (per-process) parts of the array are 64-bit aligned, and so forth.
S3L_SHARED_ADDR - For dense S3L arrays that have been allocated in shared memory (single SMP case), S3L_SHARED_ADDR returns in attr the global starting address of the array. All processes can directly access all elements of such arrays without the need for explicit intperprocess communication.
S3L_PGRID_DESC - Returns in attr the process grid descriptor associated with an S3L dense array or sparse matrix.
S3L_SCALAPACK_DESC - For 1D and 2D S3L dense arrays, S3L_SCALAPACK_DESC returns in attr the ScaLAPACK array descriptor associated with the distribution of that array.
S3L_NONZEROS - For an S3L sparse matrix, S3L_NONZEROS returns in attr the number of nonzero elements of that matrix.
S3L_RIDX_SGRID_ADDR - For an S3L sparse matrix stored in the S3L_SPARSE_COO format, S3L_RIDX_SGRID_ADDR returns in attr the starting address of an array of index sets containing the local row numbers that comprise each local submatrix (per-process).
For an S3L sparse matrix stored in the S3L_SPARSE_CSR format, S3L_RIDX_SGRID_ADDR returns in attr the starting address of an array containing the pointers to the beginning of each row of the local submatrix (per-process).
Note: Users must not change the data returned in attr. It is created for internal use only.
S3L_CIDX_SGRID_ADDR - For an S3L sparse matrix, S3L_CIDX_SGRID_ADDR returns in attr the starting address of an array of index sets containing the global column numbers that comprise each local submatrix (per-process).
Note: User must not change the data returned in attr. It is created for internal use only.
S3L_NRZS_SGRID_ADDR - For an S3L sparse matrix, S3L_NZRS_SGRID_ADDR returns in attr the starting address of an array containing nonzero elements of the local submatrix (per-process).
S3L_RIDX_SGRID_SIZE - For an S3L sparse matrix stored in the S3L_SPARSE_COO format, S3L_RIDX_SGRID_SIZE returns in attr the size of an array of index sets containing the local row numbers that comprise each local submatrix (per-process).
For an S3L sparse matrix stored in the S3L_SPARSE_CSR format, S3L_RIDX_SGRID_SIZE returns in attr the size of an array containing the pointers to the beginning of each row of the local submatrix (per-process).
S3L_CIDX_SGRID_SIZE - For an S3L sparse matrix, S3L_CIDX_SGRID_SIZE returns in attr the size of an array of index sets containing the global column numbers that comprise each local submatrix (per-process).
S3L_NRZS_SGRID_SIZE - For an S3L sparse matrix, S3L_NZRS_SGRID_SIZE returns in attr the size of an array containing nonzero elements of the local submatrix (per-process).
S3L_COORD - It returns in attr the coordinate of the calling process in an S3L process grid, along the dimension given in axis.
S3L_ON_SINGLE_SMP - It returns 1 in attr if an S3L process grid is defined on a single SMP and 0 if not.