跳到正文
1836 · 开源社区

1836 · 开源社区

AI时代的人本基建

← 返回项目《初焰 • 纳宙 第一赛季 - 火象议题 01 白羊座》

NaCompute钠算:任务调度与储能协同评估

参与共建发布

唐佳慧 · 发布于 2026/10/19 · 更新于 2026/10/19

唐

唐佳慧2026/10/19

一、我们做出了什么

  NaCompute 钠算是一套连接计算任务、功率调度和储能评估的原型系统。围绕“钠电在人工智能数据中心中的新角色”,我们从真实计算负载出发,先测清任务怎样用电,再调整任务启动安排,最后用运行产生的功率曲线分析储能需要承担多少供电压力。

  项目已经完成任务测量、运行时间与功率画像、截止时间与功率预算调度、配对实验分析,以及实测负载驱动的储能回放。六组核心配对实验中,预算调度相对先到先运行,1 秒平均板卡功率峰值平均下降 23.77%;两种策略各 48 次任务执行全部按期完成,预算调度平均额外等待 0.59 秒。

  这组结果给出了一个具体方向:在允许部分任务排队的算力场景中,可以先利用任务的时间余量减少集中用电,再让储能承接剩余的高峰。我们把这两个环节放在同一条数据链上,使任务安排、功率变化和储能需求能够相互对应。

图 1 系统流程与实际任务时间线。三种策略运行同一批 8 个固定计算任务。(图片见文末配图)

二、核心实现:把任务安排和功率变化连起来

2.1 记录真实运行,形成任务画像

  系统记录每个任务的到达、启动、结束和截止时间,同时采集两张计算卡的板卡功率。任务日志与功率序列使用同一时间轴,既能查看某个高峰对应哪些任务,也能追溯某次等待发生时的运行状态。

  当前实验使用不同规模的 Transformer 训练与推理合成计算任务。每个任务实际执行固定配置和固定步数的计算,标定阶段测得的预计运行时间与功率作为任务画像。调度比较改变的是任务启动时间和并发组合,工作量保持一致。

2.2 先看交付期限,再看功率预算

  当设备出现空闲执行位置时,调度器检查已经到达的任务,并按照截止时间排序。对于任务 j,将截止时间减去预计运行时长,就得到它预计最晚需要启动的时刻。

ℓj=dj−τ^j\ell_j=d_j-\widehat{\tau}_j

  这个最晚启动时刻依据标定得到的运行时长估计。当当前时间达到这一时刻,调度器优先启动紧迫任务;其余任务则需要通过功率预算检查。这个顺序让系统在控制峰值的同时,保留对交付期限的优先处理。

  功率检查使用两张卡的空闲功率、当前运行任务的增量功率,以及候选任务的预计增量功率。预计启动后的总功率为:

P^(t,j)=2P0+∑i∈A(t)[P^i−P0]++[P^j−P0]+\widehat{P}(t,j)=2P_0+\sum_{i\in A(t)}[\widehat{P}_i-P_0]_+ +[\widehat{P}_j-P_0]_+

  这里,P₀ 是单卡空闲功率,A(t) 是正在运行的任务集合,方括号下标加号表示取该数与零中的较大值。普通候选任务满足以下条件时可以启动:

P^(t,j)≤Pbudget\widehat{P}(t,j)\leq P_{\mathrm{budget}}

  如果暂时没有满足条件的任务,调度器继续等待状态变化。临近最晚启动时刻的任务可以越过预算检查,因此这里的预算是安排任务的参考目标。实际功率仍由计算过程决定,最终效果通过测量确认。

2.3 保留每一次决策的依据

  程序保存任务配置、标定画像、启动记录和原始功率数据。分析阶段将任务交付情况与功率指标一起统计,能够回答峰值为什么变化、等待增加了多少、任务有没有按时完成。我们实现的是由测量画像驱动的调度逻辑,当前决策规则可以直接检查和复现。

三、实验结果:降低峰值,同时完成任务

3.1 相同任务,三种策略,六组配对

  核心实验由 6 组配对组成,每组分别运行先到先运行、预算调度和串行运行,共 18 轮。每轮使用同一批 8 个任务,每种策略累计执行 48 次,任务配置、计算步数、到达时刻和交付期限保持一致。

  先到先运行提供常规执行基准;预算调度检验任务画像与启动安排的效果;串行运行每次只执行一个任务,用来观察直接减少并发带来的峰值和等待取舍。各策略在共同的 930 秒观察窗口内统计板卡功率和能耗,任务日志则单独判定完成与是否按期。

3.2 主要结果

指标先到先运行预算调度串行运行
六组平均功率峰值609.19 W464.41 W381.36 W
平均任务等待43.63 秒44.22 秒172.18 秒
完成任务数48/4848/4848/48
按期完成任务数48/4848/4847/48
共同观察窗口平均板卡能耗61.47 Wh62.02 Wh62.39 Wh

  预算调度的六组配对峰值降幅分别为 24.08%、23.75%、24.50%、23.36%、24.58% 和 22.33%,平均为 23.77%。六组均出现下降,同时完成了全部任务并保持按期交付。

  等待时间从 43.63 秒变为 44.22 秒,平均额外增加 0.59 秒。串行运行虽然进一步降低了峰值,平均等待却达到 172.18 秒,并出现一次超期。这说明评价任务安排需要同时看功率和交付,单独追求最低峰值不能完整反映系统表现。

  预算调度的共同观察窗口板卡能耗,按六组配对变化率平均,增加了 0.90%。当前实测成果是用较小的额外等待改善用电时间分布与峰值,而总用电量没有下降。

图 2 六组核心配对结果。点对应每轮实测,柱对应六轮均值,同时列出按期完成与等待情况。(图片见文末配图)

3.3 指标怎样计算

  每轮先把两张卡的功率汇总,再计算 1 秒平均功率序列,并取这一序列的最大值作为该轮峰值。对第 k 组、策略 s,有:

Ppeak,k(s)=max⁡tP‾k,1s(s)(t)P_{\mathrm{peak},k}^{(s)}=\max_t\overline{P}_{k,1\mathrm{s}}^{(s)}(t)

  峰值降幅先在每个配对内计算,再对六组求平均。F 表示先到先运行,B 表示预算调度:

rk=(1−Ppeak,k(B)Ppeak,k(F))×100%r_k=\left(1-\frac{P_{\mathrm{peak},k}^{(B)}}{P_{\mathrm{peak},k}^{(F)}}\right)\times100\%

r‾=16∑k=16rk=23.77%\overline{r}=\frac{1}{6}\sum_{k=1}^{6}r_k=23.77\%

  因此,23.77% 对应六组配对降幅的平均,而表中的 609.19 W 和 464.41 W 分别是两种策略的平均峰值。该降幅来自真实计算任务的调度实验,计量范围为两张板卡。

四、钠电在项目里承担什么角色

4.1 承接任务调度之后的剩余供电需求

  任务调度利用的是时间上的灵活性,储能利用的是储存和释放电量的能力。部分任务可以稍后启动,部分任务必须尽快执行;当任务侧已经没有足够调整空间时,储能可以为高于供电目标的负载提供补充,在负载较低时恢复电量。

  我们把钠电放在这个供电缓冲的位置上。系统关心的是具体负载需要多大的输出功率、需要持续多久、消耗多少可用电量,以及低谷是否足够完成补能。这样就能把“钠电适合算力场景吗”转化为可以用负载和参数分析的配置问题。

  已经实现的流程是:先完成实际任务调度与功率采集,再将实测曲线输入通用储能模型。当前储能结果来自离线回放;任务调度器尚未直接读取实体电池状态。钠电的具体容量、功率、效率和工作范围可以作为后续设备接入与配置评估的输入。

4.2 供电功率与电量如何变化

  储能回放以离散时间段计算,负载功率由实测曲线给出。供电侧功率等于负载功率加上充电功率,再减去放电功率:

Psup,t=Pload,t+Pch,t−Pdis,tP_{\mathrm{sup},t}=P_{\mathrm{load},t}+P_{\mathrm{ch},t}-P_{\mathrm{dis},t}

  电池电量根据充放电效率更新。下式中的功率使用 kW,电量使用 kWh,时间间隔使用小时:

Et+1=Et+ηchPch,tΔt−Pdis,tΔtηdisE_{t+1}=E_t+\eta_{\mathrm{ch}}P_{\mathrm{ch},t}\Delta t-\frac{P_{\mathrm{dis},t}\Delta t}{\eta_{\mathrm{dis}}}

  荷电状态 SOC 表示当前电量占额定容量的比例。模型将给定的往返效率对称分配到充电和放电两个环节:

SOCt=EtEcap,ηch=ηdis=ηrt\mathrm{SOC}_t=\frac{E_t}{E_{\mathrm{cap}}},\qquad \eta_{\mathrm{ch}}=\eta_{\mathrm{dis}}=\sqrt{\eta_{\mathrm{rt}}}

4.3 同时考虑输出功率和可用电量

  当负载高于目标供电功率时,放电受到三方面限制:负载超过目标的部分、电池的最大输出功率,以及当前高于最低电量的可用储备。

Pdis,t=min⁡{[Pload,t−Ptar]+, Pmax⁡, ηdis[Et−Emin⁡]+Δt}P_{\mathrm{dis},t}=\min\left\{[P_{\mathrm{load},t}-P_{\mathrm{tar}}]_+,\ P_{\max},\ \frac{\eta_{\mathrm{dis}}[E_t-E_{\min}]_+}{\Delta t}\right\}

  当负载低于目标时,充电利用供电余量恢复到初始电量。当前回放的充电目标是初始 SOC,因此也会检查距离初始电量还差多少。

Pch,t=min⁡{[Ptar−Pload,t]+, Pmax⁡, [E0−Et]+ηchΔt}P_{\mathrm{ch},t}=\min\left\{[P_{\mathrm{tar}}-P_{\mathrm{load},t}]_+,\ P_{\max},\ \frac{[E_0-E_t]_+}{\eta_{\mathrm{ch}}\Delta t}\right\}

  其中,E₀ 是初始电量,最低电量由容量与最低允许 SOC 相乘得到。两式分别使用负载高于或低于目标的部分,同一时段不会同时充放电。如果电池功率或可用电量不足,模型保留供电侧超出目标的部分,并统计超限时间和超限电量。

4.4 用一个实际负载回放说明协同关系

  图 3 使用第 1 组实验曲线,比较同一储能参数下的两种任务安排。配置为 10 Wh 容量、250 W 充放电功率、90% 往返效率、60% 初始 SOC 和 10% 最低 SOC,供电目标为 459.1 W。这是一组与当前板卡测量规模对应的模型参数。

  在先到先运行曲线下,负载峰值为 601.98 W。储能回放将供电侧峰值控制在 459.10 W,累计向负载释放约 5.92 Wh,随后在低负载时段补能,结束时恢复到初始 SOC。

  在预算调度曲线下,负载峰值为 457.01 W,已经低于同一供电目标,因此这一组回放不需要储能充放电。这个例子说明,任务安排会改变储能需要承担的工作;对于其他负载、供电目标和期限条件,可以用同一方法继续判断是否需要储能,以及需要什么配置。

图 3 第 1 组实测负载的储能回放。灰线来自板卡实测,供电曲线与 SOC 来自通用储能模型。(图片见文末配图)

4.5 把补能和损耗一起算清楚

  回放除了展示削峰后的曲线,还记录充电量、放电量、效率损耗、结束 SOC 和供电超限。整个观察窗口的能量平衡满足:

Wsup−Wload=Wloss+(ET−E0)W_{\mathrm{sup}}-W_{\mathrm{load}}=W_{\mathrm{loss}}+(E_T-E_0)

  这项核对可以说明供电侧电量变化来自哪里。结束 SOC 是否恢复会单独报告;如果窗口内未能补回初始电量,结果会保留这部分电量差。储能配置因此可以同时从削峰能力、可用电量和补能条件三个角度评估。

五、已经形成的完整成果

5.1 可以运行和复核的实验链

  项目已经形成任务标定与实际运行程序、三种调度策略、原始任务与功率记录、六组配对结果,以及独立分析和复核文件。每个主结果都能回到对应的运行记录,后续替换任务时可以沿用同一套比较方法。

5.2 可以交互查看的评估页面

  离线展示页面连接系统流程、任务时间线、三策略指标和储能回放。页面支持切换六组实验和不同策略,并调整储能容量、功率、效率等参数,观察供电曲线和 SOC 的变化。使用者可以从“任务怎么安排”一直看到“储能承担了多少工作”。

5.3 面向钠电接入的负载侧依据

  我们已经把计算任务转化为可以分析的功率需求,并验证了任务安排能够改变峰值和等待之间的取舍。储能模块进一步将这组需求转换成容量、输出功率、补能与损耗问题,为钠电方案进入算力场景提供具体的比较入口。

六、应用方向与后续共建

  NaCompute 可以先从允许部分任务排队的算力场景开展负载诊断和调度试点,再把同一批测量数据交给储能配置评估。使用者能够先看清负载特征,再判断任务侧可以释放多少调整空间,以及剩余需求是否值得配置储能。

  下一步重点是接入具有代表性的真实业务任务,把输出质量和交付要求纳入验收;补充整机或机柜计量,让功率边界更接近现场;结合钠电厂商提供的性能参数、运行限制和报价,完成具体方案比较。我们希望与算力使用方和储能伙伴共同推进,让测量、调度和设备配置形成一套能在实际场景里使用的工作流程。

正文配图 1正文配图 2正文配图 3
PE

Peter YU2026/10/20 03:10:00

很落地的极小化实验闭环

登录后可以留言