资源与运行条件
说明线程池、CPU affinity、NUMA 与实际并行利用率之间的关系。
本页目录
线程数不等于物理核心数
# 线程池宽度;CPU affinity 仍需由运行环境另行设置
RAYON_NUM_THREADS=8 python plan.py
| 对象 | 公开含义 | 不能据此推断 |
|---|---|---|
| RAYON_NUM_THREADS | Rayon 工作线程池宽度 | 拥有同样数量的独占物理核心 |
| 进程 affinity | 进程允许在哪些 CPU 上运行 | 这些 CPU 一定没有其他负载 |
| NUMA 绑定 | CPU 与内存放置策略 | 单靠线程环境变量已经完成绑定 |
| preset | 选择 Light 或 Heavy 公开预设 | 内部任务数、队列宽度或同步点 |
资源边界
RAYON_NUM_THREADS只设置线程池宽度;实际 CPU 使用还受任务并行性、affinity、NUMA 放置和系统负载影响。preset 不规定公开的内部任务映射。
并行评测
| 问题 | 推荐指标 |
|---|---|
| 规划本身多快 | planner API wall,另列进程启动与序列化 |
| 并行资源用了多少 | process CPU time / wall time、affinity 与实际线程占用 |
| 返回路径质量怎样 | 统一 evaluator 下的 PathStats 与 PlannerObjective |
| 端到端执行多快 | 规划、可选切片、数值执行和结果归并的总墙钟 |
Warning
性能结论的边界
增加线程或延长时间可能同时改变规划墙钟和搜索机会。未固定工作量时,这类对比不构成 strong-scaling measurement。