This is a continuation the open source project I worked on the previous blog.
Here I found few hotspots to optimize the OpenMP code in the same repository.
I found this code in GitHub which solves N-body problem using traditional Newtonian gravitational equations. The repository owner, pchapin, has already tried various parallelizing methods like – pthreads, OpenMP, MPI, and CUDA.
While going through the whole programs and running it for different inputs. I discovered that there few of spots for improvement for the CUDA code. So I compiled the CUDA code with nvcc and ran it on nvprof.
Python is a wonderful language. One of my favorite languages. It is so easy to express logic in python. But it lacks one thing, the ability to use multicore processors hence ability to do things in parallel. One reason is python’s Global Interpreter Lock (GIL).
But python has provided us with Threading library. So why can’t we use it?