OMP implementation