/* * @@name: taskloop.c * @@type: C * @@compilable: yes * @@linkable: no * @@expect: success */ void long_running_task(void); void loop_body(int i, int j); void parallel_work(void) { int i, j; #pragma omp taskgroup { #pragma omp task long_running_task(); // can execute concurrently #pragma omp taskloop private(j) grainsize(500) nogroup for (i = 0; i < 10000; i++) { // can execute concurrently for (j = 0; j < i; j++) { loop_body(i, j); } } } }