PLASMA 2.8.0 PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures

- Main Page
- Modules
- Data Types List

plasma.h
1
14 #ifndef _PLASMA_H_
15 #define _PLASMA_H_
16
17 #include <quark.h>
18 #include "plasmatypes.h"
19 #include "descriptor.h"
20
24 typedef struct plasma_request_t {
25 PLASMA_enum status;
26 } PLASMA_request;
27
28 #define PLASMA_REQUEST_INITIALIZER {PLASMA_SUCCESS}
29
34 typedef struct plasma_sequence_t {
35 Quark_Sequence *quark_sequence;
36 PLASMA_bool status;
37 PLASMA_request *request;
38 } PLASMA_sequence;
39
40 #define plasma_const_neg(const) (((const-1)^0x01)+1)
41
45 #define PLASMA_FALSE 0
46 #define PLASMA_TRUE 1
47
51 #define PLASMA_WARNINGS 1
52 #define PLASMA_ERRORS 2
53 #define PLASMA_AUTOTUNING 3
54 #define PLASMA_DAG 4
55
59 #define PLASMA_CONCURRENCY 1
60 #define PLASMA_TILE_SIZE 2
61 #define PLASMA_INNER_BLOCK_SIZE 3
62 #define PLASMA_SCHEDULING_MODE 4
63 #define PLASMA_HOUSEHOLDER_MODE 5
64 #define PLASMA_HOUSEHOLDER_SIZE 6
65 #define PLASMA_TRANSLATION_MODE 7
66 #define PLASMA_TNTPIVOTING_MODE 8
67 #define PLASMA_TNTPIVOTING_SIZE 9
68 #define PLASMA_EV_WSMODE 10
69 #define PLASMA_EV_TASKNB 11
70 #define PLASMA_EV_SMLSZE 12
71
72 #define PLASMA_STATIC_SCHEDULING 1
73 #define PLASMA_DYNAMIC_SCHEDULING 2
74
75 #define PLASMA_FLAT_HOUSEHOLDER 1
76 #define PLASMA_TREE_HOUSEHOLDER 2
77
78 #define PLASMA_TOURNAMENT_LU 1
79 #define PLASMA_TOURNAMENT_QR 2
80
81 #define PLASMA_INPLACE 1
82 #define PLASMA_OUTOFPLACE 2
83
87 #include <plasma_z.h>
88 #include <plasma_d.h>
89 #include <plasma_c.h>
90 #include <plasma_s.h>
91 #include <plasma_zc.h>
92 #include <plasma_ds.h>
93
94 #ifdef __cplusplus
95 extern "C" {
96 #endif
97
101 int PLASMA_Version(int *ver_major, int *ver_minor, int *ver_micro);
102 int PLASMA_Enable(PLASMA_enum lever);
103 int PLASMA_Disable(PLASMA_enum lever);
104 int PLASMA_Set(PLASMA_enum param, int value);
105 int PLASMA_Get(PLASMA_enum param, int *value);
106 int PLASMA_Init(int cores);
107 int PLASMA_Init_Affinity(int cores, int *bindtab);
108 int PLASMA_Finalize();
109 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);
110 int PLASMA_Desc_Destroy(PLASMA_desc **desc);
111 int PLASMA_Lapack_to_Tile(void *Af77, int LDA, PLASMA_desc *A);
112 int PLASMA_Tile_to_Lapack(PLASMA_desc *A, void *Af77, int LDA);
113
117 int PLASMA_Get_Quark(Quark **);
118 int PLASMA_Dynamic_Spawn();
119 int PLASMA_Dynamic_Hold();
120
124 int PLASMA_Dealloc_Handle(void **handle);
125 int PLASMA_Dealloc_Handle_Tile(PLASMA_desc **desc);
126
130 int PLASMA_Sequence_Create(PLASMA_sequence **sequence);
131 int PLASMA_Sequence_Destroy(PLASMA_sequence *sequence);
132 int PLASMA_Sequence_Wait(PLASMA_sequence *sequence);
133 int PLASMA_Sequence_Flush(PLASMA_sequence *sequence, PLASMA_request *request);
134
135 #ifdef __cplusplus
136 }
137 #endif
138
139 #endif
PLASMA_Desc_Create
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)
Definition: descriptor.c:151
plasma_sequence_t::quark_sequence
Quark_Sequence * quark_sequence
Definition: plasma.h:35
PLASMA_Enable
int PLASMA_Enable(PLASMA_enum lever)
Definition: context.c:178
PLASMA_Dynamic_Spawn
int PLASMA_Dynamic_Spawn()
Definition: context.c:573
plasma_request_t::status
PLASMA_enum status
Definition: plasma.h:25
PLASMA_Finalize
int PLASMA_Finalize()
Definition: control.c:320
PLASMA_Init_Affinity
int PLASMA_Init_Affinity(int cores, int *bindtab)
Definition: control.c:203
PLASMA_Lapack_to_Tile
int PLASMA_Lapack_to_Tile(void *Af77, int LDA, PLASMA_desc *A)
Definition: tile.c:41
PLASMA_Get
int PLASMA_Get(PLASMA_enum param, int *value)
Definition: context.c:471
PLASMA_Sequence_Destroy
int PLASMA_Sequence_Destroy(PLASMA_sequence *sequence)
Definition: async.c:124
PLASMA_Sequence_Flush
int PLASMA_Sequence_Flush(PLASMA_sequence *sequence, PLASMA_request *request)
Definition: async.c:197
PLASMA_Set
int PLASMA_Set(PLASMA_enum param, int value)
Definition: context.c:306
plasma_sequence_t::status
PLASMA_bool status
Definition: plasma.h:36
PLASMA_Sequence_Create
int PLASMA_Sequence_Create(PLASMA_sequence **sequence)
Definition: async.c:93
PLASMA_Version
int PLASMA_Version(int *ver_major, int *ver_minor, int *ver_micro)
Definition: auxiliary.c:286
plasma_sequence_t
Definition: plasma.h:34
plasma_sequence_t::request
PLASMA_request * request
Definition: plasma.h:37
PLASMA_Init
int PLASMA_Init(int cores)
Definition: control.c:172
PLASMA_Dynamic_Hold
int PLASMA_Dynamic_Hold()
Definition: context.c:609
PLASMA_Sequence_Wait
int PLASMA_Sequence_Wait(PLASMA_sequence *sequence)
Definition: async.c:159
plasma_request_t
Definition: plasma.h:24
PLASMA_Disable
int PLASMA_Disable(PLASMA_enum lever)
Definition: context.c:233
PLASMA_Tile_to_Lapack
int PLASMA_Tile_to_Lapack(PLASMA_desc *A, void *Af77, int LDA)
Definition: tile.c:106
PLASMA_Dealloc_Handle
int PLASMA_Dealloc_Handle(void **handle)
Definition: workspace.c:194
PLASMA_Desc_Destroy
int PLASMA_Desc_Destroy(PLASMA_desc **desc)
Definition: descriptor.c:195
plasma_desc_t
Definition: descriptor.h:41
PLASMA_Dealloc_Handle_Tile
int PLASMA_Dealloc_Handle_Tile(PLASMA_desc **desc)
Definition: workspace.c:229
PLASMA_Get_Quark
int PLASMA_Get_Quark(Quark **)
Definition: context.c:541