研究生课程“并行算法”教学内容优化设计研究
吴建平,银福康,杨锦辉,彭军,汪祥
(国防科技大学气象海洋学院,湖南长沙410073)
传统科学研究主要采用理论研究或实验研究两种手段。理论研究或难以针对实际模型进行展开,或只能以某种近似方式进行,与真实模型存在差距;而实验研究则很难避免出现主观性误差,且因实验器材与安全性等问题又使得成本较高。自20世纪起,随着计算机的出现与发展,人们逐渐发现计算机数值模拟可以作为另一种科学研究手段。此后,计算机数值模拟得以迅速发展,并在气象海洋环境预报、核物理、飞行器设计、拱坝建设、油气藏勘探、地震预测、图像处理、分子生物学、天体物理学、材料科学等许多领域得到了越来越广泛的应用。
在实际应用中,对模拟精度要求越来越高,所要求解的问题规模越来越大,但无论处理器的工艺水平如何高,单处理器的存储与计算能力都一直满足不了许多实际应用问题对实时性、计算能力与存储需求的要求,这使得人们越来越寻求通过采用高性能并行计算机进行大规模数值模拟。但要实现高性能并行计算,既需要从计算方法的层面进行并行算法设计,又需要面向高性能并行计算机进行具体实现,其中涉及方方面面的理论与技术问题。正是在这种时代背景下,中国科技大学、清华大学、加州大学伯克利分校、哈佛大学、普渡大学、斯坦福大学、北卡罗来纳大学等国内外众多高校陆续开设并行计算相关课程,国内外不仅形成许多经典教材①《并行计算:结构·算法·编程》、《可扩展并行算法的设计与分析》、《并行计算导论》、《数值并行算法与软件》、IntroductiontoParallelComputing(SecondEdition)。,在教学方面也进行了一些研究②《精品课程“并行计算”的建设》《并行计算实验课程建设的实践与探讨》等。。作为国内最早进行高性能并行计算机研制与应用的单位之一,国防科技大学早在20世纪80年代即由李晓梅教授开始开设“并行算法”研究生课程。
“并行算法”课程针对全校研究生开设,旨在通过学习基本知识、理解基本原理、运用基本技术、实践基本算法与阅读课外资料,培养学员的并行计算思维、算法抽象思维、逻辑推理能力与自主学习能力,使学生具备进行并行算法设计、实现到评估的初步能力,为气象海洋等大规模科学与工程计算领域研究生打下并行计算方面的研究与应用基础。
“并行算法”课程共36学时,其中课堂实践3学时。自20世纪90年代开设以来,经过多年发展和几代教师的经验积累,教学内容进行了多次迭代优化,现已形成包括并行计算基本概念、并行算法设计基本技术、典型并行算法与并行算法编程实践在内的内容体系,知识层次相对较高,不仅理论性较强,实践要求也较高。本文基于“并行算法”课程教学经验和实践,主要介绍教学过程中对并行计算思维训练的探索,以及基于该思维与模块化组织方式对教学内容优化设计方面的研究成果。
并行计算从思维方式上可以看成计算与并行处理这两种思维的复合。计算思维强调像计算机科学家那样思考问题与求解问题,是理解问题与对求解过程进行形式化时的底层思考,计算思维要求以算法的方式求解复杂问题,强调对问题求解的可达性,且追求对计算资源的节约与求解效率的改进。并行处理思维强调任务处理时对任务的分解与同时处理,在具体高性能计算硬件基础的情况下,着重任务的可分离性和任务调度的合理性。并行计算的思维本质即如何实现对整个任务计算过程的合理规划,以实现在目标高性能并行计算机上的高效执行。同时,由于强调在高性能计算机上的可达性,并行计算非常强调设计求解过程在高性能并行计算机上的具体实现及其实际效果。
基于对并行计算思维训练与理论实践相结合的理念,考虑学生对教学内容学习与理解的便利性,与未来对教学内容的进一步优化设计,课程讲授过程中将整体教学内容从顶层分为并行计算基本概念、并行算法设计基本技术、典型并行算法与并行算法编程实践四大模块。其中,并行计算基本概念主要侧重并行计算涉及的基本理念与概念,是实施后续教学内容的基础;并行算法设计基本技术主要侧重并行算法设计的典型过程,以及在该过程中经常采用的相关技术,是整门课程的核心所在;典型并行算法主要介绍数值计算与非数值计算中遇到的经典且较为简单的并行算法,一方面用以加深对并行算法设计基本原理与常用方法的掌握,另一方面也便于在后续研究中涉及类似并行算法设计时进行参考;并行算法编程实践侧重简单的编程实现,以及利用所学知识进行典型并行算法的具体实践。之后对四大教学模块,再次进行模块化组织,形成子模块,具体如图1所示。
图1“并行算法”课程模块组成图
并行计算基本概念模块主要包括采用并行计算的原因、并行计算的思维、并行计算常用概念、并行计算机的抽象及并行算法的性能评价等5个子模块。
采用并行计算的原因主要以数值天气预报与星系模拟等典型案例引入本课程,并通过对世界顶尖数