Pool-T: a parallel object-oriented language
Object-oriented concurrent programming
Specification and transformation of programs: a formal approach to software development
Specification and transformation of programs: a formal approach to software development
Introduction to algorithms
Copying and Swapping: Influences on the Design of Reusable Software Components
IEEE Transactions on Software Engineering
Toward a method of object-oriented concurrent programming
Communications of the ACM
Incremental computation: a semantics-based systematic transformational approach
Incremental computation: a semantics-based systematic transformational approach
Use of the concept of transparency in the design of hierarchically structured systems
Communications of the ACM
Computer
Multilevel Data Structures: Models and Performance
IEEE Transactions on Software Engineering
Encapsulating concurrency with Early-Reply
OOPSLA '02 Companion of the 17th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Applications of dynamic proxies in distributed environments
Software—Practice & Experience
Hi-index | 0.00 |
Generic software components have a reputation for being inefficient. Parallel implementations may improve performance, but can thwart reuse by being architecture-dependent or by exposing concurrency to client-side reasoning about component interactions. To address performance, we present Early-Reply as an alternative to blocking method invocations. Component operations can be partitioned into a material computation required to satisfy the postcondition, and a residual computation required to re毛stablish the component invariant, optimize its representation, etc. Early-Reply exploits opportunities for parallelism by forwarding final parameter values to the caller as soon as the material computation completes, thereby offloading the residual computation to execute in parallel with subsequent client activities. Proof obligations for Early-Reply support a synchronous calling model, so clients can still reason sequentially about component behavior. Also, since Early-Reply components do not depend on system-wide support for component synchronization, they can be deployed incrementally. Finally, Early-Reply can improve the response time of idle components by orders of magnitude; when composed hierarchically, performance benefits are magnified by the potential fan-out of concurrently executing components.