-
Notifications
You must be signed in to change notification settings - Fork 45
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
Problems with large variables in global section #1225
Comments
The patch does not cover the case where variables are used by input statement but not substeps, namely
|
Thanks for the fix! There is a related concern I raised earlier about unpickling behavior of substeps, that is, they each unpickle the same file, rather than copy from the step which unpickles the file just ones. Is that a relevant concern to this issue? |
There is no "file" involved. Originally I "preserved" the global section by pickling a dictionary with all the variables, now I simple replace the original
These two structures are pickled around with other information of the steps and substeps. The patch just filter |
Oh I see, it is passed around as a variable. Unpickling from a variable should be as good as a deep copy particularly now after you've filtered it. Should I give it a go, or wait for tests to pass? |
One test failed. I just figured out why... |
The tests should pass... we will see. |
Test still building ... but I submitted the jobs anyways. It seems to be running well! |
Looks like test failed, but it worked for my job -- no hanging or blocking behavior observed. |
Yes, it is more troublesome to find all variables that will be used in a step. The last one I fixed was
because Let me check what remains. |
We have 300+ test cases now and the effort was paying off. The failing case is
So basically the |
Travis passed! I have a feeling that this will fail in more complicated cases though. Let us see. |
With #1219 , we now pickle all the variables generated by the global section, and send it around to all steps, substeps, tasks, etc. However, with the following workflow,
we are sending a large variable to
a
unnecessarily , and in some cases would cause serious performance problem.The fix seems to be easy because SoS parse sections and find variables that are used in a step. That is to say, we can handle step
a
in a way that only pass variables used bya
to it. Some caution needs to be made to nested workflows, especially when the workflow is read from another file though.The text was updated successfully, but these errors were encountered: