-
Notifications
You must be signed in to change notification settings - Fork 2
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
cax all-run mode skips corrections (and slow/stalls) #108
Comments
Very basic question but why do you use
for the all-run mode instead of massive-cax? I could think of a logic in massive-cax to select only runs which do not have a correction and cycle only over them. massive-ruciax works like that. |
was giving an example where everybody can reproduce. it will actually be run on xe1t-datamanager, which does not have a batch queue system, so if you want to use massive-cax it needs to be adjusted (maybe @malfonsi started working on making this more flexible?). if massive-ruciax is running on datamanager then great! are you able to merge the functions (I think this was the original plan before, to avoid this duplicate coding)? |
Regarding duplicate codes, massive-ruciax has some command line calls which are more driven by the "pure" upload purpose of ruciax itself. But I can have a look at it if it is worth to spend time on merging it.
|
@pdeperio @lucrlom Quick and easy, but we can also think about a more complicated selection of the runs. |
Thanks Boris. For sustainability, shouldn't that check to skip pulling from DB go into the corrections.py module? Or do we need to skip the entire run for this? (I forget where all the queries are and how much info each one pulls back, maybe #105.) Then, for generality, the block of code you implemented in main.py is just for bypassing job submission and running locally instead (and can work with any set of tasks). So the option could be e.g. |
A check if it necessary to add "new" corrections is already implemented in corrections.py. (See line: https://github.com/XENON1T/cax/blob/master/cax/tasks/corrections.py#L66). This test is useful but does not avoid pulling the data base information before. It becomes worse when you call each correction as a unique class from the "task_list" tag in the json file. Then you pull 7 times data from the data base for a single run. But I should mention here that "AddElectronLifetime" takes the longest time when it comes to parse the sympy function in https://github.com/XENON1T/cax/blob/master/cax/tasks/corrections.py#L62. Therefore my intention is to have massive-cax running and use it for other services then "only" job submission to batch queues. I changed --AddCorrections to --local (makes more sense). |
When running cax in full DB all-run mode (not specifying a run) for corrections, e.g. on Midway:
it appears to complete the first task, but then skips the rest proceeding to the following run:
Explicitly specifying a single run works as expected, e.g.:
runs all the tasks, which is how we're doing all the corrections now on Midway. However, it would be nice if all-run mode can work too so that the
xe1t-datamanager
daemon can add corrections immediately after each run is transferred at LNGS.Furthermore, completing the task in all-run mode takes much longer than in single-run mode, maybe related to #105, this query, and/or something in corrections.py since removing all correction tasks runs fine and fast.
The text was updated successfully, but these errors were encountered: