Here is multi-threaded SSE2-optimized implementation of matrix multiplication algorithm for the case when one or both matrices are sparse:
It is equivalent to * operator in Matlab (or mtimes function), but substantially faster. It is even faster than Intel MKL equivalent.
See "doc/readme.txt" for details.
Here are main points:
multiplies matrices A and B, at least one of them must be sparse, A and B may be real or complex in any combination.
Precompiled functions are included, if it doesn't run install Microsoft Visual C++ Redistributable Package for your platform.
I tested its performance on my PC's and summarized the results here:
You can do a quick performance comparison be running commands like this:
Previously, I published it here without source code:
This new version comes with source code and has been improved in many ways.
This new version has been further optimized in following ways:
Note that this software and source code is available for free for testing purposes only and not for commercial use.
I'll be glad to see speed tests and bug reports in this thread.
||1/6/2011 4:00:08 PM