昨天上班路上看新闻,四川又双发现高产天然气流了,关键还储量巨大,产层段资源量达3878亿立方米,整个页岩层段资源量超过1万亿立方米。做高性能计算这么多年,深知现在勘油勘气的早期,还有其它各种各样的地质勘探工作,投资方为了降低勘探成本,需要大量的仿真计算,背后就少不了高性能计算的身影。作为一名在高性能计算行业敲了N年代码的码农,随着这些年高性能计算的泛化,时代大潮向云计算、大数据、人工智能转移,今天就来说说这些年,个人在高性能计算行业干过的那点事。
第一个是刚出来混江湖,一个圈内朋友给的订单:为某家视频初创网站开发一套视频转码系统。这家网站名字就不说了,有替人宣传的嫌疑。他们现在还活着,只是由于这几年抖音、快手等短视频的冲击,日子过得远不如以前滋润。这个项目情况是这样的,视频网站的内容在网页上播放,视频统一采用MP4格式,但是用户上传的格式却很不一样,rmvb、wmv、avi,3gp.....常见就有十几种之多,所以就需要一套视频转码系统把这些视频内容统一转成MP4格式。现在很多视频播放软件都有视频转码的功能。当年通常一个100M左右的视频转码需要20分钟以上(那时GPU还没出现,CPU用的是Pentium IV)。为了进一步提高转码效率,让用户实时获得转码结果,就需要在收完视频后,立即将一个视频拆分成多个单元,分散到多台计算机上进行转码,然后回收所有转码视频,按照顺序再次组合成一个新视频。我估计现在的短视频网站也都是这个套路,只不过随着视频尺寸变小,机器性能更强,再加上GPU加持,转码效果会更好。我们这个团队几个成员早期都做过流媒体,所以工作没什么难度,轻车熟路,很快就完成了。只要机器足够多,视频转码基本都能实时完成。后来根据客户需求又再一次改进,把视频转码工作,从上传结束转码,改成视频上传开始就转码,收到一段转一段,用户把视频上传完,我们的转码工作也同步完成。这样用户就能马上看到自己上传后的转码视频,基本上做到了零延时,而且转码系统的稳定性、可靠性都让客户无可挑剔。做完这个,合作方老板很满意,又把他们CDN的一个小项目给了我们。
第二个是更早期的一个保密项目。那时人还在某局,所以才有兴参与到这个工作。这个项目能拿来写一篇论文,题目可以是《关于空中移动目标运行轨迹和落点的问题》。其实说白了,就是测试炮弹打Dao弹,先在计算机上模拟,论证技术的可能行性,看看是不是能打到。当年不像现在,有J20、轰20、055、福建舰、东风41、东风17、东风27一堆大杀器,和美帝的差距,不论是质还是量,都差着一个甚至几个量级。信息技术上的产品,无论是硬件还是软件更没法比,ICT基础设施,也没有云计算、数据中心可用,超级计算机也不像现在一样落入凡尘,当时还属于高大上的玩意,熟悉知道会使用的人极少,再算上研发测试等费用,整个项目成本巨贵无比。由此可见,当年为了国家安全,上面也是花了血本的。这是一个合作项目,我方负责分布式算法和分布式计算的工作,因为保密原因,其它部分不让我们触碰。后来这些算法和分布式计算的功能和技术理论,大部分都融入了Laxcus分布式操作系统的计算子系统里面。所以说,Laxcus分布式操作系统自带超算属性,这是有根据的。回归正题,在这个项目里,我方的工作内容,就是把很多的传感器(雷达)实时收集的数据,包括空气的风速、风向、地表的曲面率,以及其它一大堆参数(因为是三维数据,所以瞬间产生的数据量非常大),经过排列重组,按照即定的算法,分散到一大堆计算机上并行执行,并且在规定的时间内得出计算结果(必须比空中运动的目标快才有意义,所以要求计算时间极短,美国的NMD、TMD也都是这个套路,但是当时他们有超级强大的计算机)。这种实时的分布计算严重依赖大规模的计算机集群、大内存、高性能处理器和高速网络,同时还要跳过硬盘这个IO瓶颈,才能实现瞬时计算。项目花了很长时间,主要是与各个合作方的沟通协调改进,然后是再沟通再协调再改进,循环往复,周而复始,最后终于完成了,据说还在靶场做了试验,可行性很高,更上面的领导非常满意,为试验团队摆了庆功酒。做为码农一枚,反正我没见着也没喝着。其实整个流程是怎么运行的,我到最后也没有明白,问过负责项目的高层,说是秘密不能透露。
第三个就是今天要说的页岩气项目。这个项目情况是,由于四川普遍存在着大量的页岩地质,这种地质深层通常都含有石油和天然气,因为当年技术不成熟,也有储量不明的原因,油气开采成本高,很多地块不适宜开采。不过后来某油在四川某地发现了大面积的天然气田,按照油气共生的自然规律,某油希望通过采集的页岩样本,分析这个地区地下有没有石油资源,如果有,是不是具有开采价值,即使短期内不适宜开采,也希望收集到足够数据,为以后可能的开采工作做好准备。要完成这项分析工作,就需要一套油气仿真计算软件。这套程序原本是有的,是某油从美帝一家大型油气公司买来的,只能跑在美帝的超级计算机上,无法移植。更关键的是,那套机器是上世纪早期的超级计算机,各方面的性能指标已经远远落后于时代,而且使用这台计算机还有N多的限制(具体可参考IBM把大型机卖到国家气象局的案例),同时这套软件里面的很多分析理论在当年已经过时,需要重新设计。某油最不满意的还是计算速度,计算一次通常要几小时几天才出结果,勘探工作是一项巨费钱费力的事情,有一大堆人力和设备需要维持,美帝超算不给力的计算效果,严重拖慢工程进度,增加很多无谓的成本支出,所以某油痛定思痛后,决定重新开发一套油气仿真计算软件。本人做为当年某局的一份子,又有幸参与了这个项目。这一次依然是合作,某油出熟悉油气理论和采油工作的技术专家。双方前前后后合作弄了小一年,终于完成了。硬件设备方面,某油开始还曾经考虑过使用国产专业超算,但是深入实地观察分析后,发现计算成本不比国外的低多少,权衡之后,最终选择了使用通用处理器+FP浮点计算的计算机集群。软件方面,我方负责体系架构设计,使用了更多新的分布式软件技术和算法。加上高性能计算机集群的加持,还有某油毫不吝啬的做事风格,各种需求一路绿灯高歌猛进,最后油气仿真的计算效率比之前的软件翻了好几倍。但是这个项目和上次的炮弹打Dao弹一样,整个工作静悄悄开始,又静悄悄结束,项目完成后团队解散。至于后面怎么样,在油气勘探中发挥出多大效果,就不知道了。