Apparently the trip to SERC, IISc has been fruitful. Even though the field of parallel processing maybe intensely convoluted and even after facing the atrocities of Linux, I have managed to retain my nerves. It was evident that programming using threads and MPIs are two completely different approaches to PP but the problem at hand requires extensive knowledge of both.
We shall be using multiple clusters each having multiple cores which makes the job interesting, if not frightening. I was exposed to graph partitioning and realised that METIS made my job a LOT easier. All i had to do was to generate the graph containing a list of expected interactions every atom would be having, which was a piece of cake considering the program structure. Incorporating the pmetis code into my existing program took a lot of time: linking it to its libraries was a major bottleneck, eventually circumvented by running my original code itself from the metis test folder. I also learnt gcc and g++ are disturbingly different, and had to change my .cpp to a .c as the metis code was written in C.
After writing (copying :D ) a program to compute the value of pi, I got a clearer idea of POSIX threads. Now all I have to do, is to implement POSIX threads on my MD code, which is going to be a helluva job. And wait! I haven't even begun on cluster programming and MPI, so till then i wont be using METIS.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment