Title: Andrea Camesi, Jarle Hulaas
1Advances in Portable Resource Management
- Andrea Camesi, Jarle Hulaas
-
- Firstname.Lastname_at_epfl.ch
- Software Engineering Laboratory
- Swiss Federal Institute of Technology in Lausanne
(EPFL) - Switzerland
- Joint work with Walter Binder
2Plan
Portable Resource Management
- Resource Awareness
- Heterogeneous Distributed System
- Programming models
- Our General Approach with J-RAF2
Graphical Monitoring tool Layer
structure Monitoring CPU consumption
CPU Load Prediction Approach of CPU
Load Measurements
Future research directions
3Portable Resource Management
- Physical resources
- CPU, Memory, Network bandwidth, Battery power
- Logical / conceptual resources
- Threads, Sockets, etc.
Resource Management Views
- From outside (e.g. by the middleware)
- Accounting (non-intrusive monitoring) of
consumption - Controlling (possibly limiting) the consumption
- From inside
- Adaptive Resource-Aware applications
- Units of Measurement
- Bytecode instructions(CPU), Byte(Memory, Network
bandwidth,..)
4Portable Resource Management
- Software development
- Monitoring and profiling of Distributed
Applications
- Quality of Service
- Billing for resource consumption
- Provisioning, load balancing
- Security with respect to Mobile Code
- Detecting/terminating Denial-of-Service attacks
5Portable Resource Management
- Reliability and Flexibility
- Adapt behavior (algorithm) in front of resource
saturation - especially in Embedded Devices,
Resource-Awareness
- Reliability
- Accountability (liability) for resource
consumption - interrupt a component and reclaim all its
resources
6Plan
Portable Resource Management
- Resource Awareness
- Heterogeneous Distributed System
- Programming models
- Our General Approach with J-RAF2
Resource Awareness
Heterogeneous Distributed System
Graphical Monitoring tool Layer
structure Monitoring CPU consumption
CPU Load Prediction Approach of CPU
Load Measurements
Future research directions
7Resource Awareness
Heterogeneous Distributed System
- No programming model for Resource-Awareness
- No available platform (java or other) to support
Resource-Awareness
- Devise methods that are portable even across
platforms/languages - .Net, Resilient (?)
- Explore potential of portable Resource-Awareness
strategies, portable units of measurement
8Plan
Portable Resource Management
- Resource Awareness
- Heterogeneous Distributed System
- Programming models
- Our General Approach with J-RAF2
Resource Awareness
Heterogeneous Distributed System
Programming models
Graphical Monitoring tool Layer
structure Monitoring CPU consumption
CPU Load Prediction Approach of CPU
Load Measurements
Future research directions
9Resource Awareness
Programming models
- Traditional Java thread-based
- Event-based (lower level)
- Programmer must provide fine grained
applications - Reactive model
10Resource Awareness
Programming models
Resource-reified Multi-threaded Component
11Plan
Portable Resource Management
- Resource Awareness
- Heterogeneous Distributed System
- Programming models
- Our General Approach with J-RAF2
Resource Awareness
Heterogeneous Distributed System
Programming models
Our General Approach with J-RAF2
Graphical Monitoring tool Layer
structure Monitoring CPU consumption
CPU Load Prediction Approach of CPU
Load Measurements
Future research directions
12J-RAF2
Our General Approach with J-RAF2
- As easy to deploy as any Java application
- across all kinds of devices
- If the overhead is reasonable,
- why not favor a portable approach ?
- Our solution portable resource management
through bytecode rewriting schemes
The Java Resource Accounting Framework, 2nd
edition
13J-RAF2
Our General Approach with J-RAF2
Execute
14Plan
Portable Resource Management
- Resource Awareness
- Heterogeneous Distributed System
- Programming models
- Our General Approach with J-RAF2
Resource Awareness
Heterogeneous Distributed System
Programming models
Our General Approach with J-RAF2
Graphical Monitoring tool Layer
structure Monitoring CPU consumption
Graphical Monitoring tool
Layer structure
Monitoring CPU consumption
CPU Load Prediction Approach of CPU
Load Measurements
Future research directions
15Graphical Monitoring tool
What is Graphical Monitoring ?
- High-level layer code
- User-defined Accounting, Control and Profiling
applications
Benefits of Graphical Monitoring
- Visualize the behavior of a server application
- Internet applications
- Quality of Service, Security, Reliability
- Enforce limits, reduce threads priority
16Graphical Monitoring tool
Layer structure
17Graphical Monitoring tool
Monitoring the Java 2D Demo application -
Standalone - Applet Viewer - Netscape browser -
Tomcat Servlet
18Plan
Portable Resource Management
- Resource Awareness
- Heterogeneous Distributed System
- Programming models
- Our General Approach with J-RAF2
Resource Awareness
Heterogeneous Distributed System
Programming models
Our General Approach with J-RAF2
Graphical Monitoring tool Layer
structure Monitoring CPU consumption
Graphical Monitoring tool
Layer structure
Monitoring CPU consumption
CPU Load Prediction Approach of CPU
Load Measurements
CPU Load Prediction
Approach of CPU Load
Measurements
Future research directions
19CPU Load Prediction
What is CPU Load Prediction?
- Bytecode instruction counting (BIC) and CPU time
- They are distinct metrics for different purposes
- Profile based on BIC are precise,
platform-independent, directly comparable across
different environment, independent of CPU - BIC could be useful to fix absolute limit of
execution time - BIC could be useful to evaluate algorithm
complexity
- Relationship between BIC and CPU time
- Intuitive relation proportional, but not so
simple - No previous work
- Goal find the exact relationship
- Use profiles based on BIC to accurately estimate
CPU time
- Estimate CPU time
- Number of executed bytecode instructions /
elapsed CPU time
- Difficulties
- JIT, GC, Bytecode weight
20CPU Load Prediction
Benefits of CPU time Prediction
- Resource Aware
- Cross development embedded device, e.g. PDA
- Heterogeneous Environment with mobile code
evaluate execution time of an application in a
portable way - User defined deterministic scheduler based on
BIC as application specific
- J-RAF2
- Increase the value of our tools
Pros
- Better understanding of java applications and
java environment - Continuous metric give more information
21CPU Load Prediction
Measurements
Samples taken during a run of 201_compress on
Linux machine
22CPU Load Prediction
Number of bytecodes executed per millisecond of
CPU time (with Sun JDK 1.5.0 in interpreted mode,
on a Sun Sparc 500 MHz machine under Solaris 9)
Number of bytecodes executed per millisecond of
CPU time (with Sun JDK 1.5.0 in interpreted mode,
on an Intel Pentium 2.6 GHz machine under Linux)
23Plan
Portable Resource Management
- Resource Awareness
- Heterogeneous Distributed System
- Programming models
- Our General Approach with J-RAF2
Resource Awareness
Heterogeneous Distributed System
Programming models
Our General Approach with J-RAF2
Graphical Monitoring tool Layer
structure Monitoring CPU consumption
Graphical Monitoring tool
Layer structure
Monitoring CPU consumption
CPU Load Prediction Approach of CPU
Load Measurements
CPU Load Prediction
Approach of CPU Load
Measurements
Future research directions
Future research directions
24Future research directions
Short-term
- Associate different weights to sequences of
bytecode instructions
- Increase the level of precision of measurements
- Use profiles based on BIC to accurately estimate
CPU time
Mid-term
- Explore different programming models for
Resource-Aware systems
Long-term
- Explore aspect-oriented programming as a way of
defining Resource-Awareness strategies
25- Thank you for your attention !