views:

111

answers:

2

Hi,

For my studies, we have code for matrix multiplication, for sizes between 1000-10000. It looks pretty fast, and uses GPU for calculations. As homework we need to find number crunching applications, with available source code, whose bottlenecks are in matrix multiplication. We will connect the program with the GPU code for matrix multiplication and measure speedup.

My question is - where can I find information about such applications, or if you can tell me some of them. Even scientific simulation codes would help. Our teacher talked about Molecular Dynamics and similar, but we are Computer Science students and have no experience with that.

Thanks a lot

+1  A: 

Perhaps this will help: Molecular Dynamics Simulation Packages.

Hope that helps. Good luck!

Moron
this looks good! now i have to figure out what kind of operations they do in the bottlenecks
Werner
@Werner: There is nothing easier than finding bottlenecks. It is much easier than debugging, though your teachers are probably not aware of it. Use this method: http://stackoverflow.com/questions/2624667/whats-a-very-easy-c-profiler-vc/2624725#2624725
Mike Dunlavey
+1  A: 

you can take a look at MPQC quantum chemistry program, which is open source hosted on source forge.

Particularly, you can try replacing matrix multiplication in mp2 with GPU equivalents. In general, you may have to know internals of the program to successively replace kernels like that. However mp2 is relatively simple as far as matrix multiplications concerned.

If you need more information, send a message.

aaa
@aaa: excellent suggestion.
Mike Dunlavey
very interesting, thanks a lot. just one question, how did you know that matrix multiplications are involved here? because you work with this software often or just because it deals with quantum chemistry? do you then think all quantum chemistry applications have to do with matrix mult?
Werner
@Werner: If I can answer for aaa, in quantum physics, matrix multiplication is like breathing. A quantum state is a vector giving the amplitude of every possible physical state, a set of such states is a matrix, and the way it evolves in time is to be multiplied by a unitary transformation matrix, i.e. a rotation.
Mike Dunlavey