计算能力正在成为工业所需的基本素质。几十年来,计算机专业毕业生与行业需求之间的差距一直是一个讨论话题。
在大数据时代,计算机毕业生可以轻易找到工作,但他们往往缺乏工作场所所需的能力。雇主们正在寻找有能力的毕业生,因为高质量毕业生能够在进入劳动力市场后,灵活运用在大学里学到的知识、技能和文化来解决问题。
基础能力与计算机课程至关重要
近年来,计算机教育经历了从知识学习能力到能力学习的转变。以知识为基础的学习要求学生通过课本获得知识和理解,最后的毕业要求通常包括一个详尽的主题,以及一组与特定知识领域相关的学习成果。
然而学术知识和行业需求之间的重要联系是能力。字典上对能力的定义是“拥有足够的知识或技能”,这意味着能力是一种加速成就的品质。在美国计算机协会(ACM)新推出的本科教育课程指南中,已经开始将使用能力作为一项重要衡量标准。
例如,《信息技术IT 2017报告》将计算机教育的重点从基于知识的学习转移到基于能力的教育,其中基于知识的学习大多数指的是知识领域、知识单元、主题和学习成果。计算机教育的重点准换对于直接开始工作的毕业生尤为重要。
在此基础上,IT2017还创建了规范的三合一模型如下所示。
这个模型将能力作为学习的核心。IT 2017报告指出,能力是指特定的绩效标准,以及对某些具体工作场所绩效的评估。
对于学习者来说,知识、技能和性格都能够帮助他们更好地理解并运用知识,意识到能力是有价值的。
知识是通过理解事实而获得的能力,描述的是能力整体“知道什么”的维度。知识元素指定了对能力至关重要的核心概念。技能是对知识成分的应用,是能力的“诀窍”维度。
换句话说,高性能计算的学习者需要描述能力的“知道为什么”维度,塑造能力的“知道什么”和“知道诀窍”。而性格包括社会情感属性、行为和态度。性格的集合是结构良好的能力的基本特征。
几年前,ACM和IEEE启动了CC 2020项目,这是一个由来自六大洲20个国家的50名成员组成的工作组。此外,一个由15名成员组成的指导委员会组成了工作队的一个子团队,四名成员组成了其编辑委员会。
该项目旨在总结计算机本科学术课程的课程指南现状,指导从知识学习到能力学习的过渡,并提出计算机教育的未来。该报告对比了知识学习和能力学习,提供了这些范例的可视化,提供了本科计算机教育的全球视角,促进了计算机课程的全球整合。
该报告还提出了对能力的另一种解释,即能力包括任务绩效中的三个组成部分,表示为:
这相当于IT 2017的解释。图1举例说明了两个等价的能力图解。图1a显示了从IT 2017报告中总结的典型的三位一体的能力,而图1b则说明了从CC 2020报告中总结的能力,将知识和技能视为一对。
可以看出,在这两种情况下,现代化高性能计算能力都在强调知识、技能和性格的重叠或交叉。
图1(上A下B)
除IT 2017报告外,信息系统委员会还在其IS2020报告中制定了基于能力的课程模型,此外,ACM的数据科学DS 20217报告还提供了基于能力的建议。
表1显示了CC 2020报告表中列出的13个基线要素及专业知识。这些要素代表了所有称职的专业人员应该具备的基本要素。
例如,所有的计算专业人员应该知道如何沟通,协作和时间管理他们的活动。
表1
然而,CC2020报告和DS 20217报告都没有列举高性能计算领域机人才应具备的技能,原因有两个。首先,技能是在特定层面上对知识的应用。其次,CC2020报告将技能定义为为适用于任务背景下的知识的技能水平。
但CC2020报告还是列出了六个技术水平如表2所示,它们与用于定义性能水平的现代分类法相称。
表2
最后,表3描述了CC2020报告表列出的11种计算机领域人才应有的能力配置。性格是结构良好的能力的基本特征。因此,所有计算专业人员能力的关键要素是基础知识、专业知识、认知技能水平和性格。
表3
引入高性能计算课程
与普通计算机工程领域对比,在高性能计算领域,并行和分布式计算课程在人才开发和教育中是必不可少的,除此之外,认知技能水平也有着至关重要的作用。
随着科学技术的飞速发展,在计算机领,人们对高性能计算机速度的追求是无止境的,对计算能力的追求是无限的。
自1946年最早的计算机之一ENIAC出现以来,计算能力已经大大提高。而根据2022年的计算机TOP500榜单,Frontier又是第一台打破百亿亿次浮点运算上限的计算机。
ENIAC每秒可以执行385次浮点(小数加法/乘法)操作(FLOPS),而Frontier每秒执行1102千万亿次(百万-十亿)FLOPS。
表4列出了一些超级计算机,显示了过去70年来计算能力的增长,其中性能以FLOPS衡量,每个主行比第一行的前一行大1000倍。
表4
有趣的是,当今世界上有两台具有代表性的超级计算机,其中由国防科技大学开发的天河2号超级计算机在2013年6月至2015年11月期间六次被评为世界上最快的超级计算机。另一台超级计算则由橡树岭国家实验室(ORNL)开发的“前沿”。
图2分别展示了这两天超级计算机。这些成就都在激励学生成为未来的高性能计算毕业生。
图2
虽然计算机性能呈指数级增长,但其学术关系似乎因缺乏方向而受到了影响。世界范围内很少,甚至有些地方根本没有开展高性能计算教育活动。
尽管高性能计算的教育在少数大学中存在,这些大学的院系已经制定了一些高性能计算计课程,或者是内部高性能计算机课程。然而,这些活动是地方性的,并不一定会扩展到全球。
与具有CE2016和CC2020报告这些全球出版的课程指南的计算学科不同,高性能计算的全球性教育标准或报告少之又少。
幸好,在美国,已经有一些课程活动涉及到了高性能计算领域。
美国国家科学基金会(NSF)资助了一些科学家和工程师,鼓励他们将计算和建模技能整合到课程中。而一些由国家和国际机构、国家实验室和大学资助的高性能计算中心也提供了培训和教育计划。
由于建模和仿真已经成为科学和工程研究的一个组成部分,因此学生们需要学习关于创建、实现和验证模型的概念和工具。
另一个资助项目则为理工科本科生开发了一套高性能计算能力系统,分为七个主要类别。这些包括建模和仿真、编程和算法、微分方程和离散动力系统、数值方法、优化、并行计算和科学可视化。这种数学、计算原理和领域科学的结合将指导本科课程的发展。
同样重要的是,在非计算专业的教育中也需要将并行计算思维引入科学、技术、工程和数学(STEM)。如果学生掌握了这些基本概念,他们可能会更好地理解高性能计算机系统的运行环境和科学计算的基本原理。
近年来,随着ACM和IEEE文档不断更新。专家们开始认识到,高性能计算机专业人员必须具备设计和使用大规模并行和分布式计算系统、多核和多核系统相关编程以及算法要求的技能。
例如,CS2013计算机科学课程文档中的高性能计算相关能力包括七个相关类别,包括建模和仿真以及多处理的知识掌握。
同样,CE2016计算机工程报告提供了11个明确的与高性能计算相关的活动,如识别并发性、并行算法结构、分布式系统上的并行性和分解。
计算机工程的这些活动出现在三个广泛的部分:并行算法的算法分析,从体系结构角度的并行,以及从系统角度的并行。
注重高性能计算机能力
TCPP课程倡议在2012年为本科计算机课程制定了并行和分布式计算课程建议,并在2020年对其进行了修订,将这些知识元素分为五类:普及概念、体系结构、算法、编程和新兴主题。
TCOO课程还推荐了一组基本的普及概念,这意味着所有的本科计算机课程都应该深入地涵盖这些概念,表5提供了推荐的高性能计算机课程的概要。
表5
高性能计算机课程与其他计算领域具有相同的知识基础,区别在于高性能计算机课程更注重于一些具体的技术要素和相关技能,具体来说,CS2013、CE2016和TCPP课程建议都提到了与高性能计算技术相关的知识及技能基础元素。
除了五个TCPP课程类别之外,高性能计算机设计参与者还需要参与三个活动:系统设计、应用程序开发或系统管理。此外,计算机领域的人才可能需要在所有类别中都有额外的高性能计算机知识和技能。
例如,高性能计算系统设计师需要在计算机系统设计方面有深入的知识和技能,同时,高性能计算机应用程序开发人员还需要对其应用的特定领域有一定知识。
因此,必须加强人才培养时的高性能计算机能力,将他们培养成为兼具知识、技能和沟通交流三个方面的专家。其中,高性能计算技能的具体定义式是,基于高性能计算领域的技术知识及应用的技能水平。
表5陈列了相关的基础六个技能级别。其中记忆技能指的是回忆普遍的高性能计算概念,并行架构和算法中的主要及关键概念。
理解技能是指理解特定高性能计算机概念的差异和特征,例如,几种并行架构、并行算法设计中对数据分区、负载平衡和开销的考虑。
应用技能是指利用高性能计算原理设计并行算法、解决具体问题、编写和调试并行程序等。
分析技能是指对高性能计算的情况和问题进行分解,包括探索现有并行程序的性能瓶颈,挖掘特定并行平台上的性能及改进机会,或面向特定领域,研究的程序在并行计算系统上的系统需求。
评估技能是指整合高性能计算原理,比如确定应用程序的并行效率,以及可扩展性或并行系统的能效比。
创建技能指的是关于高性能计算的创造性,比如设计一个新的架构来适应特定的新兴应用,发明一个适合人工智能应用的新架构,或者开发各种系统级优化算法。
除了知识和技能之外,性格对所有人才来说都是必不可少的。
由于高性能计算机领域的问题具有挑战性和创新性,所有高性能计算机领域人才都必须表现出优良的性格特征,如自我导向、热情、主动、负责、协作和适应能力。这些特质应该是他们在后续艰苦研究中前进所需要的最关键的能力。
性格是至关重要的,因为人民在学习课程的过程中可以获得更多的知识和技能,并获得更多实质性的知识和技能,然而性格却只能后天自行培养。
如果将高性能计算机领域的从业人员分为三个成就水平,从L1到L3,其中L1是最低的,L3是最高等级的高技能人才,具有最多的知识和技能。
事实上,性格对三类学生的影响是不同的。
处在L1这个初级阶段的从业人员必须主要提高他们的知识和技能。因此,对性格的要求对他们可能没有意义。对于L1等级人员来说,高性能计算机能力主要体现在他们的知识和技能能力上。
当从业人员的知识和技能水平提高到中等水平时,他们可能会开始感觉到他们的性格影响了他们的知识和技能。这个等级的人才表现可能会提高,因为他们更合作,更积极主动,对自己的工作更有责任感。
当人才等级上升到L3级时,热情或适应性等因素可能会直接影响他们如何面对挫折,如何继续提高知识和技能,甚至如何继续学习。因此,性格最终可能在高性能计算机研究能力中占据主导地位。
高性能计算机领域正处在急需人才的关键时刻,改变传统计算机领域教育模式,创新开发适合于高性能计算机领域的人才培养方法迫在眉睫,也是未来教育改革的重中之重。