《多核程序设计》概述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《多核程序设计》概述
陈天洲1 曹捷 王靖淇
(浙江大学计算机学院, 杭州 310027)
摘 要: 随着半导体技术的进步,多核芯片已经成为处理器技术的主流。浙江大学根据多核计算技术的发展趋势,以经典体系理论为基础,以培养动手实践能力为目标,开设了多核课程,并以此进行了教材设计,联合清华大学等高校编写了适合于《多核程序设计》,作为多核计算课程教学设计的一种探索。
关键词: 多核计算;课程设计;教材设计;实践
半导体技术的进步使单芯片多处理器成为现实并推动着多核计算技术的不断进步。浙江大学从2006年开设单独的多核课程,并联合国内五所重点高校设计编写了《多核程序设计》作为该课程的教材,对多核计算技术进行了全面深入的讲解,以期由此完善学生的知识结构。
1 多核计算技术的概述
随着新材料的应用和新技术的发展,VLSI技术取得长足进步,在单个芯片上集成多个处理器核心构成多核处理器[1][2][3]已经成为处理器技术的主流。按计算内核的对等与否,CMP可分为同构多核和异构多核。计算内核相同,地位对等的称为同构多核。然而,一般认为处理器通用核的数目在超过16个后,再增加通用处理核的数目就难以带来更大的性能提升。于是出现了一些为特别任务专门定制的专用处理核,包括面向科学计算等的“领域专用核”、图形图像处理和数字信号处理(DSP)等“行业专用核”[5, 6]。这些专用核的体系结构利用特定应用的特征进行定制,从而达到定制应用的高性能和高效率。
从2005年出现的英特尔与AMD的双核处理器[4]、2006年推出的4核处理器到2007年2月英特尔公司展示的80核处理器,处理器中集成核的数目呈现迅速增多的趋势。除此之外,具有更多核和不同功能核的处理器也在研发,例如整合了1025个简单处理器的芯片Kilocore [7],包括1024个8位处理器和1个Power PC核。
伴随着多核处理器的发展尤其是处理器核数目的增加与处理器核功能的变化,在体系结构、软件、功耗和安全性设计等方面,巨大的挑战也随之而来。处理器的发展使得原有面向单核或者多处理器的软件架构不适于在单芯片多处理器的硬件结构上充分利用多计算核心的能力,需要相应的软件层面的共同发展。为此,软件结构的变化尤其是针对多核硬件体系结构的程序设计成为有效发挥多核计算能力的重要方面。
为了适应技术的发展,为社会培养合格的计算机人才,在大学计算机教学中开设相应的多核计算课程势在必行。计算机方向课程的开设尤其是教材的设计,不仅要注意到满足完善学生知识结构,适应计算机技术迅速发展的情况,同时也需要到社会对于多核计算技术方面人才的需求,通过合理的设计,满足知识更新与就业两方面的要求。
2 多核课程设计
1收稿日期: 2007-05-16
作者简介: 陈天洲(1970-),男,浙江,博士,教授,主要研究方向:计算机系统结构、嵌入式系统。
曹捷,男,英特尔中国大学合作部
王靖淇,女,英特尔中国大学合作部
多核计算技术的发展使得计算机教学发生了变化,这种变化主要来自于多核计算技术所带来的新的知识点[8][9][10]。这些新的知识点主要包括:多核SOC芯片技术;多核芯片与传统单核微处理器、SMP的区别;多核下的各种硬件设计技术(Cache与存储一致性、网络互连、IO管理);并行体系与多核体系结构;典型多核芯片介绍;嵌入式多核芯片技术;多核平台结构与芯片组支持技术(包括固件技术);多核操作系统;多核系统软件对并行编程的支持;多线程编程对多核的支持;多核多线程编程技术(主要是关于Windows与Linux操作系统);OpenMP对多核的支持;多核平台上的编译工具与编译优化技术;多核API优化函数库;多核多线程程序的性能评测工具与方法。
这些新知识点的出现,使得越来越多的高校开设多核课程以适应技术的发展与多核时代对高校计算机人才培养的新需求。例如,美国计算机专业最好的CMU、MIT、Backley、Harvard 和Stanford五所高校,均通过增加新的课程或者在原有课程内容中增加多核内容的方式,以适应多核计算机的出现与发展。
因此,综合考虑上述因素,并参考国外高校的课程开设方式,浙江大学开设了自己的多核课程。浙江大学以学校计算机教学的实际情况为基本出发点,让学生了解当前计算机芯片设计领域中新兴多核体系设计的基本原理、技术难点、目前发展状况、以及对计算机领域带来的相关影响等,以通过建立体系经典理论研究和实际的发展方向之间的桥梁,为将来从事体系结构领域、系统软件领域以及相关领域的高水平研究打好扎实的基础。这是浙江大学多核计算课程设计的目标,也作为教材设计的主要目的。
通过分析多核的知识点,浙江大学将多核计算课程分成了两个层次:以编程训练为主的本科多核计算课程和以编程为基础以多核理论与发展为主要内容的研究生课程。本科课程的名称为并行计算与多核编程,作为专业选修课程。多核的本科课程完全以编程训练为主,结合多核编程工具,通过编程作业锻炼学生对多核编程能力的培养。对于研究生课程,名称为多核计算,主要着眼于当前多核技术的研究热点和多核技术的高级课题,在研究生的体系结构课程和超大规模集成电路基础上做进一步提高,结合操作系统、编译原理、编程方法等交叉学科,介绍在体系结构上的多核理论与相关学科对此的相应发展。
3 多核课程教材设计
3.1 概况
由于多核计算技术相对较新且仍在不断发展,目前国内外多核计算方向的著作以科学论文为主,偏向于研究与探索,浙江大学结合科研的实际情况,由任课教师采用科学论文作为研究生课程的主要教学材料。
而对于基础教材而言,由于多核计算方面的书籍还是刚刚起步,因此可供选择的余地较少。此外,由于多核计算是一门动手能力和理论要求都很强的课程,需要更加重视实践环节,为学生设计实践训练,同时,目前多核底层调优软件是由英特尔公司推出,能实现多核的编译、运行库、性能测试、多线程检测与优化,对多核教学帮助极大。因此,浙江大学采用了基于英特尔的软硬件,作为实践的基础培训。有鉴于此,目前浙江大学的多核课程2006年使用的教材是由英特尔公司的(孟加拉)Shameem Akhter与(美)Jason Roberts撰写、Intel出版社出版的《Multi-core Programming: Increasing Performance through Software Multi- threading》,2007年3月电子工业出版社推出了由李宝峰、富弘毅、李韬三位博士翻译的中文版,我们参与了该书的审稿工作。该书是国内第一本全面讲解多核程序设计的书,同时,由于它介绍了基于Intel多核平台的性能评测和调优工具,相对适合于目前的教学。