Open wlandau opened 5 years ago
I have been spending a lot of time profiling and speeding up drake
(see this test case) and I am more convinced that drake.hasty
could have its own serious role beyond just as a sandbox. Unsurprisingly, the bottlenecks in drake
itself are
drake.hasty
does none of those things on its own.
Right now,
drake.hasty
is an experiment in minimalism. What should be the driving purpose of development? Some possible directions:A sandbox
Breeding/testing ground for new
drake
backends.An independent front-end scheduler for users
As a scheduler,
drake.hasty
would support production-ready workflows that eitherdrake
's reproducibility features, ordrake
.Related:
A backend for
drake
official persistent workersIt has been suggested that maybe
drake
could directly calldrake.hasty
for its scheduling needs. I think the idea was to lighten the code base in the same waydevtools
offloaded tousethis
,remotes
, etc. However, the more I downsize and reorganizedrake
, the more it seems like this shift might not be worth it.drake
's code for scheduling is actually very light and simple when compared with the rest of the internals. Offloading the scheduling may not accomplish much.drake
's internals from its scheduling operations.drake
makes decisions about checking, building, memory management, etc. using data structures not available todrake.hasty
. Many of these build operations and decisions happen outside the customizableconfig$hasty_build
function.These options are not mutually exclusive, and my assessment may change as
drake
gets smaller and simpler. Definitely a question to keep revisiting long-term.cc @krlmlr