Results 1 - 10
of
23
ICC++ -- A C++ Dialect for High Performance Parallel Computing
- In Proceedings of the 2nd International Symposium on Object Technologies for Advanced Software
, 1996
"... ICC++ is a new C++ concurrent dialect which allows sequential/parallel program versions to be maintained with single source, the construction of concurrent data abstractions, convenient expression of irregular and fine-grained concurrency, and supports high performance implementations. ICC++ prov ..."
Abstract
-
Cited by 55 (10 self)
- Add to MetaCart
ICC++ is a new C++ concurrent dialect which allows sequential/parallel program versions to be maintained with single source, the construction of concurrent data abstractions, convenient expression of irregular and fine-grained concurrency, and supports high performance implementations. ICC++ provides annotations for potential concurrency, facilitating both sharing source with sequential programs and grain size tuning for efficient execution. ICC++ has a notion of object consistency which can be extended structurally and procedurally to implement larger data abstractions. Finally, ICC++ integrates arrays into the object system and hence the concurrency model. In short, ICC++ addresses concurrency and its relation to abstractions -- whether they are implemented by single objects, several objects, or object collections. The design of the language, its rationale, and current status are all described. Keywords concurrent object-oriented programming, concurrent languages, parallel...
Abstracting Interaction Patterns: A Programming Paradigm for Open Distributed Systems
, 1997
"... ing Interaction Patterns: A Programming Paradigm for Open Distributed Systems Gul A. Agha Open Systems Laboratory Department of Computer Science, 1304 W. Springfield Avenue, University of Illinois at Urbana-Champaign, Urbana, IL 61801, USA, Email: agha@cs.uiuc.edu, Web: http://www-osl.cs.uiuc.edu To ..."
Abstract
-
Cited by 51 (2 self)
- Add to MetaCart
ing Interaction Patterns: A Programming Paradigm for Open Distributed Systems Gul A. Agha Open Systems Laboratory Department of Computer Science, 1304 W. Springfield Avenue, University of Illinois at Urbana-Champaign, Urbana, IL 61801, USA, Email: agha@cs.uiuc.edu, Web: http://www-osl.cs.uiuc.edu To Appear: Formal Methods for Open Object-based Distributed Systems IFIP Transactions, E. Najm and J.-B. Stefani, Editors Chapman & Hall, 1997 Abstract This paper discusses mechanisms addressing the complexity of building and maintaining Open Distributed Systems. It is argued that a new programming paradigm based on modular specification of interaction patterns is required to address the complexity of such systems. Our research is based on developing abstraction mechanisms to simplify the task of developing and maintaining open systems. We define actors as a model of concurrency for open systems. We then review a number of programming abstractions that are useful in modular specification an...
Modular Specification Of Interaction Policies In Distributed Computing
, 1996
"... Software executing on distributed systems consists of many asynchronous, autonomous components which interact in order to coordinate local activity. The need for such coordination, as well as requirements such as heterogeneity, scalability, security and availability, considerably increase the comple ..."
Abstract
-
Cited by 32 (0 self)
- Add to MetaCart
Software executing on distributed systems consists of many asynchronous, autonomous components which interact in order to coordinate local activity. The need for such coordination, as well as requirements such as heterogeneity, scalability, security and availability, considerably increase the complexity of code in distributed applications. Moreover, changing requirements, as well as changes in hardware platforms, lead to software that is constantly evolving and complicates reuse. To support development and evolution of distributed applications requires techniques which allow coordination code to be specified, customized, and maintained independently of application components; goals which cannot be realized solely through object-oriented techniques. This thesis demonstrates that meta-level specification of interaction policies enables modular description of component interaction policies, as well as customization of policy implementations. We present the high-level language Dil for spec...
A Hierarchical Model for Coordination of Concurrent Activities
- Third International Conference on Coordination Languages and Models (COORDINATION ’99), LNCS 1594
, 1999
"... We describe a hierarchical model for coordination of concurrent activities based on grouping actors into casts and coordinating casts by actors that are designated directors. The hierarchical model provides a simple, intuitive basis for actor communication and coordination. Casts serve as abstractio ..."
Abstract
-
Cited by 13 (7 self)
- Add to MetaCart
We describe a hierarchical model for coordination of concurrent activities based on grouping actors into casts and coordinating casts by actors that are designated directors. The hierarchical model provides a simple, intuitive basis for actor communication and coordination. Casts serve as abstraction units for naming, migration, synchronization and load balancing. Messengers are actors used to send messages with special behaviour across casts. Moreover, an implementation of the hierarchical model does not require a reective run-time architecture. We present the operational semantics for our model and illustrate the model by two sample applications: an atomic multicast protocol and a messenger carrying remote exception-handling code. These applications have been implemented in Java, leveraging the existence of cross-platform, safe virtual machine implementations.
Thal: An Actor System For Efficient And Scalable Concurrent Computing
, 1997
"... Actors are a model of concurrent objects which unify synchronization and data abstraction boundaries. Because they hide details of parallel execution and present an abstract view of the computation, actors provide a promising building block for easy-to-use parallel programming systems. However, the ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
Actors are a model of concurrent objects which unify synchronization and data abstraction boundaries. Because they hide details of parallel execution and present an abstract view of the computation, actors provide a promising building block for easy-to-use parallel programming systems. However, the practical success of the concurrent object model requires two conditions be satisfied. Flexible communication abstractions and their efficient implementations are the necessary conditions for the success of actors. This thesis studies how to support communication between actors efficiently. First, we discuss communication patterns commonly arising in many parallel applications in the context of an experimental actor-based language, THAL. The language provides as communication abstractions concurrent call/return communication, delegation, broadcast, and local synchronization constraints. The thesis shows how the abstractions are efficiently implemented on stock-hardware distributed memory mul...
Supporting High Level Programming with High Performance: The Illinois Concert System
- In Proceedings of the Second International Workshop on High-level Parallel Programming Models and Supportive Environments
, 1997
"... Programmers of concurrent applications are faced with a complex performance space in which data distribution and concurrency management exacerbate the difficulty of building large, complex applications. To address these challenges, the Illinois Concert system provides a global namespace, implicit co ..."
Abstract
-
Cited by 11 (4 self)
- Add to MetaCart
Programmers of concurrent applications are faced with a complex performance space in which data distribution and concurrency management exacerbate the difficulty of building large, complex applications. To address these challenges, the Illinois Concert system provides a global namespace, implicit concurrency control and granularity management, implicit storage management, and object-oriented programming features. These features are embodied in a language ICC++ (derived from C++) which has been used to build a number of kernels and applications. As high level features can potentially incur overhead, the Concert system employs a range of compiler and runtime optimization techniques to efficiently support the high level programming model. The compiler techniques include type inference, inlining and specialization; and the runtime techniques include caching, prefetching and hybrid stack/heap multithreading. The effectiveness of these techniques permits the construction of complex parallel ...
Parallel Implementations of Irregular Problems using High-level Actor Language
- In Proceedings of IPPS '96
, 1996
"... In this paper we present performance results of several irregular parallel algorithms implemented using a high-level actor language and its runtime kernel. The problems studied require dynamic computation of the placement of objects and may create load imbalance as the computation proceeds thereby r ..."
Abstract
-
Cited by 6 (3 self)
- Add to MetaCart
In this paper we present performance results of several irregular parallel algorithms implemented using a high-level actor language and its runtime kernel. The problems studied require dynamic computation of the placement of objects and may create load imbalance as the computation proceeds thereby requiring dynamic load balancing. We express the algorithms as fine grained computation, which allows us to rearrange objects in various ways and to compose the same algorithm with different partitioning and distribution strategies (PDS's). The PDS's are implemented for specific data structures or algorithm structures and are reusable for different parallel algorithms. We demonstrate how our methodology provides portability of algorithm specification, reusability and ease of expressibility without significantly sacrificing efficiency. 1 Introduction In parallel computing, the set of operations and the partial order in which they may be carried out define an ideal algorithm [10]. This ideal ...
Network Sensitive Reconfiguration of Distributed Applications
- In Submitted to the 25th international
, 2005
"... Large-scale, dynamic, and heterogeneous networks of computational resources promise to provide high performance and scalability to computationally intensive applications, but these environments also introduce the need for complex resource management strategies. This paper introduces actor-based prog ..."
Abstract
-
Cited by 6 (5 self)
- Add to MetaCart
Large-scale, dynamic, and heterogeneous networks of computational resources promise to provide high performance and scalability to computationally intensive applications, but these environments also introduce the need for complex resource management strategies. This paper introduces actor-based programming abstractions and a middleware framework to relieve developers from considering non-functional concerns while allowing middleware layers to optimize application performance and global resource utilization. The Internet Operating System (IOS) consists of a peer-to-peer virtual network of middleware agents that trigger application component reconfiguration based on changes in the underlying physical network and based on the application communication patterns and resource consumption. IOS middleware agents are highly customizable to account for different resource profiling, load balancing, and peer-to-peer interconnection policies.
Scalable Service Deployment on Highly Populated Networks
- Proceedings of the International Workshop on Intelligent Agents for Telecommunication Applications (IATA’98
, 1998
"... Abstract. Very large networks with thousands of applications and millions of users pose serious problems to the current traditional technology. If synchronised client behaviour exists, then the limitations are even stronger. Cooperative agent systems can be a suitable technology to answer to these r ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
Abstract. Very large networks with thousands of applications and millions of users pose serious problems to the current traditional technology. If synchronised client behaviour exists, then the limitations are even stronger. Cooperative agent systems can be a suitable technology to answer to these requirements if some aspects of the architecture are carefully designed. Particular attention should be given to the trader component and to the dynamic behaviour of the applications in response to client demand. This paper proposes a cooperative mobile agent system with a very dynamic and scalable trading service. The system is designed to allow applications to deploy servers onto the network to respond to demand making them self-configurable. Sets of simulations were performed to study the dynamic behaviour of the overall system, and identify the relevant tuning parameters.
High Level Parallel Programming: The Illinois Concert System
, 1998
"... Programmers of concurrent applications are faced with complex performance trade-offs, since data distribution and concurrency management exacerbate the difficulty of building large, complex applications. To address these challenges, the Illinois Concert system provides a global namespace, implicit c ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
Programmers of concurrent applications are faced with complex performance trade-offs, since data distribution and concurrency management exacerbate the difficulty of building large, complex applications. To address these challenges, the Illinois Concert system provides a global namespace, implicit concurrency control and granularity management, implicit storage management, and object-oriented programming features. These features are embodied in a language ICC++ (derived from C++) which has been used to build a number of kernels and applications. As high level features can potentially incur overhead, the Concert system employs a range of compiler and runtime optimization techniques to efficiently support the high level programming model. The compiler techniques include type inference, inlining and specialization; and the runtime techniques include caching, prefetching and hybrid stack/heap multithreading. The effectiveness of these techniques permits the construction of complex parallel...

