So, this post is mainly for the people who took the Math697SC course, Computational methods for stochastic systems this semester from the maths department at UMass, but then I thought the info might be of interest to more people than that, so instead of writing an email, I wrote everything directly here. We talked about a couple of things during my presentation and I thought that I would make all that accessible.
Matlab + GPUs
As we said in class, it’s perfectly possible to run GPU accelerated code directly from Matlab by using a couple of special functions. Those functions depend on toolbox you are using. Two commercial packages are : Mathworks Parallel Computing Toolbox (or PCT) and Jacket from Accelereyes. The PCT has the advantage that it also allows for multicore computation as well, while Jacket seems to have better performance. Here’s an old benchmark in the Accelereyes forum & something that I did a few years ago.
There’s also a free, open-source package called GPUmat. I have zero experience with that. If you try it, please let me know how it does in terms of performance.
Did you like the animation I showed in class? Those are really easy to do with processing, one of my favourite tools. Processing started as a project by Ben Fry and Casey Reas at the MIT media lab during 2001, but now has evolved way beyond that. The syntax follows the rules of Java (as processing is based on Java) but with an emphasis on visualization and animation. Programs in processing are called sketches and, by clicking a button, you can then turn them to standalone applications that can run either locally or through a website. For example, you can play with the animation I showed in class here.
Visualization in general …
So, I’m sure that you agree that visualization is a very important concept in the applied sciences. You may also have found yourself often thinking about how you could visualize something better but the tools that you have only give you the ability to do graphs and pie charts. If you indeed think like that, then this next idea may interest you.
I wanted for a long time to work more in understanding how to visualize things in new ways. So, I thought that we could have like a mini-seminar in the department between the people who would like to use processing for scientific visualization. We would start with processing basics & advanced stuff (for which we wouldn’t need to meet, an email list/mini-forum would suffice). That wouldn’t take a lot of time for someone with experience in programming. Then we could work together on a book on visualization like this one (ask me about it) & see what other people have done. I know that we will have a lot of classes and stuff but I think that this would be something cool to do! Just something to keep in mind for next semester.