基于共享和形状标注的并行语言程序分析与变换
发布时间:2021-02-04 09:11
多核多处理新一代体系结构的迅猛发展,引发了软件开发方式上的巨变,为了能够充分地发挥体系结构上带来的优势,越来越需要并行编程和并发软件设计,但是,当前并行编程依然是件困难的事情。本课题组已经设计并实现了一种共享资源使用声明的并行程序语言SPC-II,它是基于共享内存模型的一种并行程序语言。与现有的并行语言不同,它最大特点在于为程序员提供一种访问控制的高级抽象,程序员不需要自己管理并发控制,而只需要声明所使用的共享资源,让编译器分析所使用的共享资源的保护区间,根据共享资源的保护区间插桩访问控制代码。本文在课题组的并行语言基础上,着重研究含有指针类型的链状数据结构访问控制,论文的主要研究内容有以下几个部分:1.一种链状数据结构自动细粒度加锁方法就细粒度并发访问链状数据结构提出一种自动方法,这些链状数据结构目前是单链表和双链表,通过分析SPC-II程序中的共享链状数据结构的形状信息来分析程序中共享数据单元的保护信息。2. SPC-II语言翻译器的实现在SUIF编译框架上,实现了一个并行语言SPC-II的编译器,该编译器实质上是一个源语言(SPC-II语言)到源语言(基于Pthread多线程库的...
【文章来源】:中国科学技术大学安徽省 211工程院校 985工程院校
【文章页数】:71 页
【学位级别】:硕士
【部分图文】:
指针变量2-3整形变量
=p; t->next=p; unLock(p);=p; q->next=p;unLock(q);1; return 1;)源程序 } (b)目标程图 2-5 SPC-II 的链表插入实例语法式化的讨论本文的分析方法,图 2-6 给出了 SPC-III 程序 由一个全局的类型环境 和代码片段 S 组型定义和一组变量声明组成。为了能够让程序员描述和指定变量共享性,SPC-II 在结构体类型定义引入引入了共享性 。句 S 包括赋值语句,控制流语句,并支持显式地动了 并行语句。在源语言级,每个赋值语句和行,也叫做原子命令(Atomic command)。
图 2-7 SPC-II 抽象机2 操作语义SPC-II 的操作语义由下面的转换规则的归纳定义给出::一个特定线程的一步转换初始状态是:,其中,初始共享状态的共享存储时根据全局共享变量,初始的线程局部状态是由全局环境中的非共享变量构建。最终状态时:,其中,“_”表示不关心此次的值。.1 并行语句规则 DFORK 描述执行一个 fork-join 并行语句的要求,TiSi表示第 i 个子线源代码,spawn(Ti,Si)表示创建一个新的子线程,这个子线程将会在线程环境 Ti下执行代码 Si。一旦一个子线程被创建时,父线程必须等待直到子完成其代码的执行,规则 DSUB_THRD 描述一个子线程的一步执行。
本文编号:3018074
【文章来源】:中国科学技术大学安徽省 211工程院校 985工程院校
【文章页数】:71 页
【学位级别】:硕士
【部分图文】:
指针变量2-3整形变量
=p; t->next=p; unLock(p);=p; q->next=p;unLock(q);1; return 1;)源程序 } (b)目标程图 2-5 SPC-II 的链表插入实例语法式化的讨论本文的分析方法,图 2-6 给出了 SPC-III 程序 由一个全局的类型环境 和代码片段 S 组型定义和一组变量声明组成。为了能够让程序员描述和指定变量共享性,SPC-II 在结构体类型定义引入引入了共享性 。句 S 包括赋值语句,控制流语句,并支持显式地动了 并行语句。在源语言级,每个赋值语句和行,也叫做原子命令(Atomic command)。
图 2-7 SPC-II 抽象机2 操作语义SPC-II 的操作语义由下面的转换规则的归纳定义给出::一个特定线程的一步转换初始状态是:,其中,初始共享状态的共享存储时根据全局共享变量,初始的线程局部状态是由全局环境中的非共享变量构建。最终状态时:,其中,“_”表示不关心此次的值。.1 并行语句规则 DFORK 描述执行一个 fork-join 并行语句的要求,TiSi表示第 i 个子线源代码,spawn(Ti,Si)表示创建一个新的子线程,这个子线程将会在线程环境 Ti下执行代码 Si。一旦一个子线程被创建时,父线程必须等待直到子完成其代码的执行,规则 DSUB_THRD 描述一个子线程的一步执行。
本文编号:3018074
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3018074.html