75#define mysleep(n) Sleep(n)
78#define mysleep(n) usleep((n)*1000)
95#define DEP_ALL_MEM 0x80
117#pragma omp atomic capture
119 th = omp_get_thread_num();
120 printf(
"task m_%d, th %d, checker %d\n",
ptask->
f_priv, th, lcheck);
123 printf(
"Error m1, checker %d != 1\n", lcheck);
126#pragma omp atomic read
130 printf(
"Error m2, checker %d != 1\n", lcheck);
139#pragma omp atomic capture
141 th = omp_get_thread_num();
142 printf(
"task 2_%d, th %d, checker %d\n",
ptask->
f_priv, th, lcheck);
145 printf(
"Error s1, checker %d != 1\n", lcheck);
148#pragma omp atomic read
152 printf(
"Error s2, checker %d != 1\n", lcheck);
166 dep *dep_lst,
int nd_noalias,
dep *noalias_lst);
167static id loc = {0, 2, 0, 0,
";file;func;0;0;;"};
175 char *ompx_all_memory = (
void *)0xffffffffffffffff;
181#pragma omp single nowait
186 int t = omp_get_thread_num();
187#pragma omp task depend(in : i1, i2)
190#pragma omp atomic capture
192 th = omp_get_thread_num();
193 printf(
"task 0_%d, th %d, checker %d\n", t, th, lcheck);
194 if (lcheck > 2 || lcheck < 1) {
196 printf(
"Error1, checker %d, not 1 or 2\n", lcheck);
199#pragma omp atomic read
201 if (lcheck > 2 || lcheck < 1) {
204 printf(
"Error2, checker %d, not 1 or 2\n", lcheck);
209#pragma omp task depend(in : i1, i2)
212#pragma omp atomic capture
214 th = omp_get_thread_num();
215 printf(
"task 1_%d, th %d, checker %d\n", t, th, lcheck);
216 if (lcheck > 2 || lcheck < 1) {
218 printf(
"Error3, checker %d, not 1 or 2\n", lcheck);
221#pragma omp atomic read
223 if (lcheck > 2 || lcheck < 1) {
225 printf(
"Error4, checker %d, not 1 or 2\n", lcheck);
233 sdep[0].
addr = (size_t)&i1;
236 sdep[1].
addr = (size_t)&i2;
243#pragma omp task depend(in : i1) depend(inout : ompx_all_memory[0])
246#pragma omp atomic capture
248 th = omp_get_thread_num();
249 printf(
"task m_%d, th %d, checker %d\n", t, th, lcheck);
252 printf(
"Error m1, checker %d != 1\n", lcheck);
255#pragma omp atomic read
259 printf(
"Error m2, checker %d != 1\n", lcheck);
265#pragma omp task depend(in : i1, i2)
268#pragma omp atomic capture
270 th = omp_get_thread_num();
271 printf(
"task 4_%d, th %d, checker %d\n", t, th, lcheck);
272 if (lcheck > 2 || lcheck < 1) {
274 printf(
"Error5, checker %d, not 1 or 2\n", lcheck);
277#pragma omp atomic read
279 if (lcheck > 2 || lcheck < 1) {
281 printf(
"Error6, checker %d, not 1 or 2\n", lcheck);
286#pragma omp task depend(in : i1, i2)
289#pragma omp atomic capture
291 th = omp_get_thread_num();
292 printf(
"task 5_%d, th %d, checker %d\n", t, th, lcheck);
293 if (lcheck > 2 || lcheck < 1) {
295 printf(
"Error7, checker %d, not 1 or 2\n", lcheck);
298#pragma omp atomic read
300 if (lcheck > 2 || lcheck < 1) {
302 printf(
"Error8, checker %d, not 1 or 2\n", lcheck);
308#pragma omp task depend(inout : ompx_all_memory[0])
311#pragma omp atomic capture
313 th = omp_get_thread_num();
314 printf(
"task m_%d, th %d, checker %d\n", t, th, lcheck);
317 printf(
"Error m1, checker %d != 1\n", lcheck);
320#pragma omp atomic read
324 printf(
"Error m2, checker %d != 1\n", lcheck);
330#pragma omp task depend(inout : ompx_all_memory[0]) depend(mutexinoutset : i3)
333#pragma omp atomic capture
335 th = omp_get_thread_num();
336 printf(
"task m_%d, th %d, checker %d\n", t, th, lcheck);
339 printf(
"Error m1, checker %d != 1\n", lcheck);
342#pragma omp atomic read
346 printf(
"Error m2, checker %d != 1\n", lcheck);
351#pragma omp task depend(in : i3)
354#pragma omp atomic capture
356 th = omp_get_thread_num();
357 printf(
"task 8_%d, th %d, checker %d\n", t, th, lcheck);
360 printf(
"Error9, checker %d, != 1\n", lcheck);
363#pragma omp atomic read
367 printf(
"Error10, checker %d, != 1\n", lcheck);
378 printf(
"failed, err = %d, checker = %d\n",
err,
checker);
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type size_t void ITT_FORMAT p const __itt_domain __itt_id __itt_string_handle const wchar_t size_t ITT_FORMAT lu const __itt_domain __itt_id __itt_relation __itt_id ITT_FORMAT p const wchar_t int ITT_FORMAT __itt_group_mark d int
#define omp_set_num_threads
int thunk_s(int gtid, task_t *ptask)
int(* entry_t)(int, task_t *)
int thunk_m(int gtid, task_t *ptask)
int __kmpc_omp_task_with_deps(id *loc, int gtid, task_t *task, int ndeps, dep *dep_lst, int nd_noalias, dep *noalias_lst)
task_t * __kmpc_omp_task_alloc(id *loc, int gtid, int flags, size_t sz, size_t shar, entry_t rtn)
int __kmpc_global_thread_num(id *)