chapel-lang / chapel

a Productive Parallel Programming Language
https://chapel-lang.org
Other
1.78k stars 419 forks source link

Improve LinearAlgebra module #5753

Open ben-albrecht opened 7 years ago

ben-albrecht commented 7 years ago

Planned improvements for LinearAlgebra module.

Features

Performance

Testing

Documentation

xSooDx commented 7 years ago

Hi @ben-albrecht

I want to apply for GSoC in your organisation and work on the Linear Algebra Library project. Since you have already started the module, I would like to help expand the feature set.

PrabhanjanPM commented 7 years ago

Hi @ben-albrecht

I raised a PR[1] a couple of days back that might address 'improve _expBySquaring' by fixing TODO- flatten recursion into while-loop. I also added a preliminary function to read matrices from files which was very helpful in running some tests after making the changes. What would be the expected functionality of such functions ? I feel file IO is the easier way to load large matrices into program. The compatibility of Chapel IO with octave/numpy IO would help in debugging and performance testing. [1] - https://github.com/chapel-lang/chapel/pull/5855

ben-albrecht commented 7 years ago

@xSooDx -- Thanks for your interest, I'll mark some of the tasks above as [easy] to make it clear where to start.

@PrabhanjanPM - Thanks for your contribution -- I'll review the code in the PR.

As for the readMatrix idea, it's not clear to me whether this should be a matrix-specific function or a more general data-reading function supporting all arrays. For example, we might want to support some subset of the IO utility routines numpy provides in our IO module for reading in generic data. We might also reason that native Chapel IO is elegant enough that it doesn't require such utility functions. Either way, I'd want to bounce these ideas off other core-team members before proceeding.

buddha314 commented 7 years ago

From the Intel Page we see a list of driver routines. The Singular Value Decomposition is one of the more widespread methods.

prithvipatl commented 6 years ago

Hi @ben-albrecht, My partner and I, want to apply for RGSoC in your organization and want to contribute for the same. The task of Iterators for upper/lower triangular matrices is unchecked. I would like to work on the same, can you please elaborate the task that needs to be completed or the staring point for the same? What is the expected functionality of the iterator?

ct-clmsn commented 6 years ago

@ben-albrecht could ya'll provide an implementation of SUMMA? the original paper has MPI code available (C) - a chapel version might be a good step toward distributed linear algebra. On the sparse side of the house - this algorithm might be good look at a non-ARPACK code supporting eigenvalue decompositions.

ben-albrecht commented 6 years ago

@ct-clmsn - I'll add it to the list. The implementation you linked says "not found" for me.

ian-bertolacci commented 6 years ago

Fixed link

josephjohnjj commented 5 years ago

Hi @ben-albrecht,

Would it be possible to provide an implementation of SparseLU in Chapel?

ben-albrecht commented 5 years ago

@josephjohnjj -Sorry that I missed your comment. I'll add it to the list above. Let me know if you're interested in contributing.

ben-albrecht commented 4 years ago

Removing from the list, due to low priority/interest:

Specific functions