并行程序设计课程全过程多途径思政建设方案

作者: 熊智 蔡玲如 洪秀秀

并行程序设计课程全过程多途径思政建设方案0

摘  要:并行计算的应用领域越来越广泛,众多计算机类专业都将并行程序设计作为必修课程。依据ACM/IEEE计算课程体系规范,结合国产超级计算机的发展,该文梳理该课程的教学内容和包括思政目标在内的课程目标,进而设计全过程多途径的总体思政方案。思政元素涵盖所有5个思政目标,且较好地分布在全部5个知识单元中,教学方法和工具均根据各个思政元素的特点量身选择或设计。该文最后论述两个课程思政设计案例供相关课程参考,包括通过引导加速比上限的讨论强调辩证地理解相关规律,以及借助互斥锁的线上实践培养严谨求实的治学态度。

关键词:并行程序设计;课程思政;课程目标;加速比;互斥锁

中图分类号:G641        文献标志码:A          文章编号:2096-000X(2023)35-0181-04

Abstract: The application areas of parallel computing are becoming more and more extensive, and many computer science majors have taken Parallel Programming as a compulsory course. Based on the specification of ACM/IEEE computing course system, combined with the development of domestic supercomputers, this paper sorts out the teaching content of the course and the objectives of the course including the ideological and political objectives, and then designs a whole process and multi-pathway ideological and political education plan. The ideological and political elements cover all five ideological and political objectives and are well distributed in all five knowledge units, and the teaching methods and tools are selected or designed according to the characteristics of each ideological and political element. Finally, two cases of the ideological and political education are discussed for reference of related courses, including emphasizing the dialectical understanding of the relevant laws by guiding the discussion on the upper limit of the speedup ratio, and cultivating the rigorous and realistic academic attitude with the help of the online practice of mutex locks.

Keywords: Parallel Programming; curriculum ideological and political education; course objective; speedup ratio; mutex lock

在高性能计算中,通常需要处理大量的数据和复杂的计算任务,这些任务需要在短时间内完成。并行计算可以通过将任务分解成多个子任务,然后在多个处理器或分布式的计算机上并行执行这些子任务,最后将结果合并的方法提高计算速度。越来越多的科学研究和重大攻关项目都需要借助于高性能计算。高性能计算已经成为继理论分析和实验研究之后的第三种科学研究方法和手段,在保障国家安全、开发新能源、促进科技发展等方面有着直接的作用,是衡量一个国家科技水平和综合国力的重要标志,是当今科技进步与创新突破的“发动机”。

ACM/IEEE计算课程体系规范[1]是ACM(国际计算机学会)和IEEE(电气与电子工程师协会)计算机分会联合,组织全球计算机教育专家共同制定的计算机类专业课程体系规范,具有很高的权威性。随着云计算、人工智能和大数据的蓬勃发展,并行计算的应用领域越来越广泛,众多计算机类专业都将其作为必修的课程内容,例如《计算机科学课程体系规范2013》将并行和分布式计算作为一个专门的知识领域;在《计算机工程课程体系指南2016》中,算法知识领域包括并行算法和多线程知识单元,计算机体系结构和组成知识领域包括分布式系统体系结构知识单元;在《本科数据科学课程计算能力模型2021》中,大数据系统知识领域包括并行计算框架和并行程序设计知识单元。

互联网上各种信息鱼龙混杂,而大学生正处于思想活跃阶段,极易受到各种思潮的影响[2]。仅通过政治理论课程对大学生进行思想政治教育存在形式单一、效果不佳等问题,社会主义核心价值观、道德品质、职业素养等方面的教育应该出现在所有课程的教学中,以实现全程育人、全方位育人。课程思政是指在高等教育中,将思想政治教育融入到各个学科的专业课程中,推动思政教育与专业课程相融合,充分发挥思政课程与课程思政的合力,从而提升课程育人实效的创新教育模式[3],是贯彻执行党的二十大报告中关于落实立德树人根本任务,培养德智体美劳全面发展的社会主义建设者和接班人的要求[4],是把思想政治工作贯穿教学全过程,实现全程育人的重要举措。在并行程序设计课程中实施课程思政有助于为我国培养优秀的高性能计算人才,提升我国的科技竞争力。本文探索并行程序设计课程多途径全过程的课程思政方案,给出总体方案和若干具体思政案例的设计。

一  课程内容与目标

本课程采用基于OBE(Outcome-Based Education,以学习成果为导向的教育)理念的课程教学,构建“专业+思政+能力”的OBE课程大纲,并严格按照大纲开展教学活动。在前期教学研究与实践[5]的基础上,本课程设立了12个教学目标(即预期学习结果),见表1。在专业方面,本课程的主要内容包括并行计算的基础知识和并行计算行业的4种主流技术:适用于单机多核的Pthread和OpenMP技术,适用于集群的MPI技术,以及适用于GPU的CUDA技术。尤其,本课程密切关注ACM/IEEE计算课程体系规范,根据其中并行计算相关的知识单元调整教学内容。

程序设计处处蕴含着人类思维的智慧[6],具有丰富的思政元素。在思政方面,本课程深入挖掘教学内容中蕴含的思政元素,对于理论部分,注重科学思维方法的训练和辩证唯物主义的教育,培养学生探索未知、实事求是、勇攀科学高峰的责任感和使命感;对于实践部分,则注重培养学生精益求精的大国工匠精神,激发学生科技报国的家国情怀和使命担当。考虑到专业课的思政目标不宜过多,而要少而精,要掷地有声,经过最终精心的筛选与组织,为该课程确立了5个思政目标,见表1。在能力方面,本课程设置了较多学时的实践环节,培养学生并行计算的实践能力,主要包括并行程序的设计与测试、实践报告的撰写和文献资料的收集应用。尤其,本课程以“神威·太湖之光”和“天河二号”为例,让学生了解主流的并行计算技术与软件,并让实践内容与超级计算行业的实际应用接轨,提升学生的实战能力。

中国工程教育专业认证协会于2022年7月发布了新的工程教育认证标准[7],其中的毕业要求包括工程知识、设计/开发解决方案、环境和可持续发展、职业规范、沟通等12条要求。对于其中的环境和可持续发展及职业规范,计算机专业可将其分别具体化为“正确理解和评价复杂计算机软硬件系统的工程实践对环境和社会可持续发展的影响”和“具备人文社会科学素养、民族自豪感和社会责任感,在计算机软硬件系统实践中遵守法律法规、职业道德和规范,承担责任、履行义务”。毕业要求是确定教学内容的依据[8],并行程序设计12个课程目标对毕业要求的支撑情况见表1,该课程共支撑5条毕业要求,尤其对职业规范有很好支撑,并且是少数几门支撑环境和可持续发展这一毕业要求的课程之一。

二  课程思政方案的总体设计

课程思政以专业知识为载体,将思想政治内容融入其中,赋予专业知识以思政意义。在讲授每个知识点时,教师根据知识内容的特点,首先选择合适的教学方法,然后在恰当的地方通过案例、类比、讨论、探究或程序演示等方式引入思政元素,让学生悟出思政元素,做到水到渠成,润物无声,最后教师再给予总结以夯实思政效果。并行程序设计的总体课程思政方案见表2,主要具有如下两个特点。

全过程:首先,本课程充分挖掘课程中的思政元素然后进行删选,使得思政元素能涵盖所有(5个)思政目标,且在各思政目标中分布较为均匀。尤其,思政元素较好地分布在全部(5个)知识单元中,以让思政教育持续整个学期。其次,充分利用课上教学、课后作业和课内外实践等教学环节开展全方位的课程思政,实现不同层面的育人功能。最后,本课程充分利用新型教学手段,借助雨课堂、微信群等平台把握学生全过程的学习参与情况,让学生看到自己在习惯、态度、规范和责任感等方面的不足,并及时纠正或改进。

多途径:本课程根据各个思政元素的特点,量身选择或设计学生最容易领会的教学方式、方法和工具。合理应用线上和线下教学方式,灵活运用探究式、试错法、启发式和翻转课堂等教学方法,结合使用课程网站、微信群、虚拟化软件、在线会议和MOOC网站等平台和工具精心设计思政方案。尤其本课程注重引导学生主动思考和探究,以保证课程思政的效果[9]。此外,在线教学提供了很好的实践环境,学生在电脑面前,就能够随时编写和运行代码并通过屏幕共享分享实践结果。

三  课程思政案例

(一)  加速比上限

采用p个处理器并行化一个串行程序,运行时间由T(1)变为T(p),则加速比为S(p)=T(1)/T(p)。假设该程序的总计算量为1,其中串行部分占f(0≤f≤1),并行部分占1-f。在总计算量不变的前提下,采用越多的处理器计算运行时间越短,因此Amdahl加速比计算如下:S(p)=T(1)/T(p)=1/(f+(1-f)/p)。容易证明,S(p)≤p和S(p)≤1/f,前者表示加速比不超过处理器的数量,后者表示即使采用无穷多个处理器,加速比也不可能超过1/f。

针对S(p)≤p,教师给出如下实例让学生讨论。给定一个数组中有400个无序排列的数,现要从中找到指定的一个数,假设要找的数位于第308个。由于这些数没有排序,因此只能一一比对。如果采用一个处理器,一共需要比对308次即可。如果采用4个处理器,给每个处理器分配100个数,那么第4个处理器只需比对8次即可通知所有处理器结束比对。因此加速比为308/8=38.5,超过了处理器的数量4,与加速比不超过处理器数量的结论矛盾。让学生讨论给出解释。在讨论过程中给学生如下启发和引导。

1)加速比公式是唯一的吗?(不唯一,例如还有Gustafson加速比)。

2)不同加速比的区别是什么?(前提不同,Amdahl加速比的前提是总计算量一定,Gustafson加速比的前提是计算时间一定)。

3)Amdahl加速比适用于这里吗?(不适用,因为采用4个处理器并行计算时实际计算量发生了变化,总共比对的次数变少了)。

经过上述启发,学生明白了由于实际总计算量发生了变化,因此不适合运用Amdahl加速比进行评估。最后教师总结:任何规律都是有前提的,在运用一个规律时,先看前提是否成立,否则就犯了逻辑错误。

经典小说推荐

杂志订阅