当前位置:主页 > 科技论文 > 计算机论文 >

基于OpenMP的Fortran语言事务存储编程环境研究与实现

发布时间:2020-03-19 02:44
【摘要】: 片上多核技术成为处理器发展的新方向,它需要运行多线程应用才能充分发挥性能。多核处理器的普及增加了并行程序的需求。传统的并行程序同步控制方法基于锁机制,存在死锁、护航、优先级倒置、组合性差、锁粒度选择困难等缺陷。为此,事务存储被引入到并行程序设计领域,以克服锁机制带来的问题,简化多线程并行编程。 目前,关于事务存储的研究初见成效,许多研究机构发布了各种算法的事务存储系统,一些研究人员在此基础上开始尝试构建事务存储编程应用环境,事务存储研究热点也由事务存储系统实现扩展到了事务存储编程应用试验。 本文介绍了部分已有的事务存储编程环境,在现有一些研究成果的基础上,对事务存储编程模式与环境的设计与实现进行了研究探索。本文首次对事务存储思想在Fortran语言中的应用做了初步尝试,设计了一套针对Fortran语言的事务存储并行编程接口,实现了一个源到源编译器原型,构建了一个Fortran语言事务存储编程环境,并针对事务存储程序性能表现的特点考虑了一些基本的优化策略。为进一步研究事务存储,尤其是事务存储应用试验提供了一个可用的环境。主要工作和创新包括: 1、借鉴斯坦福大学和Sun公司等一些研究机构的研究成果,基于OpenMP指导命令,设计了针对Fortran语言的事务存储编程接口。设计了Fortran事务存储编程接口在编译器实现时的源到源插桩转换策略、事务化插桩接口、以及事务存储运行时库接口。 2、基于CCRG编译器实现了FortranTM环境。分析了CCRG对源程序的处理过程,实现了FortranTM对事务存储API的识别和语法分析与转换,实现了对FortranTM源程序的事务化插桩转换。分别基于TL2和TinySTM实现了FortranTM的事务存储运行时库,讨论了Fortran语言和C/C++事务存储系统函数之间接口的实现。 3、结合OpenMP处理变量共享属性的特点,在FortranTM中提出并实现了EXCLUDED子句,以减少事务化读写操作;结合OpenMP调度循环的特点,实现了事务化循环中可变事务长度的两种处理策略,以优化和调整事务化程序的性能。 4、对FortranTM的源到源转换功能、生成可执行程序的正确性,以及FortranTM并行性能、EXCLUDED子句与事务长度对事务化程序性能的影响进行了验证和测试。测试结果表明,FortranTM基本实现了源到源转换功能,并能生成正确的可执行程序;EXCLUDED子句对于减少事务化读写有显著作用,不同事务长度对事务化程序性能有显著影响。
【图文】:

执行过程,生命周期,粒度,冲突管理


.1.3.4 事务的粒度(Transaction Granularity)务粒度是事务存储系统检测冲突时所用的基本存储单位。最容易理象粒度(Object Granularity),在此粒度下,是否发生冲突的判决是在行的:即使两个事务修改的存储单元不重合,只要它们在同一个对判断这两个事务冲突。更精细的粒度是字粒度(Word Granularity)和 Granularity),字粒度以一个存储字为检测单位,块粒度以存储块为检储块包含固定数量的一组字。在这两种粒度下,冲突检测更精确,存储系统性能的提升。.1.3.5 冲突管理(Conflict Management)务存储系统必须包含冲突管理机制。它实现了冲突解决策略,在发那个事务在竞争中胜出。冲突管理关注于是否能够保持程序继续向决策略多种多样,常见的是基于某种形式的优先级策略和随机延迟.1.4 事务的执行过程和生命周期

编译过程


本文的主要目标是介绍一种将事务存储引入 Fortran 语言的设计和实现方案。我们采用源到源转换(source-to-source translation)的方式实现事务存储编译器,,基于OpenMP 指导命令设计实现事务存储编程接口,利用公开发布的一些独立 STM 系统实现事务存储运行时库。这一系统我们称之为 FortranTM。本章介绍 FortranTM系统的设计,包括以下几个方面:第一节介绍 FortranTM 的整体设计框架,第二节介绍 FortranTM 面向程序员的 API 设计,第三节介绍编译器面向事务存储运行时库的接口设计,第四节总结本章内容。3.1 基本设计框架我们借助 Sage++[45,46]实现源到源的转换。Sage++是一种构建程序转换系统(program transformation systems)的面向对象工具套件,它提供了访问和重构语法树、标记与类型表的方法,支持 Fortran 77、Fortran 90、C 和 C++语言。研究人员可以用它来构建并行程序编译器、性能分析工具以及源代码优化工具。它对输入端源程序的处理过程分为分析(parsing)、重构(restructuring)和反向分析(unparsing)三个阶段。
【学位授予单位】:国防科学技术大学
【学位级别】:硕士
【学位授予年份】:2009
【分类号】:TP333

【参考文献】

相关期刊论文 前2条

1 彭林;谢伦国;张小强;;事务存储系统[J];计算机研究与发展;2009年08期

2 张铎;唐玉华;所光;;事务存储结构的实现[J];计算机与信息技术;2008年03期

相关博士学位论文 前1条

1 杨晓奇;事务存储编程和KD-50-I万亿次机软件库优化的若干问题研究[D];中国科学技术大学;2008年



本文编号:2589581

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2589581.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户dc0c4***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com