0 引 言
超级计算机是当今国家高科技进步与突破的“发动机”,在生命科学、天体物理、人工智能、大数据处理、气象预报、核聚变等诸多研究和应用领域中发挥着极其重要的作用。超级计算机已日益成为“国之重器”之一,是国家科技实力的重要标志之一,也是国家科技竞争的焦点之一 [1-2]。超级计算机比一般计算机系统更庞大,无论是硬件和软件,还是基本原理等各个方面都异常复杂,因此对从业者的知识储备和能力要求较高。同时,行业领域对超算能力的需求日益增长,也使得领域人才匮乏。这一切都对超算人才培养的质和量提出了更高的要求。
超级计算机应用的核心技术是并行计算,作为应用工具,相关课程具有极强的应用性和实践性,实验是课程不可或缺的教学环节。然而,超级计算机的软硬件系统大而复杂,架构更具有多样性,不仅系统价格昂贵,使用和维护成本也相当高,普通高校不易配置教学实验所必需的设备。超级计算机并行计算虚拟仿真实验,旨在使用普通计算机仿真超级计算机的软硬件系统,从而替代并行计算等课程所需的实验设备,降低开展教学实验的成本,也为普通高校开设此类课程提供了可行的途径。通过仿真可视化地展示并行计算的基本原理和程序执行过程,可以帮助学生更快、更深入地领会并行思想,提高并行编程的实践能力。
1 超级计算机虚拟仿真实验系统设计与实现
1.1 系统设计
超级计算机虚拟仿真实验系统包括超级计算机架构、 MPI 通信实验、 n-body 问题实验以及流体仿真实验 4 个部分, 4 个部分的实验环环相扣,逐层递进,图 1 展示了它们之间的联系。从知识点的角度看,每部分实验都涵盖不同的课程关键知识点。从能力培养的角度看,所有实验都紧紧围绕学生的 3 个能力培养:超级计算机架构以及超级计算机硬件配置搭建实验,培养学生对超级计算机架构的设计能力;MPI 通信实验、 n-body问题实验以及流体仿真实验,培养学生对并行算法的设计能力和在超级计算机环境中的实践能力。
MPI 通信实验、 n-body 问题实验和流体仿真实验在操作前都需要学生配置好符合要求的超级计算机硬件,而对硬件的配置则要求学生首先完成对超级计算机架构的学习,之后再依次完成其他实验。MPI 通信实验帮助学生掌握进程间的通信原理;在此基础上,学生通过 n-body 实验进一步掌握并行程序的设计方法;最后,学生通过流体实验体验并行算法在解决复杂问题上的应用方法。
(1) MPI 通信 [3]。MPI 程序执行前需指定节点数量以及每个节点的进程数,各个进程之间的交互就是 MPI 程序的通信。在 ping-pong 实验中,单个数据包不断地在 2 个节点之间传输,如同打乒乓球一样。通过这种方式来测试 MPI 消息通讯带来的开销。在聚合通信实验中,聚合通信函数将计算任务分配给各个进程后让每一个进程得到最终的计算结果。该计算需要进行复杂的进程通信,常用的通信结构有树形通信结构以及蝶形通信结构。
(2) n-body 问题 [4]。在物理学中, n 体问题是预测一组物体(比如天体)相互作用的问题。解决 n-body 问题关键在于使用程序去反复计算物体之间的作用力,然后去更新物体的位置、速度以及质量,这样就能够模拟该问题。在并行程序设计中,需要将作用力的计算并行化,提高n-body 问题解决速度。
(3)流体仿真。在影视、动画、游戏、航天航空等应用领域,流体仿真十分常见 [5-6]。为了获得实时逼真的流体动画效果,常常使用GPU(图形处理器)并行计算加速流体计算的过程,确保流体动画的真实感、交互性、实时性。光滑粒子流体动力学方法(Smoothed ParticleHydrodynamics,SPH)是常用的流体仿真方法之一,该方法的基本思想是将连续的流体用相互作用的粒子的集合来描述,各个粒子上承载各种物理量(如质量、速度等),通过求解粒子集合的动力学方程和跟踪每个粒子的运动轨道,进一步实现流体动画效果。
1.2 核心要素仿真设计
为了尽可能地还原真实场景中超级计算机的实验过程,虚仿实验系统在搭建过程中,对核心要素进行仿真,包括对超级计算机架构的仿真和对真实实验操作的仿真。
(1)超级计算机架构的仿真。按照真实的天河二号超级计算机,高度还原了超级计算机的外部环境以及内部的硬件拆解结构,帮助学生直观地理解超级计算机的硬件结构。
(2)真实实验操作的仿真。系统模拟真实的集群软件环境,学生采用命令行界面登录硬件,编译与执行程序,系统所有命令都来源于实际集群调度系统。学生在学会虚拟仿真系统的实验操作后,能够很快适应真实的集群软件环境。系统模拟真实的并行程序实践环境,代码的编辑与执行都与真实环境保持一致。
1.3 系统实现
该虚拟仿真实验系统为 B/S 架构,技术上采用基于事件驱动的新型处理架构,使用 Node.js实现后台服务开发;前端基于浏览器为教师和学生提供在线虚拟仿真教学模式,只需要使用浏览器而无须安装任何插件或第三方软件即可进行实验课程教学,支持 IE8 及以上版本、 FireFox30.0、Chrome30.0、 LINKS2.1 以及 Opera9 以上版本浏览器访问;底层采用 Java 技术开发,使用 Linux(CentOS)作为系统运行平台,所有的数据交换和内外部接口均基于 XML 和 JSON。除此之外,该仿真实验系统利用 Unity3D 和 3D Studio Max等开发工具,采用 VR 和 3D 仿真等技术,真实还原超级计算机的外部环境以及内部的硬件拆解结构,使学生可以身临其境,最大限度地感受超级计算机的真实实验环境。
为了确保学生能拥有良好的使用体验,系统的单场景模型总数设置为 110000 面,贴图分辨率设置为 512×512、 1024×1024,显示帧率高于每秒 25 帧,刷新率高于 30Hz,正常分辨率设置为 1920×1080。系统的具体实现是与北京百朋索奇科技公司合作开发完成。
2 基于超级计算机虚拟仿真实验系统的并行计算课程教学
2.1 教学方法
基于超级计算机虚拟仿真实验系统的并行计算课程,面向计算机专业,采用混合教学模式 [7],包含线下的课堂教学、线上的虚拟仿真实验系统和真实实验,在不同的教学环境中采用不同的教学方法(如图 2 所示)。
(1)课堂教学。沿用传统的讲授法,教师在班级教学中明确说明学习路径以及各个实验的目标、过程和步骤。
(2)虚拟仿真实验。通过精心设计若干个难度递进的任务,使实验具有层次累进性,让学生主动地体验实验带来的成长和满足,在虚拟仿真实验环境中还预设了学生可能遇到的困惑,通过设置锚点并提供多种形式的支撑资源,实现了支架式教学(旨在为学习者提供一种概念框架 [8] (建构对知识的理解))。
(3)真实实验。学生以小组形式从 MPI、CUDA 等并行方式中任选一种实现一个真实项目,该项目需要在真实环境中进行。学生提交代码到作业递交平台,并由平台自动评判程序的正确性以及性能,学生还需要对项目进行口头以及书面汇报,介绍所使用的并行算法和性能。
2.2 教学目标
(1)教学目的。通过此课程的学习,使学生了解和掌握现今最先进的超级计算机的并行技术;理解高性能计算机结构,各种并行编程环境以及编程辅助工具;掌握计算机学科中以及大型科学与工程问题中的基本并行与分布计算方法。
(2)能力目标。通过本课程的系统学习,使学生能够使用各种并行软件在各种并行计算机架构上编写并行程序。
2.3 虚拟仿真实验流程和实施案例
虚拟仿真实验主要依据实际的超级计算机硬件结构和并行计算的方法,通过系统模拟超级计算机上程序的运行,完成超级计算机硬件架构的学习以及并行程序的设计与实现。学生通过线下理论知识学习结合线上实际操作完成对原理与方法的掌握。
超级计算机并行计算虚拟仿真实验流程如图3 所示,学生需要按照超级计算机架构、并行程序仿真实验以及流体仿真实验的顺序依次完成各个部分的学习。对于并行程序仿真实验,按照由易到难的顺序完成各个子实验;对于流体仿真实验,可自由选择模块观看实验参数对流体仿真计算速率的影响。学生在实验过程中,超级计算机虚拟仿真实验系统记录了每个学生每个实验步骤的评分,基于成绩策略自动汇总,形成总体评价。
以 n-body 实验为例,课堂上,教师讲解n-body 问题的算法理论,指出实验目标。学生登录虚拟仿真系统,选择 n-body 实验模块,会看到 n-body 实验的知识点介绍以及测试题。虚拟仿真实验系统提供了 n-body 问题的算法伪代码、交互式的流程图和串行算法原理讲解图,帮助学生理解 n-body 算法。在学生完成相关知识点阅读与测试题后,会看到 MPI n-body 实验以及 CUDA n-body 实验的选项。这 2 个选项代表n-body 算法在 2 个不同架构的超级计算机(计算机集群和基于 GPU 的并行硬件)上的并行化实验。n-body 的并行算法可以进一步分为 BasicSolver 和 Reduced Solver。Reduced Solver 算法的实现要难于 Basic Solver 算法的实现。虚拟仿真系统针对 n-body 的并行算法的关键知识点设置了文字说明,将算法流程演示视频作为支架辅助学生理解算法原理,此外设置相关测试题来考核学生对并行算法的理解程度。学生可根据自己的学习进度自由任择 4 个实验(MPI n-body Basic/Reduced Solver, CUDA n-body Basic/ReducedSolver)中的 1 个进行;也可以按照由易到难的顺序来进行实验,先完成基础的 Basic Solver 的实验,然后完成较为复杂的 Reduced Solver 实验。在每一个实验中,学生需完成实验代码的填空,并根据系统提示输入正确的操作命令编译 / 执行并行程序得到正确的输出结果。当学生正确完成实验后,系统展示 n-body 问题的结果可视化视频。在实验结束后,学生需要分析实验结果并对思考题展开讨论,对于本例而言,学生需要对不同算法进行性能比较并思考算法的优化手段。最后学生将所有的内容整理成实验报告提交。
2.4 教学评价体系的创新
虚拟仿真实验可掌控和记录学生实验的整个过程,为开展全过程评价成为可能。超级计算机并行计算虚拟仿真实验记录每个学生每个实验步骤的评分,并基于完备的成绩策略自动汇总,最终形成总体评价。此外,超级计算机并行计算虚拟仿真实验可对积累的数据进行分析,挖掘出有用的信息,反馈到线下教学。
线下考查实验报告,重点是考查学生对思考题的探讨,随后课上组织讨论,引入相关论文讨论,启发学生的自主学习,最后通过一个真实的项目考察教学效果。
2.5 实施效果
在虚拟仿真实验环境中,学生能反复进行实验,加深了对并行算法的思维和实现方式的认识,提高了实验教学的趣味性,起到了事半功倍的作用。在虚拟平台上提供的学习氛围,有利于学生个性化学习,及时化解学习中的困惑问题,帮助学生快速理解并行算法难点。完成虚拟仿真实验后,通过在真实平台上的开放性、拓展性项目检验学生在虚拟平台上的学习效果,同时也培养了学生自主性学习能力和团队合作精神。
3 教学成效
利用虚拟仿真实验系统,学生可自行“搭建”自己的超级计算机,虚拟地操作超级计算机、进行并行编程实践、运行并行程序并可视化地展示实验结果,让学生联系以往的编程经验(Relevance)从而有效地分解难点,变抽象晦涩为直观浅显,帮助学生快速、深入地掌握难点,提高学生的学习兴趣(Attention)和自信心(Confidence),提高学生的满足感(Satisfaction),符合认知规律的 ARCS 模型 [9]。
学生的问卷调查统计以及反馈意见表明,现有的虚拟仿真系统达到了预期的教学效果。笔者还对最近的先后 2 次教学班学生做了关于虚拟仿真平台的使用效果的问卷调查,统计结果见表 1。从表 1 中的统计信息可以发现绝大部分学生都认可虚拟仿真平台对于课程的学习是有帮助的。在前一次教学结束后,根据学生的具体建议修复问题以及改进平台,对比先后 2 个批次的学生的反馈统计数据,第 2 批学生相比较第 1 批学生,对改进后的虚拟仿真平台有了更加积极的反馈,虚拟仿真平台展现出更好的教学效果。从总体的反馈意见看,所有学生一致认为虚拟仿真平台使得实验不受真实硬件环境制约,能够方便地对实验的内容进行学习和复习,学习更加灵活与自由。教学团队依托该系统建设的课程还获得了“上海市 2020 年度一流本科课程”的认定。
4 结 语
由于设备资源有限,超级计算机的并行计算实验教学在各大高校中一直是个难题,笔者设计开发的超级计算机虚拟仿真实验系统,结合线上线下混合教学模式进行教学,取得了较好的教学成效。同时,系统掌控和记录了学生实验的整个过程,使开展全过程评价成为可能。目前,该虚拟仿真实验系统在多轮测试和应用后,计划通过网络形式面向上海市和全国高校进行推广。
参考文献:
[1] 曹来发. 超级计算机[J]. 科技情报开发与经济, 2005, 15(7): 2-3.
[2] 陈左宁. 进入新时代的超级计算机[J]. 民主与科学, 2017 (4): 24-25.
[3] 都志辉. 高性能计算之并行编程技术: MPI 并行程序设计[M]. 北京: 清华大学出版社, 2001: 13-15.
[4] 王小伟, 郭力, 杨章远. N-body 算法及其并行化[J]. 计算机与应用化学, 2003(2): 195-200.
[5] 佟志忠, 姜洪洲, 韩俊伟. GPU 加速的二维流体实时流动仿真[J]. 哈尔滨工程大学学报, 2008, 29(3): 278-284.
[6] 胡香, 张威巍, 周玉柱, 等. 利用 GPU 实现基于物理模型的流体运动仿真[J]. 测绘科学技术学报, 2009, 26(3): 187-189.
[7] 陈贵南. 线上线下混合式教学模式在计算机课程中的应用与实施[J]. 电脑与电信, 2015 (12): 99-101.
[8] 王海珊.教与学的有效互动: 简析支架式教学[J]. 福建师范大学学报(哲学社会科学版), 2005(1): 140-143.
[9] Keller M. Motivational design for learning and performance: The ARCS model approach[M]. New York: Springer New York, 2009:43-74.
第一作者简介:钱莹,女,华东师范大学副教授,研究方向为并行计算、高性能计算机体系架构、机器学习算法,yqian@cs.ecnu.edu.cn。
引文格式:钱莹,李欣宜,窦亮,等. 基于超级计算机虚拟仿真实验系统的并行计算课程教学探索[J].计算机教育,2022(10):150-154.
转自:“计算机教育”微信公众号
如有侵权,请联系本站删除!