Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parallelized matrix operations? #191

Open
SamoylovMD opened this issue Jun 12, 2014 · 1 comment
Open

Parallelized matrix operations? #191

SamoylovMD opened this issue Jun 12, 2014 · 1 comment
Labels
Milestone

Comments

@SamoylovMD
Copy link
Contributor

We could improve performance of matrix addition and multiplication using parallelized computations. For example, we can start from these papers:
http://www.cse.buffalo.edu/faculty/miller/Courses/CSE633/Sandeep-Raghuraman-Fall-2011.pdf
http://www.cse.buffalo.edu/faculty/miller/Courses/CSE633/Ortega-Fall-2012-CSE633.pdf

Also, we could implement Karatsuba multiplication which has better asymptotic work time:
http://en.wikipedia.org/wiki/Karatsuba_algorithm

@vkostyukov vkostyukov added this to the la4j-0.6.0 milestone Jun 30, 2014
@vkostyukov
Copy link
Owner

Yeah. Having a parallel LA library for Java is awesome. Is that is Parallel Colt is trying to handle. I was thinking quite a lot of this problem and decided to focus on a single-threaded solution. I see the la4j library as a very-simple and lightweight tool for solving LA problems in small- middle-size projects (Android Apps?). In such projects you usually don't need multithreading (the problem size is not big). But if you want to handle a huge science problem using cluster/supercomputer then the Java language as well as la4j library isn't the right tool for you. You will probably end up writing a custom low-level multithreading code using MPI/OpenMP and C++ instead for your partucualr problem (using particular consttraints and knowledges).

I'ts just impossible to write an efficient general soltuion (especially for sparse data). Trust me, even almost all the universities with their resources failed to do that.

So, the lighweight tool that work as fast as possible in a single-thread is somthing that we can handle by ourselfs. Let's focus on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants