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

Need feedback/progress updates to user during reproject, etc. #641

Closed
ColinOrionChandler opened this issue Jun 6, 2024 · 7 comments
Closed

Comments

@ColinOrionChandler
Copy link
Collaborator

Ideally, an indicator of the time remaining too, but at the very least letting the user see what is happening during the course of multi-hour operations like constructing work units.

@vlnistor
Copy link
Collaborator

I'd like to take this, but wanted to clarify:

  1. When you say constructing work units is a multi-hour operation, do you mean it takes hours to construct work units from fits files ? If so, I think we can provide feedback on the number of images loaded from the fits file during the loading phase.
  2. In terms of feedback for reprojection, an easy implementation can just display Image i / total done. We can use \r character to overwrite the previous line so we avoid having total number of rows printed. I can't think of a good way to estimate the time, but if my proposed solution is good enough we can start with that.

@maxwest-uw
Copy link
Collaborator

  1. I think this refers to the creation of a WorkUnit from an ImageCollection, although it might be good to updates to all of the phases of reprojection including loading in a WorkUnit from disk/FITs files (which takes a couple of minutes).
  2. In general for other lincc-frameworks projects we tend to use tqdm for tracking progress because it works pretty well out of the box. There are ways to configure it with multiprocessing futures as well for the parallel version of reproject.

@vlnistor
Copy link
Collaborator

Thank you for those clarifications - I'm looking at discrete_piles_e2e.ipynb to see an example of creating a WorkUnit from an ImageCollection. I installed the lsst package from here (pip install git+https://github.com/lsst/daf_butler.git). However, I am missing the test data specified in REPO path in the notebook. Is there some test data you can share ? Otherwise, I can try to use the MockButler

@maxwest-uw
Copy link
Collaborator

I think you shouldn't have to worry about installing the LSST stack to do development on this portion of KBMOD! If you just want to test against a basic WorkUnit we have one we use for testing included in the test directory (this one, it's also the one we run against for the reprojection unit tests). If we wanted to run tests against actual data we could try doing some runs with the data we have our HPC clusters, but I think the unit test one would be a good place to start !

@maxwest-uw
Copy link
Collaborator

^ this is just in relation to reprojection, thinking about it you might need the stack to work with ImageCollection generation, but I might need to defer to another dev about working with that

@vlnistor
Copy link
Collaborator

@maxwest-uw Made a PR with a start on this. Some points to confirm but let's address them there

@maxwest-uw
Copy link
Collaborator

maxwest-uw commented Jul 25, 2024

Need to add the TQDM loop to a few of the ImageCollection and WorkUnit functions so that we can track the progress of various large tasks in the reproject/KBMOD search pipeline.

Important requirement: needs to interact nicely with output files on HPCs like klone.

Required Changes

tqdm should be added to the following places in the code:

Testing

  • Test piping the output to a file and make sure that we can read the TQDM output nicely when not running directly from the command line.

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

4 participants