NSight , Matlab or python

I am starting a big project in neuroscience, and not sure which platform should i use.
The tendency is to use matlab or python due to ease of programming and using built in commands, though im not sure what would be the cost in runtime terms.
Can anyone please recommend?
Thanks
roy

Hey Everyone i am sure someone has something smart to say about this please advice i would be happy to any input

Hey Everyone i am sure someone has something smart to say about this please advice i would be happy to any input

C/C++ that way you won’t run into any strange python limitations or matlab limitations.

I might be interested in helping you out with your project.

Neurons and stuff like that is one of the few if not the only programming topic I suck at or can’t wrap my mind around it, or need help with. Neurons seems like a blackbox I understand that… but which parameters are best and which are not… I guess that can be evolved.

I would be interesting in creating some “artificial brain” and hooking it up to some sensory input and motor/firing output for example for a game controlled arrow/plane.

The brain could also be evolved by special code which would tweak/change it’s ammount of neurons and perhaps it’s connections and such.

You would program the neuron formula’s and such.

So if you interested in something like that then I am interested too.

However I also have a lot of work to do for my current project, which involves evolving too… but once that is done… neuron brain seems like a good second project.

It could also help/be interesting to try and so it at the same time… but unlikely that I have time for that… but helping you out with idea’s, comments, code, algorithms, cuda I think I can manage that…

At the end of my programming/work day I have some free time to answer questions from other people on this forum… I learn from it as well ;) :)

C/C++ that way you won’t run into any strange python limitations or matlab limitations.

I might be interested in helping you out with your project.

Neurons and stuff like that is one of the few if not the only programming topic I suck at or can’t wrap my mind around it, or need help with. Neurons seems like a blackbox I understand that… but which parameters are best and which are not… I guess that can be evolved.

I would be interesting in creating some “artificial brain” and hooking it up to some sensory input and motor/firing output for example for a game controlled arrow/plane.

The brain could also be evolved by special code which would tweak/change it’s ammount of neurons and perhaps it’s connections and such.

You would program the neuron formula’s and such.

So if you interested in something like that then I am interested too.

However I also have a lot of work to do for my current project, which involves evolving too… but once that is done… neuron brain seems like a good second project.

It could also help/be interesting to try and so it at the same time… but unlikely that I have time for that… but helping you out with idea’s, comments, code, algorithms, cuda I think I can manage that…

At the end of my programming/work day I have some free time to answer questions from other people on this forum… I learn from it as well ;) :)

Life is too short for C++, unless you have a specific requirement that mandates its use.

The most important thing about using Python for numerical work is to first embrace NumPy. Read the documentation several times, and always ask yourself if there is a numpy function that represents what you want. Explicit looping over big arrays in Python is the performance killer. And there is always the option to isolate pieces of code that need to go really fast in a separate compiled function using things like Cython, Boost.Python or SWIG.

Since this is a CUDA forum, I should also point out that PyCUDA provides a nice interface for pushing Numpy arrays to a CUDA device and executing operations there, including your own custom CUDA kernels.

Life is too short for C++, unless you have a specific requirement that mandates its use.

The most important thing about using Python for numerical work is to first embrace NumPy. Read the documentation several times, and always ask yourself if there is a numpy function that represents what you want. Explicit looping over big arrays in Python is the performance killer. And there is always the option to isolate pieces of code that need to go really fast in a separate compiled function using things like Cython, Boost.Python or SWIG.

Since this is a CUDA forum, I should also point out that PyCUDA provides a nice interface for pushing Numpy arrays to a CUDA device and executing operations there, including your own custom CUDA kernels.

Hey Skybuck

This is great news the project would be starting in two weeks we are 3 programmers and we would love any help we can get.

The aim of the project is to make simulations of neurons meaning implementing their morphology adding channels to mimic the behavior of neurons under electrophysiology recording - we are an electrophysiology lab that have a theory group that uses data from real recording and trying to simulate the experiment using CUDA. We would use the program called NEURON as comparison for the one we would develop. if this interest you please send me a mail we could skype ill tell you more details

bens.roy@gmail.com

Regards

roy

Hey seibert

Thanks for your reply my first thought was to choose PyCUDA, though first impression seemed that it is still immature though i have dug into it yet. we are doing this project solely to improve performance of simulations of neurons which would mostly be solving Partial differential equations do you think cython can help with this?

I use PyCUDA quite a lot, and it works well as a wrapper around CUDA if you want to pass back and forth arrays of standard data types. Right now I think the biggest problem is that PyCUDA has is not pushing out a new release with all the improvements sitting in their development repository. I’ve switched to using the latest version from the development trunk because the last official release lacks several features I need.

I don’t work with PDEs, so I don’t have any experience here. In the rare cases I need to jump out to C++, I use PyROOT, but that library is peculiar to the particle physics world and only makes sense if you already have (and have learned the idiosyncrasies of) the ROOT analysis framework written by CERN. That is why I suggest you consider the other Python-to-C++ bridges in the event you need more speed.

I should point out, if you have more experience with Matlab, it sounds like that also works fine. You occasionally see this company:

http://www.accelereyes.com/

pop up in the CUDA forum mentioning their GPU acceleration for Matlab which does a lot more than PyCUDA. I have no personal experience with Jacket, but it might be worth checking out the free trial.

Thanks a lot ill check it out and report back

Depends a LOT on how many neurons and what level of detail you plan to model them at. I have some experience coding this sort of thing. You might look at some ongoing projects: Henry Markram’s BlueBrain project at EPFL, Dharmendra Modha’s Cognitive Computing group at IBM’s Almaden Research Center, NCS from the Brain Computing Lab at UNR (though that’s in something of a hiatus since the untimely death of the principal researcher, Phil Goodman, last fall), and others.

For neuron models less detailed than what NEURON does, the real bottleneck is not computation, it’s passing the spiking information around.

James