首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 125 毫秒
1.
该文提出了一种将调用局部化技术应用于并行环境下面向对象语言的方法,文中详细讨论了该技术的适用条件以及如何通过该方法减少循环中的远程过程调用开销,该优化技术产首先将循环分离成多个包含有远程调用的循环,再将分离后的循环分离给循环中对象所在的处理器,最后,化简迭代空间,并且用消息传递来传输数据,这种优化对象分布和循环并行化之后进行,将函数调用局部化于处理器,通过这种优化,可以进一步挖掘循环中的任务并行性,降低计算复杂度,减少函数调用开销,尤其适合面向对象语言中对循环里小函数的优化,该技术已经在作者设计的Java自动并行化编译器JAPS-Ⅱ中实现,在实验中,利用这种优化技术得到了超线性性加速比。  相似文献   

2.
一种面向多核的自适应并行虚拟机模型   总被引:1,自引:1,他引:0  
给出了一种面向多核的自适应并行虚拟机模型。该模型以轻量级进程作为基本的调度对象,同时在指令层面上提供了对面向对象思想的支持,使得编程语言中的对象在成员方法被调用时可以动态映射为一个轻量级进程。虚拟机上程序的执行过程表现为多个对象间的消息传递,多个对象之间通过名字解析服务进行查找定位,而每个对象可以被映射到不同的内核上执行,从而使系统的并行性具有自适应性。  相似文献   

3.
一个面向对象的二级并发模型   总被引:3,自引:0,他引:3       下载免费PDF全文
王戟  陈火旺 《软件学报》1994,5(9):16-23
本文提出了一个面向对象的二级并发模型FORCE-Model.它从需求规范的角度充分开发对象间和对象内两个层次上的并行性,从而将面向对象与并发性有机地结合起来,提供了有效的实时系统建模框架.基于该模型,我们开发了一个多视点可视规范语言族FORCE-Language.  相似文献   

4.
杜建成  陈道蓄 《软件学报》1997,8(A00):345-351
为了开发串行面向对象程序中对象间的并行性,需要进行方法间的分析,西方给出了类成员变量的表示,概要信息的计算,多态的处理,并在此基础之上进行了同一执行环境下对象方法的依赖关系分析。  相似文献   

5.
首先给出了一种面向对象的实视图模型———对象视图模型,可以在数据仓库中描述复杂对象,并有利于前端工具OLAP的实现。然后在此基础上提出了对象视图模型增量维护算法———OMVIMA,该算法能够有效地实现从数据源到数据仓库中对象(数据)的增量抽取和加载等维护工作。最后给出了算法的性能和效率分析,并通过应用实例证明了该算法比基于纯关系实视图的实现方法具有更高的效率。  相似文献   

6.
为满足CIMS信息集成平台中全局集成级物理集成策略的需求,本文研究了实例化面向对象视图的有效维护问题,提出了一个实例化面向对象视图的有效维护方法.该方法是代数的和基于等价推理的,它使用对象代数作为基本描述语言.本文给出了一个传播基类的更新到实例化OO视图的更新传播算法,证明了该算法是正确的并保持了一定程度的最小性,即它可以确保没有不必要的实例被计算.分析和实验结果表明,大多数情况下改变传递算法都比重新计算视图有效.  相似文献   

7.
调用图是过程间分析和程度自动并行化的基础。生成精确调用图可以进一步开发程序的并行性。此文针对Fortran程序,提出了一项完全消除哑过程,产生精确调用图的技术与相应的算法。该算法已在面向MPP Fortran的程序自动并行化工具中实现。  相似文献   

8.
面向对象和模式在嵌入式软件中的应用   总被引:5,自引:0,他引:5  
由于嵌入式系统的特殊性,长期以来嵌入式软件设计和开发使用的是过程化技术,使用面向对象和模式进行嵌入式软件设计,是一种全新的设计理念。该文描述了面向对象和模式的实现机制,分析了面向对象和模式在嵌入式软件设计和开发中的应用,提出了一个基于面向对象和模式设计的面向通信领域的嵌入式软件平台模型,并给出了基于该平台的上层应用开发模式。  相似文献   

9.
面向对象技术的程序设计与主动机制技术的相互结合,为主动程序设计语言的研究与开发创造了条件。提出了在一个源语言系统和一个面向对象语言的对象模型基础上的主动机制模型。研究了该模型的编译子系统,分别从支持面向对象和主动机制技术的角度,分析了子系统的组成、工作流程和典型算法。结合一个主动对象实例,对中间代码的生成过程进行了说明。  相似文献   

10.
朱郑州 《计算机科学》2012,39(2):136-142,174
化学计算模型是基于化学反应和计算之间比喻的并行计算模型,其内在的并行性及不确定性可以有效地消除与计算逻辑本身无关的人为顺序性,从而能够以更为直观和抽象的方式来描述并行计算。但也正是由于其内在的并行性和高层抽象性,使得特定的控制机制难以描述。高阶化学编程语言是对传统化学计算模型的扩展和泛化,在保留传统化学计算特征的同时,不仅可以有效地描述传统的控制机制,也可以方便地定义新的控制机制。通过从简单面向对象语言到高阶化学语言的转换,给出了面向对象语言的一种化学语义描述,提供了一种描述面向对象系统的新视角,也为结合面向对象编程和化学编程提供了一种可能。  相似文献   

11.
JAPS-II(Java automatic parallelizing system version 2)是一个Java源代码重构编译器,用来发现和实现串行Java程序中对象内和对象间的并行性.其目标体系结构为基于工作站网络环境的分布式存储器计算机系统.介绍了JAPS-II的体系结构和实现JAPS-II的关键技术,包括用于对象并行性分析的数据流分析技术、提高对象并行性和减少运行开销的优化技术以及类重构和代码生成技术.测试结果表明,JAPS-II能够有效地发现循环中和对象内、对象间的并行性,获得加速比.这  相似文献   

12.
Task parallelism is an approach to parallel programming that has recently gained traction because of its compatibility with the predominant object‐oriented languages and its low overhead compared to threading approaches. Parallel Task is an Open Source task‐parallel compiler and runtime system for object‐oriented languages, in particular Java. It is very flexible and expressive, demonstrated by the fact that it can be directly employed to implement most parallel computing patterns. The only notable exception has been the pipeline pattern where many data items are streamed through a number of processing stages. This is not surprising, as task parallelism is generally not compatible with the pipeline pattern. In this paper, we investigate how the pipeline pattern can be elegantly and efficiently implemented in a task‐parallel environment. To do so, we extend Parallel Task with the concept of implicit futures to allow creating pipelines in an intuitive and object‐oriented manner. Our experimental evaluation uses the extended Parallel Task to implement pipelines of different lengths and characteristics and compares with manual implementations. The evaluation demonstrates very good performance and scalability of the proposed task‐parallel pipeline approach. Copyright © 2014 John Wiley & Sons, Ltd.  相似文献   

13.
JAPS中任务调度协议的设计与实现   总被引:1,自引:0,他引:1  
1 背景和系统概述在并行编译系统中,主要的目标是分析程序中的依赖关系。通过依赖分析得到的结果将源程序划分成可以并行执行的部分,然后在一定的运行时支撑平台上并行执行。并行执行的基本要求是程序的并行语义和串行语义必须一致。在以NOW基础的并行计算系统中,由于通信开销较大,一般需要发掘在任务层次上的并行性。相对数  相似文献   

14.
Parallelizing compilers have traditionally focussed mainly on parallelizing loops. This paper presents a new framework for automatically parallelizing recursive procedures that typically appear in divide-and-conquer algorithms. We present compile-time analysis, using powerful, symbolic array section analysis, to detect the independence of multiple recursive calls in a procedure. This allows exploitation of a scalable form of nested parallelism, where each parallel task can further spawn off parallel work in subsequent recursive calls. We describe a runtime system which efficiently supports this kind of nested parallelism without unnecessarily blocking tasks. We have implemented this framework in a parallelizing compiler, which is able to automatically parallelize programs like quicksort and mergesort, written in C. For cases where even the advanced compile-time analysis we describe is not able to prove the independence of procedure calls, we propose novel techniques for speculative runtime parallelization, which are more efficient and powerful in this context than analogous techniques proposed previously for speculatively parallelizing loops. Our experimental results on an IBM G30 SMP machine show good speedups obtained by following our approach.  相似文献   

15.
There are billions of lines of sequential code inside nowadays’ software which do not benefit from the parallelism available in modern multicore architectures. Automatically parallelizing sequential code, to promote an efficient use of the available parallelism, has been a research goal for some time now. This work proposes a new approach for achieving such goal. We created a new parallelizing compiler that analyses the read and write instructions, and control-flow modifications in programs to identify a set of dependencies between the instructions in the program. Afterwards, the compiler, based on the generated dependencies graph, rewrites and organizes the program in a task-oriented structure. Parallel tasks are composed by instructions that cannot be executed in parallel. A work-stealing-based parallel runtime is responsible for scheduling and managing the granularity of the generated tasks. Furthermore, a compile-time granularity control mechanism also avoids creating unnecessary data-structures. This work focuses on the Java language, but the techniques are general enough to be applied to other programming languages. We have evaluated our approach on 8 benchmark programs against OoOJava, achieving higher speedups. In some cases, values were close to those of a manual parallelization. The resulting parallel code also has the advantage of being readable and easily configured to improve further its performance manually.  相似文献   

16.
面向对象语言在大型并行软件设计和开发上具有巨大的潜力。本文介绍了在网络环境上,我们设计 的面向对象C++并行编译系统OOCPCS的面向对象的大粒度数据流并行模型和总体设计,并讨论了其中一些重要的实现技术。  相似文献   

17.
路径表达式的并行算法研究   总被引:1,自引:0,他引:1  
在面向对象数据库系统中,路径表达式是用于定位复杂对象的必要查询设施,因此,优化和并行化路径表达式的执行是实现高性能面向对象数据库系统的关键因素之一,由于OQL语言的正交性,在SELECT,FROM和(或)WHERE子句中均可嵌套路径表达式,而我们将着重讨论WHERE子句子路径表达式的并行计算,种路径表达式也称之为复杂谓词。本文分析了现有路径表达式的计算方法后,提出了两种新的路径表达式并行计算算法,  相似文献   

18.

We describe a novel, systematic approach to efficiently parallelizing data mining algorithms: starting with the representation of an algorithm as a sequential composition of functions, we formally transform it into a parallel form using higher-order functions for specifying parallelism. We implement the approach as an extension of the industrial-strength Java-based library Xelopes, and we illustrate its use by developing a multi-threaded Java program for the popular naive Bayes classification algorithm. In comparison with the popular MapReduce programming model, our resulting programs enable not only data-parallel, but also task-parallel implementation and a combination of both. Our experiments demonstrate an efficient parallelization and good scalability on multi-core processors.

  相似文献   

19.
支持无共享结构的并行DBMS软件结构   总被引:3,自引:1,他引:3  
文中介绍并行数据库系统PARO的体系结构设计,它能很好地支持无共享结构的并行计算机。并描述该系统的软件结构,说明如何在这一软件结构下开发事务间并行性、查询内的操作间和操作内并行性。  相似文献   

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

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

京公网安备 11010802026262号