-
Notifications
You must be signed in to change notification settings - Fork 19
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
Richardson Lucy Parallelization #237
Conversation
…keleton from RichardsonLucy.py
New files: RichardsonLucyParallel.py and RLparallelscript.py Potentially modified files: dataIF_COSI_DC2.py deconvolution_algorithm_base.py image_deconvolution_data_interface_base.py image_deconvolution.py model_base.py
RichardsonLucySimple.py and RichardsonLucy.py were modified to include the propagation of the config file from the user facing image_deconvolution object to the respective deconvolution algorithms
Codecov ReportAttention: Patch coverage is
|
Hi, Anaya. Thank you for submitting this PR. I have reviewed the changes and noticed a few issues that I want to discuss with you.
Can you please consider these issues first and tell me the potential challenges for them? If you agree with them, we can discuss how to address them together. |
Hi Hiroki,
|
…ed to subsequently overwrite remote. Merge remote-tracking branch 'refs/remotes/origin/develop' into develop
Switching to histpy.Histogram()
Can also work with eps-to-Em mapping. Need to generalize
Interpolated scheme in get_point_source_response() tested and works as intended.
Feature/general response
@avalluvan It took me a while (sorry!), but I finally got to look at your code in detail. Good job! I didn't have experience with MPI and I got to learn a lot from your work :) A couple of things:
|
Hi Israel. This pull request is unlikely to include any response reparametrization code. However, my response reparametrization pull request unfortunately contains this pull request's content along with response handling modifications. Thanks for pointing out the I will work with the script that you have provided and get back on this. |
Thanks @avalluvan. To get a branch that contains only the detector response handling and not the MPI RL stuff look into git rebase, in particular around this section: In your case "Topic A" is the parallelization stuff, and "Topic B" is the respect handling stuff. |
Thanks for the inputs. I have significantly restructured the code and will open a new pull request for it. |
Code Modifications
Backend (updates to existing files)
New deconvolution algorithm class added to dictionary: “RLparallel”
Parameter filepath is propagated through to deconvolution algorithm
Tiny changes in init definition to accept parameter filepath string
User Interface
Define number of nodes/processors to use in parameter in config.yml deconvolution:parameter:numproc
RichardsonLucyParallel.py
Maintains standard user interface: initialize() and run_deconvolution()
No changes to initialize() call tree
Run_deconvolution() invokes the following in RichardsonLucyParallel.py:
Employing the Parallel Code
Extremely simple:
Right now, the tutorial notebook has not been explicitly modified as we do not have plans to deploy this with DC3. Nevertheless, please let me know if that is recommended.
Limitations
Model and delta_model at every iteration are saved in separate .csv files
No direct methods to return result object without saving results to disk. Could potentially load results during finalization() step.
Result format is primarily a product of input format (simple dense vectors vs histogram objects based implementation in serial code).
Next Steps