-
Notifications
You must be signed in to change notification settings - Fork 32
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
Parallelise tasks with parallel
#84
Comments
Cool idea. Unfortunately though, in a distributed computing scenario, |
By the way, I also built workflowHelper on top of parallelRemake to handle certain kinds of common workflows in parallel without having to go through YAML (maybe a short-term special case of #20). Update: |
thanks for the suggestions @wlandau. As I see it, there are at least two levels of parallelisation remake needs:
The solutions to these might be different. Your suggestion was aimed at No 2 but would be a bit heavy for No 1. I know No 2 has been on @richfitz's todo list, but good to see you have some ideas on this and made a start via parallelremake. One thing i was wondering was whether, instead of writing multiple remake files, you do write a makefile that executed parts of the one master remake file: So lets say your remake.yml file has:
You could write a make file like this:
This would still enable you to exploit the |
Thanks for the great idea, @dfalster! I just implemented it in the single_yaml_file branch of Right now, I need to parse commands a bit more intelligently to figure out dependencies for the master Makefile, but the guts of Edit: Now using |
Both |
Regarding @dfalster's suggestion for a single-node solution, how hard would it be to resolve parallelizable groups of commands within the existing topological sort? With that accomplished, it would seem easy to iterate sequentially over groups and use |
Hi Will - with the current interfaces available to us in the This problem was the motivation for some queuing packages that I wrote (rrqueue and rrq) but it's possible that Henrick's amazing looking future package here might be a better interface. |
i know proper parallelisation is something that is a pretty big, longer-term challenge for remake. But I wonder about this as a relatively easily implementation for the use case of iterating over a list. The idea came to me via @kunstler.
Lets's say you have a target of sort
where
If this is slow, we might want to do some parallel compute. At present, we can force (trick) remake into doing some parallel compute using a function like (based on
parallel
package):Then the remake target would be
So we can already do this. But then we'll be writing lots of wrapper functions, so why not make it a remake option?
Would probably need to come as part of a general list target (#8). E.g.
Eventually one might addd other (more complicated) backends (like farming out to
AWS
), but starting withparallel
seems like an at least potentially manageable shorter term goal.The text was updated successfully, but these errors were encountered: