parallel with openMP
make it faster