-
Notifications
You must be signed in to change notification settings - Fork 3
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
Sparse matrix support as a linear operator #18
Comments
By the way, I don't know how to add a label for this issue. If this violates the contribution guideline, please let me know how to fix it. I guess this should belong to the question label... |
Hi @kyoungseoun-chung, I think this is a classical case where distributed computing/dask/pylops-distributed (in the order of level of abstraction) is not really needed and so you may not get the benefit you wished to have. Let me try to explain a bit more what I mean. Distributed computing, which is what dask does (and what pelops-distributed offers in the context of inverse problems), is beneficial when you have a very large problem that cannot sit in memory of a single computer, or even if this is not the case, when you expect to have very large computations interleaved by some smaller times for communication. On the other hand if your problem easily fits in memory and computations are fairly small, the overhead will kill any benefit of the distribution. I worry this is the case for your problem. The first thing I noticed is that if your A is NxNy x NxNy and you choose I also must admit I never used Dask with sparse arrays so I have little experience there but if I do:
I get quite instantaneous result. If I do add:
this takes a huge amount of time and gives me an error. Even worse, if I do something much simpler:
I get the same error: |
Hi,
I am currently working on implementing your optimization module (conjugate gradient method) to solve a linear system.
The system that I am trying to solve is, simple 2D Poisson equation. Therefore, left-hand side matrix is a sparse matrix and my goal is to use pylops_distributed to reduce calculation time. (below is code snippets that I am testing)
The problem or question I have is that I cannot have any benefits of using distributed computation.
I am comparing this to scipy.linalg and pyamg libraries and pylops_distributed gives me about 100times slower calculation time.
Also, I observed the smaller the workers, the faster the calculation. Seems like there is a communication overhead.
I just wonder whether this is a known issue or not. (or whether pylops_distrubted is suitable to solve the problem I am tacking or not)
Thank you in advance!
Best regards,
Kyoungseoun Chung
The text was updated successfully, but these errors were encountered: