comparison src/parallel_execution/context.h @ 184:21840c7fb309

merge
author mir3636
date Thu, 15 Dec 2016 17:41:00 +0900
parents dec50dd624c7
children 247a2c4a8908
comparison
equal deleted inserted replaced
183:dec50dd624c7 184:21840c7fb309
109 C_clearSynchronizedQueue, 109 C_clearSynchronizedQueue,
110 C_putRedBlackTree, 110 C_putRedBlackTree,
111 C_getRedBlackTree, 111 C_getRedBlackTree,
112 C_removeRedBlackTree, 112 C_removeRedBlackTree,
113 C_clearRedBlackTree, 113 C_clearRedBlackTree,
114 C_QueueTest1,
115 C_QueueTest2,
116 C_QueueTest3,
117 C_QueueTest4,
118 SpawnTask, 114 SpawnTask,
119 Twice, 115 Twice,
120 StartTime, 116 StartTime,
121 EndTime, 117 EndTime,
122 Exit, 118 Exit,
133 D_Allocate, 129 D_Allocate,
134 D_SingleLinkedStack, 130 D_SingleLinkedStack,
135 D_Stack, 131 D_Stack,
136 D_RedBlackTree, 132 D_RedBlackTree,
137 D_Tree, 133 D_Tree,
138 D_TaskManager,
139 D_TaskManagerImpl,
140 D_Task, 134 D_Task,
141 D_Traverse, 135 D_Traverse,
142 D_RotateTree, 136 D_RotateTree,
143 D_Node, 137 D_Node,
144 D_LoopCounter, 138 D_LoopCounter,
179 } loopCounter; 173 } loopCounter;
180 struct TaskManager { 174 struct TaskManager {
181 int numWorker; 175 int numWorker;
182 enum Code spawn; 176 enum Code spawn;
183 enum Code shutdown; 177 enum Code shutdown;
178 enum Code deadLockDetected;
179 enum Code next;
184 struct Worker* workers; 180 struct Worker* workers;
185 } taskManager; 181 } TaskManager;
186 struct TaskManagerImpl { 182 struct TaskManagerImpl {
187 struct Queue *activeQueue; 183 struct Queue* activeQueue;
188 struct Queue *waitQueue; 184 struct Queue* taskQueue;
189 } taskManagerImpl; 185 } TaskManagerImpl;
190 struct Worker { 186 struct Worker {
191 int id; 187 int id;
192 struct Context* contexts; 188 struct Context* contexts;
193 enum Code execute; 189 enum Code execute;
194 enum Code taskSend; 190 enum Code taskSend;
195 enum Code taskRecive; 191 enum Code taskRecive;
196 enum Code shutdown; 192 enum Code shutdown;
197 struct Queue* tasks; 193 struct Queue* tasks;
198 } worker; 194 } Worker;
199 #ifdef USE_CUDA 195 #ifdef USE_CUDA
200 struct CudaTask { 196 struct CudaTask {
201 CUdevice device; 197 CUdevice device;
202 CUcontext cuCtx; 198 CUcontext cuCtx;
203 CUfunction code; 199 CUfunction code;
207 #endif 203 #endif
208 struct Main { 204 struct Main {
209 enum Code code; 205 enum Code code;
210 enum Code next; 206 enum Code next;
211 struct Queue* args; 207 struct Queue* args;
212 } main; 208 }
213 struct Task { 209 struct Task {
214 enum Code code; 210 enum Code code;
215 struct Queue* dataGears; 211 struct Queue* dataGears;
216 int idsCount; 212 int idsCount;
217 } Task; 213 } Task;
223 enum Code clear; 219 enum Code clear;
224 enum Code put; 220 enum Code put;
225 enum Code take; 221 enum Code take;
226 enum Code isEmpty; 222 enum Code isEmpty;
227 enum Code next; 223 enum Code next;
228 } queue; 224 } Queue;
229 struct SingleLinkedQueue { 225 struct SingleLinkedQueue {
230 struct Element* top; 226 struct Element* top;
231 struct Element* last; 227 struct Element* last;
232 } singleLinkedQueue; 228 } SingleLinkedQueue;
233 // Stack Interface 229 // Stack Interface
234 struct Stack { 230 struct Stack {
235 union Data* stack; 231 union Data* stack;
236 union Data* data; 232 union Data* data;
237 union Data* data1; 233 union Data* data1;