-
Notifications
You must be signed in to change notification settings - Fork 129
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
Consider a user-visible build command #157
Comments
I do want |
@kendonB your proposed solution will probably work if meta_list() is still a bottleneck. In that case, it will probably be better to just have a |
As we're looking into this, it would help to distinguish |
Another point: the graph must contain imports and the imports must be processed for the targets to be up to date. If we go any faster, we may lose reproducibility. |
Another possible bottleneck: next_targets(), which we need for executing targets in the correct order. @kendonB, I believe you pointed that out as a slow point before, and at at the time, we could find a faster replacement. Unfortunately, we will always need it in parallel_stage(). |
These are the bottlenecks I see when running make on targets that are up to date with drake_config() #7.78 seconds
# inside drake_config:
quick_inventory() #: 5 seconds
check_drake_config() #: 2.275 seconds
# in prepare_distributed:
attempts <- outdated(config = config, make_imports = !config$skip_imports) # 5 seconds
#in run_parallel
quick_inventory() #: 5 seconds |
Useful to know, thanks @kendonB!
I will look into the call to |
On second thought, I probably can speed this up a bit. We can borrow inventories across |
Facepalm moment: we don't even need inventories if we have |
You may also be interested in 46e8b73. There, I added a new user-side load_basic_example()
# Same as make(my_plan, ...):
config <- drake_config(my_plan)
make_with_config(config) |
I'm not sure I can think of any use case for |
Glad to hear it! With the latest bottlenecks identified, I am even more convinced that a version of By the way: Given Over the last month or so, you have raised 15 issues and submitted one pull request, and |
I'm still trying to improve my workflow with many different calls to make.
Using
skip_imports = TRUE, trigger = "missing", graph = my_graph
, improves speed somewhat but drake still does a lot of work before getting started on building targets.I propose a different building command that doesn't bother at all with any checking and builds unconditionally. This would more literally be @wlandau-lilly's proposal to advertise drake as a cool and flexible job scheduler.
It would:
The text was updated successfully, but these errors were encountered: