并行计算实验课程建设的实践与探讨
摘 要: 并行计算一直是计算机和软件工程学科的专业基础课程,具有较强的综合性、方法性和实践性。结合天津大学高性能计算实验室多年来在并行计算课程建设上的实际经验和成果,从知识体系、实验设计、创新训练、实验平台、实验考核等多方面进行总结,并针对不同专业和年级的学生对并行计算课程的实际需求,重点说明了利用虚拟化和云计算技术构建综合实验平台的方法,以及以具体任务和问题为驱动的实验教学模式和多角度的考核机制。探讨了并行计算实验教学如何紧跟前沿技术发展的途径,以便有效地应对云计算、大数据时代对专业人才培养的基本要求。
关键词: 并行计算; 实验设计; 实验平台; 云计算
0 引 言
并行计算一直以来都是大规模科学与工程计算、数据分析的基础工具,内容涉及了体系结构、操作系统、计算机网络、程序设计、数据结构等计算机学科的绝大部分专业基础知识,是一门综合性和实践性都很强的前沿应用类课程[1]。近年来,随着现代计算机普遍采用了多核异构的体系结构,以及互联网、大数据、云计算、人工智能的兴起,并行计算的应用领域在不断扩大,重要性也不断提高,尤其是我国自主研发的超级计算机发展迅猛,高性能计算能力已经世界领先[2-3]; 这也要求并行计算的课程建设要与时俱进,实验环节要紧密联系具体应用,提高学生的实践动手能力。
近 20 年来,我校高性能计算实验室一直进行并行计算课程的持续建设,期间完成了教育部-英特尔精品课程—并行计算的建设,除计算机专业外,还面向全校相关专业的研究生开设并行计算的高级选修课程。本文将从知识体系、实验设计、实验环境、实验考核等方面进行详细论述。
1 重视知识体系的相互联系和专业基础的融会贯通
课程建设过程中,十分重视知识体系的梳理和专业基础的融会贯通[4]。并行计算是一门应用性非常强的综合性课程,也是联系计算机学科与其他学科的一个桥梁,图 1 显示了并行计算的这种桥梁作用: 一方面,并行计算是计算机学科专业基础知识的综合应用,一个并行计算环境的构建涉及到一系列的硬件( CPU、协处理器、I/O、存储、网络、) 和软件( 操作系统、编译技术、数据结构、程序设计) 技术; 另一方面,由于大规模科学计算和工程仿真的广泛应用,并行计算在环境、生物、航天、大气、海洋、水利、电路设计等诸多领域中都有重要应用,而且随着在现代社会进入大数据、云计算时代,各行各业越发需要数据和计算的支持,并行计算的应用外延正在不断扩大,这个桥梁结构也正在逐步加强。因此,高校在本科高年级尤其是研究生教育阶段对并行计算进行不同程度的普及也十分必要。通过梳理并行计算的知识体系,在课程中将所有相关的知识点串联起来,有助于学生形成知识网络,将关联课程融会贯通。
鉴于并行计算课程内容的综合性较强,且有一定的入门门槛,就需要根据专业和学生已有的基础,因材施教。对于计算机、软件学科的高年级本科生,已经有了足够的专业基础知识,课程目标是理论与实践并重,兼顾课程的广度和深度; 对于计算机、软件学科的研究生,已经参加了具体的科研课题,侧重并行程序设计方法和高性能计算实践,结合代表性应用,深入解析性能优化的方法与技巧; 而对于其他相关专业的研究生,重在入门知识以及并行工具的应用,适当增加课堂讨论,引导学生在科研课题中尝试应用,更好地解决本领域内的问题。此外,还要密切关注高性能计算相关技术的发展趋势,以科研反哺教学,保证教学内容的前沿性和实用性[5]。
2 基础实验与应用实验并重,加强与实际问题的联系
实验教学是并行计算课程体系中非常重要的一环,并行计算的实验可以说是计算机知识的综合演练,原则是基础实验与应用实验并重,加强与实际问题的联系。实验除了巩固基础知识外,主要目的是培养学生应用并行计算技术解决实际问题的能力。实验课程要根据学生的专业背景( 计算机相关、非计算机) 以及所在阶段( 本科生、硕士、博士) 进行合理设置[6]。总的来说,本科阶段注重基础,鼓励探索; 研究生阶段以实际问题为导向,加强自学,通过范例分析,以点带面。
面向计算机本科专业的实验课程侧重并行、并发基础概念的理解和掌握,实验内容力求全面,实验难度逐渐增加[7]。实验涵盖 3 大类: 基于共享内存的多线程( Pthreads、OpenMP 等) ,基于消息传递的多进程 ( MPI) ,以及大数据处理的 Hadoop、Spark 等,具体内容每学年都会有调整,一般包括矩阵运算、方程求解、字串处理、文本分析等。最后的综合实验一般是开放性的探索课题,多为某个领域尚未完全解决的实际问题,比如计算生物学中常用的动态规划算法,天文数据处理中的交叉证认,宇宙大尺度结构模拟中的 N 体问题等,这类问题常常需要综合考虑计算负载、I/O 瓶颈、通信优化、数据布局等多个方面。实际经验表明,在本科教学中设计探索类实验,有助于激发学生的创新思维,发现解决问题的新思路。上面提到的问题中,不少学生尝试了传统算法之外的新思路,有的经过改进后总结成论文发表。
在研究生阶段,大部分学生都是带着具体应用目标来选修并行计算的,一般是为了解决在科研项目中遇到的性能问题。为此,研究生的课堂上增加了讨论交流环节,基础知识讲解更加凝练,旨在抛砖引玉,强化学生的自学能力,同时还邀请业内人士进行前沿技术和应用范例的专题讲座; 实验环节则侧重高层概念和综合应用性,掌握通用并行工具和编程模型的使用,比如线性系统的并行求解器 HYPRE[8]、Intel 的高性能数学函数库 MKL,支持多核异构并行模式( GPU、MIC) 的线性代数库 ViennaCL [9]等,旨在引导学生在实际问题中灵活使用。研究生的综合实验环节,采用结合科研任务的自主选题模式[10],考核指标将综合课题展示和实验报告两部分内容。学生通过实际应用,一方面能够透彻理解并牢固掌握相关知识,另一方面有助于推动科研课题的开展,达到学以致用; 最后,实验本身还能够提炼为科学应用范例,反馈到课堂上。
除了上述常规的实践能力训练外,教学团队平时注意从科研项目和实际问题中凝练适合大学生创新训练的课题,指导学生参加大创项目[11],已经参与的课题涉及并行编程模型、并行程序开发环境、海量天文图像检索、射电数据处理、计算金融等多个方面。同时,积极组织并支持学生参加各类相关比赛,包括世界大学生超级计算机竞赛( ASC) 、全国并行应用挑战赛 ( PAC) 、以及业内大公司举办的各种挑战赛等,在实战中进一步激发学生的创新潜力,提高对知识的综合应用能力。
3 构建统一的综合实验平台,兼顾定制需要
并行计算实验环境的构建相对复杂,近年来随着大数据相关实验的增加以及计算规模的扩大,传统的单机环境很难满足实验要求。依托我校超级计算中心,利用虚拟化、云计算技术,构建了统一的并行计算综合实验平台[12-14],图 2 显示了该平台的体系结构。
整个实验平台分为物理层、中间管理层、实验应用层 3 个部分,可以提供传统的多用户集群环境和基于虚拟机的云计算环境。底层物理环境包括高性能计算节点、由普通商用服务器搭建的普通计算节点、共享存储及其上的并行文件系统。高性能计算节点是我校超算中心为并行计算实验专门划出的一个相对独立的计算集群,主要用于稍大规模的综合性实验,也为学生参加各类竞赛提供测试环境; 普通计算节点则以虚拟机的形式提供实验资源,主要用于入门训练、基础练习等小型实验,也可以用于大规模计算的前期调试。
对于高性能计算节点,中间管理层主要是任务调度系统 PBS( Portable Batch System) ,实验任务需要编写 PBS 脚本,提交到任务队列。普通计算节点的资源由开源的云计算平台 CloudStack 统一管理,根据课程需要,提供了各类主流操作系统的虚拟机模板。基础模板只包含操作系统,学生需要从零开始安装配置实验环境; 标准模板增加了并行计算的编译、运行环境,学生可以直接开始实验; 专业模板包含了针对特定领域定制的工具集,主要为相关学科的并行计算培训使用。基于虚拟化的云计算实验环境,可以在短时间内准备好一套标准化的实验环境,简化配置过程,让学生快速上手,非常适合非计算机专业的上机课程。除此之外,虚拟机环境还可以支持操作系统、云计算、网络安全等相关课程的实验教学。
高速共享存储是整个系统的桥梁,通过统一的用户管理,实验平台在共享存储上为每个用户都分配了一个私有空间,通过定制虚拟机模版的初始化程序,虚拟机在启动时将执行挂载网络存储空间的脚本,同一个账户在虚拟机和集群中均可以访问这个用户空间,从而方便用户在不同的实验环境中进行切换。目前平台只有少数几个物理节点可以提供 OpenCL /CUDA 的编译和运行环境,为提高硬件资源的利用率,也为了避免资源竞争,开发了一个基于 Web 的实验资源管理系统,系统实时显示所有资源的当前利用情况,如果用户要使用超过标准配额的虚拟机或者物理节点,都需要在系统中提交申请。
实验应用层包含了前面提到的各类实验以及各个实验对应的虚拟机镜像,提供一个从基础、到综合、再到实际问题求解的进阶流程。由于采用了基于虚拟机的云计算模式,一些业内前沿技术,比如,近年来在互联网应用中大行其道的协程( co-routine) 、大数据框架 Hadoop /Spark 等,很容易被引入到实验环境中,从而加速并加强了课堂知识与实际应用的联系,也有利于提高学生的就业竞争力。此外,基于我国虚拟天文台的开放共享标准,实验平台通过 IPv6 高速网络连接了天文科技领域云系统,学生可以直接利用中国天文数据中心的海量数据资源,进行大数据相关实验[15]。
4 细化评分标准,重视实验分析
前面提到,针对本科生、研究生、计算机专业和非计算机专业分别开设了并行计算课程,不同课程以及实验教学的侧重点也有所不同,对应的考核形式和评分标准都是单独制定,以保证实验教学的质量[16],总的原则是细化评分标准,重视结果分析。
5 结 语
随着大数据、高性能计算在推动行业发展中所起的作用越来越重要,并行计算技术正从计算机专业向其他相关专业领域开始普及,相关课程在工科院校中的受欢迎度也在不断增加。本文梳理了并行计算在计算机学科和其他领域之间的桥梁作用,以及计算机应用技术创新发展面临的问题及解决措施,说明了循序渐进式的实验课程体系,展示了基于云计算技术的综合实验环境的构建方法,最后介绍了如何通过细化实验考核指标来强化学习效果的作法。近年来,MOOC 在全球范围发展迅速,未来希望进一步提高并行计算实验平台的开放性,不断丰富实验内容,优化训练方法,让更多的学生收益。
参考文献(References):
[1] 陈国良,孙广中,徐 云,等. 精品课程“并行计算”的建设[J].中国大学教学,2006( 1) : 18-20.
[2] 迟学斌,胡永宏. 我国超级计算发展状况研究[J]. 调研世界, 2013( 8) : 56-60.
[3] 葛 蔚,郭 力,李静海,等. 关于超级计算发展战略方向的思考[J]. 中国科学院院刊,2016( 6) : 614-623.
[4] Wan H,Luo X,Gao X,et al. Parallel computing education through simulation[C]/ /Asian Simulation Conference. Singapore. [s. l. ]: [s. n. ],2016: 585-591.
[5] 郭卫斌,郑 红,李建华,等. 并行与分布计算课程建设探索[J]. 计算机教育,2009( 3) : 82-84.
[6] 徐新海,唐玉华,林宇斐. 跨专业并行计算基础课程教学设计[J]. 计算机教育,2014( 23) : 106-109.
[7] 于 泠,陈 波. 认知负荷理论指导下的并行计算实验教学探究[J]. 计算机教育,2016( 12) : 77-80.
[8] Falgout R D,Yang U M,HYPRE: A library of high performance preconditioners[C]/ /International Conference on Computational Science. Amsterdam,Netherlands: [s. n. ],2002: 632-641
[9] Rupp K,Rudolf F,Weinbub J. ViennaCL-a high level linear algebra library for GPUs and multi-core CPUs[C]/ /Proceedings of the International Workshop on GPUs and Scientific Applications. Vienna,Austria: [s. n. ],2010: 51-56.
[10] 金 毅. 基于案例-任务驱动教学法的高性能计算课程研究[D]. 乌鲁木齐: 新疆师范大学,2010
[11] 陆 枫,金 海. 将并行计算纳入本科教育深化计算机学科创新人才培养[J]. 高等工程教育研究,2016( 6) : 108-112
.[12] Ivica C, Riley J T, Shubert C. StarHPC—teaching parallel programming within elastic compute cloud[C]/ /Proceedings of International Conference on Information Technology Interfaces. Dubrovnik,Croatia: [s. n. ],2009: 353-356
[13] 张克非. 基于 MPI 的网络并行计算实验系统构建[J]. 实验室研究与探索,2012,31( 9) : 63-66.
[14] 邹 溪,张澜宇,周 航. 并行计算实验的作业调度与远程提交[J]. 实验室研究与探索,2012,31( 8) : 59-61
[15] 肖 健,李长华,樊东卫,等. 基于云环境的天文大数据开放实验平台[J]. 实验技术与管理,2016( 12) : 158-162.
[16] 王 勇,宋万年. 改进综合性、设计性实验考核办法提高学生实验能力[J]. 实验技术与管理,2006( 4)
《并行计算实验课程建设的实践与探讨》
- 职称论文刊发主体资格的
- 政法论文浅析工会法主体
- 化学在初中教学中的情感
- 中学教育论文思想政治方
- 法治论文投稿法治型市场
- 杂志社论文发表浅析推动
- 新疆教育报投稿浅析学生
- 分男女招生录取的合宪性
最新优质论文
- 职称评定需要发表什么样
- 职称晋级论文检索才认可
- 教师类职称论文一般多少
- 浙江师范大学学报编辑部
- 新闻专业有哪些职称
- 医学领域cscd期刊怎么查找
- 论文发表三步曲
- 如何提供职称论文的知网
论文发表问题热点
- 工程管理专业论文摘要准
- 硕士从助工晋升中级职称
- 电力系统职称核心期刊怎
- 博士生毕业论文答辩技巧
- 《教育探索》核心级教育
- 发表职称论文如何鉴别期
- 毕业及职称论文发表需要
- 简述机械工程师基础考试