QUARK  0.9.0
QUARK-QUeuingAndRuntimeforKernels
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
quark.h File Reference
#include <limits.h>
#include <stdio.h>
#include <inttypes.h>
#include "quark_unpack_args.h"
Include dependency graph for quark.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Types

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/Subroutines

QuarkQUARK_Setup (int num_threads)
QuarkQUARK_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_TaskQUARK_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_FlagsQUARK_Task_Flag_Set (Quark_Task_Flags *flags, int flag, intptr_t val)
Quark_SequenceQUARK_Sequence_Create (Quark *quark)
int QUARK_Sequence_Cancel (Quark *quark, Quark_Sequence *sequence)
Quark_SequenceQUARK_Sequence_Destroy (Quark *quark, Quark_Sequence *sequence)
int QUARK_Sequence_Wait (Quark *quark, Quark_Sequence *sequence)
Quark_SequenceQUARK_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)

Detailed Description

Dynamic scheduler functions

PLASMA is a software package provided by Univ. of Tennessee, Univ. of California Berkeley and Univ. of Colorado Denver

Version:
2.4.5
Author:
Asim YarKhan
Date:
2010-11-15

Definition in file quark.h.


Macro Definition Documentation

#define ACCUMULATOR   ( 1 << 13 )

Definition at line 74 of file quark.h.

#define DBGPRINTF (   ...)    if (0) {};

Definition at line 41 of file quark.h.

#define GATHERV   ( 1 << 14 )

Definition at line 78 of file quark.h.

#define INPUT   0x100

Definition at line 65 of file quark.h.

#define LOCALITY   ( 1 << 12 )

Definition at line 70 of file quark.h.

#define NOACCUMULATOR   0x00

Definition at line 75 of file quark.h.

#define NOGATHERV   0x00

Definition at line 79 of file quark.h.

#define NOLOCALITY   0x00

Definition at line 71 of file quark.h.

#define QUARK_DIRECTION_BITMASK   0x000F00

Definition at line 63 of file quark.h.

#define QUARK_ERR   -1

Definition at line 45 of file quark.h.

#define QUARK_ERR_NOT_SUPPORTED   -2

Definition at line 47 of file quark.h.

#define QUARK_ERR_UNEXPECTED   -1

Definition at line 46 of file quark.h.

#define QUARK_REGION_ALL   0x0FF

Definition at line 51 of file quark.h.

#define QUARK_REGION_BITMASK   0x0000FF

Definition at line 50 of file quark.h.

#define QUARK_SUCCESS   0

Definition at line 44 of 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 }

Definition at line 125 of file quark.h.

#define QUARK_TASK_MAX_PRIORITY   INT_MAX

Definition at line 103 of file quark.h.

#define QUARK_TASK_MIN_PRIORITY   0

Definition at line 102 of file quark.h.

#define QUARK_VALUE_FLAGS_BITMASK   0xFFF000

Definition at line 67 of file quark.h.

#define TASK_COLOR   ( 1 << 16 )

Definition at line 86 of file quark.h.

#define TASK_LABEL   ( 1 << 15 )

Definition at line 83 of file quark.h.

#define TASK_LOCK_TO_THREAD   ( 1 << 18 )

Definition at line 91 of file quark.h.

#define TASK_LOCK_TO_THREAD_MASK   ( 1 << 22 )

Definition at line 99 of file quark.h.

#define TASK_PRIORITY   ( 1 << 17 )

Definition at line 89 of file quark.h.

#define TASK_SEQUENCE   ( 1 << 19 )

Definition at line 93 of file quark.h.

#define TASK_THREAD_COUNT   ( 1 << 20 )

Definition at line 95 of file quark.h.

#define TASKCOLOR   TASK_COLOR /* depreciated label */

Definition at line 87 of file quark.h.

#define TASKLABEL   TASK_LABEL /* depreciated label */

Definition at line 84 of file quark.h.

#define THREAD_SET_TO_MANUAL_SCHEDULING   ( 1 << 21 )

Definition at line 97 of file quark.h.


Typedef Documentation

typedef struct quark_s Quark

Definition at line 106 of file quark.h.

Definition at line 195 of file quark.h.

typedef struct quark_task_s Quark_Task

Definition at line 109 of file quark.h.

Definition at line 123 of file quark.h.


Enumeration Type Documentation

Enumerator:
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.

Enumerator:
QINPUT 
OUTPUT 
INOUT 
VALUE 
NODEP 
SCRATCH 

Definition at line 64 of file quark.h.

{ QINPUT=0x100, OUTPUT=0x200, INOUT=0x300, VALUE=0x400, NODEP=0x500, SCRATCH=0x600} quark_direction_t;