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

Performance issue with transposing in dmdexactevaluate #2

Open
nbren12 opened this issue May 16, 2018 · 2 comments
Open

Performance issue with transposing in dmdexactevaluate #2

nbren12 opened this issue May 16, 2018 · 2 comments
Assignees

Comments

@nbren12
Copy link

nbren12 commented May 16, 2018

I hope you don't mind these issues I am opening up. The exact DMD function is pretty slow for me because my data is about 15000 samples with 2500 features. I did some profiling and the lines involving transpose are the most expensive steps. I think julia arrays are memory-contiguous along the columns, so one solution would be to assume that the data is already given with time as the second index. Most datasets I have worked with are stored on disk in this way anyway.
I am not sure what the best choice is in terms of memory layout for the optimized DMD solvers though.

nbren12 added a commit to nbren12/RobustDMD.jl that referenced this issue May 16, 2018
1. inlined the computation of the trapezoid rule, and avoided unnessary
transpose calls
2. Used an iterative SVD solver rather than full svd (50% improvement in run
   time)

Resolves UW-AMO#2
@askhamwhat
Copy link
Collaborator

No worries, glad someone's using it!

I think it's worth looking for more efficiencies in that code, especially re: larger matrices. One big thing would be to replace the SVD call in it by a randomized SVD call, a la Halko-Martinsson-Tropp.

@askhamwhat askhamwhat self-assigned this May 16, 2018
@nbren12
Copy link
Author

nbren12 commented May 16, 2018 via email

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

No branches or pull requests

2 participants