HiCMA
Hierarchical Computations on Manycore Architectures
|
#include "morse.h"
Go to the source code of this file.
Macros | |
#define | COMPLEX |
Functions | |
int | HICMA_zpotrf (MORSE_enum uplo, int N, double *A, int LDA) |
int | HICMA_zpotrf_Tile (MORSE_enum uplo, MORSE_desc_t *AUV, MORSE_desc_t *AD, MORSE_desc_t *Ark, int rk, int maxrk, double acc) |
int | HICMA_zpotrf_Tile_Async (MORSE_enum uplo, MORSE_desc_t *AUV, MORSE_desc_t *AD, MORSE_desc_t *Ark, int rk, int maxrk, double acc, MORSE_sequence_t *sequence, MORSE_request_t *request) |
int | HICMA_zgemm_Tile (MORSE_enum transA, MORSE_enum transB, double alpha, MORSE_desc_t *AUV, MORSE_desc_t *Ark, MORSE_desc_t *BUV, MORSE_desc_t *Brk, double beta, MORSE_desc_t *CUV, MORSE_desc_t *Crk, int rk, int maxrk, double acc) |
int | HICMA_zgemm_Tile_Async (MORSE_enum transA, MORSE_enum transB, double alpha, MORSE_desc_t *AUV, MORSE_desc_t *Ark, MORSE_desc_t *BUV, MORSE_desc_t *Brk, double beta, MORSE_desc_t *CUV, MORSE_desc_t *Crk, int rk, int maxrk, double acc, MORSE_sequence_t *sequence, MORSE_request_t *request) |
int | HICMA_zgytlr (MORSE_enum uplo, int M, int N, double *AUV, double *AD, double *Ark, int LDA, unsigned long long int seed, int maxrank, double tol) |
int | HICMA_zgytlr_Tile (MORSE_enum uplo, MORSE_desc_t *AUV, MORSE_desc_t *AD, MORSE_desc_t *Ark, unsigned long long int seed, int maxrank, double tol, int compress_diag, MORSE_desc_t *Dense) |
int | HICMA_zgytlr_Tile_Async (MORSE_enum uplo, MORSE_desc_t *AUV, MORSE_desc_t *AD, MORSE_desc_t *Ark, unsigned long long int seed, int maxrank, double tol, int compress_diag, MORSE_desc_t *Dense, MORSE_sequence_t *sequence, MORSE_request_t *request) |
int | HICMA_zhagcm_Tile (MORSE_enum uplo, MORSE_desc_t *AUV, MORSE_desc_t *Ark, int numrows_matrix, int numcols_matrix, int numrows_block, int numcols_block, int maxrank, double tol) |
int | HICMA_zhagcm_Tile_Async (MORSE_enum uplo, MORSE_desc_t *AUV, MORSE_desc_t *Ark, int numrows_matrix, int numcols_matrix, int numrows_block, int numcols_block, int maxrank, double tol, MORSE_sequence_t *sequence, MORSE_request_t *request) |
int | HICMA_zhagdm_Tile (MORSE_enum uplo, MORSE_desc_t *Dense) |
int | HICMA_zhagdm_Tile_Async (MORSE_enum uplo, MORSE_desc_t *Dense, MORSE_sequence_t *sequence, MORSE_request_t *request) |
int | HICMA_zhagdmdiag_Tile (MORSE_enum uplo, MORSE_desc_t *Dense) |
int | HICMA_zhagdmdiag_Tile_Async (MORSE_enum uplo, MORSE_desc_t *Dense, MORSE_sequence_t *sequence, MORSE_request_t *request) |
int | HICMA_ztrsm_Tile (MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, double alpha, MORSE_desc_t *AUV, MORSE_desc_t *AD, MORSE_desc_t *Ark, MORSE_desc_t *BUV, MORSE_desc_t *Brk, int rk, int maxrk, double acc) |
int | HICMA_ztrsm_Tile_Async (MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, double alpha, MORSE_desc_t *AUV, MORSE_desc_t *AD, MORSE_desc_t *Ark, MORSE_desc_t *BUV, MORSE_desc_t *Brk, int rk, int maxrk, double acc, MORSE_sequence_t *sequence, MORSE_request_t *request) |
int | HICMA_ztrsmd_Tile (MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, double alpha, MORSE_desc_t *AUV, MORSE_desc_t *AD, MORSE_desc_t *Ark, MORSE_desc_t *Bdense, int maxrk) |
int | HICMA_ztrsmd_Tile_Async (MORSE_enum side, MORSE_enum uplo, MORSE_enum transA, MORSE_enum diag, double alpha, MORSE_desc_t *AUV, MORSE_desc_t *AD, MORSE_desc_t *Ark, MORSE_desc_t *Bdense, int maxrk, MORSE_sequence_t *sequence, MORSE_request_t *request) |
HiCMA computational routines HiCMA is a software package provided by King Abdullah University of Science and Technology (KAUST)
Definition in file hicma_z.h.
int HICMA_zpotrf | ( | MORSE_enum | uplo, |
int | N, | ||
double * | A, | ||
int | LDA | ||
) |
int HICMA_zpotrf_Tile | ( | MORSE_enum | uplo, |
MORSE_desc_t * | AUV, | ||
MORSE_desc_t * | AD, | ||
MORSE_desc_t * | Ark, | ||
int | rk, | ||
int | maxrk, | ||
double | acc | ||
) |
HICMA_zpotrf_Tile - Computes the Cholesky factorization of a symmetric positive definite matrix in tile low-rank (TLR) format. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors.
[in] | uplo | = MorseUpper: Upper triangle of A is stored (Not supported yet) = MorseLower: Lower triangle of A is stored. |
[in] | A | On entry, the symmetric positive definite TLR matrix A. If uplo = MorseUpper, the leading N-by-N upper triangular part of A contains the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced. If UPLO = 'L', the leading N-by-N lower triangular part of A contains the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced. On exit, if return value = 0, the factor U or L from the Cholesky factorization A = L*L**H. |
MORSE_SUCCESS | successful exit |
>0 | if i, the leading minor of order i of A is not positive definite, so the factorization could not be completed, and the solution has not been computed. |
int HICMA_zpotrf_Tile_Async | ( | MORSE_enum | uplo, |
MORSE_desc_t * | AUV, | ||
MORSE_desc_t * | AD, | ||
MORSE_desc_t * | Ark, | ||
int | rk, | ||
int | maxrk, | ||
double | acc, | ||
MORSE_sequence_t * | sequence, | ||
MORSE_request_t * | request | ||
) |
HICMA_zpotrf_Tile_Async - Computes the Cholesky factorization of a symmetric positive definite positive definite matrix. Non-blocking equivalent of HICMA_zpotrf_Tile(). May return before the computation is finished. Allows for pipelining of operations at runtime.
[in] | sequence | Identifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). |
[out] | request | Identifies this function call (for exception handling purposes). |
int HICMA_zgemm_Tile | ( | MORSE_enum | transA, |
MORSE_enum | transB, | ||
double | alpha, | ||
MORSE_desc_t * | AUV, | ||
MORSE_desc_t * | Ark, | ||
MORSE_desc_t * | BUV, | ||
MORSE_desc_t * | Brk, | ||
double | beta, | ||
MORSE_desc_t * | CUV, | ||
MORSE_desc_t * | Crk, | ||
int | rk, | ||
int | maxrk, | ||
double | acc | ||
) |
HICMA_zgemm_Tile - Performs multiplication of tile-low-rank (TLR) matrices in the form of
, where op( X ) is one of
op( X ) = X or op( X ) = X' or op( X ) = conjg( X' )
alpha and beta are scalars, and A, B and C which are all in TLR format. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors.
[in] | transA | Specifies whether the matrix A is transposed or not transposed: = MorseNoTrans: A is not transposed; = MorseTrans: A is transposed; |
[in] | transB | Specifies whether the matrix B is transposed or not transposed: = MorseNoTrans: B is not transposed; = MorseTrans: B is transposed; |
[in] | alpha | alpha specifies the scalar alpha |
[in] | AUV | AUV is a descriptor for the tile low-rank matrix A |
[in] | Ark | Ark is a descriptor containing rank of each tile of A |
[in] | BUV | BUV is a descriptor for the tile low-rank matrix B |
[in] | Brk | Brk is a descriptor containing rank of each tile of B |
[in] | beta | beta specifies the scalar beta |
[out] | CUV | CUV is a descriptor for the tile low-rank matrix C. On exit, it is over-written by the result TLR matrix. |
[out] | Crk | Crk is a descriptor containing rank of each tile of C. On exit, it is over-written by the new rank of each tile. |
MORSE_SUCCESS | successful exit |
int HICMA_zgemm_Tile_Async | ( | MORSE_enum | transA, |
MORSE_enum | transB, | ||
double | alpha, | ||
MORSE_desc_t * | AUV, | ||
MORSE_desc_t * | Ark, | ||
MORSE_desc_t * | BUV, | ||
MORSE_desc_t * | Brk, | ||
double | beta, | ||
MORSE_desc_t * | CUV, | ||
MORSE_desc_t * | Crk, | ||
int | rk, | ||
int | maxrk, | ||
double | acc, | ||
MORSE_sequence_t * | sequence, | ||
MORSE_request_t * | request | ||
) |
HICMA_zgemm_Tile_Async - Performs matrix multiplication. Non-blocking equivalent of HICMA_zgemm_Tile(). May return before the computation is finished. Allows for pipelining of operations at runtime.
[in] | sequence | Identifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). |
[out] | request | Identifies this function call (for exception handling purposes). |
int HICMA_zgytlr | ( | MORSE_enum | uplo, |
int | M, | ||
int | N, | ||
double * | AUV, | ||
double * | AD, | ||
double * | Ark, | ||
int | LDA, | ||
unsigned long long int | seed, | ||
int | maxrank, | ||
double | tol | ||
) |
int HICMA_zgytlr_Tile | ( | MORSE_enum | uplo, |
MORSE_desc_t * | AUV, | ||
MORSE_desc_t * | AD, | ||
MORSE_desc_t * | Ark, | ||
unsigned long long int | seed, | ||
int | maxrank, | ||
double | tol, | ||
int | compress_diag, | ||
MORSE_desc_t * | Dense | ||
) |
HICMA_zgytlr_Tile - Generate a random matrix by tiles. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors.
HICMA_zgytlr_Tile - Generate matrix by tiles.
[in] | uplo | Which part of matrix will be generated. |
[in] | M | The number of rows of A. |
[in] | N | The order of the matrix A. N >= 0. |
[out] | AUV | On exit, U and V factors. |
[out] | AD | On exit, diagonal tiles. |
[out] | Ark | On exit, rank for each tile. |
[in] | LDA | The leading dimension of the array A. LDA >= max(1,M). |
[in] | seed | The seed used in the random generation. |
[in] | maxrank | The limit for ranks. |
[in] | tol | Threshold used in approximation. |
MORSE_SUCCESS | successful exit |
<0 | if -i, the i-th argument had an illegal value |
int HICMA_zgytlr_Tile_Async | ( | MORSE_enum | uplo, |
MORSE_desc_t * | AUV, | ||
MORSE_desc_t * | AD, | ||
MORSE_desc_t * | Ark, | ||
unsigned long long int | seed, | ||
int | maxrank, | ||
double | tol, | ||
int | compress_diag, | ||
MORSE_desc_t * | Dense, | ||
MORSE_sequence_t * | sequence, | ||
MORSE_request_t * | request | ||
) |
HICMA_zgytlr_Tile_Async - Generate a random matrix by tiles. Non-blocking equivalent of HICMA_zgytlr_Tile(). May return before the computation is finished. Allows for pipelining of operations at runtime.
[in] | sequence | Identifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). |
[out] | request | Identifies this function call (for exception handling purposes). |
int HICMA_zhagcm_Tile | ( | MORSE_enum | uplo, |
MORSE_desc_t * | AUV, | ||
MORSE_desc_t * | Ark, | ||
int | numrows_matrix, | ||
int | numcols_matrix, | ||
int | numrows_block, | ||
int | numcols_block, | ||
int | maxrank, | ||
double | tol | ||
) |
file zplrnt.c
MORSE computational routines MORSE is a software package provided by Univ. of Tennessee, Univ. of California Berkeley and Univ. of Colorado Denver
version 2.5.0 comment This file has been automatically generated from Plasma 2.5.0 for MORSE 1.0.0 author Mathieu Faverge author Emmanuel Agullo author Cedric Castagnede date 2010-11-15 precisions normal z -> s d c HICMA_zhagcm_Tile - Generate a compressed matrix by tiles. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors.
[in] | uplo | Which part of matrix will be generated. |
[in] | M | The number of rows of A. |
[in] | N | The order of the matrix A. N >= 0. |
[out] | AUV | On exit, U and V factors. |
[out] | AD | On exit, diagonal tiles. |
[out] | Ark | On exit, rank for each tile. |
[in] | LDA | The leading dimension of the array A. LDA >= max(1,M). |
[in] | seed | The seed used in the random generation. |
[in] | maxrank | The limit for ranks. |
[in] | tol | Threshold used in approximation. |
MORSE_SUCCESS | successful exit |
int HICMA_zhagcm_Tile_Async | ( | MORSE_enum | uplo, |
MORSE_desc_t * | AUV, | ||
MORSE_desc_t * | Ark, | ||
int | numrows_matrix, | ||
int | numcols_matrix, | ||
int | numrows_block, | ||
int | numcols_block, | ||
int | maxrank, | ||
double | tol, | ||
MORSE_sequence_t * | sequence, | ||
MORSE_request_t * | request | ||
) |
HICMA_zhagcm_Tile_Async - Generate a compressed matrix by tiles. Non-blocking equivalent of HICMA_zhagcm_Tile(). May return before the computation is finished. Allows for pipelining of operations at runtime.
[in] | sequence | Identifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). |
[out] | request | Identifies this function call (for exception handling purposes). |
int HICMA_zhagdm_Tile | ( | MORSE_enum | uplo, |
MORSE_desc_t * | Dense | ||
) |
file zplrnt.c
MORSE computational routines MORSE is a software package provided by Univ. of Tennessee, Univ. of California Berkeley and Univ. of Colorado Denver
version 2.5.0 comment This file has been automatically generated from Plasma 2.5.0 for MORSE 1.0.0 author Mathieu Faverge author Emmanuel Agullo author Cedric Castagnede date 2010-11-15 precisions normal z -> s d c HICMA_zhagdm_Tile - Generate a dense matrix by tiles. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors.
MORSE_SUCCESS | successful exit |
int HICMA_zhagdm_Tile_Async | ( | MORSE_enum | uplo, |
MORSE_desc_t * | Dense, | ||
MORSE_sequence_t * | sequence, | ||
MORSE_request_t * | request | ||
) |
HICMA_zhagdm_Tile_Async - Generate a random matrix by tiles. Non-blocking equivalent of MORSE_zhagdm_Tile(). May return before the computation is finished. Allows for pipelining of operations at runtime.
[in] | sequence | Identifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). |
[out] | request | Identifies this function call (for exception handling purposes). |
int HICMA_zhagdmdiag_Tile | ( | MORSE_enum | uplo, |
MORSE_desc_t * | Dense | ||
) |
HICMA_zhagdmdiag_Tile - Generate a dense matrix by tiles. The diagonal tiles of problem are used. Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors.
MORSE_SUCCESS | successful exit |
int HICMA_zhagdmdiag_Tile_Async | ( | MORSE_enum | uplo, |
MORSE_desc_t * | Dense, | ||
MORSE_sequence_t * | sequence, | ||
MORSE_request_t * | request | ||
) |
HICMA_zhagdmdiag_Tile_Async - Generate a random matrix by tiles. The diagonal tiles of problem are used. Non-blocking equivalent of HICMA_zhagdmdiag_Tile(). May return before the computation is finished. Allows for pipelining of operations at runtime.
[in] | sequence | Identifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). |
[out] | request | Identifies this function call (for exception handling purposes). |
int HICMA_ztrsm_Tile | ( | MORSE_enum | side, |
MORSE_enum | uplo, | ||
MORSE_enum | transA, | ||
MORSE_enum | diag, | ||
double | alpha, | ||
MORSE_desc_t * | AUV, | ||
MORSE_desc_t * | AD, | ||
MORSE_desc_t * | Ark, | ||
MORSE_desc_t * | BUV, | ||
MORSE_desc_t * | Brk, | ||
int | rk, | ||
int | maxrk, | ||
double | acc | ||
) |
HICMA_ztrsm_Tile - Computes triangular solve. Both A and B/X matrices are in Tile Low Rank (TLR) format. Tile equivalent of HICMA_ztrsm(). Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors.
[in] | side | Specifies whether A appears on the left or on the right of X: = MorseLeft: A*X = B = MorseRight: X*A = B |
[in] | uplo | Specifies whether the matrix A is upper triangular or lower triangular: = MorseUpper: Upper triangle of A is stored; = MorseLower: Lower triangle of A is stored. |
[in] | transA | Specifies whether the matrix A is transposed, not transposed or conjugate transposed: = MorseNoTrans: A is transposed; = MorseTrans: A is not transposed; = MorseConjTrans: A is conjugate transposed. |
[in] | diag | Specifies whether or not A is unit triangular: = MorseNonUnit: A is non unit; = MorseUnit: A us unit. |
[in] | alpha | alpha specifies the scalar alpha. |
[in] | A | The triangular matrix A. If uplo = MorseUpper, the leading N-by-N upper triangular part of the array A contains the upper triangular matrix, and the strictly lower triangular part of A is not referenced. If uplo = MorseLower, the leading N-by-N lower triangular part of the array A contains the lower triangular matrix, and the strictly upper triangular part of A is not referenced. If diag = MorseUnit, the diagonal elements of A are also not referenced and are assumed to be 1. |
[in,out] | B | On entry, the N-by-NRHS right hand side matrix B. On exit, if return value = 0, the N-by-NRHS solution matrix X. |
MORSE_SUCCESS | successful exit |
int HICMA_ztrsm_Tile_Async | ( | MORSE_enum | side, |
MORSE_enum | uplo, | ||
MORSE_enum | transA, | ||
MORSE_enum | diag, | ||
double | alpha, | ||
MORSE_desc_t * | AUV, | ||
MORSE_desc_t * | AD, | ||
MORSE_desc_t * | Ark, | ||
MORSE_desc_t * | BUV, | ||
MORSE_desc_t * | Brk, | ||
int | rk, | ||
int | maxrk, | ||
double | acc, | ||
MORSE_sequence_t * | sequence, | ||
MORSE_request_t * | request | ||
) |
HICMA_ztrsm_Tile_Async - Computes triangular solve. Both A and B/X matrices are in Tile Low Rank (TLR) format. Non-blocking equivalent of HICMA_ztrsm_Tile(). May return before the computation is finished. Allows for pipelining of operations at runtime.
[in] | sequence | Identifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). |
[out] | request | Identifies this function call (for exception handling purposes). |
int HICMA_ztrsmd_Tile | ( | MORSE_enum | side, |
MORSE_enum | uplo, | ||
MORSE_enum | transA, | ||
MORSE_enum | diag, | ||
double | alpha, | ||
MORSE_desc_t * | AUV, | ||
MORSE_desc_t * | AD, | ||
MORSE_desc_t * | Ark, | ||
MORSE_desc_t * | Bdense, | ||
int | maxrk | ||
) |
HICMA_ztrsm_Tile - Computes triangular solve. A matrix is in Tile Low Rank (TLR) format and B/X matrix is dense. Tile equivalent of HICMA_ztrsm(). Operates on matrices stored by tiles. All matrices are passed through descriptors. All dimensions are taken from the descriptors.
[in] | side | Specifies whether A appears on the left or on the right of X: = MorseLeft: A*X = B = MorseRight: X*A = B |
[in] | uplo | Specifies whether the matrix A is upper triangular or lower triangular: = MorseUpper: Upper triangle of A is stored; = MorseLower: Lower triangle of A is stored. |
[in] | transA | Specifies whether the matrix A is transposed, not transposed or conjugate transposed: = MorseNoTrans: A is transposed; = MorseTrans: A is not transposed; = MorseConjTrans: A is conjugate transposed. |
[in] | diag | Specifies whether or not A is unit triangular: = MorseNonUnit: A is non unit; = MorseUnit: A us unit. |
[in] | alpha | alpha specifies the scalar alpha. |
[in] | A | The triangular matrix A. If uplo = MorseUpper, the leading N-by-N upper triangular part of the array A contains the upper triangular matrix, and the strictly lower triangular part of A is not referenced. If uplo = MorseLower, the leading N-by-N lower triangular part of the array A contains the lower triangular matrix, and the strictly upper triangular part of A is not referenced. If diag = MorseUnit, the diagonal elements of A are also not referenced and are assumed to be 1. |
[in,out] | B | On entry, the N-by-NRHS right hand side matrix B. On exit, if return value = 0, the N-by-NRHS solution matrix X. |
MORSE_SUCCESS | successful exit |
int HICMA_ztrsmd_Tile_Async | ( | MORSE_enum | side, |
MORSE_enum | uplo, | ||
MORSE_enum | transA, | ||
MORSE_enum | diag, | ||
double | alpha, | ||
MORSE_desc_t * | AUV, | ||
MORSE_desc_t * | AD, | ||
MORSE_desc_t * | Ark, | ||
MORSE_desc_t * | Bdense, | ||
int | maxrk, | ||
MORSE_sequence_t * | sequence, | ||
MORSE_request_t * | request | ||
) |
HICMA_ztrsm_Tile_Async - Computes triangular solve. A matrix is in Tile Low Rank (TLR) format and B/X matrix is dense. Non-blocking equivalent of HICMA_ztrsm_Tile(). May return before the computation is finished. Allows for pipelining of operations at runtime.
[in] | sequence | Identifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes). |
[out] | request | Identifies this function call (for exception handling purposes). |