6.2 智能调度逻辑设计

在调度核心模块内部,LLM 调度器遵循以下逻辑进行推理决策,主要包括任务优先级排序、资源分配策略和输出结构设计三个方面:

1)任务优先级排序

  • 在每一轮调度中,LLM 调度器需对就绪任务进行优先级排序,以优化整个 DAG 的调度时长。

    • 根据任务的 b-level(从该任务到终点的最长路径耗时)进行排序,b-level 越大意味着任务对关键路径的影响越大;

    • 通过提示语引导模型优先调度关键路径上的任务,从而确保对最终完成时间影响最大的任务能够尽快执行。

2)资源分配策略

  • 在多任务并发和资源受限的运行环境下,调度器需对CPU 核数内存用量进行联合优化。系统引导 LLM 在资源分配中考虑两类指标:

    • 计算并行性收益:对支持并行加速的任务分配更多 CPU 核数,以最小化运行时间;

    • 内存可达性约束:对存在最小内存需求的任务,确保系统剩余内存满足其 min_memory 限制,避免调度失败。

  • 具体策略如下:

    • 对于具备并行加速能力的节点(例如:核数翻倍可减少约 30% 运行时间的任务),在关键路径任务上允许临时性资源“超配”;

    • 非关键路径任务优先考虑资源节约,在满足 min_memory 的基础上尽可能少配 CPU;

    • LLM 推理中通过提示语明确指示模型识别“内存瓶颈任务”,优先排除调度冲突。

  • 示例提示语片段可包括:

    “请判断每个任务的最小内存要求是否满足当前系统剩余内存,再做核数分配与任务启动决策。”

3)调度决策输出结构

  • 调度模块输出的结果采用结构化的格式,供MiQroForge系统解析并执行具体的调度操作。输出结果需包含以下字段:

    {
      "to_start": ["node_A", "node_B"],
      "assigned_resources": {
        "node_A": { "cores": 4, "memory_gb": 8 },
        "node_B": { "cores": 2, "memory_gb": 4 }
      },
      "decision": "start",
      "updated_dag": [ ... ]
    }
    
    • to_start: 列表,包含本轮推荐启动的任务节点;

    • assigned_resources:为每个任务分配的资源包,含 cores(核数)与 memory_gb(单位:GB);

    • decision: 字符串,指示本轮是否启动新任务("start")或保持等待("wait");

    • updated_dag: 列表,每个节点在本轮后的更新 ETA 和核数等信息。

  • 系统根据该输出结构执行调度操作,并将结果记录为调度日志。