新闻 图说CPC赛事通知新网直通车 新网会客厅

CPC故事丨华中科大试试“对”

浏览次数:2759 发布时间:2019-10-09-09:10:04

队伍名称:华中科大试试队

指导老师:华中科技大学石宣化教授

说到CPC,其实我在2018年就被学长们安利过并报过名,但当时只知道是关于并行的比赛,于是去图书馆借了关于并行的书,看了良久。但是!!!到了微信答题环节(CPC2019微信答题取消),出现了一些关于神威·太湖之光编译选项的题目,这对当时不知道有文档的我造成了很大的冲击,被微信答题打击到自信心之后,我便弃赛了。

光阴荏苒,时间到了2019年,拉着室友又参加了CPC(也不知道当时哪来的勇气)。很快初赛赛题便发布了,这一年我们找到了神威的BBS论坛(上面有新手入门的PPT)和官网(上面有各种文档)。两条大学狗便开始了苦逼的学习生活,到了初赛英雄榜发布后的几天,我们觉得自己可以写初赛题。刚开始写的时候,我还有幸观摩了我校另一只队伍的初赛总结会(是的,他们初赛已经写完了)。不得不说,初赛英雄榜真是一个好东西,时不时就有好几只队伍一下子出现在前面,激励着自己继续写初赛题。

初赛主要还是学习如何让程序在神威·太湖之光上运行,我们在初赛最后实在找不到优化方向,然而其他参赛队还是比我们快太多,应该是我们在并行基础以及计算机底层上的水平太差了。

恍恍惚惚过了初赛,决赛题发布后,期末考试已结束,在家写的效率以及沟通效率不高,后来在家写的效率以及沟通效率不高,于是我和室友相约提前回到学校,正式开始了我们的决赛之旅。决赛的程序不再是简单的模板计算,而是改编自photoNs-2.0,一款宇宙N体数值模拟的软件,程序变得更加复杂,这应该更符合主办方的初意,激励学术界和产业界积极参与国产CPU应用的开发与创新,为国产CPU发掘典型应用,培养创新人才。

决赛还是大体按照初赛的思路进行优化,在大概弄懂程序之后,就开始了愉快的找热点-想办法优化的循环。虽然是11 11 7的强度,但还是十分愉悦的,看着程序的时间一点一点的减少,更带给我们再接着优化的动力。

后来我校另一只队伍因为实习原因选择了弃赛,我和室友看了一场电影后,便踏上了去无锡的火车,孤零零地去往无锡超算中心。不得不说,无锡让人感觉很好,天气舒适,景色优美,地铁上人很少(我从未坐过这么舒适的地铁)。与初赛不同,决赛采用现场竞赛模式,紧张感更强,在决赛现场做最后的调试程序,并面对面的和评审专家讲解优化思路并进行现场答疑。

现在想想,参加CPC竞赛中的每一天,都过得十分充实,平常时间可能在宿舍刷刷剧,打打游戏,比赛期间却能专注的学习,连吃饭时间都可以和室友讨论怎么优化。最后感谢CPC给了我们这样普通的大学生一个运用并行计算,进行实践应用的机会。

优化亮点

① 首先我们寻找计算热点,也就是程序中主要耗时的部分,根据神威太湖之光的特点,重新设计程序流程,将计算热点放到从核上进行计算,充分利用从核性能;

② 将从核与主核的计算进行重叠,使得从核计算的同时,主核进行下一步的计算;

③ 将从核的计算量进行均衡分配,使得每个从核计算量相近,总时间便缩小了;

④ 对c语言的自带的数学函数进行修改,使其更加适合神威太湖之光的从核;

⑤ 对核间通信进行优化。首先将相同的点对点通信进行合并,使多次小通信合并成一个大通信,然后将通信与计算进行重叠,减少程序的总时间;

⑥ 通过仔细阅读并理解源代码后,减少了一些可以去掉的计算;

⑦ 通过多开数组来解决从核的一些冲突,即通过空间来换取时间。




版权所有 国产CPU并行应用挑战赛