32 unsigned long long lb;
33 unsigned long long ub;
47 task_dst->
last = lastpriv;
65 size_t sizeof_kmp_task_t,
size_t sizeof_shareds,
80 task->
th = omp_get_thread_num();
99 #pragma omp parallel num_threads(N)
135 tc = (
LB -
UB) / (-
ST) + 1;
141 count = (sched_val > tc) ? 1 : (tc + sched_val - 1) / sched_val;
143 count = (sched_val > tc) ? tc : sched_val;
145 if (
j !=
LB + (tc - 1) *
ST) {
146 printf(
"Error in lastprivate, %d != %d\n",
j,
LB + (tc - 1) *
ST);
150 printf(
"Error, counter %d != %d\n",
counter, tc);
159int main(
int argc,
char *argv[]) {
165 printf(
"Test passed\n");
sched_type
Describes the loop schedule to be used for a parallel for loop.
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 count
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
unsigned long long kmp_uint64
int __kmpc_global_thread_num(void *id_ref)
int task_entry(int gtid, ptask task)
void __task_dup_entry(ptask task_dst, ptask task_src, int lastpriv)
void __kmpc_atomic_fixed4_add(void *id_ref, int gtid, int *lhs, int rhs)
int(* task_entry_t)(int, ptask)
unsigned long long kmp_uint64
void __kmpc_taskloop_5(ident_t *loc, int gtid, kmp_task_t *task, int if_val, kmp_uint64 *lb, kmp_uint64 *ub, kmp_int64 st, int nogroup, int sched, kmp_int64 grainsize, int modifier, void *task_dup)
ptask __kmpc_omp_task_alloc(ident_t *loc, int gtid, int flags, size_t sizeof_kmp_task_t, size_t sizeof_shareds, task_entry_t task_entry)
void task_loop(int sched_type, int sched_val, int modifier)
static void my_sleep(double sleeptime)
Utility function to have a sleep function with better resolution and which only stops one thread.
The ident structure that describes a source location.
int(* routine)(int, struct task *)