|
MAGMA
1.2.0
MatrixAlgebraonGPUandMulticoreArchitectures
|
Go to the source code of this file.
Classes | |
| struct | quark_task_flags_s |
Macros | |
| #define | QUARK_SUCCESS 0 |
| #define | QUARK_ERR -1 |
| #define | QUARK_ERR_UNEXPECTED -1 |
| #define | QUARK_ERR_NOT_SUPPORTED -2 |
| #define | INPUT 0x01 |
| #define | LOCALITY ( 1 << 3 ) |
| #define | NOLOCALITY 0x00 |
| #define | ACCUMULATOR ( 1 << 4 ) |
| #define | NOACCUMULATOR 0x00 |
| #define | GATHERV ( 1 << 5 ) |
| #define | NOGATHERV 0x00 |
| #define | TASK_LABEL ( 1 << 6 ) |
| #define | TASKLABEL ( 1 << 6 ) /* depreciated label */ |
| #define | TASK_COLOR ( 1 << 7 ) |
| #define | TASKCOLOR ( 1 << 7 ) /* depreciated label */ |
| #define | TASK_PRIORITY ( 1 << 8 ) |
| #define | TASK_LOCK_TO_THREAD ( 1 << 9 ) |
| #define | TASK_SEQUENCE ( 1 << 10 ) |
| #define | TASK_THREAD_COUNT ( 1 << 11 ) |
| #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 } |
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_direction_t { QINPUT = 0x01, OUTPUT = 0x02, INOUT = 0x03, VALUE = 0x04, NODEP = 0x05, SCRATCH = 0x06 } |
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) |
| 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) |
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 } |
| 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_direction_t |
| int QUARK_Thread_Rank | ( | Quark * | quark | ) |
Return the rank of a thread
Definition at line 377 of file quark.c.
References quark_s::num_threads, pthread_equal(), pthread_self(), worker_s::thread_id, and quark_s::worker.