Journal of the ACM (JACM)
Object-oriented real-time language design: constructs for timing constraints
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
A static performance estimator to guide data partitioning decisions
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
Predicting conditional branch directions from previous runs of a program
ASPLOS V Proceedings of the fifth international conference on Architectural support for programming languages and operating systems
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Using the run-time sizes of data structures to guide parallel-thread creation
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Static branch frequency and program profile analysis
MICRO 27 Proceedings of the 27th annual international symposium on Microarchitecture
C: a language for high-level, efficient, and machine-independent dynamic code generation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Virtual voyage: interactive navigation in the human colon
Proceedings of the 24th annual conference on Computer graphics and interactive techniques
The Amulet Environment: New Models for Effective User Interface Software Development
IEEE Transactions on Software Engineering
Does “just in time” = “better late than never”?
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Agile application-aware adaptation for mobility
Proceedings of the sixteenth ACM symposium on Operating systems principles
New sampling-based summary statistics for improving approximate query answers
SIGMOD '98 Proceedings of the 1998 ACM SIGMOD international conference on Management of data
Space-time memory: a parallel programming abstraction for interactive multimedia applications
Proceedings of the seventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Energy-aware adaptation for mobile applications
Proceedings of the seventeenth ACM symposium on Operating systems principles
Data mining: concepts and techniques
Data mining: concepts and techniques
DyC: an expressive annotation-directed dynamic compiler for C
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
The AppLeS parameter sweep template: user-level middleware for the grid
Proceedings of the 2000 ACM/IEEE conference on Supercomputing
Map adaptation for users of mobile systems
Proceedings of the 10th international conference on World Wide Web
High-level adaptive program optimization with ADAPT
PPoPP '01 Proceedings of the eighth ACM SIGPLAN symposium on Principles and practices of parallel programming
Distributed processing of very large datasets with DataCutter
Parallel Computing - Clusters and computational grids for scientific computing
Models and issues in data stream systems
Proceedings of the twenty-first ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Time-critical multiresolution volume rendering using 3D texture mapping hardware
VVS '02 Proceedings of the 2002 IEEE symposium on Volume visualization and graphics
Virtual temporal bone dissection: a case study
Proceedings of the conference on Visualization '01
Cooperative run-time management of adaptive applications and distributed resources
Proceedings of the tenth ACM international conference on Multimedia
Automatic Scheduler for Real-Time Vision Applications
IPDPS '01 Proceedings of the 15th International Parallel & Distributed Processing Symposium
Dynamic Support for Distributed Auto-Adaptive Applications
ICDCSW '02 Proceedings of the 22nd International Conference on Distributed Computing Systems
Software Architecture-Based Adaptation for Pervasive Systems
ARCS '02 Proceedings of the International Conference on Architecture of Computing Systems: Trends in Network and Pervasive Computing
Formal design of real-time systems in a platform-independent way
Engineering of distributed control systems
Optimizing Execution of Component-based Applications using Group Instances
CCGRID '01 Proceedings of the 1st International Symposium on Cluster Computing and the Grid
Forecasting network performance to support dynamic scheduling using the network weather service
HPDC '97 Proceedings of the 6th IEEE International Symposium on High Performance Distributed Computing
Timber: A Programming Language for Real-Time Embedded Systems
Timber: A Programming Language for Real-Time Embedded Systems
Program control language: a programming language for adaptive distributed applications
Journal of Parallel and Distributed Computing
Roam, a seamless application framework
Journal of Systems and Software - Special issue: Ubiquitous computing
Compiler Support for Exploiting Coarse-Grained Pipelined Parallelism
Proceedings of the 2003 ACM/IEEE conference on Supercomputing
The GrADS Project: Software Support for High-Level Grid Application Development
International Journal of High Performance Computing Applications
Selector: a language construct for developing dynamic applications
LCPC'02 Proceedings of the 15th international conference on Languages and Compilers for Parallel Computing
Modular, Fine-Grained Adaptation of Parallel Programs
ICCS '09 Proceedings of the 9th International Conference on Computational Science: Part I
Supporting self-adaptation in streaming data mining applications
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
Hi-index | 0.00 |
There exist many application classes for which the users have significant flexibility in the quality of output they desire. At the same time, there are other constraints, such as the need for real-time response or limit on the consumption of certain resources, which are more crucial. This paper provides a combined language/compiler and runtime solution for supporting adaptive execution of these applications, i.e., to allow them to achieve the best precision while still meeting the specified constraint at runtime. The key idea in our language extensions is to have the programmers specify adaptation parameters, i.e, the parameters whose values can be varied within a certain range. A program analysis algorithm states the execution time of an application component as a function of the values of the adaptation parameters and other runtime constants. These constants are determined by initial runs of the application in the target environment. We integrate this work with our previous work on supporting coarse-grained pipelined parallelism, and thus support adaptive execution for data-intensive applications in a distributed environment. Our experimental results on three applications have shown that our combined compile-time/runtime model can predict the execution times quite well, and therefore, support adaptation to meet a variety of constraints.