Parallelized with OMP