首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 156 毫秒
1.
针对奇偶合并排序中存在的巨大数据级并行性潜力,通过将其实现于提供了强大数据级并行性的GPU处理器之上而获取较高的加速比.同时,针对OpenCL不支持各工作组间的工作线程的同步问题,提出两种解决方法,一种是通过主机程序控制迭代过程,从而完全避免所有工作线程对于同步操作的需求;另一种是通过桶划分预处理技术将对于同步操作的需求控制在单个工作组,然后利用单个工作组提供的各工作线程间的同步机制以正确的处理同步操作.实验结果表明,按照本文方法实现的程序性能相对于C++STL库中的sort实现有着明显的提高.  相似文献   

2.
同步开销是影响并行程序性能的一个重要方面,如果同步操作出现在循环中,将会使这种影响进一步扩大.为了降低循环中同步操作的开销,本文提出一种利用即时编译器外提Java程序中循环内同步操作的优化算法,并在实际的Java虚拟机中实现.该算法在保证程序语义不变的前提下,大量减少运行时实际执行的同步操作数量,降低同步开销,并能保证外提变换后同步代码块不会太大而降低程序的并发度.实验结果表明该算法能提高程序的整体性能,并且不降低程序的可扩放性.  相似文献   

3.
Java虚拟机使用锁机制来实现多线程共享数据结构的同步.锁机制维护的临界区通常对共享数据结构只进行读操作.只读锁是指当某个线程持有锁在只读临界区时,其他线程可以直接进入只读临界区而无需等待.只读锁能极大地提高锁机制的同步性能.Java虚拟机的锁机制可分为轻量级锁和重量级锁两层,当线程冲突时从轻量级锁转向重量级锁.本文分别从轻量级锁和重量级锁两个层次分别进行只读锁优化.轻量级锁的只读优化算法可以减少原子操作的开销;重量级锁的只读优化算法则可以使多个线程同时在只读临界区中.最后在Java虚拟机HotSpot中实现只读锁优化,并且在龙芯3A上进行实验.性能测试用例包括单线程Java程序、多线程Java程序以及SPECjvm2008.实验结果表明,上述优化方法能极大降低线程进入和退出只读临界区的开销,提高Java虚拟机的同步性能.  相似文献   

4.
多线程程序,可以让计算机在同一段时间内并行处理不同的工作任务,实现多任务同时工作.在Java程序中有两种方式创建线程,而用synchronized关键字来修饰线程的方法,则可实现线程之间的同步,保证在同一时刻只有一个线程访问该方法,实现资源之间的协商共享.  相似文献   

5.
印乐  黄磊 《软件学报》2013,24(10):2289-2299
并行发生(may happen in parallel,简称MHP)分析计算并行程序中哪些语句可以并行执行,它是并行分析技术的重要组成部分.提出一种针对Java 程序的新颖的MHP分析算法.与已有算法相比,新算法抛弃了“子线程只会被父线程等待同步”的假设,以非耦合的方式分别处理start 同步和join 同步;新算法的处理逻辑虽然更加简单,但却更加完备;在计算控制信息时,新算法不必像已有算法那样通过内联构造全局的控制流图,显著地提高了算法的扩展性.新的MHP 算法被用来过滤静态数据竞争检测中虚假的数据竞争.在14 个Java 测试程序上的实验结果表明,新的MHP 算法计算控制信息的开销远远小于已有算法.  相似文献   

6.
Java线程的深入探讨   总被引:1,自引:0,他引:1  
该文主要讨论了Java的线程及其特点,以及Java中的同步机制。对Java环境下多线程程序的开发作了深入探讨。  相似文献   

7.
本文主要讨论了Java的线程及其特点,以及Java中的同步机制。对Java环境下多线程程序的开发作了深入探讨。  相似文献   

8.
目前解决Java同步线程模型缺陷采用的是急救包类库的方式,但是此方法面临着一项重大技术难题,就是代码无法或者很难实现优化。针对Java同步线程模型缺陷问题,可以采用扩展synchronised关键字语法,使其能够接受超时说明,并且支持多个参数;解决超时检测问题,可以重新定义wait(),便于返回boolean变量,这样超时检测得以解决;扩展语法来解决同步的问题。从而,Java同步线程模型的缺陷得以解决,程序稳定且可以优化。  相似文献   

9.
Java多线程机制及其应用   总被引:6,自引:0,他引:6  
在分析现有进程概念局限性的基础上,阐述了引入线程概念的必要性,进而给出了线程的确切定义和主要特征.最后描述了支持Java多线程程序设计的语言机制和方法,并指出了线程实际应用领域.  相似文献   

10.
本文以Java的多线程为研究对象,阐述了Java线程的同步机制、模型及调度,讨论了Java在语言级对多线程的支持,并对Java环境下多线程程序的开发及应用进行了较深入的探讨。  相似文献   

11.
JAVA语言是目前一种主要的面向对象编程语言,由于JAVA语言复杂的结构,使得对JAVA程序进行程序切片非常困难.本文提出一种层次的构造JAVA系统依赖图的算法,基于JAVA程序本身的层次结构,自顶向下构造系统依赖图,然后基于构造的系统依赖图,用一种改进的两阶段算法得到JAVA程序切片.  相似文献   

12.
面向Java的实用别名分析技术   总被引:1,自引:0,他引:1  
别名分析对程序分析起着十分重要的作用,不进行别名分析或分析 算法选择不当,可能会影响分析结果的可信度,甚至会导致分析析完全不正确,因此给出了一种适用于Java程序的别名分析技术,并给出了分析算法的形式化描述。  相似文献   

13.
多线程并发程序的广泛使用引发了更多的数据竞争问题,竞争检测对于提高软件质量具有重要意义。将竞争静态检测和静态切片分析结合起来,提出了一种基于类的Java数据竞争静态检测算法,该算法利用函数调用层次获得函数调用链,对类域进行分析,找出可能数据竞争,通过静态切片缩小程序分析范围,并结合数据竞争的必要条件,去掉不可能数据竞争。实例表明,该算法可用于指导修复程序中的竞争缺陷。  相似文献   

14.
多线程程序数据竞争的静态检测   总被引:11,自引:0,他引:11  
多线程并发程序的广泛使用带来了更多的数据竞争错误.传统的数据竞争静态检测由于对并发语义和别名信息的保守分析会导致很多假错误.因此,提出了一个精确有效的静态检测框架:分析应用了精确的别名分析并静态模拟了访问事件发生序;为提高分析效率,检测算法提出了一个以对象为中心,结合Escape分析缩小检测范围的检测算法并配合设计了压缩的别名等价类表示.检测框架在一个静态Java编译器JTool上做了实现,对于测试程序取得了很好的分析结果.  相似文献   

15.
准确刻画不确定环境中复杂程序的动态特性,是传统程序分析理论和技术面临的难点,更是许多重要系统实现程序动态实时分析与控制过程亟待解决的问题。本文提出基于Q学习的复杂程序动态分析思想,构造了基于Q学习的复杂程序动态依赖性分析基本算法。并对复杂程序动态实时分析与控制技术的实现环节进行了研究,探讨了相关问题,从而使复杂程序动态分析与控制过程更精炼、更智能、更高效。  相似文献   

16.
死锁是并发程序中最为常见的一类错误,直到现在并没有得到很好地解决.本文以Java并发程序为例,重点研究针对资源死锁较为有效的动态检测算法:根据并发程序的动态执行追踪信息,分析出加锁控制依赖关系,再根据死锁所应满足的条件在该依赖关系集上作适量演算便得到潜在死锁关系对.进一步地,结合线程间控制流图所反映的部分静态依赖关系,剔除假性死锁关系对,提高了计算结果的精度.该算法显著的特点是简单易于实现,且无需构造锁树或锁图等图形表示.  相似文献   

17.
Program logics for bytecode languages such as Java bytecode or the .NET CIL can be used to apply Proof-Carrying Code concepts to bytecode programs and to verify correctness properties of bytecode programs. This paper presents a Hoare-style logic for a sequential bytecode kernel language similar to Java bytecode and CIL. The logic handles object-oriented features such as inheritance, dynamic method binding, and object structures with destructive updates, as well as unstructured control flow with jumps. It is sound and complete.  相似文献   

18.
基于逃逸分析的循环中栈式分配优化研究   总被引:1,自引:0,他引:1  
栈式内存分配可以有效地提高Java程序的执行效率,但是在循环中,对象的栈式分配比率和栈空间的大小变成了一对很难协调的矛盾.文中实现了一种控制流非敏感(flow-insensitive)的、过程间(inter-procedural)的、上下文相关(context-sensitive)的逃逸分析(escapeanalysis)方法.在此基础上,提出以循环为基本单位的分配策略,引入了对象栈和区域栈帧等概念;通过对循环的分析,实现了基于逃逸分析的栈式分配.SPECjvm98测试基准表明,在可控栈空间大小的条件下,该算法的栈式分配比率达到8.3%~25%(平均15.18%).  相似文献   

19.
Exception是一类特殊的对象,它在Java方法出错时被创建,并利用try/catch/finally机制抛出、处理异常。本文提出了一种合理的新方法,在系统依赖图中表示异常处理模块,利用图可迭性算法实现了Java程序切片。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司    京ICP备09084417号-23

京公网安备 11010802026262号