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.
Category: Parallel Computing
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.
A few days ago, I started learning about tensorflow, it is the google’s new open source library for doing various machine learning.
One of the reasons I wanted to try tensorflow was – I heard that tensorflow is heavily parallelized, so I just became curious to know how people do it. Tensorflow can also run on GPU which made me more curious.
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?