Friday, 2 April 2010

Special Thanks to..

Special thanks to:

- James Bednar, professor at Edinburgh University, for a cool project proposal
- Chris, PhD student at Edunburgh University CSNG group for all the help he offered from the very beginning of this project till, literally, last minutes.
- mpi4py developers for mpi4py and letting keep the address name for this blog
- Olaf Lenz for PMI - this module saved me a lot of time!
- Abe for thesis proof-reading and commenting (at 6am on Wednesday morning!)
- That guy in Chris's office who had a thesis cover page template
- As always, family and friends for support


P.S. One funny (-ish) fact is that actually, until september 2009 I was going to work on a completely different (all projects are allocated in May), and then suddenly changed my mind, came to Jim and asked if he had anything I could work on, and he offered me to optimise Topographica with MPI.

Thursday, 1 April 2010

Day 124

Day 124: Debriefing

Well, as I have finally submitted my thesis (Have to admit, this was the first paper of such kind that I have ever written in my life and, bloody hell, that was a nightmare!) the project is officially over now, and it's time to summarise the results. Perhaps, it would be useful to reiterate the objectives first (I'll just copy bits from my thesis):

Purpose of the project:

Optimising the Open-Source Neural Map Simulator Topographica by making it capable of distributing its heaviest computations over CPU cores of one machine or over a network of independent machines would allow users of Topographica to run experiments on a bigger scale than it was previously possible. This is expected to help neuroscientists have a better understanding of brain activity at the cortical level. Such understanding, apart from expanding the pool of human knowledge, could potentially assist in the creation of medicines to combat and, hopefully, cure mental diseases, and, possibly benefit the human race in other, as yet undiscovered ways.

Primary Objective
Improve the performance of Topographica simulations by using the High Performance Computing approach, allowing Topographica to take advantage of the computational power of both Multiprocessing and Cluster architectures.

Other Objectives
- Research and summarise how distributing computations with the Message Passing Interface can benefit Topographica
- Research what MPI software packages are currently available and can be utilised for optimising Topographica simulations
- Create a strong base for future development and optimisation



Was it successful with regards to that? Can't tell, it's really not for me to decide, let the markers do their job=) Am I satisfied? Yes. Anyway, a quick summary of achievements:

- We proved that it is possible to reach high performance with MPI in Topographica simulations
- x3.2 maximum speed-up factor, relative to the original single-processed implementation, has been recorded at realistic simulations with Lissom model at 142 cortex density, 24 LGN and retina densities (values used in most of examples for the CMVC book)
-We analysed the current range of available MPI tools and found the most suitable up to this date modules and packages
- Pinpointed the slow-down factors of both shared-memory and distributed models, on which further development efforts should be concentrated
- Created a strong base for further optimisations and development work


I remember once Jim (my supervisor) has mentioned that he had posted a proposal for the next year's Honours Projects - "High Performance Cortical Simulator", basically taking this project to the next level. He also said that someone was very interested and there was a fair chance this work would be picked from up from the point where I finished. Well, all I can say about this as someone who knows the current state of things with Topographica and MPI: it's not going to be easy in any way. However, having said this, I hope that the person won't change his or her mind and will continue my work. I wish that person all the best of luck and I would be very excited to hear about their progress. Maybe this blog will even get a second author, who knows!=)

What about myself? Well, in the short run, I still have some data from the experiments that I want to post here in the next few days, so stay tuned. In the long-run, I'm applying to EPCC (Edinburgh Parallel Computing Centre), for the MSC in High Performance Computing and to some other universities that do similar courses. If I get a place (fingers crossed), I will have more stuff to write about.

Well, perhaps that's all I wanted to say for now.



Yours,

Konstantin