How to use lock in OpenMP?

You want the OMP_SET_LOCK/OMP_UNSET_LOCK functions: https://hpc.llnl.gov/tuts/openMP/#OMP_SET_LOCK Basically: omp_lock_t writelock; omp_init_lock(&writelock); #pragma omp parallel for for ( i = 0; i < x; i++ ) { // some stuff omp_set_lock(&writelock); // one thread at a time stuff omp_unset_lock(&writelock); // some stuff } omp_destroy_lock(&writelock); Most locking routines such as pthreads semaphores and sysv semaphores work on that … Read more