Pervasive Computing Approach to Energy Management PhD Dissertation by: Ahmed Abukmail 11/18/2005.
-
Upload
wesley-mccarthy -
Category
Documents
-
view
218 -
download
2
Transcript of Pervasive Computing Approach to Energy Management PhD Dissertation by: Ahmed Abukmail 11/18/2005.
Pervasive Computing Approach to Energy
ManagementPhD Dissertation by:
Ahmed Abukmail11/18/2005
Outlines1. Vision 2. Motivation and Statement of Problem3. Review of Proposed Research4. Post-Proposal Accomplishments
a) Extended review of related work (Grid Computing)b) Extended Pseudo-parser to handle a wider range of
language constructs.c) Extended benchmarks for deeper validation of proposed
approach.d) Created the runtime support.
5. Experimental Validation6. Conclusion and Future Work
VisionImagine walking inside of an airport terminal and your mobile computer’s battery has 2 hours left on it. But by walking inside the airport terminal, the 2 hours just became 3 or 4 (more than 2). But yet, you’ve just walked out of a cab and have not connected your computer to the wall to recharge its battery.
VisionSo, did the battery recharge?
Yes – It’s going to last longer.No – It still has the same amount of charge as before (maybe even less).
People don’t care about how much charge the battery has; only care about how long will it last.Battery got virtual charge, basically the mobile device is doing less work, so it will last longer.Reason for virtual charge: entry into a smart space (good candidates: airports, bus stations, …etc)
Outlines1. Vision 2. Motivation and Statement of Problem3. Review of Proposed Research4. Post-Proposal Accomplishments
a) Extended review of related work (Grid Computing)b) Extended Pseudo-parser to handle a wider range of
language constructs.c) Extended benchmarks for deeper validation of proposed
approach.d) Created the runtime support.
5. Experimental Validation6. Conclusion and Future Work
MotivationIncreased reliance on and capability of mobile devices.
Laptop computers, handhelds, cell phones, and even MP3 players.
Convenience – The less often I charge the battery the better.Mobility. The longer a mobile device is plugged into the electricity to charge, the longer it is considered an immobile device.Contingency – If we have limited power and we have a must finish important task.
Advancements in Battery Technology: Slow
Battery technology does not follow Moor’s Law.Becomes a bottleneck for mobile computers.Solutions must accommodate the slow advancement.
Advancements in Mobile Technology (Laptops)
Can extrapolate to PDAs and cellular phones
Outlines1. Vision 2. Motivation and Statement of Problem3. Review of Proposed Research4. Post-Proposal Accomplishments
a) Extended review of related work (Grid Computing)b) Extended Pseudo-parser to handle a wider range of
language constructs.c) Extended benchmarks for deeper validation of proposed
approach.d) Created the runtime support.
5. Experimental Validation6. Conclusion and Future Work
Related WorkSolutions have fallen into three categories:
Hardware and Architecture LevelOperating Systems LevelApplication Level
Often involve some sort of a trade-off.
Related WorkHardware Level
Smart Battery System Energy-Aware ProcessorsReducing Energy through the CMOS
VoltageFrequencyCapacitance Load
Architecture designAlways need additional hardware components (e.g. additional cache).Often augmented by a compilation strategy.
Related WorkOperating System
APM (Advanced Power Management)ACPI (Advanced Configuration and Power Interface)Memory management
Stay on-chip as much as possibleReduce I/O
Communication techniquesBuffering when sending and receivingSuspend and Resume based on communication patterns Scheduling (Analyze energy usage via monitors) and schedule accordingly (adjust CPU clock speed)
Related WorkSoftware Techniques
Application-SpecificPower-Aware APIs
Compiler basedInstruction Re-ordering (to reduce logical state transitions) Reduce memory operands (register allocation)Code generation via pattern matching (the metric used is a power metric instead of a performance metric).Remote task execution
Defining the ApproachThis is a two part approach
Compile-Time SolutionDetermine maximal CPU blocks (loops)Collect Loop data (all variables)Generate two versions of the program
Client – Install on mobile deviceServer – Install on a surrogate server
Run-Time Support (Proposed)Program will run in a pervasive computing environment.
Computation outsourcing
Battery monitor (includes user preference)Network monitor to locate registered surrogate servers
Advantages of ApproachCompile-Time solution – minimal programmer power awareness required.Fine Granularity solution – Looks at CPU blocks as opposed to pre-defined tasks.
Reduce the chance of missing energy saving opportunities.
Works well within a pervasive computing environment with very little run-time overhead.A very good start to generalizing a compile-time strategy to outsource computation for energy saving.
Computation Outsourcing Framework
Remote server running server programs forthe various mobile applications
Hand held computer running an outsourceable mobile client application
Wireless Network
Hand held computer running an outsourceable mobile client application
PDA running an outsourceable mobileclient application
Laptop computer runningan outsourceable mobile client application
Run-time Client/Server InteractionClient Server
ExecuteUntil You reach an
outsourceable candidate
section of code
More energyefficient tooutsource?
NO
Yes
Execute Locally
Wait for a request from
the client
Request Received?
NO
Send Request and Data to
Server
(1)
Yes
Execute the Section of codeSend changed
data back
Wait for Results
(2)
Results Received?
Yes
NO
(1) Send Results
(2)
Compile-Time OptimizationSource Code
Syntax Checking
(GCC Compiler)Assembler
Source Code Assembly Code
Energy Optimization
Preprocessing
Client SourceCode
Server Source Code
Preexisting Compiler for the Client Machine
Preexisting Compiler for the Server Machine
Client Executable to
run on the mobile device
Server Executable to
run on the Server Machine
Energy Optimization Pre-Processor
1. Identify the maximal CPU blocks (Loops)
1. Collect variables2. Collect loop boundaries.
2. Calculate the number of loop iterations Calculate the Size of Loop Data
3. Identify loop instructions.4. Insert outsourcing code on the client
side prior to every loop.
Energy Optimization Pre-Processor
Generating the Server file:Insert a while loop that is waiting for requestsEach request is designated by a loop to be executed.
Code for each loop is inserted
Upon receiving a requestWait for data to be sent by the clientExecute the loopSend the results back.
Initial Measurements and Results
Setup:Sharp Zaurus (SL-5600) (PXA 250)
Running Embedded Linux.
Metrowerks Codewarrior to develop for the Zaurus.Agilent Technologies 34401A multi-meter
Agilent Intuilink software to record measurements.
Linux machine running RH 7.2 was our surrogate server.
Initial Instruction-Level Energy Cost Estimation.Measure the cost of an empty loopInsert several instances (100) of a single instruction within the loopSubtract the difference in energy which will result in the cost for the 100 instructions. Average the cost to get the per instruction cost.
Initial Instruction-Level Energy cost estimation.
Empty for loop The ldr instruction within a loop
Subtract the cost of the empty for loop from the cost of the same loop containing the instruction
Initial Experimental Results
0
0.1
0.2
0.3
0.4
0.5
0.6
00:
00:
00.0
00:
00:
14.5
00:
00:
29.0
00:
00:
43.7
00:
00:
58.5
00:
01:
13.4
00:
01:
28.6
00:
01:
44.0
00:
01:
59.6
00:
02:
15.3
00:
02:
31.3
00:
02:
47.3
00:
03:
03.6
00:
03:
20.0
00:
03:
36.7
00:
03:
53.7
00:
04:
10.9
00:
04:
28.4
00:
04:
45.9
00:
05:
04.0
00:
05:
23.0
00:
05:
42.8
00:
06:
02.7
00:
06:
23.5
Sample Time Intervals (Seconds)
Cu
rren
t Dra
wn
(A
mp
s)
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
00:0
0:00
.0
00:0
0:03
.7
00:0
0:07
.3
00:0
0:10
.9
00:0
0:14
.6
00:0
0:18
.4
00:0
0:22
.0
00:0
0:25
.7
00:0
0:29
.3
00:0
0:33
.0
00:0
0:36
.8
00:0
0:40
.4
00:0
0:44
.1
00:0
0:47
.9
00:0
0:51
.6
00:0
0:55
.4
00:0
0:59
.1
00:0
1:03
.1
00:0
1:06
.8
00:0
1:10
.6
00:0
1:14
.5
00:0
1:18
.3
Sample Time Intervals (Seconds)
Cu
rren
t Dra
wn
(A
mp
s)
A
B
00.05
0.10.150.2
0.25
0.30.350.4
0.450.5
00:
00:
00.0
00:
00:
02.8
00:
00:
05.7
00:
00:
08.6
00:
00:
11.4
00:
00:
14.3
00:
00:
17.1
00:
00:
20.0
00:
00:
22.8
00:
00:
25.7
00:
00:
28.6
00:
00:
31.5
00:
00:
34.4
00:
00:
37.2
00:
00:
40.1
00:
00:
42.9
00:
00:
45.8
00:
00:
48.6
00:
00:
51.7
00:
00:
54.5
00:
00:
57.4
00:
01:
00.2
00:
01:
03.1
00:
01:
06.0
Sample Time Intervals (Seconds)
Cu
rre
nt
Dra
wn
(A
mp
s)
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
00:0
0:0
0.0
00:0
0:0
2.1
00:0
0:0
4.2
00:0
0:0
6.3
00:0
0:0
8.4
00:0
0:1
0.4
00:0
0:1
2.5
00:0
0:1
4.6
00:0
0:1
6.7
00:0
0:1
8.8
00:0
0:2
0.9
00:0
0:2
3.0
00:0
0:2
5.1
00:0
0:2
7.2
00:0
0:2
9.3
00:0
0:3
1.4
00:0
0:3
3.5
00:0
0:3
5.6
00:0
0:3
7.7
00:0
0:3
9.8
00:0
0:4
1.9
00:0
0:4
4.0
00:0
0:4
6.1
Sample Time Intervals (Seconds)
Cu
rren
t D
raw
n (
Am
ps
)
A
B
Bubble Sort Matrix Multiplication
Outlines1. Vision 2. Motivation and Statement of Problem3. Review of Proposed Research4. Post-Proposal Accomplishments
a) Extended review of related work (Grid Computing)b) Extended Pseudo-parser to handle a wider range of
language constructs.c) Extended benchmarks for deeper validation of proposed
approach. d) Created the runtime support.
5. Experimental Validation6. Conclusion and Future Work
a) Grid ComputingLooks very applicable to this research.
RPC/RMIMobile Agent technology
However, target problem size in Grid computing is significantly larger.
This research does not target such problems.
a) Grid Computing (continued)
Grid computing requires a middleware such as the Grid computing environment (GCE).
This will consume energy.This is why Mobile Agent technology is questionable.
Our middleware (battery and network monitors) are simplistic.
Geographic Location
b) Extensions to Pseudo-parser
Must communicate with the battery and network monitors.Extended benchmarks contain larger language capabilities. No longer just simple data types (int, float, char, …etc)
Must support structures.
Support library function calls.Support multi-dimensional arrays.I/O Function Recognition.
Communication with Monitors
At start of application:Check the existence of a configuration file
If it doesn’t exist, execute in normal mode.If it exists (energy-saving mode):
Open the file and take a look at the configurationConnect to the listed server as it will be the surrogate.
Any error caused by: opening the file, reading it, or connecting to the server, will result in running in normal mode.
Support for Structures.Recognize:
typedef struct {…} newType;
Insert the type in the type table.Assign a size to the new type.
When a variable is declared of the new type:Insert the variable in the symbol table and assign it its size.
When a variable of the new type is used, only collect identifiers up to the first ‘.’ operator as that is the only identifier of interest (e.g. in x.y.z[10].w, x is the only identifier that we need since it’s the variable name).
Support for Library Functions
Prior to recognizing in pseudo-parser, benchmarking was necessary.
Utilize the same approach used for instruction benchmarking (place multiple calls of the function within a loop)
Recognize expressions of the form:<variable> = <function>(arg. list);
x = sqrt(y);
Once recognized, add the cost to that of the loop’s.
Support for Multi-dimensional Arrays.
Mainly 2-D arrays.Support was built to handle
Arrays of structures Structures of arraysArrays within structures.
Associate 3 Sizes with each arrayBase size (e.g. sizeof(int))Size of first dimension (-1 if it’s not an array)Size of second dimension (-1 if it’s a 1-D array)
I/O Function RecognitionI/O function recognition is necessary to avoid outsourcing I/O loops.C has a list of commonly used I/O functions (scanf, getchar, printf, putchar, … etc).Recognize them and ignore everything following them until you reach the ‘;’
Once recognized within a loop, flag the loop non-outsourceable.If the loop is nested, flag all loops enclosing it non-outsourceable as well.
The new pseudo-parserPseudo-ParserInput : A C programOutput: An array of loop data structures containing:
a. The beginning and ending file position of the loopb. The variables and their sizes c. The L-Valued variable and their sizes
get a tokennestLevel = 0loopNumber = 0initialize a stack of loops to emptywhile there are tokens in the program do if the token is a loop loopNumber = loopNumber + 1 nestLevel = nestLevel + 1 assign loopNumber to the loop just entered assign nestLevel to the loop just entered push the current loopNumber on the stack else if the token is part of an expression including functions and structures if nestLevel > 0 if you encounter a variable if the variable is an L-value insert the variable as an L-value in the loop on top of the stack else insert the variable as a variable in the loop on top of the stack end if end if if you encounter and I/O function then The loop becomes non-outsourceable. end if end if else if you reached an end of a loop nestLevel = nestLevel - 1 pop the top of the stack end if get the next token Done.
c) BenchmarkingInitial Benchmarks: Bubble sort, and matrix multiplication demonstrate fine granularity.Extended Benchmarks:
3-D graphics rendering application(Medical Imaging, Gaming, Graphics Design, and Scientific Computing)
Input200 200.1200 2004 4 4.8 .8 .84 4 40 0 01 10005 530.1 0.1 0.1 0.3.5 .4 .31 .8 1 100.5 0.5 0.8 0.2.3 .4 .21 .8 1 100.2 0.8 0.5 0.1.4 .3 .51 .8 1 10
Screen SizeAmbient Light
ViewportObserver:
Eye(Camera)Background
LightCOI
Hither/YonView angles
Sphere 1
Sphere 3
Sphere 2
Output
d) Runtime SupportBattery Monitor
User-specified behaviorAutomatic (look at remaining % of battery life)User-control
Decide when to go into energy saving mode.
Based on battery condition, may or may not get out of energy saving mode.User may decide to go into normal mode.
d) Runtime Support (continued)
Network Monitor:Works only if energy saving mode is selected.Send out a broadcast for service discovery and wait for a response back.Once response is received, the surrogate server has been determined.Build a configuration file indicating that energy-aware applications can run in energy-saving mode.
d) Runtime Support (continued)
Surrogate Service Discovery ServerWait for requests for serviceDetermine the client looking for service.Send back server information and indicate readiness for service to the client.Wait for requests.
Outlines1. Vision 2. Motivation and Statement of Problem3. Review of Proposed Research4. Post-Proposal Accomplishments
a) Extended review of related work (Grid Computing)b) Extended Pseudo-parser to handle a wider range of
language constructs.c) Extended benchmarks for deeper validation of proposed
approach.d) Created the runtime support.
5. Experimental Validation6. Conclusion and Future Work
Experimental ValidationReran the simplistic benchmarks used before.Generated results for the 3-D application using: 50x50, 100x100, and 200x200 images.Generated the energy cost estimate for the network and battery monitors (they add to the energy consumed by the system).
Negligible cost.
Energy comparison for generating a 50x50 image
00.05
0.10.150.2
0.25
0.30.350.4
0.450.5
00:0
0:0
0.0
00:0
0:0
5.2
00:0
0:1
0.3
00:0
0:1
5.5
00:0
0:2
0.8
00:0
0:2
6.0
00:0
0:3
1.4
00:0
0:3
6.5
00:0
0:4
1.7
00:0
0:4
6.8
00:0
0:5
2.0
00:0
0:5
7.1
00:0
1:0
2.4
00:0
1:0
7.6
00:0
1:1
3.0
00:0
1:1
8.2
00:0
1:2
3.4
00:0
1:2
8.7
00:0
1:3
4.0
00:0
1:3
9.3
00:0
1:4
4.6
00:0
1:4
9.9
00:0
1:5
5.3
00:0
2:0
0.7
Sample Time Intervals (Seconds)
Cu
rre
nt
Dra
wn
(A
mp
s)
0
0.1
0.2
0.3
0.4
0.5
0.6
00:0
0:0
0.0
00:0
0:0
1.5
00:0
0:0
3.1
00:0
0:0
4.7
00:0
0:0
6.2
00:0
0:0
7.8
00:0
0:0
9.3
00:0
0:1
0.8
00:0
0:1
2.3
00:0
0:1
3.9
00:0
0:1
5.4
00:0
0:1
6.9
00:0
0:1
8.5
00:0
0:2
0.0
00:0
0:2
1.5
00:0
0:2
3.1
00:0
0:2
4.6
00:0
0:2
6.1
00:0
0:2
7.7
00:0
0:2
9.2
00:0
0:3
0.8
00:0
0:3
2.3
Sample Time Intervals (Seconds)
Cu
rre
nt
Dra
wn
(A
mp
s)
A
B
Local: 1.2 minutesApprox. 66 Joules
Remote: 2 secondsApprox. 4 Joules
Energy comparison for generating a 100x100
image
0
0.1
0.2
0.3
0.4
0.5
0.6
00:0
0:0
0.0
00:0
0:1
1.1
00:0
0:2
2.1
00:0
0:3
3.3
00:0
0:4
4.5
00:0
0:5
5.6
00:0
1:0
6.8
00:0
1:1
8.3
00:0
1:2
9.3
00:0
1:4
0.5
00:0
1:5
1.7
00:0
2:0
3.1
00:0
2:1
4.6
00:0
2:2
6.1
00:0
2:3
7.8
00:0
2:4
9.5
00:0
3:0
1.3
00:0
3:1
3.4
00:0
3:2
5.6
00:0
3:3
7.8
00:0
3:5
0.1
00:0
4:0
2.7
00:0
4:1
5.2
00:0
4:2
8.0
Sample Time Intervals (Seconds)
Cu
rren
t D
raw
n (
Am
ps)
0
0.1
0.2
0.3
0.4
0.5
0.6
00:0
0:0
0.0
00:0
0:0
1.4
00:0
0:0
2.9
00:0
0:0
4.3
00:0
0:0
5.7
00:0
0:0
7.1
00:0
0:0
8.6
00:0
0:1
0.0
00:0
0:1
1.4
00:0
0:1
2.9
00:0
0:1
4.3
00:0
0:1
5.7
00:0
0:1
7.1
00:0
0:1
8.6
00:0
0:2
0.0
00:0
0:2
1.4
00:0
0:2
2.8
00:0
0:2
4.3
00:0
0:2
5.7
00:0
0:2
7.2
00:0
0:2
8.6
00:0
0:3
0.1
00:0
0:3
1.5
00:0
0:3
2.9
Sample Time Intervals (Seconds)
Cu
rren
t D
raw
n (
Am
ps)
A
B
Local: 4 minutesApprox. 240
Joules
Remote: 4 secondsApprox. 4 Joules
Energy comparison for generating a 200x200
image
Remote: 7 secondsApprox. 4 Joules
0
0.1
0.2
0.3
0.4
0.5
0.6
00:0
0:0
0.0
00:0
0:3
2.4
00:0
1:0
4.9
00:0
1:3
7.8
00:0
2:1
1.6
00:0
2:4
6.9
00:0
3:2
3.7
00:0
4:0
1.3
00:0
4:4
0.9
00:0
5:2
2.8
00:0
6:0
5.1
00:0
6:4
7.3
00:0
7:3
0.5
00:0
8:1
5.8
00:0
9:0
4.5
00:0
9:5
5.4
00:1
0:4
8.8
00:1
1:4
7.5
00:1
2:4
5.4
00:1
3:3
8.8
00:1
4:3
4.6
00:1
5:3
2.7
00:1
6:3
3.6
00:1
7:3
9.9
Sample Time Intervals (Seconds)
Cu
rre
nt
Dra
wn
(A
mp
s)
B
A
0
0.1
0.2
0.3
0.4
0.5
0.6
00:0
0:0
0.0
00:0
0:0
1.4
00:0
0:0
2.9
00:0
0:0
4.3
00:0
0:0
5.7
00:0
0:0
7.1
00:0
0:0
8.6
00:0
0:1
0.0
00:0
0:1
1.4
00:0
0:1
2.8
00:0
0:1
4.3
00:0
0:1
5.7
00:0
0:1
7.1
00:0
0:1
8.6
00:0
0:2
0.0
00:0
0:2
1.4
00:0
0:2
2.8
00:0
0:2
4.3
00:0
0:2
5.7
00:0
0:2
7.1
00:0
0:2
8.5
00:0
0:3
0.1
00:0
0:3
1.5
Sample Time Intervals (Seconds)
Cu
rre
nt
Dra
wn
(A
mp
s)
Local: 17 minutesApprox. 1020
Joules
Measuring the energy cost of the monitors
00.05
0.10.150.2
0.25
0.30.350.4
0.450.5
00:0
0:00
.0
00:0
0:03
.5
00:0
0:06
.9
00:0
0:10
.3
00:0
0:13
.7
00:0
0:17
.0
00:0
0:20
.4
00:0
0:23
.8
00:0
0:27
.2
00:0
0:30
.6
00:0
0:34
.0
00:0
0:37
.5
00:0
0:40
.9
00:0
0:44
.3
00:0
0:47
.8
00:0
0:51
.2
00:0
0:54
.7
Sample Time Intervals (Seconds)
Cu
rren
t D
raw
n (
Am
ps)
Additional MeasurementsCompile-time
Energy optimization adds 1-2 seconds for simple benchmarks, 5-7 seconds for more complex benchmark.Compiling the code will double the effort as now we’re compiling 2 files instead of 1.
Size of the executable:3-5 times larger for simple benchmarks as the inserted code is more than the original code.Only 40% increase for the complex benchmark as the inserted code is smaller with respect to the size of original code.
Outlines1. Vision 2. Motivation and Statement of Problem3. Review of Proposed Research4. Post-Proposal Accomplishments
a) Extended review of related work (Grid Computing)b) Extended Pseudo-parser to handle a wider range of
language constructs.c) Extended benchmarks for deeper validation of proposed
approach.d) Created the runtime support.
5. Experimental Validation6. Conclusion and Future Work
Conclusion and Future Work
The energy dissipation problem in mobile devices is very important and needs to continue to be addressed.Due to the increased capability of mobile devices, outsourcing computation within pervasive smart spaces is beneficial.Our experimental validation showed significant gain using the computation outsourcing methodology.
Conclusion and Future Work (continued)
Useful information about behavior of the program can be obtained via high-level source code analysis.Research such as real-time systems as well as automated software verification are useful in this line of research.
They increase the knowledge about the behavior of the software prior to execution.
Conclusion and Future Work (continued)
As part of our future work:Currently we’re looking at applying our approach to power-aware query processing for PDAs.Investigate further enhancements and implementation to augment our work:
RMI and RPC Support.Port this work to C++ and JavaInvestigate Mobile Agent technology as it applies to this work.Look into other types of CPU blocks such as entire function (recursive and non-recursive)
Summary of ContributionsIdentified and investigated an avenue for conserving energy in mobile devices via utilizing computation outsourcing in pervasive smart spaces.Realized that utilizing areas such as real-time systems could benefit energy-saving in mobile devices by providing a priori knowledge of program behavior.Showed that analyzing a source program at its various representations (low, intermediate, and high) and combining the analysis is very beneficial to predicting its runtime behaviorDeveloped a compile-time, fine-grain solution to benefit from computation outsourcing to save energy in mobile devices.Validated the results of the investigation experimentally.
PublicationsA. Abukmail and A. Helal, “Power Awareness and Management Techniques”, M Ilyas and I. Mahgoub, Editors, Mobile Computing Handbook, CRS Press, Boca Raton, FL, December 2004, pp. 731-743, ISBN 0-8493-1971-4.A. Abukmail, and A. Helal, “A Pervasive Internet Approach to Fine-Grain Power-Aware Computing”, Proceedings of the IEEE/IPSJ International Symposium on Applications and the Internet (SAINT), Phoenix, Arizona, January 2006. A. Abukmail, and A. Helal, “Energy Management for Mobile Devices through Computation Outsourcing within Pervasive Smart Spaces”, To be submitted to IEEE Transactions on Mobile Computing. A. Abukmail, A. Helal, and someone else “Power-Aware Query Processing through Computation Outsourcing”, In progress.
Thank you very much
Questions?