基于模块化组织的教学实施研究

作者: 吴建平 银福康 彭军 杨锦辉 汪祥 张泽

摘  要:该文针对研究生课程并行算法与大气科学(气象海洋预报)专业并行计算技术课程进行模块化教学内容组织的研究,该文探讨模块化组织中教学目标可达性、教学内容系统性、知识点间依赖性、模块内容重复性,以及需求层次差异性、学生基础差异性等问题,并提出一些解决建议,以试图解决这两门课程的教学内容设计问题,进一步进行教学内容的优化,并为类似课程的教学内容设计提供有参考意义的解决之道。

关键词:课程内容;模块化;并行计算;依赖关系;计算环境

中图分类号:G642        文献标志码:A          文章编号:2096-000X(2023)24-0049-05

Abstract: This paper studies the modular organization of teaching contents of the course parallel algorithm for graduate students and the course Parallel Computing Technology for undergraduate students majoring in Atmospheric Science (weather and ocean forecast). The paper studies the reachability of teaching objectives, the systematicness of teaching content, the dependence between knowledge points, the repeatability of module content, the difference of demand levels, and the diversity of knowledge owned by students. The aim is to solve the problems for the design of the teaching contents for these two courses, and to further optimize the contents, and to provide reference solutions for the design of teaching contents of similar courses.

Keywords: course content; modularization; parallel computing; dependency; computing environment

课程是学生培养的核心环节之一,课程内容是其中最重要的组成部分,因此,虽然在并行计算相关课程的内容设计上,现有研究成果寥寥,但在其他课程内容设计的研究上,确已有很多研究,并获得了不少研究成果。目前,关于课程内容设计的研究,主要集中在课程内容重复问题、课程体系、模块化设计等方面。

从单一课程看,在建设时为满足不同来源的学生尤其是缺乏某些基础的学生学习的需求,很容易陷入追求自我最大程度的完备,而导致课程内容庞杂、繁多,且与其他课程存在大量重复的问题。张靖[1]发现本科经济法教学中,存在课程重复设置交叉且开设时间安排不合理的问题,并提出了要从理论教学、案例应用、实践教学等方面对课程内容进行最佳组合设计的建议;张霖等[2]发现我国高等教育学专业硕士研究生课程存在课程内容重复、先进性不够、结构不合理等问题,并提出了增加方法论课程、交叉学科课程、跨学科课程等方面的建议;赵玉等[3]发现在经济管理类专业课程群建设中,也存在内容重复的问题,并提出了以提升学生素质和能力为导向,构建精简教学内容的专业课程群的对策;刘健智[4]对21所高校物理学科教学教育硕士课程设置进行的文本研究发现,部分课程内容之间相互重复或交叉,并提出了对部分课程进行删除、合并,以及在专业必修与选修课间进行类别调整等建议。

虽然很多研究都已经指出在课程内容设置上出现重复的问题,但在出现原因与解决方法方面很少提及,或所提出的解决方法非常简略,可操作性不强。例如,文献[1]中所提及的对课程内容进行最佳组合设计,但如何进行具体设计并未给出。文献[3]中提及要对教学内容进行精简的建议,但如何进行精简也没有介绍。文献[4]中提到了对具体课程的删除、合并与类别调整等建议,具有一定的可操作性,但主要针对物理学教学教育方面,难以直接应用于其他领域的课程建设。

出于对课程优化设计的考虑,一个很自然的想法是对相关课程进行模块化设计,在这方面已有不少研究人员开展相关研究工作。屈婉玲等[5]针对离散数学课程,对教学内容按知识单元进行模块化设置,以便根据培养目标的不同,进行教学内容的灵活组织。施成华[6]针对隧道工程课程结构体系松散、内容庞杂的问题,提出将课程划分成若干模块,并对不同模块采用不同的教学与考核的方法。魏英[7]在深入分析大学计算机基础课程教学所存在的问题的基础上,根据各部分内容相对独立的特点,对分层模块化教学模式进行了研究。兰长林等[8]采取课程内容模块化和教师讲授、专题报告研究型教学模块化相结合的方式,开展了模块化教学方法研究。这些研究虽然针对模块化教学,但主要限于单一课程内部,也主要侧重于对课程内容聚集为少量单元进行组织,而对其间相互关系及其与其他课程之间的关系考虑较少。

在涉及课程之间相互关系的研究上,刘庆昌等[9]对植物生产类专业,提出了“两体系、三层次、模块化”的教学体系,将教学体系整体上分为理论教学和实验实践教学两个体系,每个体系分为三个层次,并按不同专业设置课程模块,以达到压缩学分总量、强化基础、增加实验实践的目的。北京大学陈晓林等[10]提出了对主要课程按照模块化、结构化的要求进行重新组织的思想,以适应学生进行多样化选择的需要。李明金等[11]对国外一流工科高校实践教学体系的特征进行了分析,并发现实践教学内容普遍具有多元化、综合化、模块化的特征,但其分析的模块化主要是将实践分类为基础实践、专业实践与创新实践三个类别。王稼军[12]对大学与中学物理教学的衔接问题进行了研究,并重点分析了新课标中学物理模块化组织与知识点类别设置给大学物理教学带来的挑战。这些研究在进行模块化研究时,涉及到了课程之间的关系,但没有具体描述如何识别这些关系,以及如何利用这些关系来进行教学内容的组织。

本文试图考虑针对所有学历研究生的课程并行算法与针对大气科学(气象海洋预报)专业本科生的课程并行计算技术,在基于知识点的模块化基础上,综合考虑各方面因素的影响与需求,研究对课程内容的优化设计,以期能尽量减少内容上的重复建设,提高不同层次与不同来源学员学习计划规划的针对性。

一  并行计算类课程模块化组织现状

并行计算类课程在国防科技大学(以下简称“我校”)虽然都还是选修课,但随着数值模拟作为第三种科学研究手段逐渐成为共识,在气象海洋环境数值预报、数值气候预测、计算流体力学和核科学等各个领域,已经得到广泛应用。另一方面,在实际应用中,对模拟精度要求越来越高,所要求解的问题规模越来越大,而单节点的内存空间与单处理器的计算能力有限,使得人们越来越寻求通过采用高性能并行计算机进行大规模数值模拟。例如,无论是数值天气预报,还是海洋环境数值模拟,国内外多年以前即早已普遍采用并行计算的手段。因此,开设并行计算系列课程,并对其不断进行改革,具有鲜明的时代背景和现实意义。

我校目前的并行计算类课程不仅在研究生阶段开设,而且在本科阶段也开设。研究生课程并行算法针对全校的研究生开设,以便学生通过对并行计算基本概念、基本原理、基本方法与基本知识的学习与实践,为后续进行大规模科学与工程计算领域的研究与工作奠定基础。该课程总共36学时,其中课堂实践3学时,自20世纪90年代开设以来,经过多年发展、几代老师的经验积累,教学内容进行了多次迭代优化,现已包括并行计算基本知识、并行计算基本概念、基本通信操作、常用任务分解、常用任务调度、常用设计模式、并行算法编程实现、典型数值并行算法与典型非数值并行算法等大的内容模块,知识层次相对较高,虽然对实践的要求较高,但理论性相对也较强。

并行计算基本知识主要涉及并行计算的基本概念、为什么要进行并行计算、并行计算的互连网络、并行计算机的分类与发展,以及并行计算模型等知识模块;并行计算的基本概念主要涉及并行算法的定义与分类、并行算法中的基本概念、并行算法的复杂性与并行算法的性能评价等知识模块;基本通信操作主要介绍常用的广播、规约、分散、收集和多对多私有通信等涉及到多个处理器集中参与的聚集型通信操作;常用任务分解主要介绍嵌套分解、数据划分、探测分解和预测分解等常用的任务分解技术;常用任务调度主要介绍数组分布与图划分等常用静态调度技术,与集中式动态调度技术;常用设计模式主要介绍数据并行计算、任务图、工作池和主从与流水线等常用设计模式;并行算法编程实现主要包括针对共享存储并行算法的OpenMP编程与针对分布存储并行算法的MPI编程实现;典型非数值并行算法主要介绍双调排序与快速排序的并行算法设计;典型数值并行算法主要介绍稠密矩阵向量乘、稠密矩阵乘、稠密线性方程组的并行求解、稀疏线性方程组并行求解和快速傅里叶变换的并行算法等知识模块。

同时,自2019年起,针对大气科学(气象海洋预报)专业对数值预报技术的能力需求,在本科阶段,也开始开设并行计算技术课程,使学生掌握并行计算的基本概念、基本原理、基本方法,以及实现并行计算的典型环境,以便适应气象海洋预报保障的能力需求。该课程总共24学时,其中课堂实践8学时,主要包括并行计算基本概念、并行计算牵涉到的主要问题、并行计算基本原理与方法、分布与共享存储并行计算的基本原理与方法、并行计算环境基础、OpenMP并行编程基础、MPI并行编程基础,以及MPI编程实践与气象应用等大模块,虽然也有理论知识的介绍,但主要侧重于实践。

并行计算基本概念主要涉及从数值天气预报的角度对为什么要进行并行计算的介绍、并行计算的基本概念与思维,以及问题、机器、算法三个层面上涉及的并行计算常用基本概念;并行计算牵涉到的问题主要涉及并行计算机的分类与发展、处理器间互连结构的抽象、高性能计算机主存的抽象、并行计算的LogP模型、并行计算系统的软件基础等知识模块;并行计算基本原理与方法主要涉及输出数据划分、输入数据划分等任务分解技术,静态调度与动态调度的概念、块分布与循环块分布等最常用任务调度技术,基于数据的并行算法设计模式等知识模块;分布与共享存储并行计算的基本原理与方法主要涉及消息传递标准的基本属性、分布存储并行算法设计时需注意的问题、单程序多数据与多程序多数据、影响分布存储并行算法效率的因素,以及共享存储并行算法的一般结构及其主要性能优化技术等知识模块;并行计算环境基础主要涉及Linux基础环境、GNU基础编译器、OpenMP并行计算环境验证、MPI并行计算环境配置和MPI并行计算环境验证等知识模块;OpenMP并行编程基础与MPI并行编程基础主要以C语言为基础,介绍共享存储并行算法与分布存储并行算法编程实践的入门级知识;MPI编程实践与气象应用主要介绍Jacobi迭代的简单MPI程序实现与计算通信重叠技术的实现,以及数值天气预报WRF模式的安装、编译与运行等基本知识。

二  并行计算类课程模块化组织教学实施中存在的问题与探讨

并行算法课程自开设以来,已为近千名研究生充分利用大规模数值模拟手段,进行后续研究与开展工作打下了很好的基础。并行计算技术的开设与近年来的教学,也已为大气科学(气象海洋预报)专业的本科生进行后续数值气象海洋保障能力的培养奠定了大规模数值模拟的理论与实践基础。但在具体教学过程中,发现还存在诸多现实问题,这里对所发现的问题进行分析并探寻解决之道。

第一,虽然针对教学目标,按模块化进行了课程内容的系统性设计,但并行算法与并行计算技术存在明显的需求层次差异性,目前课程内容设计在针对不同学生的层次性上还有改进空间。并行算法课程已经开设很多年,在内容的设计上已经经过大量修改订正,已从基本概念、基本理论、基本方法,到编程实现,再到典型并行算法,进行了内容的系统性规划。由于面向全校所有专业的研究生,教学过程中的实际举例、典型算法、具体实践都必须围绕较为通用的知识基础进行展开。并行计算技术面向的是大气科学(气象海洋预报)专业的大二本科生,尚未系统深入学习大气科学相关专业知识,因此,既需要具有一定的专业针对性,以便于后续数值预报预测课程的学习,又不能太过针对专业,对所学专业知识的要求不能太深,这方面尚需要进行进一步优化。

经典小说推荐

杂志订阅