我的GIS/CS学习笔记:https://github.com/yunwei37/ZJU-CS-GIS-ClassNotes
<一个浙江大学本科生的计算机、地理信息科学知识库 >
(浙江大学编译原理课程的课程报告)
前言
并行性
是指计算机系统具有可以同时进行运算或操作的特性,在同一时间完成两种或两种以上工作。并行性等级可以分为作业级或程序级
、任务级或程序级
、指令之间级
和指令内部级
。
对于在一个具有指令级并行机制的处理器上程序的并行能力,需要考虑以下因素:
- 程序中潜在的并行性,或者说程序中预算之间的依赖关系;例如具有简单的控制结构和规则的数据访问模式的数值应用中的并行性就相对较多;
- 处理器上可用的并行性,比如可以用以计算的硬件资源的数目;
- 从原来的顺序程序中抽取并行性的能力;
- 在给定的指令调度约束下找到最好的并行调度方案的能力;
并行性抽取和并行执行的调度可以通过软件静态完成,也可以通过硬件动态完成,或二者互相结合。编译中主要涉及的就是软件相关的静态过程,即如何通过在编译的过程中进行指令抽取
和指令调度
,来达到更好的并行性和运行速度。
本文希望从并行性相关的处理器体系结构实现、基本块调度算法、全局调度算法等方面来介绍编译过程中的并行性问题。