Use OpenMP for CPU implementation