-
Notifications
You must be signed in to change notification settings - Fork 1
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
Test parallelizing scons run #72
Comments
@MosesStewart welcome to Template! Once you accept the invitation to join this repository, please self-assign and review the issue description. A first step is probably to make sure you can build the entire Template on FASRC. After that you can start testing parallel builds. Please keep in mind that this repository is in the public domain. Thanks! |
To give an update, I'm able to use the |
@MosesStewart that's great! Do you get any speedup in runtime, or is the repository too fast to be able to tell? In the latter case, we could create an issue branch and add some slow operations to the repository (that are not dependent on one another) so we can see if we're getting any improvement from parallelizing.
Got it. Per here:
The builders are going to look for Stata under the name In that case, you could look for the correct command to run Stata from the bash prompt. Suppose for the sake of argument that it's Then I think we just need to tell Linux that when you type Let me know if any of that is helpful, thanks. |
@jmshapir changing the stata executable in Thank you so much for the detailed explanation! I really appreciate it! I didn't have permission to create a simlink in the FASRC applications folder, so I think I'll run it like so! |
The repository is too fast for me to tell 😭
Would it be possible for me to gain write-access to edit the code? |
Sounds good! Let's just be sure not to commit the revised (And when @rcalvo12 @ew487 let's ask them what solution they use for this detail about the executables.)
Done! Use it wisely. |
Does anyone know how to force I've tried I'm trying to re-build the entire repository to compare times with and without the |
@MosesStewart thanks!
I'm not sure but here are some ideas:
Those commands will only build targets that are not currently up to date, since
Great! |
Thank you so much! The StackExchange solution worked! I'm getting very interesting results with the The I'll try to dig into why the |
@jmshapir I don't think the From my testing, I hypothesize that when we ask In this repository, both the build I do think if |
Thanks @MosesStewart!
Can you point me to which
Since parallelization is a key part of the scons design, I'd be surprised if it has this limitation. If it did, I'd expect it would have been reported. If you have bandwidth, it might be worth your spending a little time (say, not more than 1-2 hours) on the scons github repository to see if there are any open issues that relate to the problem we're having here. |
Sorry I attached the wrong file name! It is Template/source/tables/SConscript Lines 3 to 5 in 1bedc39
I believe that #output/tables/top_gdp.tex isn't being built by anything.
Yes! I will start this right away! |
Thanks @MosesStewart! In that case, do we know why |
No, I hadn't noticed before that |
Thanks @MosesStewart! I wonder if it might be a good idea to build a minimal working example of what we're trying to do, maybe in a separate repository? That way we could strip out some of the complexity of the If that sounds good to you here is a process I propose:
If we find that parallelization breaks here then we have a simple example we can use to diagnose potential explanations. We could even post an issue to the If we find that parallelization works here then that might help us get to the bottom of why it's breaking in Let me know what you think. If you think it would be helpful to talk this through feel free to shoot me an e-mail and we can schedule a call or meeting. Thanks! |
The test repository is here. I'm currently changing things in |
Thanks @MosesStewart! That test repository looks good to me. A couple thoughts:
If we're finding that To visualize the DAG, I think you can use |
That's very helpful! I'll look into it!
I wanted to test if anything my be breaking when trying to import a file. Currently the |
@jmshapir nothing jumped out at me after looking at the DAG, but I narrowed down exactly what's causing the parallelization to fail. Changing the repository by:
allows the parallelization to work. I didn't have to change any of the dependencies in |
Thanks @MosesStewart! Does the DAG reflect the fact that |
@jmshapir they depend on For Lines 85 to 96 in 227dcce
Line 95 in 227dcce
For Lines 97 to 101 in 227dcce
Line 100 in 227dcce
|
@MosesStewart that makes sense. But if we look at Template/source/figures/gdp_educ.lyx Line 114 in 1bedc39
Does any If not, I wonder if there's a hole in the DAG, such that we have represented to
but really we have
If that were the case, then the DAG would imply (incorrectly) that it is fine to build, say, Could that be the culprit here? |
@jmshapir I didn't notice that ~ that seems very likely ~ I will test right away |
It works!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
@MosesStewart nice! One thing I think we've learned that if we want to use this option we need to be quite meticulous about declaring dependencies, even those that aren't needed for a serial build. The other thing I'd ideally like to check before we leave the issue is that we are actually seeing some improvements in run time. Is it possible to look into that? As before, it might be necessary to add a "speedbump" to some of the steps in order to make the run time calculations meaningful. |
@jmshapir currently I'm getting |
@MosesStewart that's great! It sounds to me like this is working as intended. The next steps I envision are the following:
Of course if you think I've missed something just say! |
…om working (#73) * create a waste of time for #72 * sconstruct.log with dependency tree for #72 * What works for #72 * Revert "What works for #72" This reverts commit a2c53bc. * Updated dependencies for #72 * Changed environment method for #72 * updated dependencies for #72 * updated dependency method for #72 * Revert "create a waste of time for #72" This reverts commit b7ffdef.
Summary: In this issue we tested the functionality of the After testing, we found that it is pivotal to carefully indicate all dependencies so the DAG is set up to prevent Final state of the issue branch is in f6297fe |
scons
represents the build steps as a directed acyclic graph.This means it can calculate which paths can be built in parallel and which must be built in sequence.
The
-j
option is designed to allow a user to run multiple simultaneous tasks.We'd like to explore whether it's possible to use this option successfully on FASRC.
The text was updated successfully, but these errors were encountered: