首页 > 范文大全 > 正文

多核课程建设

开篇:润墨网以专业的文秘视角,为您筛选了一篇多核课程建设范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

众所周知,微处理器向“多核”的转变是计算机技术发展历史上的一个新的里程碑,也是处理器技术继续良性发展的新开端。INTEL、AMD等通用处理器生产厂商对“多核”技术的倡导和支持,以及新产品的不断推出,使得“多核”计算的时代已经提前到来。

“多核(Multi-Core)”,一般指单个裸片上具有多个处理核,这些处理核各自拥有独立的控制和工作部件,互相之间无需共享关键资源。正如伯克利大学最新出炉的研究报告《The Landscape of Parallel Computing Research: A View from Berkeley》中指出的那样,多核技术源于硬件技术,但不仅是硬件技术的革新,更会带来软件,乃至计算技术的全面变革。

为了更好地应对新的“多核”时代,清华大学计算机系高性能计算技术研究所从2005年底开始考虑将最新的多核技术内容引入到大学课程当中。经过近半年的调研、学习和讨论,结合自身的科研基础和教学工作,我们于2006年秋季学期进行了多核课程建设的一些初步尝试。

我们多核课程建设的目标有两个:一,普及并行计算技术,使广大的程序设计与开发者可以发挥多核计算优势;二,向未来的科研人员介绍多核及其面临的挑战,激发研究兴趣,帮助他们更有效地开展进一步的科研工作。为此,我们组织开设了三门新课:面向本科生的全校性选修课“并行计算基础”、面向信息学院高年级本科生的“高性能计算前沿技术”和短期课程“多线程/多核CPU逻辑设计”。同时,针对多核技术发展,重新组织和完善了计算机系研究生核心课“高等计算机系统结构”的授课内容,增加了对多核技术及其面临挑战的深入介绍,扩展了Cache和内存一致性相关内容的讲授。通过这四门课程,从处理器体系结构、系统架构、程序设计三个方面有侧重,有层次地给学生展现了一个相对完整的多核技术图景。从一个学期的教学效果来看,达到了介绍多核,普及并行计算技术的预期目标。下面就对上述的三门新课作一简单介绍,欢迎批评指正。

并行计算基础

这门课程的开设是为了在学生中普及并行计算技术服务的。

每一个多核处理器实际上就是一个片上并行系统。简单来说,使用多核处理器的计算机都可以称为一台并行计算系统。因此,对于程序设计和开发者来说,有效发挥多核处理器的计算能力,了解和使用并行计算技术是必不可少的。

以前,并行计算只能说是少数人的“游戏”,总是与昂贵的超级计算机、个别复杂的工程计算问题联系在一起。提到并行计算,即使是计算机专业的学生也感到艰深晦涩。如今,现代计算技术的发展,尤其是多核的普及,并行计算走向桌面应用;而众多富有挑战性的计算问题的出现更使得并行计算成为一种重要的通用计算技术开始被大家所接受。

为此,我们开设了面向全校本科生的全校性选修课“并行计算基础”。课程旨在推动并行计算技术的普及和应用,帮助同学们认识到并行计算的重要性,掌握并行计算的基本概念、基本问题和理论,掌握初步的并行程序设计和分析方法,熟悉并行计算语言和辅助工具,体验实际并行程序开发和优化过程。课程通过课堂讲授、参观、演示、典型实例分析和多核系统/并行系统上的亲身体验等多种教学方式,希望学生对并行计算有初步认识,在一定程度上提高综合运用方法理论、编程接口和辅助工具,设计、分析和开发并行程序的能力。

本课程的先修要求并不高,只需要有一定的程序设计基础的本科生均可选修。

本课程的主要知识点包括:

并行计算的基本概念;

OPENMP和MPI并行程序编程接口;

并行程序设计方法;

并行程序性能分析方法;

重要的并行程序开发辅助工具,如Totalview、INTEL Vtune、INTEL ThreadChecker、INTEL Thread Profiler、INTEL MKL等;

典型并行算法设计思想。

本课程的主要教学安排如表1所示。

这门课的特点在于:

① 针对学生来自不同专业,将并行机系统结构、网络互连和并行计算模型的内容精炼讲授。

② 通过编程工具、调试工具、性能分析工具等的讲解,提高学生编写、调试和运行并行程序的能力。

③ 增加课外实验环节,加强学生动手能力培养。

开设这门课不仅使同学尽早接触到了多核技术和并行计算技术,帮助他们认识到并行计算的重要性,而且为后续研究生相关课程,包括高等计算机系统结构、并行计算(研究生)、大规模科学计算等打下了一定的基础。

第一次开课选修这门课的同学接近20人(课容量30人),有50%来自计算机系外的其他工科院系。大家都觉得这门课使他们了解到了最新的计算技术,并行计算对自己今后的科研和工作可能大有裨益。

高性能计算前沿技术研讨课

计算机学科是一个知识和技术飞速更新的学科,多核技术作为一个尚未成熟的研究领域就更是如此。所以,把最新的多核和高性能计算技术中的研究问题和研究进展通过快捷、有效的手段传授给学生,激发学生的研究兴趣,投身到多核技术这个不断发展的研究领域当中是高性能计算前沿技术课的主要目的。

高性能计算涉及微处理器、并行计算机、分布式系统及应用等多方面内容,技术先进性、综合性和实用性强,是计算机技术的重要研究分支。而本科生普遍缺乏对相关研究领域的基本了解。为此,我们开设了面向信息学院高年级本科生的研讨课“高性能计算前沿技术”。课程密切结合高性能计算技术的最新发展趋势,对当今高性能计算的几个热点问题作专题介绍。课程内容主要包括两个部分:多内核处理器和大规模并行计算系统。多内核处理器的出现和流行,使得并行计算的地位日益重要。本课程将介绍多内核处理器的体系结构和发展趋势,以及多内核处理器对计算机软件技术带来的一系列挑战。大规模并行计算系统主要用来解决关系国计民生的重大挑战问题,是一个国家综合国力的重要组成部分。随着系统规模的扩大,对于系统的计算机系统结构、通信网络等方面提出了新的挑战。课程将介绍在上述方面的研究进展。通过本课程,希望学生能认识高性能计算,了解高性能计算的基本问题,对高性能计算的前沿研究问题有初步的认识。

课程内容安排主要包括以下高性能计算的六大方面:

1. 高性能计算现状与挑战

2. 多核计算技术发展

3. 计算中的性能问题,性能分析与性能优化方法

4. 并行计算系统

5. 高性能互联网络技术

6. 分布式计算之对等计算技术

本课程的特点在于互动式教学。教师缩短讲授时间,将更多的精力花在设置课题,组织和参与讨论上。通过学生查阅相关资料,学生课堂报告与讨论,和课程论文等多种方式,激发学生自主学习,开展调研和研究的热情。

第一次开课选修这门课的同学有12位(课容量15人),分别来自微电子学系和计算机系。大家都觉得通过这门课了解了最新的高性能计算技术,特别是多核技术的最新进展和未来发展趋势;在有效拓展自己知识面的同时,通过论文阅读和讨论使得自己对发掘问题、解决问题的科研方法有了新的认识。

多线程/多核CPU逻辑设计短期课程

新一代处理器都将采用多线程/多核技术,这使得CPU能够同时并行执行多道程序,以提高处理能力。为了让同学更好地了解多线程/多核处理器的设计思想和最新进展,我们邀请了日本东京法政大学的李亚民教授开设了暑期的短期课程“多线程/多核CPU逻辑设计”。

本课程讲解多线程/多核CPU的设计方法,通过实验让听课者能够自己动手设计一个包含有浮点部件(FPU)的多线程/多核CPU,并通过执行汇编及二进制程序,完成多线程/多核CPU的逻辑功能模拟。

课程的教学内容安排如下:

第一次:

讲课:数字电路及逻辑设计基础,算法及电路设计,指令系统。

实验:设计多路器,加法/减法器,移位器,ALU,寄存器堆。

第二次:

讲课:单周期CPU原理及设计方法。

实验:设计单周期 CPU,存储器及测试程序,CPU模拟测试。

第三次:

讲课:浮点部件FPU原理及设计方法。

实验:设计浮点部件FPU及FPU模拟测试。

第四次:

讲课:流水线 CPU+FPU 原理及设计方法。

实验:设计流水线 CPU+FPU,存储器及测试程序,CPU+FPU模拟测试。

第五次:

讲课:多线程/多核CPU原理及设计方法。

实验:设计多线程/多核CPU,存储器及测试程序,CPU模拟测试。

课程的先修要求是逻辑电路设计、计算机原理。教学对象为对CPU逻辑设计技术感兴趣的教师、研究生,以及高年级本科生。

总体来说,这门课程的特色是面向实验的课程。讲课与实验的学时数为1∶2,通过5天,每天4学时的实验时间,指导听课人使用Max+Plus II设计工具设计并模拟多线程/多核CPU。

本课程的选课人数为53人。其中,计算机系:27人;电子系:6人;微电子:5人;软件学院:4人;自动化系:3人;核研院:1人;化工系:1人;校外:6人。听课师生均表示,该课程讲授深入、实用。通过该课程,基本了解了CPU设计的流程,了解了当今世界上CPU设计的先进技术和趋势,并通过亲手作实验,设计了一个可以工作的CPU原型。收获很大。

总结与展望

总的来说,上述四门多核课程的开设,我们已经形成了一个初步的多核课程体系。这个课程体系既可以满足在多核平台上应用软件开发人员的需求,也可以指导设计多核处理器。教学内容包含体系结构、系统架构和编程技术三个主要的多核技术发展方向。从初步的教学效果来看,也达到了预期的目标。

我们认为,多核技术涉及到计算机软、硬件技术的多个方面,开设独立的多核课程难度较大,今后我们仍将以这几门课程为主要建设课程,不断丰富多核技术内容。为了使同学们更好地了解和学习多核知识,我们打算建立一个多核课程和知识的网站,一方面将我们开设的几门课程当中多核内容做一有效集成,建立其纵向联系,便于进一步深入学习;另一方面将多核技术资源,以及国外多核课程建设的成果(比如GIT、MIT等学校的最新多核相关课程)介绍给广大师生,促进多核技术的普及和发展。