面向体系结构的软件优化课堂与实践教学

时间:2024-03-13 点赞:47600 浏览:95506 作者原创标记本站原创

本文是一篇计算机论文范文,计算机类电大毕业论文,关于面向体系结构的软件优化课堂与实践教学相关毕业论文范文。适合计算机及计算机系统及操作系统方面的的大学硕士和本科毕业论文以及计算机相关开题报告范文和职称论文写作参考文献资料下载。

摘 要:多核/众核处理器的发展与应用为计算机体系结构课程教学带来新的挑战,如何在课堂教学和实践环节中引入面向体系结构的软件优化内容,是近年计算机体系结构课程教学改革的一个重要议题.文章首先探讨引入这部分内容的必要性和可行性,然后分析适合计算机体系结构课程的教学和实践内容,最后介绍国防科学技术大学计算机学院相关教学活动和经验.

关 键 词:多核/众核;计算机体系结构;软件优化;教学与实验

文章编号:1672-5913(2013)18-0041-04

中图分类号:G642

0引言

计算机体系结构是计算机科学与技术学科的重要二级学科,强调从总体结构、系统分析的角度研究计算机系统.作为该二级学科的核心基础课程,计算机体系结构(以下简称体系结构)课程自然也特别强调从系统层次上学习和了解计算机.

经典体系结构课程教材如王志英等编著的《计算机体系结构》讲述计算机系统设计的技术、方法和理论,教学内容一般包括计算机指令系统、计算机组成和计算机硬件实现3个方面,涵盖处理器和多处理器、存储器、输入输出系统、互连与通信等计算机系统设计的主要内容,同时还涉及性能评价、编译和操作系统技术.通过学习该课程,学生能够把在计算机组成原理、数据结构、操作系统、汇编语言程序设计等课程中所学的软、硬件知识有机结合起来,建立计算机系统的完整概念.

计算机硬件系列课程的不断调整与改革,要求体系结构课程不断调整教学和实践内容.无论是国内还是国外,很多高校教材都逐渐把计算机组成原理课程内容和体系结构课程内容有机结合起来,甚至国外一些经典教材还将密切相关的软件设计内容也融合到一起.这种方式可以加深读者对计算机软硬件系统的整体化理解,有效加强对学生计算机系统设计能力的培养.

多核/众核处理器的成熟与发展也给当前体系结构课程的课堂和实践教学带来了新的挑战,为此我们除了引入典型的多核/众核体系结构案例外,还增加面向多核/众核体系结构的软件优化方法等必不可少的教学内容.以SIMD(SingleInstructionMultipleData,单指令多数据)为例,这一概念属于知识点“Flynn分类法”,我们通常在教学单元“并行计算机体系结构的分类’’中介绍,但随着体系结构技术的不断下移,多核CPU、GPU、MIC、流处理器等典型的多核/众核处理器中都集成了以SIMD方式工作的计算部件,并且衍生出SPMD(SingleProcessMultipleData,单进程多数据流)、STMD(SingleThreadMultipleData,单线程多数据流)等新概念,而要用好SIMD计算部件,专门的软件优化方法不可或缺.


目前,体系结构研究越来越强调软硬件之间的协同,人们不仅关注多核/众核处理器应集成哪些计算资源,还关心如何管理这些资源和用好这些资源.Intel、AMD、NVidia在推出性能强大的多核/众核处理器的同时,也为用户提供了配套的软件工具和高性能库,因此体系结构教学也应与体系结构的发展和变化保持一致.

1教学内容组织

1.1体系结构教学内容剖析

现有体系结构课程的教学内容大致可分为单处理器计算机系统与多处理机系统两个部分,前者一般包括指令系统、流水线、指令级并行、存储和I/O,后者一般包括多处理机的存储器体系结构、互连网络、同步机制以及集群计算机等内容.当然,不同教材的内容会有一定差异,如张晨曦等编著的《计算机系统结构教程》就将指令级并行分为硬件技术和软件技术两章分别介绍,还增加了阵列处理机、数据流计算机等内容.

这些教学内容,特别是单处理器计算机系统的相关内容,与计算机系统系列中的一些课程相互重叠.例如,计算机组成原理通常会从冯·诺依曼结构的5个模块、指令系统以及总线等方面介绍单处理器计算机系统,其教学内容与体系结构课程有较多重叠.实践教学也是如此,很多高校开设的计算机原理课程设计(有时也称为综合实验)往往以实现一个16位或32位CPU为主要内容.如果教师能够系统梳理计算机系统系列课程的教学内容,将一部分体系结构课程的教学内容安排在其他课程中,那么将有利于向体系结构课程中引入新的教学内容.

从目前国内外高校的教学情况看,越来越多的高校开始将计算机系统的定量设计基础、指令系统设计、流水线及相关问题、Cache基本知识及提高Cache性能的基本方法、外部存储设备、I/O设备与CPU和存储器的连接、RAID等内容安排在计算机原理、计算机组成与结构或其他类似课程中讲授,体系结构越来越趋向于一门专业性很强的课程.南京大学袁春风老师编著的《计算机组成与系统结构》为合理安排计算机系统系列课程的教学内容提供了有益参考.

强调系统结构与编译器、操作系统等软件的联系,一直是体系结构课程教学关注的重要内容.该课程在流水线、指令级并行、Cache(如预取)、多处理机等内容方面,着重突出与编译原理的关系;在虚存、I/O等内容方面,主要突出与操作系统的关系.这也是教师在组织教学内容时必须考虑的.

1.2教学单元和知识点设计

这项工作可以通过不同的方式进行,如增加新的教学单元和知识点或修改已有教学知识点.显然,多核/众核体系结构是首先需要补充的教学单元,一方面该单元通过当前流行的多核/众核处理器产品介绍典型多核/众核体系结构,如Intel/AMD的多核产品、NVidiaGPU、IntelMIC等;另一方面,该单元还可以介绍新型体系结构为应用程序设计与优化带来的挑战以及它们的发展趋势等.

功耗也是需要补充的教学单元.在当前处理器和计算机系统的设计中,功耗已经成为一个越来越重要的问题.设计者从工艺、体系结构、编译器、操作系统、应用等多个不同层次进行功耗优化.教师在教学时可以从体系结构角度,介绍低功耗处理器体系结构(如并行结构、流水结构、存储分区访问)、基于PCM(PerformanceCounterMonitor,性能计数监视器)的功耗优化等知识点.由于该单元的知识点与多个教学单元有关,因此将其分布到相关单元中也是一种可行的方法.数据级并行也是需要扩展的教学单元.目前,几乎所有的通用处理器都支持SIMD扩展指令,IntelMMX/SSE就是其中的典型代表.这一教学单元可以涵盖SIMD/SPMD/STMD工作方式、计算部件的结构和关键设计问题、影响SIMD方式性能的控制流和存储访问问题以及相应的优化策略等知识点.

性能评价、指令系统设计、Cache等都是需要修改的教学单元.对于性能评价,PCM已经成为重要性能参数获取手段,基于PCM测量结果的性能优化方法已经越来越成熟.在指令系统设计方面,不少教材中都介绍了“面向操作系统的优化实现改进指令系统”知识点,但缺乏足够详细的实例.Intel公司为提高虚拟化系统效能设计的VMRESUME、VMLAUNCH等指令是非常合适的实例.在Cache方面,多线程/多进程对Cache的竞争使用以及由此引起的性能问题都值得介绍.

受篇幅所限,我们将不再讨论另外一些可引入体系结构课程的教学单元和知识点.

2实验设计

现有的体系结构实践主要围绕CPU的设计进行.文献[5]介绍了我们在体系结构课程实践教学方面的经验与思考,教材[6]就是根据这些经验总结而成,但面向体系结构的软件优化部分的实验与其所讨论的内容不同.首先,面向体系结构的软件优化实验只能采用纯软件的方式进行,虽然一些硬件设计可以改进软件优化方法的效果和效率,但将其安排在研究生课程中更加合适;其次,将一些实验内容安排在并行程序设计与优化中可能更合适,如面向多核平台的多线程程序设计与优化、面向GPU或MIC的程序设计与优化等.我们认为适合作为本科体系结构课程的实践教学有以下几个模块.

1)SIMD扩展指令的性能分析与优化.

该模块以IntelSSE、X指令为例,学生通过面向典型的基准程序(如矩阵乘、FFT等),分析这些SIMD指令带来的性能提升以及产生的性能开销,比较不同SSE/X指令生成方法(程序员手工生成、通过编译器自动生成、使用Intel提供的高性能库)的效果.

2)Cache相关实验.

该模块通过页着色(PageColoring)方法,将LastLevelCache(LLC,最后一级Cache)分配给不同的任务,实现多任务共享LLC;分析Cache容量对任务性能的影响.需要注意的是,将任务调度到不同的处理器核上执行,是消除Cache容量对任务性能影响的最有效方法,但由于将任务调度策略的实现与分析安排在操作系统实验中最合适,因此该模块没有考虑如何消除Cache容量对任务性能的影响.

3)PCM和功耗相关实验.

该模块的内容包括通过实验了解PCM的工作原理和编程接口;分析PCM收集到的系统性能数据,找出性能瓶颈;根据PCM收集到的功耗数据,比较不同功耗优化策略的优劣等.

除了确定实践教学内容以外,采用合理的实践方式也是必须考虑的一个重要问题.根据实验的内容和创新程度,我们将实验分为验证实验(通过实验检验某一结论的正确性)、设计实验(完成某个功能模块的设计,如在模拟器上实现分支目标缓冲)、综合实验(完成计算机中某个子系统的设计,如CPU设计实验)以及创新实践活动4个层次.

在以上所列举的实验内容中,SIMD和Cache适合作为验证实验.学生通过这些实验可以理解SIMD指令集在性能上的优势与不足、多任务竞争使用LLC会对系统性能产生什么影响、利用SIMD指令获得性能提升的方法等.PCM和功耗则适合作为设计实验,学生可以通过这些模块了解PCM的使用方法,解决以功耗为代表的当前计算机系统设计热点问题.需要注意的是,我们没有设计综合实验模块和创新实践活动,因为前者被安排在并行程序设计与优化等课程中更为合适,后者则一般由数名研究生结合课题研究完成.

3课程建设实践

针对体系结构课程教学和实践内容的改革,国防科技大学计算机学院目前已经进行的工作主要有以下几个方面.

1)系统梳理计算机系统系列课程的教学内容.

除了计算机原理、体系结构、嵌入式系统、计算机系统性能评价、汇编语言等传统硬件系列课程外,我们还将操作系统和编译原理两门课程归于计算机系统系列,形成了一个包含5门国家级精品课的课程系列.相关课程的主讲教师一起探讨课程之间的接口及教学单元的分配,目的是让学生通过计算机原理、编译原理课程和实践,掌握有关单处理器计算机系统的知识,通过体系结构课程和实践掌握计算机系统的性能评价和优化方法,通过嵌入式系统、操作系统课程和实践掌握计算机系统在嵌入式领域中的应用.

2)将本科生竞赛等实践活动作为调整和补充教学内容的参考.

S

本文是一篇计算机论文范文,计算机类电大毕业论文,关于面向体系结构的软件优化课堂与实践教学相关毕业论文范文。适合计算机及计算机系统及操作系统方面的的大学硕士和本科毕业论文以及计算机相关开题报告范文和职称论文写作参考文献资料下载。

CC(StudentClusterCompetition,大学生超算竞赛)是近年来国际高性能计算领域的热门活动,每年在ISC(IntemationalSuperputingConference)和SC(SuperputingConference)这两个高性能计算领域最著名的国际会议上各举办一次.每个参赛队由6名本科生组成,在1名指导教师的带领下参赛.比赛要求各参赛队搭建一个功耗不超过3KW的集群系统,在规定时间内完成指定应用(含算例)的执行,完成时间越短,成绩越好.国防科技大学计算机学院的本科生已在该竞赛中取得了一系列好成绩.该竞赛活动全面地考查了本科生对集群计算系统的组成、来自特定领域的高性能应用、并行程序设计与优化、面向集群系统的软件优化等知识的理解与掌握程度,竞赛中的经验和教训对我们调整体系结构课程教学内容有重要的参考作用.

3)将成熟的研究生实验模块调整到本科生教学活动中.

自2005年以来,国防科技大学计算机学院结合学校大力开展的实验室建设活动,建立了计算机科学与技术研究生和本科生实验中心,其中体系结构实验室是重要组成部分.在研究生高级计算机体系结构课程的实践教学中,我们开设了计算机体系结构实验和面向体系结构的软件优化实验两门课程,分别从硬件和软件两个角度培养学生的实践能力.经过多年的建设,这两门实验课程中的一些成熟实验模块已经具备了下移到本科生教学中的条件.

4结语

如何引入与多核/众核体系结构相关的教学与实践内容,是体系结构课程教学改革的重要内容.这与近年来国内外高校在计算机系统或硬件系列课程中越来越强调培养学生的系统观,使他们建立软硬件兼通的计算机系统组成、结构、工作原理等概念的教学改革理念一致.结合国防科技大学计算机学院的计算机系统系列课程建设及本科生高性能竞赛等活动,我们探索如何进行这一改革并进行初步实践.当然,根据教学侧重点的不同,一些学校会选择将这部分内容安排在并行程序设计、多核体系结构及编程等课程中,笔者所讨论的问题、改革思路和实践活动,也可为这些课程的建设提供参考.

相关论文

软件工程课程设计实践教学

本文是一篇课程设计论文范文,课程设计类毕业论文模板,关于软件工程课程设计实践教学相关毕业论文参考文献格式范文。适合课程设计及软件工程。

优化课堂结构提高课堂教学效率

关于学生及思想品德及科学技术方面的免费优秀学术论文范文,关于学生如何写论文总结,关于优化课堂结构提高课堂教学效率相关论文范文数据库。

计算机体系结构软件模拟技术

本文是一篇计算机论文范文,关于计算机方面毕业论文开题报告,关于计算机体系结构软件模拟技术相关硕士毕业论文范文。适合计算机及计算机系统。

优化课堂结构,渗透美学教育

本论文是一篇英语教师方面毕业论文致谢范文,关于优化课堂结构,渗透美学教育相关毕业论文提纲范文。免费优秀的关于英语教师及英语学习及英语。

优化课堂教学结构提高学生学习质量

为您写课堂教学毕业论文和职称论文提供课堂教学方面专升本毕业论文范文,与优化课堂教学结构提高学生学习质量相关论文范文资料,包括关于课堂。