“多核编程”课课程教学方法的探讨.docVIP

“多核编程”课课程教学方法的探讨.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 PAGE 页 “多核编程”课程教学方法剖析   2019年,为支持教育部国家示范性软件学院项目,Intel启动大学软件学院计划,促进软件类课程建设,协同培养实用型、复合型软件人才。2019年我校与Intel开展合作,将目前主流多核技术融入现行本科教学计划中,成立课程组,开设了一门专业课程――“多核编程”。目前该课程已经开设两年,现将在本课程中一些教学方法、心得与各位同仁分享。   1 课程介绍   本课程主要内容包括多核体系结构介绍,多线程开发思想,多线程程序设计与实现,多线程程序编译、剖析工具应用,多线程编程方法学等。由于本课程授课内容比较新颖,与现今多核技术密切相关,因此对学生要求较高,需要学生有较好剖析与编写串行程序能力,具备操作系统等相关课程知识,因此本课程在大三下学期开设。   本课程以一条主线贯彻始终,反复重复、不断强化为指导思想与教学方法。即以培养学生多线程开发思想为教学主线,以在多核平台上编写多线程程序为实践教学手段,使学生掌握多线程开发思想并在不断实践中反复重复加以巩固强化,提高学生对多线程问题剖析与解决能力,为今后学习打下基础。   本课程注重实践环节,上机实践占总课时50%。课程难点在于打破学生已经固有串行编程思想,建立多线程开发思想。   2 教学方法设计   在整个教学过程中,分为理论教学与实践教学两部分。在课程安排上两部分交替进行,相辅相成,并始终贯穿多线程开发思想这一主线,让学生在实践中不断强化,加深理解直至灵活运用。   理论教学旨在帮助学生理解与掌握多核概念,多线程开发思想以及主要编程语言应用等内容。实践课程旨在通过实际操作巩固理论课上所学知识,采用相关Intel多线程工具对程序进行性能剖析、调优等。此外,讨论环节设置也是本课程教学特色之一。讨论环节展开加强了学生间知识交流与自主学习能力,也将理论教学与实践教学融为一体。   2.1 理论教学   在理论教学中围绕多线程开发思想这一主线展开。在授课中,本课程组始终保持以学生为本态度,采取从学生现有知识体系出发,逐渐过渡学习新知识教学方法,良好保证了学生对授课内容理解与接受程度。在这一过程中,采取了大量举例、类比、图示等剖析方法。   多线程开发思想主要描述了多线程程序开发流程,如图1所示,大体上分为五个阶段。每个阶段授课由浅入深,让学生明确在每个阶段对问题剖析方法,解决方案以及可以利用辅助相关软件等内容。下面将针对某一个阶段教学方法展开论述。   图1 多线程开发流程简图   在多线程开发流程中任务分解,设计并行算法这一阶段(如图1第3阶段)较为重要,它是多线程化前提与依据。这一阶段需要学生掌握任务分解含义,任务分解主要方法,这些方法含义、特点、优缺点、适用条件,以及在明确任务分解方法基础上如何深入设计并行算法等内容。   在讲述了这阶段理论内容后,为了帮助学生理解这阶段内容,在授课过程中列举了大量现实生活例子,例如种树。假设两人共同完成10棵树栽种工作,工作分为挖坑与栽种两个任务,这时对这一项工作来说有两种协调方法:(1)一人挖坑,一人种树;(2)每人负责五棵树挖坑与栽种工作。这两种协调方法刚好符合任务分解中任务分解与数据分解两种分解方法。到这里学生已经比较明确这两种分解含义与不同之处,接着以例子与理论相互对比方法深入剖析这两种分解特点、优缺点以及适用条件。同时与操作系统中线程同步,资源竞争等概念相联系,使学生在理解上没有障碍。接着引导学生设计该问题简明并行算法,让学生明确实际问题如何转化为算法,进而转化为程序,从而使问题得以解决。简明算法如下所示。   //第一种协调方法算法:(1)一个人挖坑,一个人种树   void caving();   void planting();   int main(){    init(); //系统初始化。    createthread(caving) ;// 生成一个线程(相当于一个人)完成挖坑工作。    createthread(planting) ;// 生成一个线程(相当于一个人)完成栽种工作。    wait(); //线程同步。   return 0;   //第二种协调方法算法:每人负责五棵树挖坑与栽种工作。   void caving_planting ();   int main(){    init(); //系统初始化。    createthread(caving_planting (前五棵树) );// 生成一个线程(相当于一个人)完成前五棵树工作。    createthread(caving_planting (后五棵树) );// 生成一个线程(相当于一个人)完成后五棵树工作。    wait(); //线程

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档