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

[NEW FEATURE] Parallelize filter_convolve #49

Closed
zaccharieramzi opened this issue May 2, 2019 · 1 comment
Closed

[NEW FEATURE] Parallelize filter_convolve #49

zaccharieramzi opened this issue May 2, 2019 · 1 comment

Comments

@zaccharieramzi
Copy link
Collaborator

zaccharieramzi commented May 2, 2019

Is your feature request related to a problem? Please describe.
I'm always frustrated when I run the filter_convolve function on big images (512 x 512), because it takes a lot of time.
Example: 412 ms (measured with %%timeit) for a starlet transform with 4 levels of decomposition (without the coarse scale).

Describe the solution you'd like
I would like to have the filter_convolve function parallelized. Indeed, each convolution could be run in its own thread or process.
I think using joblib, especially the embarrassingly parallel helper, could help us move forward in that direction.

Describe alternatives you've considered
I haven't consider any alternatives.

@zaccharieramzi
Copy link
Collaborator Author

The operations that we have at hand are too small to benefit greatly from parallelizing. I suggest dropping that idea.
The filter_convolve is now faster thanks to the trimming (see #50 ). I think the way to go to accelerate even further would be to use tensorflow, to leverage parallel convolution and sparse convolution, but this is I think a bit of a stretch right now.

I also tried convolve instead of fft_convolve because it should work better now that the filters are trimmed, but it didn't provide a significant improvement.

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

No branches or pull requests

1 participant