PLASMA
2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
|
#include <complex.h>
#include <quark.h>
#include <plasma_z.h>
#include <plasma_d.h>
#include <plasma_c.h>
#include <plasma_s.h>
#include <plasma_zc.h>
#include <plasma_ds.h>
Go to the source code of this file.
Data Structures | |
struct | plasma_desc_t |
struct | plasma_request_t |
struct | plasma_sequence_t |
Typedefs | |
typedef int | PLASMA_enum |
typedef int | PLASMA_bool |
typedef long | PLASMA_index |
typedef long | PLASMA_size |
typedef float _Complex | PLASMA_Complex32_t |
typedef double _Complex | PLASMA_Complex64_t |
typedef struct plasma_desc_t | PLASMA_desc |
typedef struct plasma_request_t | PLASMA_request |
typedef struct plasma_sequence_t | PLASMA_sequence |
PLASMA main header PLASMA is a software package provided by Univ. of Tennessee, Univ. of California Berkeley and Univ. of Colorado Denver
Definition in file plasma.h.
#define PLASMA_CONCURRENCY 1 |
#define PLASMA_REQUEST_INITIALIZER {PLASMA_SUCCESS} |
#define PLASMA_SUCCESS 0 |
#define PlasmaCM 101 |
PLASMA constants - CBLAS & LAPACK The naming and numbering is consisten with:
1) CBLAS from Netlib (http://www.netlib.org/blas/blast-forum/cblas.tgz), 2) C Interface to LAPACK from Netlib (http://www.netlib.org/lapack/lapwrapc/).
typedef int PLASMA_bool |
typedef float _Complex PLASMA_Complex32_t |
typedef double _Complex PLASMA_Complex64_t |
typedef struct plasma_desc_t PLASMA_desc |
Matrices are stored in a contiguous data chunk containning in order A11, A21, A12, A22 with :
n1 n2 +———-+—+ | | | With m1 = lm - (lm%mb) | | | m2 = lm%mb
m1 | A11 |A12| n1 = ln - (lnmb) | | | n2 = lnnb | | | +———-+—+ m2 | A21 |A22| +———-+—+
typedef int PLASMA_enum |
typedef long PLASMA_index |
typedef struct plasma_request_t PLASMA_request |
typedef struct plasma_sequence_t PLASMA_sequence |
typedef long PLASMA_size |
int PLASMA_Dealloc_Handle | ( | void ** | handle | ) |
PLASMA_Dealloc_Handle - Deallocate workspace handle allocated by any workspace allocation routine.
[in] | handle | Workspace handle |
PLASMA_SUCCESS | successful exit |
Definition at line 194 of file workspace.c.
References plasma_context_self(), PLASMA_ERR_NOT_INITIALIZED, PLASMA_ERR_UNALLOCATED, plasma_error(), plasma_fatal_error(), and PLASMA_SUCCESS.
int PLASMA_Dealloc_Handle_Tile | ( | PLASMA_desc ** | desc | ) |
PLASMA_Dealloc_Handle_Tile - Deallocate Tile workspace handle allocated by any tile workspace allocation routine.
[in] | desc | Descriptot handle |
PLASMA_SUCCESS | successful exit |
Definition at line 229 of file workspace.c.
References plasma_context_self(), PLASMA_ERR_NOT_INITIALIZED, PLASMA_ERR_UNALLOCATED, plasma_error(), plasma_fatal_error(), and PLASMA_SUCCESS.
int PLASMA_Desc_Create | ( | PLASMA_desc ** | desc, |
void * | mat, | ||
PLASMA_enum | dtyp, | ||
int | mb, | ||
int | nb, | ||
int | bsiz, | ||
int | lm, | ||
int | ln, | ||
int | i, | ||
int | j, | ||
int | m, | ||
int | n | ||
) |
PLASMA_Desc_Create - Create matrix descriptor.
[out] | desc | On exit, descriptor of the matrix. |
[in] | mat | Memory location of the matrix. |
[in] | dtyp | Data type of the matrix:
|
[in] | mb | Number of rows in a tile. |
[in] | nb | Number of columns in a tile. |
[in] | bsiz | Size in bytes including padding. |
[in] | lm | Number of rows of the entire matrix. |
[in] | ln | Number of columns of the entire matrix. |
[in] | i | Row index to the beginning of the submatrix. |
[in] | j | Column indes to the beginning of the submatrix. |
[in] | m | Number of rows of the submatrix. |
[in] | n | Number of columns of the submatrix. |
PLASMA_SUCCESS | successful exit |
Definition at line 201 of file descriptor.c.
References plasma_context_self(), plasma_desc_check(), plasma_desc_init(), PLASMA_ERR_NOT_INITIALIZED, PLASMA_ERR_OUT_OF_RESOURCES, plasma_error(), and PLASMA_SUCCESS.
int PLASMA_Desc_Destroy | ( | PLASMA_desc ** | desc | ) |
PLASMA_Desc_Destroy - Destroys matrix descriptor.
[in] | desc | Matrix descriptor. |
PLASMA_SUCCESS | successful exit |
Definition at line 245 of file descriptor.c.
References plasma_context_self(), PLASMA_ERR_NOT_INITIALIZED, PLASMA_ERR_UNALLOCATED, plasma_error(), and PLASMA_SUCCESS.
int PLASMA_Disable | ( | PLASMA_enum | lever | ) |
PLASMA_Disable - Disable PLASMA feature.
[in] | lever | Feature to be disabled:
|
PLASMA_SUCCESS | successful exit |
Definition at line 222 of file context.c.
References plasma_context_struct::autotuning_enabled, plasma_context_struct::errors_enabled, PLASMA_AUTOTUNING, plasma_context_self(), PLASMA_DAG, PLASMA_ERR_ILLEGAL_VALUE, PLASMA_ERR_NOT_INITIALIZED, plasma_error(), PLASMA_ERRORS, PLASMA_FALSE, plasma_fatal_error(), PLASMA_SUCCESS, PLASMA_WARNINGS, plasma_context_struct::quark, QUARK_Barrier(), QUARK_DOT_DAG_Enable(), and plasma_context_struct::warnings_enabled.
int PLASMA_Enable | ( | PLASMA_enum | lever | ) |
PLASMA_Enable - Enable PLASMA feature.
[in] | lever | Feature to be enabled:
|
PLASMA_SUCCESS | successful exit |
Definition at line 169 of file context.c.
References plasma_context_struct::autotuning_enabled, plasma_context_struct::errors_enabled, PLASMA_AUTOTUNING, plasma_context_self(), PLASMA_DAG, PLASMA_ERR_ILLEGAL_VALUE, PLASMA_ERR_NOT_INITIALIZED, plasma_error(), PLASMA_ERRORS, plasma_fatal_error(), PLASMA_SUCCESS, PLASMA_TRUE, PLASMA_WARNINGS, plasma_context_struct::quark, QUARK_Barrier(), QUARK_DOT_DAG_Enable(), and plasma_context_struct::warnings_enabled.
int PLASMA_Finalize | ( | ) |
PLASMA_Finalize - Finalize PLASMA.
PLASMA_SUCCESS | successful exit |
Definition at line 293 of file control.c.
References plasma_context_struct::action, plasma_context_struct::action_condt, plasma_context_struct::action_mutex, PLASMA_ACT_FINALIZE, PLASMA_ACT_STAND_BY, plasma_barrier(), plasma_barrier_finalize(), plasma_context_remove(), plasma_context_self(), plasma_dynamic_sync, PLASMA_ERR_NOT_INITIALIZED, plasma_fatal_error(), PLASMA_SUCCESS, plasma_topology_finalize(), pthread_attr_destroy(), pthread_cond_broadcast(), pthread_join(), pthread_mutex_lock(), pthread_mutex_unlock(), pthread_self(), pthread_setconcurrency(), plasma_context_struct::quark, QUARK_Free(), plasma_context_struct::thread_attr, plasma_context_struct::thread_id, and plasma_context_struct::world_size.
int PLASMA_Get | ( | PLASMA_enum | param, |
int * | value | ||
) |
PLASMA_Get - Get value of PLASMA parameter.
[in] | param | Feature to be enabled:
|
[out] | value | Value of the parameter. |
PLASMA_SUCCESS | successful exit |
Definition at line 391 of file context.c.
References plasma_context_struct::householder, plasma_context_struct::ib, plasma_context_struct::nb, plasma_context_self(), PLASMA_ERR_ILLEGAL_VALUE, PLASMA_ERR_NOT_INITIALIZED, plasma_error(), plasma_fatal_error(), PLASMA_HOUSEHOLDER_MODE, PLASMA_HOUSEHOLDER_SIZE, PLASMA_INNER_BLOCK_SIZE, PLASMA_SCHEDULING_MODE, PLASMA_SUCCESS, PLASMA_TILE_SIZE, PLASMA_TRANSLATION_MODE, plasma_context_struct::rhblock, plasma_context_struct::scheduling, and plasma_context_struct::translation.
int PLASMA_Init | ( | int | cores | ) |
PLASMA_Init - Initialize PLASMA.
[in] | cores | Number of cores to use (threads to launch). If cores = 0, cores = PLASMA_NUM_THREADS if it is set, the system number of core otherwise. |
PLASMA_SUCCESS | successful exit |
Definition at line 153 of file control.c.
References PLASMA_Init_Affinity().
int PLASMA_Init_Affinity | ( | int | cores, |
int * | coresbind | ||
) |
PLASMA_Init_Affinity - Initialize PLASMA.
[in] | cores | Number of cores to use (threads to launch). If cores = 0, cores = PLASMA_NUM_THREADS if it is set, the system number of core otherwise. |
[in] | coresbind | Array to specify where to bind each thread. Each thread i is binded to coresbind[hwloc(i)] if hwloc is provided, or to coresbind[i] otherwise. If coresbind = NULL, coresbind = PLASMA_AFF_THREADS if it is set, the identity function otherwise. |
PLASMA_SUCCESS | successful exit |
Definition at line 184 of file control.c.
References CONTEXT_THREADS_MAX, plasma_context_struct::group_size, plasma_barrier(), plasma_barrier_init(), plasma_context_create(), plasma_context_insert(), PLASMA_ERR_INTERNAL_LIMIT, PLASMA_ERR_NOT_FOUND, PLASMA_ERR_OUT_OF_RESOURCES, plasma_fatal_error(), plasma_get_affthreads(), plasma_get_numthreads(), plasma_get_numthreads_numa(), plasma_parallel_section(), plasma_setaffinity(), PLASMA_SUCCESS, plasma_topology_init(), plasma_warning(), pthread_attr_init(), pthread_attr_setscope(), pthread_create(), PTHREAD_SCOPE_SYSTEM, pthread_self(), pthread_setconcurrency(), plasma_context_struct::quark, QUARK_Setup(), plasma_context_struct::thread_attr, plasma_context_struct::thread_bind, plasma_context_struct::thread_id, plasma_context_struct::thread_rank, and plasma_context_struct::world_size.
int PLASMA_Lapack_to_Tile | ( | void * | Af77, |
int | LDA, | ||
PLASMA_desc * | A | ||
) |
PLASMA_Lapack_to_Tile - Conversion from LAPACK layout to tile layout.
[in] | Af77 | LAPACK matrix. |
[in] | LDA | The leading dimension of the matrix Af77. |
[out] | A | Descriptor of the PLASMA matrix in tile layout. |
PLASMA_SUCCESS | successful exit |
Definition at line 41 of file tile.c.
References A, plasma_desc_t::dtyp, plasma_context_self(), plasma_desc_check(), plasma_dynamic_sync, PLASMA_ERR_ILLEGAL_VALUE, PLASMA_ERR_NOT_INITIALIZED, plasma_error(), plasma_fatal_error(), plasma_parallel_call_5, plasma_pclapack_to_tile(), plasma_pdlapack_to_tile(), plasma_pslapack_to_tile(), plasma_pzlapack_to_tile(), plasma_sequence_create(), plasma_sequence_destroy(), PLASMA_SUCCESS, PlasmaComplexDouble, PlasmaComplexFloat, PlasmaRealDouble, PlasmaRealFloat, and plasma_sequence_t::status.
int PLASMA_Sequence_Create | ( | PLASMA_sequence ** | sequence | ) |
PLASMA_Sequence_Create - Create a squence.
[out] | sequence | Identifies a set of routines sharing common exception handling. |
PLASMA_SUCCESS | successful exit |
Definition at line 93 of file async.c.
References plasma_context_self(), PLASMA_ERR_NOT_INITIALIZED, plasma_fatal_error(), and plasma_sequence_create().
int PLASMA_Sequence_Destroy | ( | PLASMA_sequence * | sequence | ) |
PLASMA_Sequence_Destroy - Destroy a sequence.
[in] | sequence | Identifies a set of routines sharing common exception handling. |
PLASMA_SUCCESS | successful exit |
Definition at line 124 of file async.c.
References plasma_context_self(), PLASMA_ERR_NOT_INITIALIZED, PLASMA_ERR_UNALLOCATED, plasma_fatal_error(), and plasma_sequence_destroy().
int PLASMA_Sequence_Flush | ( | PLASMA_sequence * | sequence, |
PLASMA_request * | request | ||
) |
PLASMA_Sequence_Flush - Terminate a sequence.
[in] | sequence | Identifies a set of routines sharing common exception handling. |
[in] | request | The flush request. |
PLASMA_SUCCESS | successful exit |
Definition at line 197 of file async.c.
References plasma_context_self(), PLASMA_ERR_NOT_INITIALIZED, PLASMA_ERR_SEQUENCE_FLUSHED, PLASMA_ERR_UNALLOCATED, plasma_fatal_error(), plasma_sequence_flush(), PLASMA_SUCCESS, and plasma_context_struct::quark.
int PLASMA_Sequence_Wait | ( | PLASMA_sequence * | sequence | ) |
PLASMA_Sequence_Wait - Wait for the completion of a sequence.
[in] | sequence | Identifies a set of routines sharing common exception handling. |
PLASMA_SUCCESS | successful exit |
Definition at line 159 of file async.c.
References plasma_context_self(), PLASMA_ERR_NOT_INITIALIZED, PLASMA_ERR_UNALLOCATED, plasma_fatal_error(), and plasma_sequence_wait().
int PLASMA_Set | ( | PLASMA_enum | param, |
int | value | ||
) |
PLASMA_Set - Set PLASMA parameter.
[in] | param | Feature to be enabled:
|
[in] | value | Value of the parameter. |
PLASMA_SUCCESS | successful exit |
Definition at line 278 of file context.c.
References plasma_context_struct::autotuning_enabled, plasma_context_struct::householder, plasma_context_struct::ib, plasma_context_struct::ibnbsize, min, plasma_context_struct::nb, plasma_context_struct::nbnbsize, plasma_context_self(), PLASMA_DYNAMIC_SCHEDULING, PLASMA_ERR_ILLEGAL_VALUE, PLASMA_ERR_NOT_INITIALIZED, plasma_error(), PLASMA_FALSE, PLASMA_FLAT_HOUSEHOLDER, PLASMA_HOUSEHOLDER_MODE, PLASMA_HOUSEHOLDER_SIZE, PLASMA_INNER_BLOCK_SIZE, PLASMA_INPLACE, PLASMA_OUTOFPLACE, PLASMA_SCHEDULING_MODE, PLASMA_STATIC_SCHEDULING, PLASMA_SUCCESS, PLASMA_TILE_SIZE, PLASMA_TRANSLATION_MODE, PLASMA_TREE_HOUSEHOLDER, plasma_warning(), plasma_context_struct::rhblock, plasma_context_struct::scheduling, and plasma_context_struct::translation.
int PLASMA_Tile_to_Lapack | ( | PLASMA_desc * | A, |
void * | Af77, | ||
int | LDA | ||
) |
PLASMA_Tile_to_Lapack - Conversion from tile layout to LAPACK layout.
[out] | A | Descriptor of the PLASMA matrix in tile layout. |
[in] | Af77 | LAPACK matrix. |
[in] | LDA | The leading dimension of the matrix Af77. |
PLASMA_SUCCESS | successful exit |
Definition at line 129 of file tile.c.
References A, plasma_desc_t::dtyp, plasma_context_self(), plasma_desc_check(), plasma_dynamic_sync, PLASMA_ERR_ILLEGAL_VALUE, PLASMA_ERR_NOT_INITIALIZED, plasma_error(), plasma_fatal_error(), plasma_parallel_call_5, plasma_pctile_to_lapack(), plasma_pdtile_to_lapack(), plasma_pstile_to_lapack(), plasma_pztile_to_lapack(), plasma_sequence_create(), plasma_sequence_destroy(), PLASMA_SUCCESS, PlasmaComplexDouble, PlasmaComplexFloat, PlasmaRealDouble, PlasmaRealFloat, and plasma_sequence_t::status.
int PLASMA_Version | ( | int * | ver_major, |
int * | ver_minor, | ||
int * | ver_micro | ||
) |
PLASMA_Version - Reports PLASMA version number.
[out] | ver_major | PLASMA major version number. |
[out] | ver_minor | PLASMA minor version number. |
[out] | ver_micro | PLASMA micro version number. |
PLASMA_SUCCESS | successful exit |
Definition at line 296 of file auxiliary.c.
References PLASMA_ERR_ILLEGAL_VALUE, PLASMA_SUCCESS, PLASMA_VERSION_MAJOR, PLASMA_VERSION_MICRO, and PLASMA_VERSION_MINOR.