参考文档:array2d/kvlang多线程进程调度方案.md(owner 工作区根,非本仓库内),本 issue 是其三条核心的落地纲领。
1. kvlang-runtime 分 main 与 ext
- main-runtime(runtime-c、runtime-rs):能处理控制流 + 函数调用 rwir,因而能推进 vthread 的 pc;runtime-rs 把控制流/调用部分经 FFI 包给 runtime-c。
- ext-runtime(numpy、json 等):只能处理自己能力集内的叶算子 rwir,不能驱动 vthread,是纯 worker——叶算子的批量顺序求值器(拿到一个 pc,沿 NextPc 连续执行一整段己方 rwir,遇第一条非己 op 即停并交接)。
详见参考文档 §1(含 rwir 三分类判定表与 main/ext 对称性)。
2. 每个 runtime 进程内定义 myrwircaps 表
- 每个 runtime 进程内维护唯一一张能力表
myrwircaps。
- 所有 runtime(main + ext)在 execute 大循环中,只查询自己进程的
myrwircaps。
- fetch 到的新 rwir 若不在
myrwircaps → 进入调度阶段(移交给有能力处理它的 runtime,见参考文档 §3)。
- 现状映射(这些即
myrwircaps 的雏形,需统一改名为 myrwircaps):
- runtime-rs:
REGS / rwirmap / is_inproc / is_others_rwir(runtime-rs/src/rwir/mod.rs)
- runtime-c:native builtin dispatch 表 /
kvlangBuiltinIsNative(runtime/src/builtin.c)
- numpy(ext):
OPS 表(runtime-rwirext_example/py/numpy/numpy.py)
3. myrwircaps 同步到 kvspace
- 每个 runtime 的
myrwircaps 除进程内持有外,还需同步到 kvspace,供调度层据此把 rwir 路由到有能力的 runtime(对应参考文档 §3.2 能力注册 + /networld 名册)。
参考文档:
array2d/kvlang多线程进程调度方案.md(owner 工作区根,非本仓库内),本 issue 是其三条核心的落地纲领。1. kvlang-runtime 分 main 与 ext
详见参考文档 §1(含 rwir 三分类判定表与 main/ext 对称性)。
2. 每个 runtime 进程内定义
myrwircaps表myrwircaps。myrwircaps。myrwircaps→ 进入调度阶段(移交给有能力处理它的 runtime,见参考文档 §3)。myrwircaps的雏形,需统一改名为myrwircaps):REGS/rwirmap/is_inproc/is_others_rwir(runtime-rs/src/rwir/mod.rs)kvlangBuiltinIsNative(runtime/src/builtin.c)OPS表(runtime-rwirext_example/py/numpy/numpy.py)3.
myrwircaps同步到 kvspacemyrwircaps除进程内持有外,还需同步到 kvspace,供调度层据此把 rwir 路由到有能力的 runtime(对应参考文档 §3.2 能力注册 +/networld名册)。