-
Notifications
You must be signed in to change notification settings - Fork 28
Description
Is your feature request related to a problem? Please describe.
There is no parallel backend API in skbase today, while sktime, skpro, and Hyperactive each carry their own backend selection and configuration using the pair backend and backend_params.
Describe the solution you'd like
I propose to add a small skbase.parallel module that defines a common interface for parallel execution. Once skbase provides this shared primitive, downstream projects can remove duplicate code and depend on the central API. This is a rough sketch how those classes could look like:
class LokyParallel:
n_jobs: Optional[int] = None
prefer: Optional[str] = None
require: Optional[str] = None
class RayParallel:
ray_remote_args: Optional[Dict[str, Any]] = None
shutdown_ray: bool = True
logger_name: str = "ray"
mute_warnings: bool = False
class DaskParallel:
scheduler: Optional[str] = None Describe alternatives you've considered
A nested dictionary with a single top level key was considered instead of a dataclass because it encodes the dependency in one parameter. This is harder to explain and invites deep untyped structures, which burden documentation and error messages.