basic omp implementation