Results 1 -
3 of
3
Obtaining Sequential Efficiency for Concurrent Object-Oriented Languages
- In Proceedings of the ACM Symposium on the Principles of Programming Languages
, 1995
"... Concurrent object-oriented programming (COOP) languages focus the abstraction and encapsulation power of abstract data types on the problem of concurrency control. In particular, pure fine-grained concurrent object-oriented languages (as opposed to hybrid or data parallel) provides the programmer wi ..."
Abstract
-
Cited by 47 (15 self)
- Add to MetaCart
Concurrent object-oriented programming (COOP) languages focus the abstraction and encapsulation power of abstract data types on the problem of concurrency control. In particular, pure fine-grained concurrent object-oriented languages (as opposed to hybrid or data parallel) provides the programmer with a simple, uniform, and flexible model while exposing maximum concurrency. While such languages promise to greatly reduce the complexity of large-scale concurrent programming, the popularity of these languages has been hampered by efficiency which is often many orders of magnitude less than that of comparable sequential code. We present a sufficient set of techniques which enables the efficiency of fine-grained concurrent object-oriented languages to equal that of traditional sequential languages (like C) when the required data is available. These techniques are empirically validated by the application to a COOP implementation of the Livermore Loops. 1 Introduction The increasing use of ...
Study on a Reflective Architecture to Provide Efficient . . .
, 1994
"... Recent progress in implementations of object-oriented concurrent programming languages on highly-parallel processors makes it feasible to construct large-scale parallel applications having complicated structures. Such applications can not exhibit good performance without dynamic resource management ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Recent progress in implementations of object-oriented concurrent programming languages on highly-parallel processors makes it feasible to construct large-scale parallel applications having complicated structures. Such applications can not exhibit good performance without dynamic resource management (e.g., load-balancing and object scheduling) tailored to the characteristics of the applications and/or machine architectures. Since dynamic resource management systems are usually intertwined with the language implementation, modification/extension of the management systems requires complicated programming in the low-level language. Reflective systems can provide abstractions to modify/extend the implementation-level facilities within the application-level language. This study proposes a reflective architecture of an object-oriented concurrent language for highly-parallel processors to provide resource management systems for parallel applications. To make our architecture practical, much at...
: A Future-Based Polymorphic Typed Concurrent Object-Oriented Language -- Its Design and Implementation --
- Proceedings of the DIMACS workshop on Specification of Parallel Algorithms
, 1994
"... Introduction Our new language ABCL/f , which is a descendant of ABCL/1 [12], is an explicit parallel language and based on a notion of concurrent objects. Unlike the original ABCL/1, however, it is not monolithically concurrent object-based. It allows usual function/procedure invocations as well as ..."
Abstract
- Add to MetaCart
Introduction Our new language ABCL/f , which is a descendant of ABCL/1 [12], is an explicit parallel language and based on a notion of concurrent objects. Unlike the original ABCL/1, however, it is not monolithically concurrent object-based. It allows usual function/procedure invocations as well as method invocations. One of the major difficulties in parallel programming is safe and efficient access to shared mutable data structures. In order to alleviate this difficulty, our language enforces programmers to define classes of concurrent object in order to use and encapsulate shared mutable data structures. Immutable data structures, however, are defined as ordinary data types and need not be defined as concurrent objects. The fundamental reason to write parallel programs is to exploit parallelism not only for more computational power, but also for fast, yet natural problem solving. Our language is intended to be

