首页 > 范文大全 > 正文

并行算法与程序设计课程教学改革与交叉领域服务性探索

开篇:润墨网以专业的文秘视角,为您筛选了一篇并行算法与程序设计课程教学改革与交叉领域服务性探索范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要: 近期,Google的“阿法狗”战胜前世界围棋第一人、韩国九段名将李世石让全世界人民都聚焦到“大数据”、“深度学习”上来。而这些复杂智能算法的背后,都离不开并行计算、云计算技术的支持。尤其是当今随着高精尖仪器科学的发展,各领域所能探测和采集的实验数据都在急剧增长,如何能够解决海量数据下的计算复杂度高、耗时长、存储需求大的问题,并行计算技术必不可少,如果说计算机科学是一门工具科学,那么并行计算技术就是工具中的工具。它可以提高科研实验效率,变不可能为可能,开阔科研思路,从而加快科研成果的产出,对各种其他科研方向都有着重要的推进作用。

关键词:并行算法 程序设计 改革教学

中图分类号:G64 文献标识码:A 文章编号:1003-9082(2016)10-0178-01

传统并行计算教学主要依靠大型机器,对硬件的要求高,因此学生实践往往受到限制,今年来,因为成本和扩展性方面的优势,由普通商业机器组建大型集群也渐成并行分布式领域的主流。而且,随着多核时代的到来、以及GPU技术的普及,普通PC机的性能已经大大提高,现在简单几台PC机就可以成为并行计算实验平台,大大方便了并行计算课程的课上授课和课下实践教学的展开。因此,如何改革并行算法与程序设计课程的实践教学环境,并推进与其他交叉领域的扩展和融合,提升并行计算技术对其他领域的服务性是当前研究的关键。

本文旨在研究如何合理规划并行算法与程序设计课程的课时,并在此基础上探索如何引导学生根据各自的科研课题方向自选实践课题,培养自主学习和实验的能力,以达到既能提升并行算法编程能力,又能对所从事的科研方向起到促进作用,从而使并行计算技术真正成为计算机领域科研中一种可以应用、会应用的有效工具,对于培养当今大数据时代的信息技术高级人才至关重要。

一、改进教学方法―― 实例驱动型课程的建设

并行计算与程序设计课程的学习具有一定的复杂性特征,它以串行程序设计、计算机体系结构、数据结构、算法分析等课程为基础,且并行算法的思想一般较难理解,在算法设计中还要考虑资源竞争中所采取的同步互斥策略,在调试阶段由于调试工具的不足和运行本身的复杂性,使得问题频出,调试难度高。这些都直接导致并行计算在学习上具有一定的难度。因此,在有限的教学学时内让学生充分掌握并行计算技术的核心思想和应用技巧并不容易。

因此,我们引入了实例驱动型授课方式,对并行计算中的一些较难理解的思想,如划分与分治方法、同步与互斥中的互斥锁、信号量等技术,我们把多年教学和科研中积累的典型场景、典型应用引入课堂教学中,并尝试采用多媒体教学工具动态演示一些较为晦涩的并行执行过程,或结合一些生动有趣的经典小故事,让学生切实理解并行思想的精要之处。

实例驱动型授课改进的重点在于实例库的建设和扩充,为此我们既要旁征博引,即参考一些经典课本中的典型应用案例,又要结合我们日常并行计算方向科研自主取得的研究成果,也要积累往届学生的优秀课程作业,从而进一步提高实例化教学的所占比例,已让学生达到可以活学活用的目的。

二、自主选题课下实践教学的推进与考核体系的建立

为了充分体现并行计算技术的实践性和服务性特征,使学生能够真正学有所用,可以成为今后科研实验的有效手段,同时也为了弥补课时的相对不足,我们鼓励学生在课下的实践环节通过结合自身科研方向的自主选题展开动手实践,让并行计算技术能在各自的研究领域中真正落地,真正能够对学生的日常科研实验起到加速的目的,让并行计算技术能在与我学院的其他优势科研领域的相互融合和交叉中激发出更多的科研思路。在此基础上,优化当前的考核体系,以实践成果为主要检验对象,特别是引导学生完成从自主选题,到算法设计、再到并行平台搭建和程序运行,最后到结果性能分析和课程论文撰写的全套科研模式,并以完成质量为课程分数的主要衡量标准,并在此基础上进一步鼓励学生以找到科研交叉点,撰写和发表小论文为最优成果,从而培养研一学生的科研能力。

三、教学实践云平台的建设

Spark是当今最新最热门的类Hadoop MapReduce通用并行框架,它拥有经典云平台Hadoop的所有优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写Hadoop文件系统,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法中。利用机房的数十台普通PC机器,构建Spark云计算平台,既能锻炼学生理解云计算、理解分布式计算处理的能力,又能培养学生的应用并行计算技术解决实际科研领域问题的能力。

四、课下合作小组机制的建立和健全

并行程序在编程思想上与串行程序差别很大,刚开始学生很容易难以适应,而在平台搭建、程序运行调试等实验阶段,与串行程序相比难度也明显加大,往往会遇到各种各样不可预知的异常错误,由于并行执行的各个线程或进程对系统资源的抢占,每次执行顺序可能都不尽相同,这就导致很多异常很难再现,同时并行调试工具也相对不足,这些都导致并行程序在实际运行中较为困难。鼓励学生成立合作小组,相互合作、多方探讨、共同推进,是提高学生实践积极性的必然出路。经过前期的教学实践,这种小组机制已经初见成效,但在小组组织形式、管理模式方面应该进一步优化,提高小组的凝聚力,提高组员的主动性是改革的目标。

五、小结

经过多年的“并行算法与程序设计”课程教学,我们从中体会到要让学生充分领会并行计算的精要,达到活学活用的目的,就要全面改进授课方式,提高实例教学、实践教学的比例,并充分调动学生的课后主动实践、主动应用的积极性,并结合研究生阶段的各自研究方向,充分探索并行计算技术在各交叉学科中的应用能力,提高并行计算技术的服务性作用,并鼓励学生以小组为单位,共同合作,迎难而上,已达到更好的教学效果。