PLASMA
Parallel Linear Algebra Software for Multicore Architectures
plasma_context.h
1 
10 #ifndef ICL_PLASMA_CONTEXT_H
11 #define ICL_PLASMA_CONTEXT_H
12 
13 #include "plasma_types.h"
14 #include "plasma_barrier.h"
15 
16 #include <pthread.h>
17 #include <lua.h>
18 #include <lauxlib.h>
19 #include <lualib.h>
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 /******************************************************************************/
26 typedef struct {
27  lua_State *L;
28  int tuning;
29  int nb;
30  int ib;
31  plasma_enum_t inplace_outplace;
32  int max_threads;
33  int max_panel_threads;
34  plasma_barrier_t barrier;
35  plasma_enum_t householder_mode;
36 } plasma_context_t;
37 
38 typedef struct {
39  pthread_t thread_id;
40  plasma_context_t *context;
41 } plasma_context_map_t;
42 
43 /******************************************************************************/
44 int plasma_init();
45 int plasma_finalize();
46 int plasma_set(plasma_enum_t param, int value);
47 int plasma_get(plasma_enum_t param, int *value);
48 
49 int plasma_context_attach();
50 int plasma_context_detach();
51 plasma_context_t *plasma_context_self();
52 void plasma_context_init(plasma_context_t *context);
53 void plasma_context_finalize(plasma_context_t *context);
54 
55 #ifdef __cplusplus
56 } // extern "C"
57 #endif
58 
59 #endif // ICL_PLASMA_CONTEXT_H
int plasma_init()
Definition: context.c:28
int plasma_finalize()
Definition: context.c:53