Mercurial > hg > Members > innparusu > Gears
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 |