comparison src/parallel_execution/context.h @ 138:337fdbffa693 default tip

Merge
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Sat, 01 Oct 2016 00:23:35 +0900
parents 36ac17d37be4 77e60b6cdace
children
comparison
equal deleted inserted replaced
137:fe1fbfec7d01 138:337fdbffa693
64 CreateData2, 64 CreateData2,
65 CreateTask1, 65 CreateTask1,
66 CreateTask2, 66 CreateTask2,
67 CreateTask3, 67 CreateTask3,
68 CreateTask4, 68 CreateTask4,
69 CreateTask5,
70 CreateTask6,
71 Poll1,
72 Poll2,
69 PutQueue1, 73 PutQueue1,
70 PutQueue2, 74 PutQueue2,
71 PutQueue3, 75 PutQueue3,
72 PutQueue4, 76 PutQueue4,
73 GetQueue, 77 GetTask,
78 GetQueue1,
79 GetInputData1,
80 GetInputData2,
81 GetOutputData1,
82 GetOutputData2,
83 WaitFor,
74 SpawnTask, 84 SpawnTask,
85 CheckTaskFinish1,
86 CheckTaskFinish2,
75 Twice, 87 Twice,
88 Add,
89 Mult,
76 StartTime, 90 StartTime,
77 EndTime, 91 EndTime,
78 Exit, 92 Exit,
79 }; 93 };
80 94
108 pthread_t thread; 122 pthread_t thread;
109 int thread_num; 123 int thread_num;
110 stack_ptr code_stack; 124 stack_ptr code_stack;
111 stack_ptr node_stack; 125 stack_ptr node_stack;
112 int dataNum; 126 int dataNum;
127 int metaDataNum;
113 union Data **data; 128 union Data **data;
129 union MetaData **mData;
114 }; 130 };
115 131
116 union Data { 132 union Data {
117 struct Time { 133 struct Time {
118 enum Code next; 134 enum Code next;
134 CUstream stream; 150 CUstream stream;
135 } cudatask; 151 } cudatask;
136 #endif 152 #endif
137 struct Task { 153 struct Task {
138 enum Code code; 154 enum Code code;
139 int key; 155 int iKeys[2];
140 struct Queue* waitMe; 156 int oKeys[1];
141 struct Queue* waitI;
142 int idsCount; 157 int idsCount;
158 union Data* iargs[2];
159 union Data* oargs[1];
143 } task; 160 } task;
144 struct Queue { 161 struct Queue {
145 struct Element* first; 162 struct Element* first;
146 struct Element* last; 163 struct Element* last;
147 int count; 164 int count;
165 enum Code next;
166 enum Code emptyNext;
148 } queue; 167 } queue;
149 struct Element { 168 struct Element {
150 union Data* data; 169 union Data* data;
151 struct Element* next; 170 struct Element* next;
152 } element; 171 } element;
181 } node; 200 } node;
182 struct Allocate { 201 struct Allocate {
183 enum Code next; 202 enum Code next;
184 long size; 203 long size;
185 } allocate; 204 } allocate;
186 struct OutPutDataSegments { 205 struct Integer {
187 union Data **data; 206 int value;
188 } ods; 207 int mDataOffset;
208 } integer;
189 }; 209 };
190 210
191 union MetaData { 211 union MetaData {
192 struct Queue waitMeTasks; 212 struct Queue waitMeTasks;
193 struct Queue waitI; 213 };
194 }; 214
195