Event-Based Scheduling for Energy-Efficient Quality of Service (eQoS) in Mobile Web Applications

3c332dfc0b438785cb10c5234652dd66?s=47 Yuhao Zhu
February 09, 2015

Event-Based Scheduling for Energy-Efficient Quality of Service (eQoS) in Mobile Web Applications

HPCA 2015

3c332dfc0b438785cb10c5234652dd66?s=128

Yuhao Zhu

February 09, 2015
Tweet

Transcript

  1. 1.

    Event-Based Scheduling for Energy-Efficient Quality of Service (eQoS) in Mobile

    Web Applications Yuhao Zhu, Matthew Halpern, Vijay Janapa Reddi Department of Electrical and Computer Engineering The University of Texas at Austin HPCA — Feb. 9th, 2015
  2. 3.

    Responsiveness ▸100 ms latency is the limit for having users

    feel the system is reacting responsively [Miller 1968; Card et al. 1991]
  3. 4.

    Responsiveness ▸100 ms latency is the limit for having users

    feel the system is reacting responsively [Miller 1968; Card et al. 1991] ▸64% of mobile users will not revisit a slow Web app [Source: Akamai]
  4. 5.

    Responsiveness ▸100 ms latency is the limit for having users

    feel the system is reacting responsively [Miller 1968; Card et al. 1991] ▸64% of mobile users will not revisit a slow Web app [Source: Akamai] ▸Amazon found every 100 ms of latency costs them 1% in sales per year [Source: Amazon]
  5. 12.
  6. 13.
  7. 14.
  8. 15.
  9. 16.
  10. 17.
  11. 18.
  12. 19.
  13. 30.
  14. 36.

    Mobile Web Applications are Event-Driven 5 Touch Screen Event Event

    FIFO Queue Key Press Event … … Head Tail Timer Event Insert to Event Queue
  15. 37.

    Mobile Web Applications are Event-Driven 5 Touch Screen Event Event

    FIFO Queue Key Press Event … … Head Tail Timer Event Insert to Event Queue Event Loop
  16. 38.

    Mobile Web Applications are Event-Driven 5 Touch Screen Event Event

    FIFO Queue Key Press Event … … Head Tail Timer Event Insert to Event Queue Fetch for Execution Event Loop
  17. 39.

    Mobile Web Applications are Event-Driven 5 Touch Screen Event Event

    FIFO Queue Key Press Event … … Head Tail Timer Event Insert to Event Queue Fetch for Execution Event Loop
  18. 40.

    Mobile Web Applications are Event-Driven 5 Event FIFO Queue Key

    Press Event … … Head Tail Timer Event Insert to Event Queue Fetch for Execution Event Loop
  19. 41.

    Mobile Web Applications are Event-Driven 5 Event FIFO Queue Key

    Press Event … … Head Tail Timer Event Insert to Event Queue Fetch for Execution Event Loop Optimize for eQoS at an event-granularity
  20. 42.

    ▸ Key idea: Execute events with just-enough energy to meet

    user QoS expectation ▹ Develop a runtime system that leverages the large scheduling space of heterogeneous CPUs 6 Executive Summary
  21. 43.

    ▸ Key idea: Execute events with just-enough energy to meet

    user QoS expectation ▹ Develop a runtime system that leverages the large scheduling space of heterogeneous CPUs 6 Executive Summary Event-level Characterization
  22. 44.

    ▸ Key idea: Execute events with just-enough energy to meet

    user QoS expectation ▹ Develop a runtime system that leverages the large scheduling space of heterogeneous CPUs Runtime Mechanics to Exploit Latency Slack 6 Executive Summary Event-level Characterization
  23. 45.

    ▸ Key idea: Execute events with just-enough energy to meet

    user QoS expectation ▹ Develop a runtime system that leverages the large scheduling space of heterogeneous CPUs Runtime Mechanics to Exploit Latency Slack Heterogeneous Resource Utilization 6 Executive Summary Event-level Characterization
  24. 46.

    ▸ Key idea: Execute events with just-enough energy to meet

    user QoS expectation ▹ Develop a runtime system that leverages the large scheduling space of heterogeneous CPUs Runtime Mechanics to Exploit Latency Slack Heterogeneous Resource Utilization 6 Executive Summary Event-level Characterization
  25. 47.

    Exploit the Slack in Events 7 150 100 50 0

    Event Latency (ms) Events
  26. 48.

    Exploit the Slack in Events 8 150 100 50 0

    Event Latency (ms) Events
  27. 49.
  28. 50.

    Exploit the Slack in Events 8 keyup Unusable QoS 150

    100 50 0 Event Latency (ms) Events
  29. 51.

    Exploit the Slack in Events 8 keyup Unusable QoS 150

    100 50 0 Event Latency (ms) Events
  30. 52.

    Exploit the Slack in Events 8 keyup Large Slack Unusable

    QoS 150 100 50 0 Event Latency (ms) Events
  31. 53.

    Exploit the Slack in Events 8 keyup Large Slack change

    Unusable QoS 150 100 50 0 Event Latency (ms) Events
  32. 54.

    Exploit the Slack in Events 8 keyup Large Slack change

    Small Slack Unusable QoS 150 100 50 0 Event Latency (ms) Events
  33. 55.

    Exploit the Slack in Events 8 keyup Large Slack change

    Small Slack click Unusable QoS 150 100 50 0 Event Latency (ms) Events
  34. 56.

    Exploit the Slack in Events 8 keyup Large Slack change

    Small Slack click Unusable QoS ▸ Wide distribution of event latencies. Events exhibit different slacks. ▹ How to exploit different slacks for different events? 150 100 50 0 Event Latency (ms) Events
  35. 57.

    Event-Based Scheduler (EBS) Overview 9 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event
  36. 58.

    Event-Based Scheduler (EBS) Overview 9 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event Thread Scheduling
  37. 59.

    Event-Based Scheduler (EBS) Overview 9 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event Thread Scheduling
  38. 60.

    Event-Based Scheduler (EBS) Overview 9 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event Thread-based Scheduler Thread Scheduling
  39. 61.

    Event-Based Scheduler (EBS) Overview 9 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event Thread-based Scheduler Thread Scheduling Throughput Fairness
  40. 62.

    Event-Based Scheduler (EBS) Overview 10 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event
  41. 63.

    Event-Based Scheduler (EBS) Overview 10 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event Mobile applications
  42. 64.

    Event-Based Scheduler (EBS) Overview 10 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event Mobile applications Event Queue
  43. 65.

    Event-Based Scheduler (EBS) Overview 10 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event Event-based Scheduler Mobile applications Event Queue
  44. 66.

    Event-Based Scheduler (EBS) Overview 10 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event Event-based Scheduler Mobile applications eQoS Event Queue
  45. 67.

    Event-Based Scheduler (EBS) Overview 11 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event H3 … H2 … H1 change click keyup Event Queue
  46. 68.

    Event-Based Scheduler (EBS) Overview 11 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event H3 … H2 … H1 change click keyup Event Queue Big/Little Hardware
  47. 69.

    Event-Based Scheduler (EBS) Overview 11 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event H3 … H2 … H1 change click keyup Event Queue Big/Little Hardware Event-Based Scheduler
  48. 70.

    Event-Based Scheduler (EBS) Overview 11 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event H3 … H2 … H1 change click keyup Event Queue Big/Little Hardware Event-Based Scheduler Event
  49. 71.

    Event-Based Scheduler (EBS) Overview 11 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event H3 … H2 … H1 change click keyup Event Queue Big/Little Hardware Event-Based Scheduler <core, freq> Event
  50. 72.

    Event-Based Scheduler (EBS) Overview 11 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event H3 … H2 … H1 change click keyup QoS Monitor Event Queue Big/Little Hardware Event-Based Scheduler <core, freq> Event
  51. 73.

    Event-Based Scheduler (EBS) Overview 11 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event H3 … H2 … H1 change click keyup QoS Monitor Event Queue Big/Little Hardware Event-Based Scheduler Model <core, freq> Event
  52. 74.

    Event-Based Scheduler (EBS) Overview 11 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event H3 … H2 … H1 change click keyup QoS Monitor Model Constructor Event Queue Big/Little Hardware Event-Based Scheduler Model <core, freq> Event
  53. 75.

    Event-Based Scheduler (EBS) Overview 11 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event H3 … H2 … H1 change click keyup QoS Monitor Model Constructor Event Queue Big/Little Hardware Event-Based Scheduler Model <core, freq> Event
  54. 76.

    Event-Based Scheduler (EBS) Overview 11 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event H3 … H2 … H1 change click keyup Detector QoS Monitor Model Constructor Event Queue Big/Little Hardware Event-Based Scheduler Model <core, freq> Event
  55. 77.

    Event-Based Scheduler (EBS) Overview 11 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event H3 … H2 … H1 change click keyup Detector QoS Monitor Model Constructor Event Queue Big/Little Hardware Event-Based Scheduler Model <core, freq> Event
  56. 78.

    Event-Based Scheduler (EBS) Overview 11 ▸ Goal: Find the most

    energy-efficient architectural configuration that meets the QoS target for each event H3 … H2 … H1 change click keyup Detector QoS Monitor Model Constructor Event Queue Big/Little Hardware Event-Based Scheduler Model Recalibrate <core, freq> Event
  57. 79.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the Model Constructor Works 12 ▸ Goal: Estimate the event latency under each <core, freq> config
  58. 80.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the Model Constructor Works 12 ▸ Goal: Estimate the event latency under each <core, freq> config Memory Operation CPU Operation Tmemory Ndependent f Event Latency Xie, et al., Compile-Time Dynamic Voltage Scaling Settings: Opportunities and Limits, PLDI’03
  59. 81.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the Model Constructor Works 12 ▸ Goal: Estimate the event latency under each <core, freq> config Memory Operation CPU Operation Tmemory Ndependent f Event Latency Xie, et al., Compile-Time Dynamic Voltage Scaling Settings: Opportunities and Limits, PLDI’03 Event Latency =
  60. 82.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the Model Constructor Works 12 ▸ Goal: Estimate the event latency under each <core, freq> config Memory Operation CPU Operation Tmemory Ndependent f Event Latency Xie, et al., Compile-Time Dynamic Voltage Scaling Settings: Opportunities and Limits, PLDI’03 Event Latency = Tmemory +
  61. 83.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the Model Constructor Works 12 ▸ Goal: Estimate the event latency under each <core, freq> config Memory Operation CPU Operation Tmemory Ndependent f Event Latency Xie, et al., Compile-Time Dynamic Voltage Scaling Settings: Opportunities and Limits, PLDI’03 Event Latency = Tmemory + Ndependent / f
  62. 84.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the Model Constructor Works 12 ▸ Goal: Estimate the event latency under each <core, freq> config Memory Operation CPU Operation Tmemory Ndependent f Event Latency Xie, et al., Compile-Time Dynamic Voltage Scaling Settings: Opportunities and Limits, PLDI’03 Event Latency = Tmemory + Ndependent / f
  63. 85.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the Model Constructor Works 12 ▸ Goal: Estimate the event latency under each <core, freq> config Event Latency = Tmemory + Ndependent / f Event Latency Frequency
  64. 86.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the Model Constructor Works 12 ▸ Goal: Estimate the event latency under each <core, freq> config Event Latency = Tmemory + Ndependent / f Event Latency Frequency
  65. 87.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> How the Detector Works 13 ▸ Goal: Find the QoS target for each event CamanJS Pdf.js Crypto Zlib Paper.js Ember.js GWT Backbone jQuery sina google ebay Doom Rain 10-4 104 106 100 Feedback
  66. 88.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> How the Detector Works 13 ▸ Goal: Find the QoS target for each event CamanJS Pdf.js Crypto Zlib Paper.js Ember.js GWT Backbone jQuery sina google ebay Doom Rain 10-4 104 106 100 CamanJS Pdf.js Crypto Zlib Paper.js Ember.js GWT Backbone jQuery sina google ebay Doom Rain 10-4 104 106 100 Event Latency (s) Event Intensity (evt/s) Feedback
  67. 89.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> How the Detector Works 13 ▸ Goal: Find the QoS target for each event CamanJS Pdf.js Crypto Zlib Paper.js Ember.js GWT Backbone jQuery sina google ebay Doom Rain 10-4 104 106 100 CamanJS Pdf.js Crypto Zlib Paper.js Ember.js GWT Backbone jQuery sina google ebay Doom Rain 10-4 104 106 100 Event Latency (s) Event Intensity (evt/s) Feedback
  68. 90.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> How the Detector Works 13 ▸ Goal: Find the QoS target for each event CamanJS Pdf.js Crypto Zlib Paper.js Ember.js GWT Backbone jQuery sina google ebay Doom Rain 10-4 104 106 100 CamanJS Pdf.js Crypto Zlib Paper.js Ember.js GWT Backbone jQuery sina google ebay Doom Rain 10-4 104 106 100 Event Latency (s) Event Intensity (evt/s) Feedback
  69. 91.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> How the Detector Works 13 ▸ Goal: Find the QoS target for each event CamanJS Pdf.js Crypto Zlib Paper.js Ember.js GWT Backbone jQuery sina google ebay Doom Rain 10-4 104 106 100 CamanJS Pdf.js Crypto Zlib Paper.js Ember.js GWT Backbone jQuery sina google ebay Doom Rain 10-4 104 106 100 Event Latency (s) Event Intensity (evt/s) NA Feedback
  70. 92.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> How the Detector Works 13 ▸ Goal: Find the QoS target for each event CamanJS Pdf.js Crypto Zlib Paper.js Ember.js GWT Backbone jQuery sina google ebay Doom Rain 10-4 104 106 100 CamanJS Pdf.js Crypto Zlib Paper.js Ember.js GWT Backbone jQuery sina google ebay Doom Rain 10-4 104 106 100 Event Latency (s) Event Intensity (evt/s) NA Feedback [1, 10] s [50, 100] ms [60, 30] fps
  71. 93.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the QoS Monitor Works 14 ▸ Goal: Predict the <core, frequency> for the next event
  72. 94.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the QoS Monitor Works 14 ▸ Goal: Predict the <core, frequency> for the next event Predicted Latency Frequency Big Core Little Core
  73. 95.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the QoS Monitor Works 14 ▸ Goal: Predict the <core, frequency> for the next event QoS Target Predicted Latency Frequency Big Core Little Core
  74. 96.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the QoS Monitor Works 14 ▸ Goal: Predict the <core, frequency> for the next event QoS Target Predicted Latency Frequency Big Core Little Core
  75. 97.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the QoS Monitor Works 14 ▸ Goal: Predict the <core, frequency> for the next event QoS Target Predicted Latency Frequency Big Core Little Core ▸ Scheduling overhead (~120 us): ▹ Core migration ▹ Frequency switching
  76. 98.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the QoS Monitor Works 15 ▸ Goal: Predict the <core, frequency> for the next event QoS Target Predicted Latency Frequency Big Core Little Core
  77. 99.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the QoS Monitor Works 15 ▸ Goal: Predict the <core, frequency> for the next event QoS Target Predicted Latency Frequency Big Core Little Core
  78. 100.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the QoS Monitor Works 15 ▸ Goal: Predict the <core, frequency> for the next event QoS Target Predicted Latency Frequency Big Core Little Core ▸ Fine-tune the execution upon over- prediction or under-prediction
  79. 101.

    Feedback Detector QoS Monitor Model Constructor Event Info Model Recalibrate

    <core, freq> Feedback How the QoS Monitor Works 15 ▸ Goal: Predict the <core, frequency> for the next event QoS Target Predicted Latency Frequency Big Core Little Core ▸ Fine-tune the execution upon over- prediction or under-prediction ▸ Recalibrate if it mispredicts too often
  80. 102.

    Evaluation Methodology ▸ Implemented inside Google Chromium Web browser ▸

    Representative hardware platform ▹ Exynos 5410 SoC (A15 + A7) 16
  81. 103.

    Evaluation Methodology ▸ Baseline Mechanisms ▹ Highest performance (Perf) —

    Standard to guarantee responsiveness ▹ Minimal energy (Energy) — Minimize energy consumption ▹ Interactive governor (Interactive) — Android default ▹ On-demand governor (Ondemand) 17
  82. 104.

    Evaluation Methodology ▸ Baseline Mechanisms ▹ Highest performance (Perf) —

    Standard to guarantee responsiveness ▹ Minimal energy (Energy) — Minimize energy consumption ▹ Interactive governor (Interactive) — Android default ▹ On-demand governor (Ondemand) 17
  83. 105.

    Evaluation Methodology ▸ Baseline Mechanisms ▹ Highest performance (Perf) —

    Standard to guarantee responsiveness ▹ Minimal energy (Energy) — Minimize energy consumption ▹ Interactive governor (Interactive) — Android default ▹ On-demand governor (Ondemand) 17 PH Imperceptible 0 PI PU PL QoSU QoSI Tolerable Unusable -ESU ESI EST Quality-of-Service (QoS) Energy Savings (ES) Performance Degradation ▸ Scheduling Scenarios
  84. 106.

    Evaluation Methodology ▸ Baseline Mechanisms ▹ Highest performance (Perf) —

    Standard to guarantee responsiveness ▹ Minimal energy (Energy) — Minimize energy consumption ▹ Interactive governor (Interactive) — Android default ▹ On-demand governor (Ondemand) 17 PH Imperceptible 0 PI PU PL QoSU QoSI Tolerable Unusable -ESU ESI EST Quality-of-Service (QoS) Energy Savings (ES) Performance Degradation ▸ Scheduling Scenarios ▹ Scheduling for imperceptibility
  85. 107.

    Evaluation Methodology ▸ Baseline Mechanisms ▹ Highest performance (Perf) —

    Standard to guarantee responsiveness ▹ Minimal energy (Energy) — Minimize energy consumption ▹ Interactive governor (Interactive) — Android default ▹ On-demand governor (Ondemand) 17 PH Imperceptible 0 PI PU PL QoSU QoSI Tolerable Unusable -ESU ESI EST Quality-of-Service (QoS) Energy Savings (ES) Performance Degradation ▸ Scheduling Scenarios ▹ Scheduling for imperceptibility ▹ Scheduling for tolerability
  86. 108.

    Evaluation Methodology ▸ Baseline Mechanisms ▹ Highest performance (Perf) —

    Standard to guarantee responsiveness ▹ Minimal energy (Energy) — Minimize energy consumption ▹ Interactive governor (Interactive) — Android default ▹ On-demand governor (Ondemand) 17 PH Imperceptible 0 PI PU PL QoSU QoSI Tolerable Unusable -ESU ESI EST Quality-of-Service (QoS) Energy Savings (ES) Performance Degradation ▸ Scheduling Scenarios ▹ Scheduling for imperceptibility ▹ Scheduling for tolerability
  87. 109.

    Evaluation Results 18 QoS Violations (%) 0.0 1.5 3.0 4.5

    6.0 emberjs gwt jquery backbone paperjs sina google ebay EBS Perf Interactive Ondemand Energy
  88. 110.

    19 QoS Violations (%) 0.0 1.5 3.0 4.5 6.0 emberjs

    gwt jquery backbone paperjs sina google ebay EBS Perf Interactive Energy Evaluation Results No QoS Violations
  89. 111.

    20 QoS Violations (%) 0.0 1.5 3.0 4.5 6.0 emberjs

    gwt jquery backbone paperjs sina google ebay EBS Perf Interactive Energy Evaluation Results No QoS Violations
  90. 112.

    21 QoS Violations (%) 0.0 1.5 3.0 4.5 6.0 emberjs

    gwt jquery backbone paperjs sina google ebay EBS Perf Interactive Energy 9.4 17.8 58.1 6.9 Evaluation Results
  91. 113.

    22 QoS Violations (%) 0.0 1.5 3.0 4.5 6.0 emberjs

    gwt jquery backbone paperjs sina google ebay EBS Perf Interactive Energy 9.4 17.8 58.1 6.9 Evaluation Results
  92. 114.

    23 QoS Violations (%) 0.0 1.5 3.0 4.5 6.0 emberjs

    gwt jquery backbone paperjs sina google ebay EBS Perf Interactive Energy 9.4 17.8 58.1 6.9 Evaluation Results Energy (J) 0.0 1.0 2.0 3.0 4.0 emberjs gwt jquery backbone paperjs sina google ebay
  93. 115.

    24 Energy (J) 0.0 1.0 2.0 3.0 4.0 emberjs gwt

    jquery backbone paperjs sina google ebay 8.2 7.7 Evaluation Results QoS Violations (%) 0.0 1.5 3.0 4.5 6.0 emberjs gwt jquery backbone paperjs sina google ebay EBS Perf Interactive Energy 9.4 17.8 58.1 6.9
  94. 116.

    25 Energy (J) 0.0 1.0 2.0 3.0 4.0 emberjs gwt

    jquery backbone paperjs sina google ebay 8.2 7.7 Evaluation Results QoS Violations (%) 0.0 1.5 3.0 4.5 6.0 emberjs gwt jquery backbone paperjs sina google ebay EBS Perf Interactive Energy 9.4 17.8 58.1 6.9
  95. 117.

    26 Energy (J) 0.0 1.0 2.0 3.0 4.0 emberjs gwt

    jquery backbone paperjs sina google ebay 8.2 7.7 Evaluation Results QoS Violations (%) 0.0 1.5 3.0 4.5 6.0 emberjs gwt jquery backbone paperjs sina google ebay EBS Perf Interactive Energy 9.4 17.8 58.1 6.9
  96. 118.

    26 Energy (J) 0.0 1.0 2.0 3.0 4.0 emberjs gwt

    jquery backbone paperjs sina google ebay 8.2 7.7 Evaluation Results QoS Violations (%) 0.0 1.5 3.0 4.5 6.0 emberjs gwt jquery backbone paperjs sina google ebay EBS Perf Interactive Energy 9.4 17.8 58.1 6.9 37.9% - 41.2% energy savings, 0.1% more QoS violations
  97. 119.

    What Have We Learnt So Far 27 ▸ User interactivity

    and human perceptibility are important because it has economic ramifications and impacts user device choice, as well as end-user satisfaction
  98. 120.

    What Have We Learnt So Far 27 PH Imperceptible 0

    PI PU PL QoSU QoSI Tolerable Unusable -ESU ESI EST Quality-of-Service (QoS) Energy Savings (ES) Performance Degradation ▸ Need a systematic way of understanding and QoS-energy trade-offs. To that end we advocate eQoS to strike a balance between user satisfaction and energy reduction ▸ User interactivity and human perceptibility are important because it has economic ramifications and impacts user device choice, as well as end-user satisfaction
  99. 121.

    What Have We Learnt So Far 27 PH Imperceptible 0

    PI PU PL QoSU QoSI Tolerable Unusable -ESU ESI EST Quality-of-Service (QoS) Energy Savings (ES) Performance Degradation ▸ Need a systematic way of understanding and QoS-energy trade-offs. To that end we advocate eQoS to strike a balance between user satisfaction and energy reduction ▸ Develop the event-based scheduling (EBS) mechanism that exploits the fundamental event-driven execution pattern of mobile applications to achieve better eQoS ▸ User interactivity and human perceptibility are important because it has economic ramifications and impacts user device choice, as well as end-user satisfaction Heterogeneous Hardware Event Queue H3 … H2 … H1 Dispatch <Core, Freq> PI, PU Detector QoS Monitor Model Constructor Recalibrate Event-Based Scheduler Event Info Models onkeyup=“H1 () {…}” keyup onchange=“H2 () {…}” change Event execution feedback onclick=“H3 () {…}” click
  100. 124.

    Mobile is One Example 28 Web Mobile Internet-of-Things Sensor networks

    Cloud Event-based processing is a fundamental computation pattern.
  101. 125.

    Mobile is One Example 28 Web Mobile Internet-of-Things Sensor networks

    Cloud Event-based processing is a fundamental computation pattern.
  102. 126.

    ▸ Another talk @ Best of CAL session ▸ Wednesday

    after the keynote ▸ How computer architects can improve Web technologies
  103. 127.