pybroker.parallel 模块
包含并行执行配置。
- class ParallelConfig(n_jobs: int | None = -1, backend: str | None = 'loky', parallel: Parallel | None = None)[源代码]
基类:
objectPyBroker 使用的并行执行配置。
PyBroker 可以使用 joblib 并行计算指标、训练模型和运行优化。默认情况下,优化试验会使用所有可用核心运行;指标计算和模型训练还需要分别设置
parallel_indicators/parallel_models标志。调用set_parallel(n_jobs=1)可使所有操作按顺序运行,使用get_parallel_config()可读取当前配置。- backend
joblib 后端名称。
'loky'(默认值)会在独立的进程中运行任务。任何已在 joblib 中注册的后端也都可以使用(例如在调用ray.util.joblib.register_ray()后使用'ray')。- 类型:
str | None
- parallel
可选的、预先构建好的
joblib.Parallel实例,会完全覆盖n_jobs和backend。设置后,PyBroker 会直接使用该实例,其生命周期由调用方负责管理。默认为None。- 类型:
joblib.parallel.Parallel | None
- get_parallel_config() ParallelConfig[源代码]
返回当前的并行配置
- set_parallel(n_jobs: int | None = None, backend: str | None = None, parallel: Parallel | None = None) None[源代码]
配置 PyBroker 使用的并行执行方式。
PyBroker 默认使用所有可用核心;调用
set_parallel(n_jobs=1)可按顺序运行。- 参数:
n_jobs -- 工作进程的数量。
-1使用所有核心(默认值);1表示按顺序运行。保留为None则维持当前已配置的值。backend -- joblib 后端名称:
'loky'(默认值),或通过joblib.register_parallel_backend()注册的任意后端(例如在调用ray.util.joblib.register_ray()后使用'ray')。'multiprocessing'后端会被拒绝,因为其标准 pickle 序列化机制无法传递 PyBroker 的调度闭包。parallel -- 预先构建好的
joblib.Parallel实例。与n_jobs/backend互斥;其生命周期由调用方负责管理。
- 抛出:
ValueError -- 如果
parallel与n_jobs或backend一同传入;如果backend不是已注册的 joblib 后端,或为'multiprocessing';或者parallel返回的结果顺序与提交顺序不一致。