专栏名称: 悦智网
悦智网依托国内外独享的科技咨询资源,分享最新的行业技术评论,实时发布国内外最新研究成果,打造技术成果的专业交易平台,促进科技成果的需求转化。
目录
相关文章推荐
Linux爱好者  ·  C/C++ ... ·  1 周前  
51好读  ›  专栏  ›  悦智网

反思计算机科学入门课程

悦智网  · 公众号  ·  · 2017-05-22 15:28

正文

拉斯•米勒希望学生从第一天起就接受并行架构。 

每年有超过350名计算机科学学生参加拉斯•米勒(RussMiller)秋季学期的离散结构课程,其中约90%是新生。学习到第5周时,学生将问题拆解成小块,学习“同时解决每块问题的方法”——并行计算。

今天,多核处理器为笔记本电脑和手机提供强大的功能。分布式云服务器或超级计算机集群处理大数据集,以改善脸谱网的新闻推送或预测天气。要充分利用这些系统,就需要并行算法。“这是一个并行的世界。”作为纽约州立大学布法罗分校的计算机科学家,米勒说,“为什么没有人为新生教授并行算法课程?”

目前,大多数入门计算机科学课程从串行编程开始学习,计算机一次只执行一个指令。而一些大学虽然将并行思维融入本科课程,但往往只提供相关内容的高级选修课。还有一些大学通常在第2或第3个学期开始学习并行课程。大学的需求可能会有所不同,但是米勒认为,传授并行思想“日益迫切”,如果早点做到这一点,它就可以成为“第二本性”。于是,在2013年,米勒把在纽约州立大学布法罗分校教授的离散数学改为教授并行算法,没有先修课程限制。

他说,大部分必修离散数学课程教授的内容要等到学生3年级或4年级时才需要。“这只是在浪费大家的时间,”他说,“他们只是应付考核。”花三四个星期教授标准逻辑思维和分治战略基础之后,米勒开始教授并行知识。他首先介绍20世纪60年代到21世纪并行计算架构的背景情况。该学期的其他时间,他教授跨硬件的并行算法,例如搜索和排序等任务。学生们学习诸如图像分割应用程序这样的内容。

每次学习一个新算法的课程过后,学生就会用新算法通过数学方式分析旧的并行硬件架构的理论性能。他们学习如何改变算法,以处理现代真实世界的架构,如云或网格。

因为教授的内容不是关于编程本身,所以米勒可以跳过棘手的细节问题,如句法规则或调试方法,并且有足够的时间向学生传授并行第一的思维模式。

担任美国计算机协会计算机课程指导委员会联合主席的斯坦福大学计算机科学家迈赫兰•沙哈米(Mehran Sahami)说:“这样做能起到效果。”计算机协会和IEEE大约每10年就会联合引入新的指导原则,2013年发布的最新原则建议将并行教育整合到整个课程中。

但是一些教育工作者发现,他们深度接受并行的能力受其他需求的限制。一些入门计算机科学课程的导师,例如印第安纳州迪堡大学的史蒂文•博格茨(Steven Bogaerts),针对线程(可并行运行的程序小节)以及如何阻止它们同时访问相同的资源,花了大约一个星期的时间。但对博格茨来说,“这已经是一个非常完整的课程了”,所以想更进一步就很难了。

有人指出,与并行性相比,代码性能更需增强。麻省理工学院计算机科学家查尔斯•E•莱瑟森(CharlesE. Leiserson)说:“在所有获得性能效果的方法中,并行性是最难的。”他教授了有关性能工程的初高级课程。莱瑟森说,在具体的硬件执行过程中,并行算法并不一定比顺序算法的运行速度更快。他说,掌握和理解其他因素也很重要,例如内存层次结构或编译器。

除了小示例外,米勒的教学并没有涵盖内存层,他对学生的未来很乐观。他说他们有3年半的时间来学习如何编写高效的代码。在他的课程中,学生们正在学习如何高水平地解决问题。“我希望他们认为世界对他们是开放的。”他说。

往期推荐

新型“野外技术”—用数据打击偷猎

意识与机械相结合,心灵遥控不再遥远

互联网的出现是必然吗?