1

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

Mike Dunlavey
  • 40,059
  • 14
  • 91
  • 135
Open the way
  • 26,225
  • 51
  • 142
  • 196
  • So you are asking for applications or just things that take a ton of matrix multiplication to accomplish. And hopefully there is source available so you can hack in your matrix mul unit to test speedup? Is this correct? If so, any sort of 3D scene rendering would fit the bill. – Michael Dorgan Jun 03 '10 at 18:48
  • yes, I am asking for both applications or things, with some popularity or even better, some scientific applications involving simulations, for molecules, for instance, thanks a lot – Open the way Jun 03 '10 at 18:50
  • I did it already and of course it works, but for the class we need a real example application – Open the way Jun 03 '10 at 18:54
  • i learned that electrostatic calculations imply lots os matrix algebra, and in some simulations it can take ages, or even quantum mechanic. can you show me an example of scientific simulation that is not limited by matrix algebra? – Open the way Jun 03 '10 at 20:40
  • 2
    @Werner - No, you misunderstood. What I was trying to say was that, in the large span of operations that "matrix algebra" covers, matrix multiplications per se is not one of the more costly ones. For example, trying to find an inverse of a matrix is several orders of magnitude most expensive (processor work wise). Also, just so it isn't misinterpreted from your semi-last comment by a passing observer, matrix algebra is a very wide term. It may be wiser to somewhat be more specific in that segment. As far as limits go, none of the "scientific simulations", whatever that includes, is limited – Rook Jun 03 '10 at 22:51
  • per se. What sets the limits are the number of degrees of freedom / independent variables, which we require to make some sensible conclusions from the solution. Their number sets constrains on memory needed/cpu time ... and that is the problem you probably were reffering to. As far as your last question goes, yes, I can name several - but nowadays they wouldn't be considered "scientfic simulations" anymore. For example, determining a pressure distribution around a profile in the 60ties was most certanly a "problem". Nowadays, not that much. – Rook Jun 03 '10 at 22:52
  • hi Idigas, yes you are totally right in your observation and thanks for the clarification – Open the way Jun 04 '10 at 06:49

2 Answers2

1

Perhaps this will help: Molecular Dynamics Simulation Packages.

Hope that helps. Good luck!

  • this looks good! now i have to figure out what kind of operations they do in the bottlenecks – Open the way Jun 03 '10 at 19:19
  • @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 Jun 04 '10 at 00:35
1

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.

Anycorn
  • 50,217
  • 42
  • 167
  • 261
  • 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? – Open the way Jun 04 '10 at 06:57
  • @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 Jun 04 '10 at 12:36