#pragma omp task #pragma omp parallel shared(p_vec) private(i) { #pragma omp single { for (i=0; i<N; i++) { double r = random_number(); if (p_vec[i] > r) { #pragma omp task do_work (p_vec[i]);