Results 1 - 10
of
43
Metasystems: an approach combining parallel processing and heterogeneous distributed computing systems
- J. PARALLEL & DISTRIBUTED COMPUT
"... A metasystem is a single computing resource composed of a heterogeneous group of autonomous computers linked together by a network. The interconnection network needed to construct large metasystems will soon be in place. To fully exploit these new systems, software that is easy to use, supports larg ..."
Abstract
-
Cited by 59 (16 self)
- Add to MetaCart
A metasystem is a single computing resource composed of a heterogeneous group of autonomous computers linked together by a network. The interconnection network needed to construct large metasystems will soon be in place. To fully exploit these new systems, software that is easy to use, supports large degrees of parallelism, and hides the complexity of the underlying physical architecture must be developed. In this paper we describe our metasystem vision, our approach to constructing a metasystem testbed, and early experimental results. Our approach combines features from earlier work on both parallel processing systems and heterogeneous distributed computing systems. Using the testbed we have found that data coercion costs are not a serious obstacle to high performance, but that load imbalance induced by differing processor capabilities can limit performance. We then present a mechanism to overcome load imbalance that utilizes user-provided callbacks.
Fixed-Point Optimization Utility for C and C++ Based Digital Signal Processing Programs
- IEEE Trans. Circuits and Systems II
, 1998
"... Fixed-point optimization utility software is developed that can aid scaling and wordlength determination of digital signal processing algorithms written in C or C++++++. This utility consists of two programs: the range estimator and the fixed-point simulator. The former estimates the ranges of float ..."
Abstract
-
Cited by 44 (3 self)
- Add to MetaCart
Fixed-point optimization utility software is developed that can aid scaling and wordlength determination of digital signal processing algorithms written in C or C++++++. This utility consists of two programs: the range estimator and the fixed-point simulator. The former estimates the ranges of floatingpoint variables for purposes of automatic scaling, and the latter translates floating-point programs into fixed-point equivalents to evaluate the fixed-point performance by simulation. By exploiting the operator overloading characteristics of C++++++, the range estimation and the fixed-point simulation can be conducted by simply modifying the variable declaration of the original program. This utility is easily applicable to nearly all types of digital signal processing programs including nonlinear, time-varying, multirate, and multidimensional signal processing algorithms. In addition, this software can be used to compare the fixed-point characteristics of different implementation archite...
Issues with exception handling in object-oriented systems
- In Object-Oriented Programming, 11th European Conference (ECOOP
, 1997
"... The goals of exception handling mechanisms are to make programs more reliable and robust. The integration of exception handling mechanisms with object-oriented languages raises some unique issues. The requirements of exception handling often conflict with some of the goals of object-oriented designs ..."
Abstract
-
Cited by 34 (0 self)
- Add to MetaCart
The goals of exception handling mechanisms are to make programs more reliable and robust. The integration of exception handling mechanisms with object-oriented languages raises some unique issues. The requirements of exception handling often conflict with some of the goals of object-oriented designs, such as supporting design evolution, functional specialization, and abstraction for implementation transparency. This paper demonstrates these conflicts, illustrates that the use of exception handling in object-oriented systems poses potential pitfalls, and suggests that their resolution is one of the first steps necessary to make exception handling robust in object-oriented designs and languages.
COMPOSE A System For Composite Event Specification and Detection
- in Book chapter in Advanced Database Concepts and Research Issues
, 1994
"... Triggers, which make databases active, are specified as event-action pairs. We have developed a model for specifying composite events, which are events that are composed from simple events or from other composite events. Composite events are specified as event expressions. The occurrence of a compos ..."
Abstract
-
Cited by 25 (1 self)
- Add to MetaCart
Triggers, which make databases active, are specified as event-action pairs. We have developed a model for specifying composite events, which are events that are composed from simple events or from other composite events. Composite events are specified as event expressions. The occurrence of a composite event is detected by the finite automaton implementing the corresponding event expression. Composite events are built using event specification operators which are classified into two categories: basic and additional. The addtional operators, with few exceptions, can be expressed in terms of the basic operators. We have built a prototype system, COMPOSE, for specifying and detecting composite events". Our implementation techniques can handle automata with "masks" and automata with parameters. A real-time "stock" feed is used to experiment with the specification of stock market related events. In this paper, we describe how composite events are specified, illustrate composite event specif...
Static analysis to support the evolution of exception structure in object-oriented systems
- ACM Transactions on Software Engineering and Methodology (TOSEM
, 2003
"... Exception-handling mechanisms in modern programming languages provide a means to help software developers build robust applications by separating the normal control flow of a program from the control flow of the program under exceptional situations. Separating the exceptional structure from the code ..."
Abstract
-
Cited by 24 (0 self)
- Add to MetaCart
Exception-handling mechanisms in modern programming languages provide a means to help software developers build robust applications by separating the normal control flow of a program from the control flow of the program under exceptional situations. Separating the exceptional structure from the code associated with normal operations bears some consequences. One consequence is that developers wishing to improve the robustness of a program must figure out which exceptions, if any, can flow to a point in the program. Unfortunately, in large programs, this exceptional control flow can be difficult, if not impossible, to determine. In this article, we present a model that encapsulates the minimal concepts necessary for a developer to determine exception flow for object-oriented languages that define exceptions as objects. Using these concepts, we describe why exception-flow information is needed to build and evolve robust programs. We then describe Jex, a static analysis tool we have developed to provide exception-flow information for Java systems based on this model. The Jex tool provides a view of the actual exception types that might arise at different program points and of the handlers that are present. Use of this tool on a collection of Java library and application source code demonstrates that the approach can be helpful to support both local and global improvements to the
Rationale for the Design of Persistence and Query Processing Facilities in the Database Programming Language O++
, 1989
"... ODE is a database system and environment based on the object paradigm. It offers one integrated data model for both database and general purpose manipulation. The database is defined, queried, and manipulated in the database programming language O++, an extension of C++. O++ uses the C++ object defi ..."
Abstract
-
Cited by 19 (2 self)
- Add to MetaCart
ODE is a database system and environment based on the object paradigm. It offers one integrated data model for both database and general purpose manipulation. The database is defined, queried, and manipulated in the database programming language O++, an extension of C++. O++ uses the C++ object definition facility, called the class, to provide data encapsulation and multiple inheritance. O++ extends C++ by providing facilities for creating persistent and versioned objects, defining and manipulating sets, organizing persistent objects into clusters, iterating clusters of persistent objects, and associating constraints and triggers with objects. In this paper, we present the O++ facilities for persistence and query processing, the alternatives considered, and the rationale behind the design choices.
Braid: Integrating task and data parallelism
- In Symp. on the Frontiers of Massively Parallel Computation
, 1995
"... Archetype data parallel or task parallel applications are well served by contemporary languages. However, for applications containing a balance of task and data parallel-ism the choice of language is less clear. While there are lan-guages that enable both forms of parallelism, e.g., one can write da ..."
Abstract
-
Cited by 16 (0 self)
- Add to MetaCart
Archetype data parallel or task parallel applications are well served by contemporary languages. However, for applications containing a balance of task and data parallel-ism the choice of language is less clear. While there are lan-guages that enable both forms of parallelism, e.g., one can write data parallel programs using a task parallel language, there are few languages which support both. We present a set of data parallel extensions to the Mentat Programming Language (MPL) which allow us to integrate task parallel-ism, data parallelism. and nested task and data parallelism within a single language on top of a single run time system. The result is an object-oriented language, Braid, that sup-ports both task and data parallelism on MIMD machines. In addition, the data parallel extensions define a language in and of itself which makes a number of contributions to the data parallel programming style. These include subset-level operations (a more general notion of element-level operations), compiler provided iteration within a data par-allel data set and the ability to define complex data parallel operations. 1
Class Library Implementation of an Open Architecture Knowledge Support System
, 1994
"... Object-oriented class libraries offer the potential for individual researchers to manage the large bodies of code generated in the experimental development of complex interactive systems. This article analyzes the structure of such a class library that supports the rapid prototyping of a wide range ..."
Abstract
-
Cited by 16 (9 self)
- Add to MetaCart
Object-oriented class libraries offer the potential for individual researchers to manage the large bodies of code generated in the experimental development of complex interactive systems. This article analyzes the structure of such a class library that supports the rapid prototyping of a wide range of systems including collaborative networking, shared documents, hypermedia, machine learning, knowledge acquisition and knowledge representation, and various combinations of these technologies. The overall systems architecture is presented in terms of a heterogeneous collection of systems providing a wide range of application functionalities. Examples are given of group writing, multimedia and knowledge-based systems which are based on combining these functionalities. The detailed design issues of the knowledge representation server component of the system are analyzed in terms of requirements, current state-of-the-art, and the underlying theoretical principles that lead to an effective obj...
Efficient Handling of Tuples with Embedded Large Objects
- Data & Knowledge Engineering
, 1998
"... Modern database systems and storage manager toolkits usually provide a large object abstraction. Very often large objects are not used as standalone entities, but rather embedded within an aggregate of different types, i.e. a tuple. Depending on the large object's size and access probability, query ..."
Abstract
-
Cited by 14 (9 self)
- Add to MetaCart
Modern database systems and storage manager toolkits usually provide a large object abstraction. Very often large objects are not used as standalone entities, but rather embedded within an aggregate of different types, i.e. a tuple. Depending on the large object's size and access probability, query performance is determined by the representation of the large object: either inlined within the aggregate or swapped out to a separate object. This paper describes a sound and general large object interface extension which automatically switches the representation of large objects according to their actual size. The optimum threshold size for switching the large object's representation is determined, based upon a linear cost model. Furthermore, a SHORE-based implementation and its performance are presented. It turns out that switching the representation of large objects yields great performance improvements for objects whose size is varying from quite small to large.
A Study of the Applicability of Existing Exception-Handling Techniques to Component-Based Real-Time Software Technology
- ACM Trans. Program. Lang. Syst
, 1998
"... this article differentiate the exception-handling needs of CB-RTS as compared to other software paradigms and can serve as a driving force for future research into exception-handling technology. ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
this article differentiate the exception-handling needs of CB-RTS as compared to other software paradigms and can serve as a driving force for future research into exception-handling technology.

