add openmp, not finished