李银川
提升海波龙预算规则
李银川 爱记不记的记忆碎片
问
大家知道有哪些实用的提升海波龙预算规则的小技巧吗?
答
1)等号左边使用密集维,不能使用稀疏维
在等号左边使用密集维计算的效率比等号左边使用稀疏维的效率要快很多,越是计算体量大的规则,效果差异越明显。但是等号左边使用密集维的前提是,需要计算的维值密集维的维值组合必须已经开块,否则规则计算无法计算出结果。
此时计算前开块的方式有两种:一种是,将一个已存在数据的维值组合使用DATACOPY将数据拷贝到需要计算的维值组合中,用于开块,如下图所示
另一种,则是通过已有开块的组合来借块进行计算,如下图:
2)使用并行命令进行调试
当计算范围过大,可使用并行命令SET CALCPARALLEL X、SET CALCTASKDIMS X,X是数字参数,可手动调整,可以通过调试参数来达到最优并发数下,规则运行最快,在FIX范围之前使用命令。
3)使用并行函数来提升效率
当存在多个稀疏维有效组合占整个FIX范围占比过小时,可使用并行函数(FIXPARALLEL……ENDFIXPARALLEL)来提升规则运行效率。FIXPARALLEL中限制稀疏维组合的范围,通过设置并发任务数,可进行并发任务,从而提升规则运行效率
4)拆分规则,设置并发规则集
当规则中计算可按照稀疏维的具体某个维值范围进行拆分,将一个大范围拆分为多个小范围的规则,然后将小规则组合成规则集,设置规则集并发,在规则集设置时,勾选启用并行执行,从而减少规则运行时间
通过以上方式,优化系统规则,对于体量大,计算范围大的规则,优化效果更佳。具体优化效果如下图:
• end •
作者 | 李银川
审核 | 郑 崧
编辑 | 朱思聪