PLASMA
2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
|
Go to the source code of this file.
Data Structures | |
struct | quark_task_flags_s |
Macros | |
#define | DBGPRINTF(...) if (0) {}; |
#define | QUARK_SUCCESS 0 |
#define | QUARK_ERR -1 |
#define | QUARK_ERR_UNEXPECTED -1 |
#define | QUARK_ERR_NOT_SUPPORTED -2 |
#define | QUARK_REGION_BITMASK 0x0000FF |
#define | QUARK_REGION_ALL 0x0FF |
#define | QUARK_DIRECTION_BITMASK 0x000F00 |
#define | INPUT 0x100 |
#define | QUARK_VALUE_FLAGS_BITMASK 0xFFF000 |
#define | LOCALITY ( 1 << 12 ) |
#define | NOLOCALITY 0x00 |
#define | ACCUMULATOR ( 1 << 13 ) |
#define | NOACCUMULATOR 0x00 |
#define | GATHERV ( 1 << 14 ) |
#define | NOGATHERV 0x00 |
#define | TASK_LABEL ( 1 << 15 ) |
#define | TASKLABEL TASK_LABEL /* depreciated label */ |
#define | TASK_COLOR ( 1 << 16 ) |
#define | TASKCOLOR TASK_COLOR /* depreciated label */ |
#define | TASK_PRIORITY ( 1 << 17 ) |
#define | TASK_LOCK_TO_THREAD ( 1 << 18 ) |
#define | TASK_SEQUENCE ( 1 << 19 ) |
#define | TASK_THREAD_COUNT ( 1 << 20 ) |
#define | THREAD_SET_TO_MANUAL_SCHEDULING ( 1 << 21 ) |
#define | TASK_LOCK_TO_THREAD_MASK ( 1 << 22 ) |
#define | QUARK_TASK_MIN_PRIORITY 0 |
#define | QUARK_TASK_MAX_PRIORITY INT_MAX |
#define | Quark_Task_Flags_Initializer { (int)0, (int)-1, (char *)NULL, (char *)NULL, (void *)NULL, (int)1, (int)-1, (unsigned char *)NULL } |
Typedefs | |
typedef struct quark_s | Quark |
typedef struct quark_task_s | Quark_Task |
typedef struct quark_task_flags_s | Quark_Task_Flags |
typedef struct Quark_sequence_s | Quark_Sequence |
Enumerations | |
enum | quark_data_region_t { QUARK_REGION_0 = 1<<0, QUARK_REGION_1 = 1<<1, QUARK_REGION_2 = 1<<2, QUARK_REGION_3 = 1<<3, QUARK_REGION_4 = 1<<4, QUARK_REGION_5 = 1<<5, QUARK_REGION_6 = 1<<6, QUARK_REGION_7 = 1<<7 } |
enum | quark_ldu_region_t { QUARK_REGION_L = QUARK_REGION_0|QUARK_REGION_1|QUARK_REGION_2, QUARK_REGION_D = QUARK_REGION_3|QUARK_REGION_4, QUARK_REGION_U = QUARK_REGION_5|QUARK_REGION_6|QUARK_REGION_7 } |
enum | quark_direction_t { QINPUT = 0x100, OUTPUT = 0x200, INOUT = 0x300, VALUE = 0x400, NODEP = 0x500, SCRATCH = 0x600 } |
Functions | |
Quark * | QUARK_Setup (int num_threads) |
Quark * | QUARK_New (int num_threads) |
unsigned long long | QUARK_Insert_Task (Quark *quark, void(*function)(Quark *), Quark_Task_Flags *task_flags,...) |
void | QUARK_Worker_Loop (Quark *quark, int thread_rank) |
void | QUARK_Barrier (Quark *quark) |
void | QUARK_Waitall (Quark *quark) |
void | QUARK_Delete (Quark *quark) |
void | QUARK_Free (Quark *quark) |
int | QUARK_Cancel_Task (Quark *quark, unsigned long long taskid) |
void * | QUARK_Args_List (Quark *quark) |
int | QUARK_Get_RankInTask (Quark *quark) |
void * | QUARK_Args_Pop (void *args_list, void **last_arg) |
int | QUARK_Thread_Rank (Quark *quark) |
Quark_Task * | QUARK_Task_Init (Quark *quark, void(*function)(Quark *), Quark_Task_Flags *task_flags) |
void | QUARK_Task_Pack_Arg (Quark *quark, Quark_Task *task, int arg_size, void *arg_ptr, int arg_flags) |
unsigned long long | QUARK_Insert_Task_Packed (Quark *quark, Quark_Task *task) |
unsigned long long | QUARK_Execute_Task (Quark *quark, void(*function)(Quark *), Quark_Task_Flags *task_flags,...) |
char * | QUARK_Get_Task_Label (Quark *quark) |
Quark_Task_Flags * | QUARK_Task_Flag_Set (Quark_Task_Flags *flags, int flag, intptr_t val) |
Quark_Sequence * | QUARK_Sequence_Create (Quark *quark) |
int | QUARK_Sequence_Cancel (Quark *quark, Quark_Sequence *sequence) |
Quark_Sequence * | QUARK_Sequence_Destroy (Quark *quark, Quark_Sequence *sequence) |
int | QUARK_Sequence_Wait (Quark *quark, Quark_Sequence *sequence) |
Quark_Sequence * | QUARK_Get_Sequence (Quark *quark) |
int | QUARK_Get_Priority (Quark *quark) |
intptr_t | QUARK_Task_Flag_Get (Quark *quark, int flag) |
void | QUARK_DOT_DAG_Enable (Quark *quark, int boolean_value) |
Dynamic scheduler functions
PLASMA is a software package provided by Univ. of Tennessee, Univ. of California Berkeley and Univ. of Colorado Denver
Definition in file quark.h.
#define Quark_Task_Flags_Initializer { (int)0, (int)-1, (char *)NULL, (char *)NULL, (void *)NULL, (int)1, (int)-1, (unsigned char *)NULL } |
#define TASKCOLOR TASK_COLOR /* depreciated label */ |
#define TASKLABEL TASK_LABEL /* depreciated label */ |
typedef struct Quark_sequence_s Quark_Sequence |
typedef struct quark_task_s Quark_Task |
typedef struct quark_task_flags_s Quark_Task_Flags |
enum quark_data_region_t |
QUARK_REGION_0 | |
QUARK_REGION_1 | |
QUARK_REGION_2 | |
QUARK_REGION_3 | |
QUARK_REGION_4 | |
QUARK_REGION_5 | |
QUARK_REGION_6 | |
QUARK_REGION_7 |
Definition at line 52 of file quark.h.
enum quark_direction_t |
enum quark_ldu_region_t |