1、第10章 并行编译技术基本常识,随着并行技术和并行语言的发展,并行编译技术也在不断发展,本章主要介绍并行编译技术的基本常识。,本章主要介绍,并行编译系统的功能和结构,10.1 并行编译技术的引入,当今高性能计算机都采用并行处理技术,而并行程序设计又较位困难,因此具有程序并行化功能的并行编译系统对高性能机的应用具有重大意义。随着并行计算机的发展,并行编译技术也在不断发展,分化。按照目标机的体系结构分类并行编译技术可以分为向量编译技术和并行编译技术两类。,10.1 并行编译技术的引入,并行编译技术是针对并行机和并行程序的,是一种实现多个处理机同时执行一个程序的技术。不同的并行程序设计技术要用不同的
2、并行编译技术来支持。可以把并行编译技术分成串行程序并行化技术,并行语言处理技术,并行程序组织技术三个方面。,一. 并行编译系统的功能,10.2 并行编译系统的功能和结构,并行编译系统的功能是将并行源程序转换为并行目标代码。可分为以下两类。,1. 不具有自动并行功能的系统。,2. 具有自动并行化功能的系统。,二. 并行编译系统的结构,10.2 并行编译系统的功能和结构,向量编译系统包括向量化工具和向量编译器。并行编译系统包括并行化工具,并行编译系统和并行运行库等,其结构如下图所示。,并行化工具可以独立于并行编译器的,也可以是嵌入并行编译器的。,10.2 并行编译系统的功能和结构,串行源程序,并行
3、化工具,并行源程序,预处理器,前端,主处理器,后端,并行目标程序,并行源程序,并行运行库,向量是向量计算机的操作对象之一,也是向量编译器处理的主要目标。程序中的数组操作都是用向量操作来实现的。,向量编译器与串行编译器相似,也是由词法分析,语法分析,代码优化,目标代码生成等几部分组成。,10.3 向量语言编译技术,一. 向量语法处理,向量语法处理与串行编译器对标量的语法处理基本相同。但处理时生成的数据要复杂得多。,10.3 向量语言编译技术,1. 向量循环的组织。,2. 数组参数传递。,3. 表达式的并行计算。,二. 向量结构优化,向量编译器在将中间代码转换为机器的向量指令序列的过程中要进行结构
4、优化处理。,10.3 向量语言编译技术,1. 向量链接。,2. 代码序列重排。,共享存储器并行机并行编译器的主要任务是在传统编译技术的基础上,有效地应用系统地同步通信机制组织程序在具有共享存储器地多个处理机上并行执行。,10.4 共享存储器并行机并行编译技术,一. 预编译器,10.4 共享存储器并行机并行编译技术,并行编译系统是对串行编译系统做适当扩充,并行编译系统对串行编译系统所做的主要扩充是增加一个预编译器。在预编译阶段将完成主要的并行语言处理工作,包括:并行指导命令的语法语义分析,实现并行指导命令功能的程序改写和并行库调用等。,二. 可再入的目标代码,10.4 共享存储器并行机并行编译技术,共享存储器多处理机的并行编译器均采用栈式存储分配方式。通过将私有变量分配到栈中来实现一个程序副本的可再入。这样一个程序副本可以由多个任务同时调用,每个任务调用时都将获得自己得私有变量空间。,本章小结,一. 并行编译系统的功能,并行编译系统的功能是将并行源程序转换为并行目标代码。可分为以下两类。,1. 不具有自动并行功能的系统。,2. 具有自动并行化功能的系统。,本章小结,二.并行编译系统的结构,