dislib
dislib copied to clipboard
SVD limitations
The current implementation of SVD has the following limitations:
- Convergence checking needs to synchronize data (could be improved with exceptions mechanism)
- Convergence criteria should be revised because it was not completely clear to me how to compute it
- n_rows needs to be greater than n_cols (this could be solved by implementing a row-wise algorithm or by transposing the ds-array)
- Uses the simplest pairings for columns, which might not be the best for parallelism (other pairings should be explored)
- Doesn't work for irregular ds-arrays
- It might be better to compute V.T instead of V
- The input array needs at least 2 column blocks (we could use numpy directly or a row-wise algorithm for ds-arrays with one column block)