多核对高职院校计算机专业教学影响的探讨
2009-06-18崔庆华
崔庆华
摘要:多核计算平台的普及以及多核技术应用人才的需求,对传统的计算机专业教学产生了重要的影响。本文针对高职院校的计算机专业教学现状,论述和探讨了多核对计算机专业的教学观念和编程语言类课程的影响,并就开展多核技术教学的师资队伍、课程教材和实验室建设进行了有益探索。
关键词:多核技术;计算机教学;高职院校
中图分类号:G642文献标识码:B
多核技术发展迅猛之势已超出人们的预期想象,给计算机软硬件设计理念和方法带来重大变革。作为计算机应用人才培养重要基地的高职院校,如何在多核时代到来之初就开始探索计算机相关课程的革新,适应多核时代对计算机人才的需要,是一个新的挑战。计算机教学观念、计算机教学知识体系就应该根据多核技术发展走势做相应的变化,例如教学观念要从结构化和面向对象编程发展到多线程并行编程,教学课程从编程语言到软件工程,从计算机组成到芯片设计,都可以引入多核技术。本文就教学观念和编程语言类课程的影响进行了有益的探讨。
1高职院校计算机专业课程体系的现状
20多年间,中国职业教育已经成为世界上规模最大、人数最多、进步最快的职业教育体系:目前高职在校生人数在大学生中所占比例高达53%,总人数是1998年的6倍多。从1980年起步时期的区区13所,到2005年底的1091所,全国仅独立设置的高职高专学校数量就增长了80多倍,几乎所有的高职院校都有计算机专业或涉及计算机教育。如此之大规模,计算机教育必然给高职的教育质量带来相应的高影响力和新课题。
由于办学定位上的差别,高职计算机专业的教学自然不同于传统的大学本科计算机专业的教学。高职计算机专业教学应以培养生产或服务一线的技术应用型人才为宗旨,专门性、实践性应当是其课程设置的基本定位,应以工作能力(技术应用能力和职业素质)为主线来设计课程教学体系。其办学特色是坚持根据市场和技术需求变化适时调整对学生的培养目标,特别要注意多核技术带来的技术需求的变化,使得学生具有新技术的适应能力。
2007年7月23日,在新疆举行的“全国高等院校计算机基础教育”2007论坛暨全国高等院校计算机基础教育研究会学术年会上,诞生了《中国高职院校计算机教育课程体系2007》。其英文译名为China Vocational -Computing Curricula,简称CVC2007。封面为蓝色,通常称作高职蓝皮书。它是我国高职院校计算机领域中第一个全面、系统的指导性文件,CVC2007要解决的问题是:高职计算机教
育应当遵循什么指导思想和办学理念;当前面临的形势和需要解决的问题;依据什么原则去构建高职计算机教育的课程体系,并提供了计算机应用技术等七个专业的课程体系参考方案,现在大多数高职院校都按照该蓝本进行相关计算机专业课程体系的设计。
多核时代的到来,多核技术的发展,使得大学计算机的教育面临新的问题:在多核技术的影响下,计算机体系结构、操作系统、编译技术和应用软件的编程模型等都发生了较大的变化,大学计算机的教学需要跟上多核技术的脚步,做出有针对性的调整。国外的高校例如美国麻省理工学院、乔治亚理工学院等已经开始设置多核课程,通过新增课程或修改原有课程的教学内容,以适应多核计算技术带来的变化。对国内的普通高校来说,教育部已联合英特尔公司推出了“教育部—英特尔精品课程”,投入和支持一系列与多核课程相关的精品课程建设项目,推动了我国高校引入多核内容进行课程教学与建设。目前高职院校的相应工作比较滞后,CVC2007还未明确涉及多核技术,需要进行相应的修改和补充,以达到培养的学生具备在主流计算机硬件上进行多核技术应用和开发的能力,增强学生的就业能力和创业能力。因此,将多核技术纳入到高职院校的课程体系中具有相当的重要性和紧迫性。
2多核带来的影响
所谓双核处理器,就是在一块CPU基板上集成两个处理器核心,并通过总线等互连技术,将各处理器核心连接起来。多核并不是一个新概念,现在的多核基本上指的是CMP(Chip Multi Processors,单芯片多处理器)类型,其实在RISC处理器领域早已实现。多核与单核的区别在于,前者可以让程序真正地“同时”执行,而不是多个进程轮流使用CPU,从而给用户造成“多个程序正在同时执行”的假象。以前,通常是依赖CPU时钟频率的提升来提高CPU的性能。然而普通单核心处理器的频率难于进一步提升,性能也无法有质的飞跃。由于时钟频率高,功率消耗大,温度升也高,机器易发生故障和老化,英特尔公司在发布3.8GHz的产品以后只得宣布停止4GHz的产品计划。
因此,处理器全面转向多核体系,CPU内部开始出现了两个、四个甚至更多的内核。
由于是底层的计算平台正在发生变化,因此IT领域从业人员,不仅仅是开发者,包括需求分析人员、设计者、程序员和测试者,都在工作时要考虑到并行带来的影响。作为高职院校的计算机教育工作者,要考虑到技术变化所带来的技术需求的变化,以适应高职院校培养人才的需求。为此,本文仅就多核对计算机专业的教学观念和编程语言课程的影响进行了初步探讨。
2.1并行设计思想的引入
多核的流行和普及,使程序中可以有多个线程真正地“同时”运行,也就是并行执行。如果说第一代是过程化和结构化编程,第二代是面向对象编程,那么现在到了第三代多线程并行编程。能不能把多线程并行化的工作完全交给操作系统和编译器呢?这是一个充满诱惑力的前景。我们认为并行化的工作现在无法自动实现,未来也只能在一定程度上有所缓解,而不可能全部交由机器完成。因此,在教学观念上,需要建立并行设计的思想和掌握并行编程模式,需要增设课程或在相关课程中加入Foster的PCAM并行设计方法学和多种的并行编程模式。面对多核,需要建立新的思维方式,就像当年从过程化编程过渡到面向对象编程时所做的那样。
2.2编程语言课程的影响
高职院校在教学计划中大多都安排C和Java语言这两门课,过去主要是体现的是单线程串行程序设计模式、结构化与面向对象的设计思想,现在面对多核处理器,需要在并行观念的基础上进行并行编程,因此需要对C和Java语言课进行内容的调整和补充。C和Java语言都具有良好的并行程序设计支持的功能,可以在课程中适当地进行补充。如C语言的OpenMP和MPI库分别支持共享存储和分布存储编程模式,其多线程库也支持多线程并行。Java有很好的多线程编程功能,其代号为Tiger的Java 5的java.util.concurrent包的出现,可以使用低层机器指令取代锁,精化了互斥访问的粒度,提高了系统的可伸缩性和活性。
设计一个好的并行编程应用系统是困难的,设计者不仅仅要了解语言的并行功能部分,重要的是还要掌握和理解并行设计思想。设计者要面对的一个挑战是任务划分和数据分解,要尽可能地让每个任务在执行时只使用自己的数据。如果不同的线程要共享数据,问题将迅速变得复杂,同时并行程序的测试与调试也会更加困难。不久前,当有人问C#之父Anders Hejlsberg“未来几年内语言的发展方向在何处”时,Anders表示“要处理好多核的问题,并提供一个更好的并发模型”。Erlang语言最近也受到越来越多的关注,这说明人们迫切需要一个强大而又充分简单的工具来解决并发编程的挑战。
3应对的措施和改革
由于学生就业有“滞后性”的特点,而教学设计必须具有“前瞻性”,这样才能适应由于技术变化带来的人才市场需求变化。因此,多核相关课程教学的开展和引入多核技术是现实的必然,而且是早行动早受益。开展多核技术的教学需要在教材、教学内容、教学计划等方面进行相应的调整,更重要的是教师培训必须先行一步。
3.1教师培训
教师是多核技术传授的关键,只有教师自己掌握了多核技术的相关知识,才能组织好对学生的培养和教学工作。目前与多核相关的一些并行课程,也只有在国内少数高校才开设,高职院校的教师普遍缺乏这方面的知识,我们的教师应尽快地接受必要的培训,与时俱进,更新知识,只有教师早行动,学生才能早受益。多核技术的教师培训也可以采用送出去和请进来相结合的办法,送教师到相关院校学习和参加英特尔公司的大学课程计划培训班,也可以请一些专家教授到学院进行专题讲座。另外,通过组织多核技术的研究小组,使教师迅速掌握多核技术领域的最新技术和研究前沿。
3.2课程和教材改革
多核课程的开设,可以使学生对多核计算技术与应用有一个全面深入的认识,完善学生的知识结构,以更好适应未来的计算机技术及其应用的发展与革新。将多核技术引入计算机专业教学课程体系可以有两种方式:一种为单独开设课程,一种为改造现有课程。单独开设课程,需要高水平的教师及适合高职院校的优秀教材,这种方式现阶段较难实行;对现有课程的改造和扩充比较切实可行,我们可以首先对C和Java编程语言课进行示范,将并行设计思想融合到这些课程中。另外,此前教育部联合英特尔公司推出了“教育部—英特尔精品课程”,支持了一系列与多核课程相关的精品课程建设项目,我们可以引入和借鉴这类多核课程及教材。
3.3实验环境建立
建立多核技术课程的实验环境是必备和必需的。目前的台式机和笔记本都是双核以上的多核环境,开展多核计算硬件条件基本不成问题;软件方面像OpenMP、MPI、Pthread等都有一些开源资源,可以实现共享式存储计算和分布式存储计算。对于某些系统环境需要进行购置和添加,如Intel的多核计算环境,包括C编译器、数学库、测试和分析工具等。
4结束语
目前多核计算机系统已普及,需要我们高职院校的多核技术教育及时跟上发展潮流,为学生提供最前沿的信息和知识,适时地为社会培养出满足市场技术需求的人才。希望通过我们的多核课程,学生能了解流行的多核硬件平台,掌握多核编程和程序评测、调优技能,具有扎实的动手实践能力,为将来在无处不在的多核应用领域工作打好扎实的基础。
参考文献:
[1] 中国高等职业院校计算机教育改革课题研究组. 中国高职院校计算机教育课程体系2007[M]. 北京:中国铁道出版社,2007.
[2] 陈天洲. 多核课程建设探索与实践[J]. 计算机教育, 2007(3).
[3] 陈国良. 并行计算-结构•算法•编程(修订版)[M]. 北京:高等教育出版社,2003.