PYRROS: static task scheduling and code generation for message passing multiprocessors
ICS '92 Proceedings of the 6th international conference on Supercomputing
CHARM++: a portable concurrent object oriented system based on C++
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
A general approach for run-time specialization and its application to C
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dynamic structure in software architectures
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
The Legion vision of a worldwide virtual computer
Communications of the ACM
ADLs and dynamic architecture changes
ISAW '96 Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints '96) on SIGSOFT '96 workshops
Coordinating distributed objects: an actor-based approach to synchronization
Coordinating distributed objects: an actor-based approach to synchronization
Using weaves for software construction and analysis
ICSE '91 Proceedings of the 13th international conference on Software engineering
Agile application-aware adaptation for mobility
Proceedings of the sixteenth ACM symposium on Operating systems principles
The grid: blueprint for a new computing infrastructure
The grid: blueprint for a new computing infrastructure
Efficient incremental run-time specialization for free
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
An evaluation of staged run-time optimizations in DyC
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Energy-aware adaptation for mobile applications
Proceedings of the seventeenth ACM symposium on Operating systems principles
A Classification and Comparison Framework for Software Architecture Description Languages
IEEE Transactions on Software Engineering
Compiler-supported simulation of highly scalable parallel applications
SC '99 Proceedings of the 1999 ACM/IEEE conference on Supercomputing
Running EveryWare on the computational grid
SC '99 Proceedings of the 1999 ACM/IEEE conference on Supercomputing
Future Generation Computer Systems - Special issue on metacomputing
The AppLeS parameter sweep template: user-level middleware for the grid
Proceedings of the 2000 ACM/IEEE conference on Supercomputing
A grid-enabled MPI: message passing in heterogeneous distributed computing systems
SC '98 Proceedings of the 1998 ACM/IEEE conference on Supercomputing
Proceedings of the 2001 ACM/IEEE conference on Supercomputing
Visual Programming and Debugging for Parallel Computing
IEEE Parallel & Distributed Technology: Systems & Technology
Globe: A Wide-Area Distributed System
IEEE Concurrency
A programming framework for quality-aware ubiquitous multimedia applications
Proceedings of the tenth ACM international conference on Multimedia
Adaptive Computing on the Grid Using AppLeS
IEEE Transactions on Parallel and Distributed Systems
Simgrid: A Toolkit for the Simulation of Application Scheduling
CCGRID '01 Proceedings of the 1st International Symposium on Cluster Computing and the Grid
Master/Slave Computing on the Grid
HCW '00 Proceedings of the 9th Heterogeneous Computing Workshop
Conductor: A Framework for Distributed Adaptation
HOTOS '99 Proceedings of the The Seventh Workshop on Hot Topics in Operating Systems
WebOS: Operating System Services for Wide Area Applications
HPDC '98 Proceedings of the 7th IEEE International Symposium on High Performance Distributed Computing
An Enabling Framework for Master-Worker Applications on the Computational Grid
HPDC '00 Proceedings of the 9th IEEE International Symposium on High Performance Distributed Computing
The Service Grid: Supporting Scalable Heterogeneous Services in Wide-Area Networks
SAINT '01 Proceedings of the 2001 Symposium on Applications and the Internet (SAINT 2001)
AQuA: An Adaptive Architecture that Provides Dependable Distributed Objects
SRDS '98 Proceedings of the The 17th IEEE Symposium on Reliable Distributed Systems
Using QDL to Specify QoS Aware Distributed (QuO) Application Configuration
ISORC '00 Proceedings of the Third IEEE International Symposium on Object-Oriented Real-Time Distributed Computing
Language Support for Coordinating Adaptation in Distributed Systems
Language Support for Coordinating Adaptation in Distributed Systems
International Journal of High Performance Computing Applications
Numerical Libraries and the Grid
International Journal of High Performance Computing Applications
The MicroGrid: A scientific tool for modeling Computational Grids
Scientific Programming
Flexible and adaptive QoS control for distributed real-time and embedded middleware
Proceedings of the ACM/IFIP/USENIX 2003 International Conference on Middleware
CORBA: integrating diverse applications within distributed heterogeneous environments
IEEE Communications Magazine
A control-based middleware framework for quality-of-service adaptations
IEEE Journal on Selected Areas in Communications
Language and Compiler Support for Adaptive Applications
Proceedings of the 2004 ACM/IEEE conference on Supercomputing
IPDPS '05 Proceedings of the 19th IEEE International Parallel and Distributed Processing Symposium (IPDPS'05) - Workshop 10 - Volume 11
Evolutionary performance-oriented development of parallel programs by composition of components
Proceedings of the 5th international workshop on Software and performance
Modular, Fine-Grained Adaptation of Parallel Programs
ICCS '09 Proceedings of the 9th International Conference on Computational Science: Part I
Future Generation Computer Systems
ADVE: adaptive and dependable virtual environments for grid computing
GPC'08 Proceedings of the 3rd international conference on Advances in grid and pervasive computing
Supporting self-adaptation in streaming data mining applications
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
ICCS'05 Proceedings of the 5th international conference on Computational Science - Volume Part I
The Journal of Supercomputing
Hi-index | 0.00 |
Many distributed applications must meet stringent performance requirements even when the performance characteristics of the underlying systems and networks vary significantly at runtime. Runtime adaptation can be used to tolerate such changes, but sophisticated adaptive distributed programs can be extremely challenging to design, implement and debug. This paper proposes a language called Program Control Language (PCL) that provides a novel means of specifying adaptations in distributed applications. PCL is based on an abstract, global representation of a distributed program (a static task graph), which enables a programmer to reason about and to describe a wide range of application-specific adaptation strategies at a high level, using a few key mechanisms. PCL provides simple high-level syntax for local and remote adaptation operations, local and remote performance monitoring (and aggregation), and for performing adaptations synchronously or asynchronously with respect to the execution of the application process initiating the adaptation. The global task graph representation enables remote performance metrics and adaptation operations to be specified in simple global terms by any process, and the compiler and runtime system automatically perform the communication and synchronization required for the remote operations. The paper describes the conceptual adaptation framework, the PCL language, and our implementation of the PCL compiler and runtime system. The paper uses three adaptative applications examples to illustrate the capabilities and benefits of PCL, and to show experimentally that the performance overheads of using PCL for implementing an adaptive application are negligible.