I'm not the best expert on uBLAS multiplication but may I suggest something: if speed is critical, why not using one of the bindings directly so that to take advantage hardware acceleration. One thing is sure, uBLAS in pure software mode will almost always be way slower than any hardware-based method, even with the most delicate optimizations.

Cheers,
David

On Thu, Jun 10, 2010 at 14:14, Anders Kabell Kristensen <dalko@cs.au.dk> wrote:
Hi there, this is my first post. Thank you for your time.

I'm implementing an algorithm where fast matrix multiplication is essential and the theoretical running-time is closely connected to the running-time of the matrix multiplication algorithm being used. As a matter of fact, some choices within the algorithm are made on the basis of the time complexity of matrix multiplication. Therefore, I'm interested in knowing exactly what's inside the uBLAS matrix multiplication algorithm. For example, naive mat.mult. has a complexity of O(n^3), whereas Strassen's method (http://en.wikipedia.org/wiki/Strassen_algorithm) has a complexity of O(n^2.807).

I suppose the uBLAS algorithm is very complex and varies between methods such as Strassen's and even the naive approach when appropriate, right? Can anyone give an outline?

Would it be possible to make a realistic estimate on the complexity? I guess that would be an estimate about the performance on square matrices.

And a related question: is it possible to force uBLAS to use naive mattrix multiplication? I need to use the naive approach, but if I implement it myself, I guess I wont be competitive with uBLAS.

Thanks again,
Anders K

_______________________________________________
ublas mailing list
ublas@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/ublas
Sent to: david.bellot@gmail.com



--
David Bellot, PhD
david.bellot@gmail.com
http://david.bellot.free.fr