高性能计算,高兴能计算
大家都喜欢听故事,那我就先讲一个故事,为我的这篇文章争取一点读者。这个故事的名字叫做:“我不想懂什么高性能计算,我只在乎高兴了就能计算”。
在业界,“高性能计算”是个越来越火的词,在高校里,它的另一个兄弟“并行计算”更为大家所熟悉,在很多场合,这两个词指代的其实是同一个很有意思很有潜力的领域。之所以说它有意思有潜力,是因为年轻的计算机学科和其他历史悠久的学科交叉结合在一起,迸发了魔术般绚烂夺目的光彩。
2004年我还在中国科学技术大学读本科大四的时候,在机房做“并行计算导论”课程的上机作业,上这门课程的教师就是并行计算领域的领军人物--陈国良院士,和他的弟子我的朋友孙广中博士。我正专心敲着代码呢,几个不认识的其他院系的同学走了进来,看来也是来上机的。不过他们进来后不久,就开始抱怨后台的计算机性能太差,软件硬件的版本都太落后。当时我自认为是计算机科学技术专业“科班出身”,自然要比他们对计算机的了解强很多,有点轻视地说你们懂高性能计算吗。
这时一个年龄看起来跟我差不多大的学生说了一番话,原话我记不住了,大意就是“你们计算机专业硕士学的这点并行计算东西,在我们实验室还不如个本科生,我们实验室的机器也比这破机器强多了,要不是这几天我们的机器出了故障,又急着等一个结果跑出来发论文,我们才不想过来呢。计算机,不是计算器,它只有跟各行各业领域充分结合时才能发挥出最大的功用。计算机专业,就是应该做好其他专业行业的服务业。哪一天我们物理数学生物这些传统学科真的不用关心并行计算机、并行算法、并行程序了,才好呢。我不想懂什么高性能计算,我只在乎高兴了就能计算。现在是反过来的,要难搞的机器高兴了,难写的算法高兴了,难调的程序高兴了,我们才能计算,这哪行啊。”于是我哑口无言。现在想来当时他有这样的见解,很可能是个在读博士。在有少年班的科大,从来都不缺少这样遭遇牛人的意外。而“我不想懂什么高性能计算,我只在乎高兴了就能计算”这样的论点,我在微软的高性能计算部门工作的三年多中又多次从制造业、金融、渲染等行业的客户和合作伙伴那里听到。
这也显示了一个有趣的现象,高校里最懂高性能计算的,并不一定是计算机专业的师生,而往往是其他学科有高性能计算需求的师生,同样在业界最懂高性能计算的,也不一定是计算机专业的科学家和工程师,而往往是各行各业的领域专家。其实在高校关于高性能计算的课程设置和人才培养上也能看出同样的规律,大多计算机专业只在“计算机体系结构”、“操作系统”、“计算机算法”等课程中对并行概念点到为止,专门开设《并行计算》课程的高校屈指可数,而实施起来也容易变成“空中楼阁”,学生除了用MPI写写类似“Hello World”的并行程序,并没机会接触实际应用。相反,数理化专业开设如何利用并行计算帮助科研的课程却屡见不鲜,学生目标明确,更容易体会到高性能计算的威力和甜头,只是计算机基础偏弱,有时候学起来比较费力。
鉴于高性能计算领域的发展,在硬件和软件上离“高兴能计算”的目标都还有距离,我建议,对于有兴趣从事高性能计算,或者说用高性能计算来让自己“高兴能计算”的学生,既要认真搞清楚并行计算机的体系结构和工作原理,并行算法的一般规律和常见模式、并行程序的开发特性和调试技巧,也要针对某一具体领域的应用夯实基础,积极实践,这样自然能够积累很多实战经验,其中甚至有很大一部分是放之各领域皆准的问题和解决方案的“模式”。至于是否能在学校开设的课堂上学到这些东西,可能相当受制于学校的办学条件,比如是否真能合理调配师资力量硬件设备,为交叉学科做好交叉教学。但是在大学最重要最应该培养的能力,不就是自我学习能力吗?你完全可以没有机会创造机会,(借用一句被用滥了的书名模版,)让自己“高性能计算,从入门到精通”。
我相信,我们在高性能计算方面培养出来的人才越多,离“高兴能计算”的目标也就更近!而这和微软对高性能计算的愿景相当契合-- Windows HPC帮助用户运用已有技能和工具以更短时间便捷地完成更多任务。我们在上海的高性能计算研发团队,非常高兴能为“高兴能计算”贡献自己的力量。
魏臻
魏臻,2007年获得上海交通大学计算机科学与工程系硕士学位。现为微软亚太研发集团服务器与开发工具事业部的软件开发工程师,专注于高性能计算的产品开发,先后参与发布了微软第一、第二代高性能产品。魏臻的另一个身份是高性能计算中文博客https://blogs.technet.com/chinahpc的博主。 本文收录于《中国教育网络》2010年6月刊。
Comments
- Anonymous
June 16, 2010
很不错的视角和观点