I have to multiply 2 (most of the times) sparse matrix. Those matrix are pretty bit (about 10k*10k) and i've a two Xeon Quad core and just one thread for this job?
is there any fast library for multi-thread moltiplication? any other advice?
I have to multiply 2 (most of the times) sparse matrix. Those matrix are pretty bit (about 10k*10k) and i've a two Xeon Quad core and just one thread for this job?
is there any fast library for multi-thread moltiplication? any other advice?
Do it on a GPU? http://www.nvidia.com/object/io_1254288141829.html
Hi
Yes, there are libraries for multi-threaded matrix multiplication; let Google be your friend. Though if you only have one thread multithreading may not be necessary. Why do you have only one thread on an 8-core machine ? One library to consider is the Java BLAS interface.
You're definitely taking the right approach, looking for a library rather than trying to write this yourself.
Regards
Mark
I would try Colt, from CERN. It's a bit old now, but still provides excellent libraries for what you are trying.
For parallel processing, try the newer Parallel Colt.
With due respect to Colt and Parallel Colt, they are not very fast. If you insist on using Java and expect fast numerical computations, use JBLAS. JBLAS uses ATLAS. I have compiled JBLAS to use multithreaded ATLAS - it does not do this by default. You would need to change a few configure options. However even single threaded JBLAS is faster than multithreaded Colt and Parallel Colt. I tested Colt, Parallel Colt, JAMA and JBLAS. JBLAS is the best by a country mile.
Colt and Parallel Colt are very slow. So is JAMA. The best library in Java for such things is JBLAS.