第108章 小程序咬住大机房(3/3)
白天的阳光下,他用已经日趋成熟的mpS工具链,首先把那家私募机构庞杂而混乱的特征计算流水线彻头彻尾地摸了一次底。
接着,他将那套原本在陈启明办公室里演示用的,三层可重定向框架的代价后端进行了修改,挂接到私募机构服务器群所使用的特定微架构的perf性能模型上。
借助于强大的算力推演,他跑出了一版用于打底的优化代码。
那段原本采用传统排序算法、在分支预测上损耗极大的rolling_median7代码,被无情地连根拔起。
取而代之的,是一段经过零一原理严密证明其绝对正确,并且在指令层面对那家私募机构的硬件流水线脾气尤为契合的全新实现。
如果单独拿出来看一次函数调用的微观耗时,这段新代码依然只比原版快了那么几纳秒,似乎微不足道。
可是,当这个微小的优化,被乘上一个夜晚内高达几万亿次的恐怖调用基数时,量变终于引发了质变。
几天后,私募机构那边传回了实测的振奋消息。
整条特征回测流水线的总耗时,被硬生生地向下压去了一大截。
以往需要跑到第二天清晨六点才能勉强出结果的任务,在凌晨三点半就已全部跑完。
median7不是唯一被替换的函数。
江临一共替掉了三处热路径。
rolling_median7,固定窗口topk_window,以及局部rank里一个反复构造临时数组的小排序。
单次调用的收益都只有纳秒级,但三处合起来吃掉了原流水线接近六成cpU时间。
机房里,有一批原本被高温和满负荷榨干的服务器,在当晚就提前熄灭了高负载的指示灯,安静地空闲了出来。
本章已完成!