《多核程序设计》教学大纲 课程编码 | | | | | | | | | | | | | | | | | | | | | 多核程序设计,多核系列教材编写组,清华大学出版社,2007年 | | [1] SHAMEEM AKHTER;JASON ROBERTS 多核程序设计技术--通过软件多线程提升性能 电子工业出版社 2007 | | | | |
一、 教学目的 “多核(Multi-Core)”,一般是指“单个裸片上具有多个可见的处理器,并且这些处理器各自拥有独立的控制和工作状态,互相之间无需共享关键资源”。随着信息时代对计算能力需求的强劲增长,也随着90 、65纳米等先进制造工艺的应用,多核技术走向个人电脑不仅被铺平了道路,而且已经成为事实上的趋势,并成为影响计算机产业最为重要的技术方向之一。 为帮助大学培养掌握业界先进技术,满足时代发展需求的计算机人才,尤其是软件开发人才,英特尔公司于2006年在全球范围内推出“多核技术”大学计划,除支持基于多核的应用开发研究外,主要支持基于多核的课程及实验建设,尤其是围绕多核技术程序设计的课程建设,并逐步扩大到信息技术学科更广泛的课程分支中去。在中国,英特尔已开始对多核技术如何引入大学计算机教学进行讨论与尝试。2007年,英特尔的这一合作迅速扩大到了国内的37所高校。由浙江大学、复旦大学、清华大学、北京大学、上海交通大学共同组织编写的《多核程序设计》教材也已经由清华大学出版社正式发行。2008年,英特尔计划继续通过“多核技术课程大学计划”同中国更多大学在多核教学领域建立起更广泛有效的合作,以最大限度的帮助大学生掌握业界先进技术,满足时代发展需求,与世界同步。我院于2007年底收到英特尔中国大学合作部的电子邮件邀请,参加2008年“多核技术”大学计划,按照要求做出了一份“英特尔多核大学合作计划课程方案书”,经过评审,吉林大学顺利入围,并将按照计划开展合作。 多核程序设计课程作为一门新兴课程刚刚被引入到大学的研究与教学中,为了使大学培养出的计算机人才能够满足时代发展的需要,我们对多核程序设计课程建设规划的初步设想如下:在课程准备和教学过程中逐步完善教学理念和教学手段,教学过程中,改变传统教学方法,合理安排实验课程,以案例为导向的教学方法,增加与学生的互动,并与学生共同发展。时刻把握多核技术的发展动态,并将其有机地融入到课程教学当中。在教学过程中,利用逐步积累的经验及多核技术的发展编写和修订适合大学教学的多核程序设计教材和教学方法。以理论学习为基础,按照理论、设计、实例各环节的关系,逐步建立和完善实验的内容和方法手段。通过对多核程序设计课程的开展及推广,使大学生时刻掌握业界的先进技术,同时进一步完善和发展多核程序设计课程的内容和教学方法。 二、 教学要求 本课程从多核技术以及并行计算基础、原理、技术、经验以及多核软件工具等方面为学生提供关于多核程序设计技术的全方位解释,介绍多核体系结构、多核处理器、硬件支持、系统软件的现状,详细讲解在多核平台上进行软件开发的理论与方法。介绍多核计算机的发展,介绍软件多线程的内容,介绍并行算法与常用算法,以线程为出发点介绍多线程程序设计基础理论。介绍和讨论Windows多线程编写并行程序的常用编程API,详细介绍多核程序设计与调优方法。讲解Linux平台下的多线程编程技术, 详细介绍OpenMP与MPI利用多核平台进行并行程序设计的方法。然后利用Windows平台与Linux平台及多核厂家提供的多核软件调优工具以及多核程序设计实例引导学生迅速掌握多核平台上的程序设计技术与调优方法。 三、 预备知识或先修课程要求 高级语言程序设计,计算机操作系统,计算机系统结构。 四、 教学方式 以课堂讲授为主。 五、 教学内容及学时分配 第一章 多核技术概述(4学时) 知识点:多核技术的概述,掌握多核技术的软硬件发展历程,以及各种技术对于多核的支持。 重点:多核的发展历程,多核技术发展的必然性。 1.1 微处理器发展史 1.2 集成电路及芯片发展 1.3 片上多核处理器架构 1.4 操作系统对多核的支持 第二章 并行计算基础(4学时) 知识点:并行计算技术对多核的支持,并行计算的基础知识和基本计算模型,多核程序的性能评测方法。 重点:并行程序的性能评测方法。 2.1并行计算机体系结构 2.2并行计算模型 2.3进程、线程及性能评测 第三章 多线程基础(4学时) 知识点:多核多线程的基本概念,用户级线程和内核级线程的区别,线程的同步方法。 重点:多线程中用户级线程与内核级线程的区别,线程同步的方式。 3.1多线程概念 3.2用户及内核级线程 3.3线程同步 第四章 Windows多线程编程及调优(4学时) 知识点:Windows多线程编程的基础知识,具体的编程技术和线程API,线程执行的过程,在Windows环境下的调试和优化方法。 重点:Windows多线程编程技术,Windows多线程编程的调试与优化方法。 4.1线程库介绍 4.2 Win32线程API使用 4.3线程执行 4.4多线程调试与优化 第五章 Linux多线程编程(4学时) 知识点:Linux环境下进行多线程编程的基础知识,使用POSIX Pthreads库进行多线程编程的具体方法,线程互斥和同步的方法及实例。 重点:Linux下POSIX库编程的基本方法。 5.1 POSIX线程库介绍 5.2 POSIX Pthreads库基本线程操作 5.3线程互斥和同步 第六章 OpenMP多编程编程及性能优化(4学时) 知识点:OpenMP编程的基础知识,具体的OpenMP编程方法,以及如何对OpenMP程序进行性能分析和优化。 重点:OpenMP编程的具体方法,以及OpenMP程序的性能分析与优化方法。 6.1 OpenMP编程介绍 6.2 OpenMP编程技术 6.3 OpenMP编程性能分析与优化 第七章 MPI编程及性能优化(4学时) 知识点:MPI编程的基础知识,MPI编程的具体方法及实例,MPI程序的性能分析与优化方法。 重点:MPI编程与OpenMP编程的异同,性能分析与优化。 7.1 MPI介绍 7.2安装配置 7.3编程基础 7.4性能分析与优化 第八章 多核软件工具介绍及使用(4学时) 知识点:C++编译器、VTune性能分析器、Thread Checker线程检查器、Thread Profile线程档案器的主要功能、配置方法和使用方法。 重点:多核几种软件工具的功能和简单使用方法。 8.1 C++编译器 8.2 VTune性能分析器 8.3 Thread Checker线程检查器 8.4 Thread Profiler线程档案器 六、 考核要求、考核方式及成绩评定标准 笔试 七、 其他说明
|