-
Notifications
You must be signed in to change notification settings - Fork 14
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
Docs on how to write a new executor #498
Comments
That's a great suggestion. I'll sketch out something here to start with. A Cubed executor is a subclass of Lines 9 to 15 in e7ff365
The The simplest example of a Cubed executor is the cubed/cubed/runtime/executors/local.py Lines 29 to 58 in e7ff365
In practice backends will have the following characteristics that make them suitable targets for Cubed:
These features (and a few more) are discussed in #276, which also has a table showing which executor has each feature. Some of the executors in Cubed use asyncio APIs to call the backend (e.g. Modal, Dask, local threads and processes), which makes implementing some of these features easier since the code can be shared (e.g. backup tasks). However, backends do not have to offer an asyncio API to be integrated with Cubed (e.g. Lithops). All the executor implementations can be found in For testing, new executors can be conditionally added to the |
There are a lot of parallel frameworks that Cubed Plans could be converted to (e.g. #499). We have executors for dask & beam, but instead of trying to write more executors ourselves it would be nice to just more clearly document how to create a new executor so that others can contribute.
The text was updated successfully, but these errors were encountered: