HiCMA
Hierarchical Computations on Manycore Architectures
hicma_z.h File Reference
#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)
 

Detailed Description

HiCMA computational routines HiCMA is a software package provided by King Abdullah University of Science and Technology (KAUST)

Version
0.1.1
Author
Kadir Akbudak
Date
2018-11-08

Definition in file hicma_z.h.

Macro Definition Documentation

◆ COMPLEX

#define COMPLEX

Definition at line 19 of file hicma_z.h.

Function Documentation

◆ HICMA_zpotrf()

int HICMA_zpotrf ( MORSE_enum  uplo,
int  N,
double *  A,
int  LDA 
)

◆ HICMA_zpotrf_Tile()

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.

Parameters
[in]uplo= MorseUpper: Upper triangle of A is stored (Not supported yet) = MorseLower: Lower triangle of A is stored.
[in]AOn 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.
Returns
Return values
MORSE_SUCCESSsuccessful exit
>0if 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.

Definition at line 79 of file zpotrf.c.

◆ HICMA_zpotrf_Tile_Async()

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.

Parameters
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).

Definition at line 132 of file zpotrf.c.

◆ HICMA_zgemm_Tile()

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

\[ C = \alpha [op( A )\times op( B )] + \beta C \]

, 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.

Parameters
[in]transASpecifies whether the matrix A is transposed or not transposed: = MorseNoTrans: A is not transposed; = MorseTrans: A is transposed;
[in]transBSpecifies whether the matrix B is transposed or not transposed: = MorseNoTrans: B is not transposed; = MorseTrans: B is transposed;
[in]alphaalpha specifies the scalar alpha
[in]AUVAUV is a descriptor for the tile low-rank matrix A
[in]ArkArk is a descriptor containing rank of each tile of A
[in]BUVBUV is a descriptor for the tile low-rank matrix B
[in]BrkBrk is a descriptor containing rank of each tile of B
[in]betabeta specifies the scalar beta
[out]CUVCUV is a descriptor for the tile low-rank matrix C. On exit, it is over-written by the result TLR matrix.
[out]CrkCrk is a descriptor containing rank of each tile of C. On exit, it is over-written by the new rank of each tile.
Returns
Return values
MORSE_SUCCESSsuccessful exit

Definition at line 109 of file zgemm.c.

◆ HICMA_zgemm_Tile_Async()

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.

Parameters
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).

Definition at line 176 of file zgemm.c.

◆ HICMA_zgytlr()

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 
)

◆ HICMA_zgytlr_Tile()

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.

Parameters
[in]uploWhich part of matrix will be generated.
[in]MThe number of rows of A.
[in]NThe order of the matrix A. N >= 0.
[out]AUVOn exit, U and V factors.
[out]ADOn exit, diagonal tiles.
[out]ArkOn exit, rank for each tile.
[in]LDAThe leading dimension of the array A. LDA >= max(1,M).
[in]seedThe seed used in the random generation.
[in]maxrankThe limit for ranks.
[in]tolThreshold used in approximation.
Returns
Return values
MORSE_SUCCESSsuccessful exit
<0if -i, the i-th argument had an illegal value

Definition at line 93 of file zgytlr.c.

◆ HICMA_zgytlr_Tile_Async()

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.

Parameters
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).

Definition at line 155 of file zgytlr.c.

◆ HICMA_zhagcm_Tile()

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.

Parameters
[in]uploWhich part of matrix will be generated.
[in]MThe number of rows of A.
[in]NThe order of the matrix A. N >= 0.
[out]AUVOn exit, U and V factors.
[out]ADOn exit, diagonal tiles.
[out]ArkOn exit, rank for each tile.
[in]LDAThe leading dimension of the array A. LDA >= max(1,M).
[in]seedThe seed used in the random generation.
[in]maxrankThe limit for ranks.
[in]tolThreshold used in approximation.
Returns
Return values
MORSE_SUCCESSsuccessful exit

Definition at line 92 of file zhagcm.c.

◆ HICMA_zhagcm_Tile_Async()

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.

Parameters
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).

Definition at line 149 of file zhagcm.c.

◆ HICMA_zhagdm_Tile()

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.

Returns
Return values
MORSE_SUCCESSsuccessful exit

Definition at line 57 of file zhagdm.c.

◆ HICMA_zhagdm_Tile_Async()

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.

Parameters
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).

Definition at line 101 of file zhagdm.c.

◆ HICMA_zhagdmdiag_Tile()

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.

Returns
Return values
MORSE_SUCCESSsuccessful exit

Definition at line 162 of file zhagdm.c.

◆ HICMA_zhagdmdiag_Tile_Async()

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.

Parameters
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).

Definition at line 207 of file zhagdm.c.

◆ HICMA_ztrsm_Tile()

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.

Parameters
[in]sideSpecifies whether A appears on the left or on the right of X: = MorseLeft: A*X = B = MorseRight: X*A = B
[in]uploSpecifies 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]transASpecifies 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]diagSpecifies whether or not A is unit triangular: = MorseNonUnit: A is non unit; = MorseUnit: A us unit.
[in]alphaalpha specifies the scalar alpha.
[in]AThe 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]BOn entry, the N-by-NRHS right hand side matrix B. On exit, if return value = 0, the N-by-NRHS solution matrix X.
Returns
Return values
MORSE_SUCCESSsuccessful exit

Definition at line 104 of file ztrsm.c.

◆ HICMA_ztrsm_Tile_Async()

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.

Parameters
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).

Definition at line 172 of file ztrsm.c.

◆ HICMA_ztrsmd_Tile()

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.

Parameters
[in]sideSpecifies whether A appears on the left or on the right of X: = MorseLeft: A*X = B = MorseRight: X*A = B
[in]uploSpecifies 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]transASpecifies 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]diagSpecifies whether or not A is unit triangular: = MorseNonUnit: A is non unit; = MorseUnit: A us unit.
[in]alphaalpha specifies the scalar alpha.
[in]AThe 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]BOn entry, the N-by-NRHS right hand side matrix B. On exit, if return value = 0, the N-by-NRHS solution matrix X.
Returns
Return values
MORSE_SUCCESSsuccessful exit

Definition at line 303 of file ztrsm.c.

◆ HICMA_ztrsmd_Tile_Async()

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.

Parameters
[in]sequenceIdentifies the sequence of function calls that this call belongs to (for completion checks and exception handling purposes).
[out]requestIdentifies this function call (for exception handling purposes).

Definition at line 366 of file ztrsm.c.