基于实验教学的编译原理课程中多核编译知识融合方法
李远成,孙艺珍
(西安科技大学 计算机科学与技术学院,陕西 西安)
摘 要: 当前多核技术已经得到长足发展,这给包括编译在内的计算机诸多领域带来巨大变化。如何将面向多核的编译理论和方法融入到传统编译原理课程中,业已成为编译原理课程改革和发展的重要问题之一。本文首先分析了多核背景下编译原理课程发展现状和存在问题;然后探讨了适合于本科生学习的多核编译知识体系;在此基础上,提出一种基于实验教学的多核编译知识融合方法,并最终给出教学与实践环节的详细设计。
关键词: 编译原理;实验教学;多核编译;知识融合
一 引言
编译原理课程是高等学校计算机专业的核心课程,与编译原理相关的模型、理论和算法已经在多个应用领域得到广泛应用并对相应领域研究开发产生重要影响。学习该课程可以培养学生抽象思维、独立解决复杂问题、编程和调试等能力[1]。
多核技术的出现与快速发展给计算机技术带来重大变化,多个处理器核提供了更为丰富的硬件资源。编译是多核技术发展的重要推动技术之一,多核资源的有效利用有赖于编译对多核的支持。为了应对多核技术及其引起的相关计算机技术发展的需要,诸多高校通过开设多核课程的方式,将多核技术引入到计算机教育体系当中[2]。因此,在传统编译原理课程中,将多核编译相关知识内容融入进来,对扩充学生多核编译的基本原理、优化方法和优化工具使用等知识具有非常重要的作用。
二 课程研究现状、问题及必要性
多核提供的丰富硬件资源给编译技术带来巨大的机遇和挑战[3]。诸多学者在相关的多核编译和优化方面展开了广泛而深入的研究,有效地促进了多核编译技术发展,基于多核的应用也因此得到蓬勃发展[4,5]。因为多核编译技术是编译技术和多核技术的融合,和传统编译技术有部分差异,因此,在当前编译课程中融合面向多核环境的编译技术十分必要。
国内生产的总资本含量为总劳动含量为国内消费的总资本含量为总劳动含量为出口产品中的总资本含量为总劳动含量为进口产品中的总资本含量为总劳动含量为
然而在已有编译原理课程中融合多核编译知识仍存在诸多问题,主要体现在两方面。一方面,面向多核的编译需要学生具备并行计算相关的先导基础知识,这需要从学科布局上进行调整,如通过设置公共选修课来对相关基础知识进行补充。另一方面,传统编译原理课程主要是基于单核处理器体系结构进行相关理论和技术的分析、设计和实现,但是多核和单核在体系结构设计上具有本质区别。因此如何在传统编译课程中增加多核编译知识需要进行探索并展开深入研究。
1. 针对多核体系结构相关理论,首先在第五学期开设16 学时专业公选课《并行计算》,要求第六学期学习《编译原理》课程的学生必选。在该公选课程中,重点讲授多核计算机体系结构、面向多核的并行计算模型以及常用的并行程序设计模型等专业基础知识。
三 多核编译知识融合方法
(一)编译原理课程中多核知识点选取
1.多核体系结构理论。该部分知识是编写并行程序以及对其进行编译优化的基础。这些知识点主要用来让学生理解并行计算的基本原理,以及从编译器角度如何发现程序所蕴含的并行性,包括如何进行任务的划分、负载平衡和任务间通信等。
2. 在编译课程课堂教学中,在编译优化章节补充讲授编译优化知识点。主要讲授编译优化中的数据流方程,重点引入面向多核的数据流和控制流等基本概念,通过补充程序结构分析内容,重点讲授面向多核的程序划分、负载平衡和任务间通信等内容。
基于前述对编译原理课程中多核知识点分析,本节针对相关内容在课堂教学环节进行如下设计。
(二)课堂教学环节内容设计
2.多核编译优化理论。这部分内容主要介绍多核与编译技术的关系,让学生理解如何基于多核体系结构,从程序自身特征出发,如何划分更加合理的任务、如何在多核间分配更加均衡的负载以及尽可能减少多核间通信开销等进行优化。
表1 实验教学环节内容设计
多核编译的核心就是探索如何利用多核技术提供的硬件资源来提高程序运行效率。由于多核编译仍在发展当中,因此它既面临着应用的需求,也是当前科研的前沿内容之一。在编译原理课程中补充多核编译知识,是多核技术发展的必然要求。针对以上存在的问题,本文尝试对编译原理课程中多核编译知识的融合方法进行探讨。综合学校人才培养定位和授课对象特征的深入分析,合理地优化传统编译知识并融合多核编译知识,将对编译原理课程教学起到有益的促进作用。
Comments on Oil Recovery Treatments……………CHEN Hualan, ZHOU Yan’gao(1·28)
(三)实验教学环节内容设计
在学期期末,分配2 个学时的实验环节。首先,学生2-3 人组成实验小组选择并完成表1 中的一个内容。然后,选择同一题目的各小组进行交流汇报并选出一个完成情况最佳的小组。最后,依据题目选出的2 个最佳小组,在全班范围内进行汇报,交流对并行化思想的理解和感悟。该教学环节具体方案图1 所示。
在实验教学方面,设置“基于Cilk 语言的并行程序设计”和“基于程序结构的数据流分析”两个实验内容。具体如表1 所示。
图1 实验环节方案设计
四 教学实践情况
在实践教学过程中,授课对象是第六学期的计算机科学与技术专业大三学生,实施小班上课方式。所有学生均在第五学期选修了公共选修课《并行计算》,考试通过率达到90%以上,具备了一定理论基础。在实践环节中,全班32 个学生,共分为12 个组,7 个小组选择Cilk 语言实现遗传算法的设计与实现,5 个小组选择基于程序结构的数据流分析。结果表明,12 个小组中有10 个小组最终完成了完整的程序,也即83%以上的学生达到良好的学习效果。
家庭是社会的细胞,家庭不稳定社会则很难安宁。由于婚恋困难,部分适婚男性不能建立家庭,正常的性需求得不到满足,就必然加剧性交易、性侵犯、拐卖妇女和儿童等犯罪事件的发生频率,社会刑事案件也会相应增加,买卖婚姻、骗婚、拐卖妇女等现象也可能会重新抬头。同时,与此相关的情杀、仇杀等案件也会最终增多,严重破坏农村社会的秩序和人民生活的安定。现实中这样的例子屡见不鲜,近年来安康当地媒体上由农村青年婚恋引发的民事案件和刑事案件也屡屡曝光。
结合感官品质分析结果,优选的烤制温度为220℃。此温度条件下HAAs总含量为2 989.75ng·kg-1,根据已有的研究结果表明市售一级烤鸭杂环胺含量范围为:5 266.91~13 850ng·kg-1,该条件下杂环胺含量水平得到有效的控制。
五 总结
本文主要针对编译技术因多核技术迅猛发展所带来的机遇和挑战,面向侧重应用为主导的普通高校计算机专业,从编译原理课程内容改革的角度,(1)分析和总结传统编译原理课程的现状和存在问题;(2)综合学校人才培养定位和授课对象特征,合理地选取适合于编译原理课程的多核知识;(3)研究多核编译知识与传统编译原理课程融合的思路和方法。最终提出一种基于实验教学的编译原理课程中多核编译知识融合方法,实现传统编译知识和多核编译知识的无缝衔接,有效提升相关内容的教学以及学生的学习效率。
参考文献
[1] 赵银亮,戴慧珺,李昊,等. 谈谈形式语言与编译课程[J]. 计算机教育. 2018, 4: 63-68
[2] 杨剑锋,隋竹翠,谢银波. 多核课程中编译原理知识点分析[J]. 计算机教育. 2011, 11: 33-36
[3] 林奕,曾雷杰,张小芳. 面向复杂工程和系统能力的编译原理课程改革探索[J]. 计算机教育, 2017, 2: 111-116
[4] Zheng W, O’Boyle M. Machine Learning in Compiler Optimization[J]. Proceedings of the IEEE, 2018, PP(99):1-23
[5] Ashcraft M B, Lemon A, Penry D A, et al. Compiler Optimization of Accelerator Data Transfers[J]. International Journal of Parallel Programming, 2017:1-20
本文引用格式: 李远成,等. 基于实验教学的编译原理课程中多核编译知识融合方法[J]. 教育现代化,2019,6(79):262-263.
DOI: 10.16541/j.cnki.2095-8420.2019.79.095
基金项目: 西安科技大学教改项目(JG16101)“编译原理课程中多核编译知识体现方法探讨”、西安科技大学教材建设项目(JC18059) “编译原理实验指导书”和国家自然科学基金重点项目(61834005)“可编程动态自重构三维阵列芯片体系结构关键技术”。
作者简介: 李远成,男,河南开封人,西安科技大学计算机科学院技术学院计科系,讲师。
标签:编译原理论文; 实验教学论文; 多核编译论文; 知识融合论文; 西安科技大学计算机科学与技术学院论文;