Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Watt-Wise Web: Architecting a Responsive and Energy-Efficient Mobile Web

Yuhao Zhu
October 26, 2020

Watt-Wise Web: Architecting a Responsive and Energy-Efficient Mobile Web

Guest lecture given at University of Utah on Web browsing

Yuhao Zhu

October 26, 2020
Tweet

More Decks by Yuhao Zhu

Other Decks in Research

Transcript

  1. Watt-Wise Web:
    Architecting a Responsive and
    Energy-Efficient Mobile Web
    Yuhao Zhu
    http://yuhaozhu.com

    View Slide

  2. View Slide

  3. View Slide

  4. Snake
    circa 2000

    View Slide

  5. Snake
    circa 2000
    Snake
    circa 2020

    View Slide

  6. Performance

    View Slide

  7. Performance
    Power

    View Slide

  8. Measure Power (W)
    0
    2
    4
    6
    8
    Year
    2009 2010 2011 2012 2013 2014 2015
    Mobile CPU’s Rise to Power [HPCA 2016]
    3

    View Slide

  9. Measure Power (W)
    0
    2
    4
    6
    8
    Year
    2009 2010 2011 2012 2013 2014 2015
    0
    2
    4
    6
    8
    2009 2010 2011 2012 2013 2014 2015
    Mobile CPU’s Rise to Power [HPCA 2016]
    3

    View Slide

  10. Measure Power (W)
    0
    2
    4
    6
    8
    Year
    2009 2010 2011 2012 2013 2014 2015
    0
    2
    4
    6
    8
    2009 2010 2011 2012 2013 2014 2015
    Mobile CPU’s Rise to Power [HPCA 2016]
    3
    In pursuit of high
    performance

    View Slide

  11. Measure Power (W)
    0
    2
    4
    6
    8
    Year
    2009 2010 2011 2012 2013 2014 2015
    0
    2
    4
    6
    8
    2009 2010 2011 2012 2013 2014 2015
    Mobile CPU’s Rise to Power [HPCA 2016]
    3
    Throttling
    In pursuit of high
    performance

    View Slide

  12. Measure Power (W)
    0
    2
    4
    6
    8
    Year
    2009 2010 2011 2012 2013 2014 2015
    0
    2
    4
    6
    8
    2009 2010 2011 2012 2013 2014 2015
    Mobile CPU’s Rise to Power [HPCA 2016]
    3
    Throttling
    In pursuit of high
    performance
    SoC Thermal Design Power (TDP)

    View Slide

  13. 4
    Mobile Processor Design “Strategy”
    Performance
    Power

    View Slide

  14. 4
    Mobile Processor Design “Strategy”
    2007
    (In-order)
    Performance
    Power

    View Slide

  15. 4
    Mobile Processor Design “Strategy”
    2007
    (In-order)
    2011
    (Out-of-order)
    2012
    (Multi-core)
    2013

    (Asymmetric
    Multi-core)
    Performance
    Power

    View Slide

  16. 4
    Mobile Processor Design “Strategy”
    2007
    (In-order)
    2011
    (Out-of-order)
    2012
    (Multi-core)
    2013

    (Asymmetric
    Multi-core)
    Performance
    Power
    Squeeze 3 decades of desktop
    CPU techniques into a 6-year span

    View Slide

  17. “Improving” Energy Capacity
    5
    600 smartphone from 2006 to 2014 on http://www.gsmarena.com/makers.php3

    View Slide

  18. “Improving” Energy Capacity
    5
    Screen Size (inches)
    Battery Capacity (mAh)
    600 smartphone from 2006 to 2014 on http://www.gsmarena.com/makers.php3












    View Slide

  19. “Improving” Energy Capacity
    5
    Screen Size (inches)
    Battery Capacity (mAh)
    600 smartphone from 2006 to 2014 on http://www.gsmarena.com/makers.php3












    View Slide

  20. “Improving” Energy Capacity
    5
    Screen Size (inches)
    Battery Capacity (mAh)
    600 smartphone from 2006 to 2014 on http://www.gsmarena.com/makers.php3












    View Slide

  21. “Improving” Energy Capacity
    6

    View Slide

  22. “Improving” Energy Capacity
    6

    View Slide

  23. “Improving” Energy Capacity
    6

    View Slide

  24. “Improving” Energy Capacity
    6

    View Slide

  25. “Improving” Energy Capacity
    6

    View Slide

  26. Mobile Applications
    7

    View Slide

  27. Mobile Applications
    7
    ^
    Web

    View Slide

  28. Mobile Applications
    8
    ^
    Web
    Monthly Unique Mobile Users
    Non-Web Web
    3.3 M
    8.9 M
    comScore Mobile Metrix, U.S., June 2015

    View Slide

  29. Mobile Applications
    8
    ^
    Web
    Monthly Unique Mobile Users
    2
    4
    6
    8
    10
    12
    Jun

    2014
    Sep

    2014
    Dec

    2014
    Mar

    2015
    Jun

    2015
    Sep

    2015
    Dec

    2015
    Mar

    2016
    Jun

    2016
    Million
    Web
    Non-Web
    comScore 2016 U.S. Mobile App Report

    View Slide

  30. Is This (Just) a Network Issue? [IEEE MICRO 2015]
    9

    View Slide

  31. 38
    32
    26
    20
    14
    8
    2
    Load time (s)
    10
    2 3 4 5 6 7 8
    100
    2 3 4 5 6 7 8
    1000
    2
    Network RTT (ms)
    10
    Is This (Just) a Network Issue? [IEEE MICRO 2015]

    View Slide

  32. 38
    32
    26
    20
    14
    8
    2
    Load time (s)
    10
    2 3 4 5 6 7 8
    100
    2 3 4 5 6 7 8
    1000
    2
    Network RTT (ms)
    10
    LTE 3G Adverse 3G
    2G
    Wi-Fi
    Is This (Just) a Network Issue? [IEEE MICRO 2015]

    View Slide

  33. 38
    32
    26
    20
    14
    8
    2
    Load time (s)
    10
    2 3 4 5 6 7 8
    100
    2 3 4 5 6 7 8
    1000
    2
    Network RTT (ms)
    10
    LTE 3G Adverse 3G
    2G
    Wi-Fi
    Is This (Just) a Network Issue? [IEEE MICRO 2015]

    View Slide

  34. 38
    32
    26
    20
    14
    8
    2
    Load time (s)
    10
    2 3 4 5 6 7 8
    100
    2 3 4 5 6 7 8
    1000
    2
    Network RTT (ms)
    10
    LTE 3G Adverse 3G
    2G
    Wi-Fi
    Is This (Just) a Network Issue? [IEEE MICRO 2015]

    View Slide

  35. 38
    32
    26
    20
    14
    8
    2
    Load time (s)
    10
    2 3 4 5 6 7 8
    100
    2 3 4 5 6 7 8
    1000
    2
    Network RTT (ms)
    10
    Compute
    LTE 3G Adverse 3G
    2G
    Wi-Fi
    Is This (Just) a Network Issue? [IEEE MICRO 2015]

    View Slide

  36. Measured Power (W)
    0.0
    3.0
    6.0
    9.0
    2009
    2010
    2011
    2012
    2013
    2014
    2015
    Screen Radio CPU
    11
    Compute
    Is This (Just) a Network Issue? [IEEE MICRO 2015]

    View Slide

  37. 12
    Compute
    Is This (Just) a Network Issue? [IEEE MICRO 2015]
    Measured Power (W)
    0.0
    3.0
    6.0
    9.0
    2009
    2010
    2011
    2012
    2013
    2014
    2015
    Screen Radio CPU

    View Slide

  38. Compute
    13
    Web Browsing from a Compute Perspective

    View Slide

  39. 14
    Web Browsing from a Compute Perspective
    Compute

    View Slide

  40. Frameworks and Libraries
    HTML JavaScript
    CSS
    Language Runtime
    Styling
    Security
    Local
    Storage
    User
    Input
    Layout
    Render
    Runtime
    15
    Web Browsing from a Compute Perspective
    Compute
    Architecture
    Application

    View Slide

  41. Runtime
    16
    Cross-Layer Optimizations
    Architecture
    Application

    View Slide

  42. Runtime
    16
    Cross-Layer Optimizations
    Architecture
    Application
    WebCore
    Web-specific
    Processor Architecture
    [ISCA 2014]
    [TOCS 2017]

    View Slide

  43. Runtime
    16
    Cross-Layer Optimizations
    Architecture
    Application
    WebCore
    Web-specific
    Processor Architecture
    GreenWeb
    Language Support
    for Quality-of-Experience
    [PLDI 2016]
    [ISCA 2014]
    [TOCS 2017]

    View Slide

  44. Runtime
    16
    Cross-Layer Optimizations
    Architecture
    Application
    WebCore
    Web-specific
    Processor Architecture
    GreenWeb
    Language Support
    for Quality-of-Experience
    [PLDI 2016]
    [ISCA 2014]
    [TOCS 2017]

    View Slide

  45. Runtime
    16
    Cross-Layer Optimizations
    Architecture
    Application
    WebCore
    Web-specific
    Processor Architecture
    GreenWeb
    Language Support
    for Quality-of-Experience
    [PLDI 2016]
    [ISCA 2014]
    [TOCS 2017]

    View Slide

  46. Runtime
    16
    Cross-Layer Optimizations
    Architecture
    Application
    WebCore
    Web-specific
    Processor Architecture
    WebRT
    Fast, Energy-Efficient
    Mobile Web Runtime
    GreenWeb
    Language Support
    for Quality-of-Experience
    [PLDI 2016]
    [ISCA 2014]
    [TOCS 2017]
    [HPCA 2013]
    [HPCA 2015]
    [ISCA 2019]

    View Slide

  47. Runtime
    16
    Cross-Layer Optimizations
    Architecture
    Application
    WebCore
    Web-specific
    Processor Architecture
    WebRT
    Fast, Energy-Efficient
    Mobile Web Runtime
    GreenWeb
    Language Support
    for Quality-of-Experience
    [PLDI 2016]
    [ISCA 2014]
    [TOCS 2017]
    [HPCA 2013]
    [HPCA 2015]
    [ISCA 2019]

    View Slide

  48. 17
    Mobile Applications are Event-Driven
    Touching
    Moving
    Interactions

    View Slide

  49. 17
    Mobile Applications are Event-Driven
    Touching
    Moving
    Interactions Events

    View Slide

  50. 17
    Mobile Applications are Event-Driven
    Touching
    Moving
    Interactions Events
    click
    touchstart
    touchmove
    scroll

    View Slide

  51. 17
    Mobile Applications are Event-Driven
    Touching
    Moving
    Interactions Events
    click
    touchstart
    touchmove
    scroll
    Event Queue

    View Slide

  52. 17
    Mobile Applications are Event-Driven
    Touching
    Moving
    Interactions Events
    click
    touchstart
    touchmove
    scroll
    Event
    Loop
    Event Queue
    CPU

    View Slide

  53. 17
    Mobile Applications are Event-Driven
    Touching
    Moving
    Interactions Events
    click
    touchstart
    touchmove
    scroll
    Event is the atomic unit of execution; optimize
    latency/energy at the event-level.
    Event
    Loop
    Event Queue
    CPU

    View Slide

  54. ▸ Observation: Events have different latency
    slacks that enable energy optimizations
    17
    Mobile Applications are Event-Driven
    Touching
    Moving
    Interactions Events
    click
    touchstart
    touchmove
    scroll
    Event
    Loop
    Event Queue
    CPU

    View Slide

  55. ▸ Observation: Events have different latency
    slacks that enable energy optimizations
    18
    Event-based Web Runtime Optimization

    View Slide

  56. ▸ Observation: Events have different latency
    slacks that enable energy optimizations
    18
    ▸ Mechanism: Provide just enough energy to
    meet QoE requirement for different events
    Event-based Web Runtime Optimization

    View Slide

  57. ▸ Observation: Events have different latency
    slacks that enable energy optimizations
    18
    ▸ Mechanism: Provide just enough energy to
    meet QoE requirement for different events
    ▸ Implementation: Map events to different
    heterogeneous hardware configurations
    Event-based Web Runtime Optimization

    View Slide

  58. Event-Level Characterization
    !19

    View Slide

  59. Event-Level Characterization
    !19

    View Slide

  60. Event-Level Characterization
    !19
    150
    100
    50
    0
    Event Latency (ms)
    Events

    View Slide

  61. Event-Level Characterization
    !19
    150
    100
    50
    0
    Event Latency (ms)
    Events

    View Slide

  62. Event-Level Characterization
    !19
    150
    100
    50
    0
    Event Latency (ms)
    Events
    keyup

    View Slide

  63. Event-Level Characterization
    !19
    150
    100
    50
    0
    Event Latency (ms)
    Events
    keyup

    View Slide

  64. Event-Level Characterization
    !19
    150
    100
    50
    0
    Event Latency (ms)
    Events
    Large Slack
    keyup

    View Slide

  65. Event-Level Characterization
    !19
    150
    100
    50
    0
    Event Latency (ms)
    Events
    Large Slack
    change
    keyup

    View Slide

  66. Event-Level Characterization
    !19
    150
    100
    50
    0
    Event Latency (ms)
    Events
    Large Slack
    change
    Small

    Slack
    keyup

    View Slide

  67. Event-Level Characterization
    !19
    150
    100
    50
    0
    Event Latency (ms)
    Events
    Large Slack
    change
    Small

    Slack
    click
    keyup

    View Slide

  68. Event-Level Characterization
    !19
    150
    100
    50
    0
    Event Latency (ms)
    Events
    Large Slack
    change
    Small

    Slack
    No Slack
    click
    keyup

    View Slide

  69. Event-Level Characterization
    !19
    150
    100
    50
    0
    Event Latency (ms)
    Events
    Large Slack
    change
    Small

    Slack
    No Slack
    click
    keyup
    ▸ Wide distribution of event latencies.
    Events exhibit different slacks.
    ▹ How to exploit event slacks?

    View Slide

  70. !20
    Event-based Scheduler (EBS)

    View Slide

  71. !20
    Event-based Scheduler (EBS)
    ▸ Goal: For each event, find the most energy-efficient
    hardware configuration that meets the latency target

    View Slide

  72. !20
    Event-based Scheduler (EBS)
    Thread Scheduling

    View Slide

  73. !20
    Event-based Scheduler (EBS)
    Thread Scheduling

    View Slide

  74. !20
    Event-based Scheduler (EBS)
    Thread-based Scheduler
    Thread Scheduling

    View Slide

  75. !20
    Event-based Scheduler (EBS)
    Thread-based Scheduler
    Thread Scheduling
    Throughput Fairness

    View Slide

  76. !20
    Event-based Scheduler (EBS)
    Thread-based Scheduler
    Thread Scheduling
    Throughput Fairness
    Events-based Scheduling

    View Slide

  77. !20
    Event-based Scheduler (EBS)
    Thread-based Scheduler
    Thread Scheduling
    Throughput Fairness
    Events-based Scheduling
    Event Queue

    View Slide

  78. !20
    Event-based Scheduler (EBS)
    Thread-based Scheduler
    Thread Scheduling
    Throughput Fairness
    Event-based Scheduler
    Events-based Scheduling
    Event Queue

    View Slide

  79. !20
    Event-based Scheduler (EBS)
    Thread-based Scheduler
    Thread Scheduling
    Throughput Fairness
    Event-based Scheduler
    Events-based Scheduling
    Event
    Latency
    Event
    Energy
    Event Queue

    View Slide

  80. !21
    Leveraging Heterogeneous Hardware
    ▸ Offer a large performance-energy trade-off space
    ▸ Widely used in commodity devices

    View Slide

  81. !22
    Leveraging Heterogeneous Hardware
    ▸ Offer a large performance-energy trade-off space
    ▸ Widely used in commodity devices
    Energy Consumption
    Performance
    Big Core
    Small Core

    View Slide

  82. !22
    Leveraging Heterogeneous Hardware
    ▸ Offer a large performance-energy trade-off space
    ▸ Widely used in commodity devices
    Energy Consumption
    Performance
    Big Core
    Small Core
    Voltage/
    Frequency
    Levels

    View Slide

  83. !22
    Leveraging Heterogeneous Hardware
    ▸ Offer a large performance-energy trade-off space
    ▸ Widely used in commodity devices
    Energy Consumption
    Performance
    Big Core
    Small Core

    View Slide

  84. !22
    Leveraging Heterogeneous Hardware
    ▸ Offer a large performance-energy trade-off space
    ▸ Widely used in commodity devices
    Energy Consumption
    Performance
    Big Core
    Small Core

    View Slide

  85. !23
    Leveraging Heterogeneous Hardware
    ▸ Offer a large performance-energy trade-off space
    Memory
    Operation
    CPU
    Operation
    Tmemory
    Ndependent
    f
    Event
    Latency
    Xie, et al., Compile-Time Dynamic Voltage Scaling Settings: Opportunities and Limits, PLDI’03

    View Slide

  86. !23
    Leveraging Heterogeneous Hardware
    ▸ Offer a large performance-energy trade-off space
    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
    =

    View Slide

  87. !23
    Leveraging Heterogeneous Hardware
    ▸ Offer a large performance-energy trade-off space
    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
    +

    View Slide

  88. !23
    Leveraging Heterogeneous Hardware
    ▸ Offer a large performance-energy trade-off space
    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

    View Slide

  89. !23
    Leveraging Heterogeneous Hardware
    ▸ Offer a large performance-energy trade-off space
    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

    View Slide

  90. Evaluation Methodology
    ▸ Implemented inside Google Chromium Web browser
    ▸ Representative hardware platform
    ▹ Exynos 5410 SoC (A15 + A7)
    ▸UI-level record and replay for reproducibility.
    ▹ Mosaic [ISPASS 2015] https://github.com/Matthalp/mosaic
    24

    View Slide

  91. 25
    Evaluation Results
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    Norm. Energy
    0
    0.2
    0.4
    0.6
    0.8
    1
    Perf

    View Slide

  92. 26
    Evaluation Results
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    Norm. Energy
    0
    0.2
    0.4
    0.6
    0.8
    1
    Perf
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    0
    0.2
    0.4
    0.6
    0.8
    1
    Android

    View Slide

  93. 0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    Norm. Energy
    0
    0.2
    0.4
    0.6
    0.8
    1
    Perf
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    0
    0.2
    0.4
    0.6
    0.8
    1
    Android
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    0
    0.2
    0.4
    0.6
    0.8
    1
    EBS
    27
    Evaluation Results
    29.2%
    Energy Savings

    View Slide

  94. 0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    0
    0.2
    0.4
    0.6
    0.8
    1
    Android
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    0
    0.2
    0.4
    0.6
    0.8
    1
    EBS
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    Norm. Energy
    0
    0.2
    0.4
    0.6
    0.8
    1
    Perf
    28
    Evaluation Results
    Norm. QoS Violation
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    Norm. Energy
    0
    0.2
    0.4
    0.6
    0.8
    1

    View Slide

  95. 0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    0
    0.2
    0.4
    0.6
    0.8
    1
    Android
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    0
    0.2
    0.4
    0.6
    0.8
    1
    EBS
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    Norm. Energy
    0
    0.2
    0.4
    0.6
    0.8
    1
    Perf
    Norm. QoS Violation
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    Norm. Energy
    0
    0.2
    0.4
    0.6
    0.8
    1
    Norm. QoS Violation
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    Norm. Energy
    0
    0.2
    0.4
    0.6
    0.8
    1
    29
    Evaluation Results

    View Slide

  96. 0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    0
    0.2
    0.4
    0.6
    0.8
    1
    Android
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    0
    0.2
    0.4
    0.6
    0.8
    1
    EBS
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    Norm. Energy
    0
    0.2
    0.4
    0.6
    0.8
    1
    Perf
    Norm. QoS Violation
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    Norm. Energy
    0
    0.2
    0.4
    0.6
    0.8
    1
    Norm. QoS Violation
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    Norm. Energy
    0
    0.2
    0.4
    0.6
    0.8
    1
    Norm. QoS Violation
    0
    0.2
    0.4
    0.6
    0.8
    1
    1.2
    Norm. Energy
    0
    0.2
    0.4
    0.6
    0.8
    1
    30
    Evaluation Results
    0.8% More
    QoS violations

    View Slide

  97. Rethink Event-based Scheduling
    31
    Event-based Scheduler
    Event
    Latency
    Event
    Energy
    Event Queue

    View Slide

  98. Rethink Event-based Scheduling
    31
    Event-based Scheduler
    Event
    Latency
    Event
    Energy
    Pending Events
    Event Queue

    View Slide

  99. Rethink Event-based Scheduling
    31
    Event-based Scheduler
    Event
    Latency
    Event
    Energy
    Pending Events
    onclick
    GC task
    Timer event
    Event Queue
    Time
    Event
    Queue
    Pending
    Events

    View Slide

  100. Rethink Event-based Scheduling
    31
    Event-based Scheduler
    Event
    Latency
    Event
    Energy
    Reactive Strategy
    Pending Events
    onclick
    GC task
    Timer event
    Event Queue
    Time
    Event
    Queue
    Pending
    Events

    View Slide

  101. Rethink Event-based Scheduling
    31
    Event-based Scheduler
    Event
    Latency
    Event
    Energy
    Reactive Strategy
    Pending Events
    onclick
    GC task
    Timer event
    ontouchmove
    onsubmit
    Event Queue
    Time
    Event
    Queue
    Pending
    Events

    View Slide

  102. Rethink Event-based Scheduling
    31
    Event-based Scheduler
    Event
    Latency
    Event
    Energy
    Proactive Strategy
    Pending &
    Speculative Events
    onclick
    GC task
    Timer event
    ontouchmove
    onsubmit
    Event Queue
    Time
    Event
    Queue
    Pending
    Events
    Speculative
    Events

    View Slide

  103. Inefficiency of Current Schedulers
    32

    View Slide

  104. Inefficiency of Current Schedulers
    32
    Time
    input 1 input 2
    QoS

    Deadline 1
    QoS

    Deadline 2

    View Slide

  105. Inefficiency of Current Schedulers
    32
    Time
    input 1 input 2
    QoS

    Deadline 1
    QoS

    Deadline 2
    E1
    OS

    View Slide

  106. Inefficiency of Current Schedulers
    32
    Time
    input 1 input 2
    QoS

    Deadline 1
    QoS

    Deadline 2
    E1 slack
    OS

    View Slide

  107. Inefficiency of Current Schedulers
    32
    Time
    input 1 input 2
    QoS

    Deadline 1
    QoS

    Deadline 2
    E1 E2
    slack
    OS

    View Slide

  108. Inefficiency of Current Schedulers
    33
    Time
    input 1 input 2
    QoS

    Deadline 1
    QoS

    Deadline 2
    E1 E2
    EBS
    OS

    View Slide

  109. Inefficiency of Current Schedulers
    33
    Time
    input 1 input 2
    QoS

    Deadline 1
    QoS

    Deadline 2
    E1 E2
    E1
    EBS
    OS

    View Slide

  110. Inefficiency of Current Schedulers
    33
    Time
    input 1 input 2
    QoS

    Deadline 1
    QoS

    Deadline 2
    E1 E2
    E1 E2
    EBS
    OS

    View Slide

  111. Inefficiency of Current Schedulers
    33
    Time
    input 1 input 2
    QoS

    Deadline 1
    QoS

    Deadline 2
    E1 E2
    E1 E2
    ?
    EBS
    OS

    View Slide

  112. Inefficiency of Current Schedulers
    34
    Time
    Oracle
    input 1 input 2
    QoS

    Deadline 1
    QoS

    Deadline 2
    E1 E2
    E1 E2
    EBS
    OS

    View Slide

  113. Inefficiency of Current Schedulers
    34
    Time
    Oracle
    input 1 input 2
    QoS

    Deadline 1
    QoS

    Deadline 2
    E1 E2
    E1 E2
    E1 E2
    EBS
    OS

    View Slide

  114. Inefficiency of Current Schedulers
    35
    Time
    input 1 input 2
    QoS

    Deadline 1
    QoS

    Deadline 2
    E1 E2
    Schedule across both
    pending and future events
    Oracle

    View Slide

  115. PES: Proactive Event Scheduler
    36

    View Slide

  116. PES: Proactive Event Scheduler
    36
    Prediction
    Web Program

    Analysis
    Machine

    Learning

    View Slide

  117. PES: Proactive Event Scheduler
    36
    Prediction
    Web Program

    Analysis
    Machine

    Learning
    Scheduling
    Constrained Optimization

    View Slide

  118. PES: Proactive Event Scheduler
    36
    Prediction
    Web Program

    Analysis
    Machine

    Learning
    Scheduling
    Constrained Optimization

    View Slide

  119. Event Sequence Learning
    37
    Prediction
    Model

    View Slide

  120. Event Sequence Learning
    37
    Time
    E1 E2 E3
    Event Sequence
    Prediction
    Model

    View Slide

  121. Event Sequence Learning
    37
    Time
    E1 E2 E3
    Event Sequence
    Prediction
    Model

    View Slide

  122. Event Sequence Learning
    37
    Time
    E1 E2 E3
    Event Sequence
    E4
    Prediction
    Model

    View Slide

  123. Event Sequence Learning
    37
    Time
    E1 E2 E3
    Event Sequence
    E4
    Prediction
    Model

    View Slide

  124. Recurrent Prediction
    38
    Time
    E1 E2 E3 E4
    Event Sequence
    Prediction
    Model

    View Slide

  125. Recurrent Prediction
    38
    Time
    E1 E2 E3 E4
    Event Sequence
    Prediction
    Model

    View Slide

  126. Recurrent Prediction
    38
    Time
    E1 E2 E3 E4
    Event Sequence
    E5
    Prediction
    Model

    View Slide

  127. Recurrent Prediction
    38
    Time
    E1 E2 E3 E4
    Event Sequence
    E5
    Prediction
    Model

    View Slide

  128. Recurrent Prediction
    38
    Time
    E1 E2 E3 E4
    Event Sequence
    E5

    Prediction
    Model

    View Slide

  129. Prediction Model
    39
    Prediction
    Model

    View Slide

  130. Prediction Model
    40
    Prediction
    Model
    The distance of click
    The number of scrolls
    The number of navigations
    Features

    encoding

    past
    interactions

    View Slide

  131. Prediction Model
    41
    Features

    encoding

    past

    interactions
    ln(
    p
    1 − p
    ) =
    x
    β
    Prediction
    Model

    View Slide

  132. Prediction Model
    42
    Features

    encoding

    past

    interactions
    Click
    ScrollUp
    ScrollDown
    ZoomIn
    ZoomOut

    Prediction
    Model
    0.10
    0.12
    0.58
    0.07
    0.02

    View Slide

  133. Prediction Model
    42
    Features

    encoding

    past

    interactions
    Click
    ScrollUp
    ScrollDown
    ZoomIn
    ZoomOut

    Prediction
    Model

    View Slide

  134. Prediction Model
    42
    Features

    encoding

    past

    interactions
    Click
    ScrollUp
    ScrollDown
    ZoomIn
    ZoomOut

    Prediction
    Model
    All Event Types

    View Slide

  135. Prediction Model
    42
    Features

    encoding

    past

    interactions
    Click
    ScrollUp
    ScrollDown
    ZoomIn
    ZoomOut

    Prediction
    Model
    Filter Unlikely Events!

    View Slide

  136. 43
    Program State Analysis

    View Slide

  137. 43
    Program State Analysis

    View Slide

  138. 43











    Program State Analysis
    DOM Tree

    View Slide

  139. 43











    Program State Analysis
    DOM Tree
    Viewport

    View Slide

  140. 43











    Viewport
    Program State Analysis
    DOM Tree
    Viewport

    View Slide

  141. 43











    Viewport
    Program State Analysis
    DOM Tree
    Viewport

    View Slide

  142. 43











    Viewport
    Program State Analysis
    DOM Tree
    Viewport

    View Slide

  143. 43











    Viewport
    Program State Analysis
    DOM Tree
    Viewport

    View Slide

  144. Integrating Program States
    44
    Features

    encoding

    past

    interactions
    Click
    ScrollUp
    ScrollDown
    ZoomIn
    ZoomOut

    Prediction
    Model

    View Slide

  145. Integrating Program States
    45
    Features

    encoding

    past

    interactions
    Click
    ScrollUp
    ScrollDown
    ZoomIn
    ZoomOut

    Current

    application

    states
    +
    +
    Prediction
    Model

    View Slide

  146. Overview of the Predictor
    46
    Click
    ScrollUp
    ScrollDown
    ZoomIn
    ZoomOut

    +
    Prediction
    Model
    ~10 us
    Features

    encoding

    past

    interactions
    Current

    application

    states
    +

    View Slide

  147. Overview of the Predictor
    46
    Click
    ScrollUp
    ScrollDown
    ZoomIn
    ZoomOut

    +
    Prediction
    Model
    Stop until the cumulative confidence of the
    predicted event sequence is below a threshold
    ~10 us
    Features

    encoding

    past

    interactions
    Current

    application

    states
    +

    View Slide

  148. PES: Proactive Event Scheduler
    47
    Prediction
    Web Program

    Analysis
    Machine

    Learning
    Scheduling
    Constrained Optimization

    View Slide

  149. Constrained Optimization Formulation
    48
    E1 E2 E3
    Time
    ▸ Goal: minimize total energy while meeting deadlines

    View Slide

  150. Objective:
    Constrained Optimization Formulation
    48
    E1 E2 E3
    Time
    ▸ Goal: minimize total energy while meeting deadlines
    N

    i
    Min. Energy (i)

    View Slide

  151. Objective:
    Constrained Optimization Formulation
    48
    E1 E2 E3
    Time
    △Texe 1 △Texe 2 △Texe 3
    ▸ Goal: minimize total energy while meeting deadlines
    N

    i
    △Texe (i) x
    Min.

    View Slide

  152. Objective:
    Constrained Optimization Formulation
    48
    E1 E2 E3
    Time
    △Texe 1 △Texe 2 △Texe 3
    ▸ Goal: minimize total energy while meeting deadlines
    N

    i
    △Texe (i) x Power (i)
    Min.

    View Slide

  153. Objective:
    Constraints:
    Constrained Optimization Formulation
    48
    E1 E2 E3
    Time
    △Texe 1 △Texe 2 △Texe 3
    ▸ Goal: minimize total energy while meeting deadlines
    N

    i
    △Texe (i) x Power (i)
    Min.

    View Slide

  154. Objective:
    Constraints:
    Constrained Optimization Formulation
    48
    E1 E2 E3
    Time
    △Texe 1 △Texe 2 △Texe 3
    ▸ Goal: minimize total energy while meeting deadlines
    Order: ≤
    Tend (i) Tstart (i+1)
    N

    i
    △Texe (i) x Power (i)
    Min.

    View Slide

  155. Objective:
    Constraints:
    Constrained Optimization Formulation
    48
    E1 E2 E3
    Time
    Tstart 1 Tstart 2 Tstart 3
    TQoS 1 TQoS 2 TQoS 3
    △Texe 1 △Texe 2 △Texe 3
    ▸ Goal: minimize total energy while meeting deadlines
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +
    N

    i
    △Texe (i) x Power (i)
    Min.

    View Slide

  156. Objective:
    Constraints:
    Constrained Optimization Formulation
    48
    E1 E2 E3
    Time
    Tstart 1 Tstart 2 Tstart 3
    TQoS 1 TQoS 2 TQoS 3
    △Texe 1 △Texe 2 △Texe 3
    ▸ Goal: minimize total energy while meeting deadlines
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +
    Scheduling knobs:

    Big/little + DVFS for
    each event.
    N

    i
    △Texe (i) x Power (i)
    Min.

    View Slide

  157. Each Event:
    Objective:
    Constraints:
    Problem Formulation
    49
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Power (i)
    Min.
    △Texe (i) =
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +

    View Slide

  158. Each Event:
    Objective:
    Constraints:
    Problem Formulation
    49
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Power (i)
    Min.
    △Texe (i) = Tmemory
    +
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +

    View Slide

  159. Each Event:
    Objective:
    Constraints:
    Problem Formulation
    49
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Power (i)
    Min.
    Tcpu
    △Texe (i) = Tmemory
    +
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +

    View Slide

  160. Each Event:
    Objective:
    Constraints:
    Problem Formulation
    49
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Power (i)
    Min.
    △Texe (i) = Tmemory
    + Ncycles / f (i)
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +

    View Slide

  161. Each Event:
    Objective:
    Constraints:
    Problem Formulation
    49
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Power (i)
    Min.
    △Texe (i) = Tmemory
    + Constants
    Ncycles / f (i)
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +

    View Slide

  162. Each Event:
    Objective:
    Constraints:
    Problem Formulation
    49
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x
    Min.
    △Texe (i) = Tmemory
    + Constants
    Ncycles / f (i)
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +
    Pmap (i)
    Pmap (i) = Freq2Power (f(i))

    View Slide

  163. Each Event:
    Objective:
    Constraints:
    Problem Formulation
    49
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x
    Min.
    △Texe (i) = Tmemory
    + Constants
    Offline profile
    Ncycles / f (i)
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +
    Pmap (i)
    Pmap (i) = Freq2Power (f(i))

    View Slide

  164. Each Event:
    Objective:
    Constraints:
    Problem Formulation
    50
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Pmap (i)
    Min.
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +

    View Slide

  165. Each Event:
    Objective:
    Constraints:
    Problem Formulation
    50
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Pmap (i)
    Min.
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +
    { Ncycles / f (i, j) }
    △Texe (i) =Tmemory
    +M

    j=0
    * ⍺ (i, j) ⍺ (i, j) in {0,1}

    View Slide

  166. Each Event:
    Objective:
    Constraints:
    Problem Formulation
    50
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Pmap (i)
    Min.
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +
    { Ncycles / f (i, j) }
    △Texe (i) =Tmemory
    +M

    j=0
    * ⍺ (i, j) ⍺ (i, j) in {0,1}
    Pmap (i) = Freq2Power ( f(i, j) ) * ⍺ (i, j)
    M

    j=0

    View Slide

  167. Each Event:
    Objective:
    Constraints:
    Problem Formulation
    50
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Pmap (i)
    Min.
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +
    { Ncycles / f (i, j) }
    △Texe (i) =Tmemory
    +M

    j=0
    * ⍺ (i, j) ⍺ (i, j) in {0,1}
    Pmap (i) = Freq2Power ( f(i, j) ) * ⍺ (i, j)
    M

    j=0
    1
    =
    ⍺ (i, j)
    With the constraint:
    M

    j=0

    View Slide

  168. Each Event:
    Objective:
    Constraints:
    Problem Formulation
    50
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Pmap (i)
    Min.
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +
    { Ncycles / f (i, j) }
    △Texe (i) =Tmemory
    +M

    j=0
    * ⍺ (i, j) ⍺ (i, j) in {0,1}
    Pmap (i) = Freq2Power ( f(i, j) ) * ⍺ (i, j)
    M

    j=0
    1
    =
    ⍺ (i, j)
    With the constraint:
    M

    j=0
    Only one DVFS
    setting is chosen

    for each event

    View Slide

  169. Each Event:
    Objective:
    Constraints:
    Problem Formulation
    50
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Pmap (i)
    Min.
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +
    { Ncycles / f (i, j) }
    △Texe (i) =Tmemory
    +M

    j=0
    * ⍺ (i, j)
    Pmap (i) = Freq2Power ( f(i, j) ) * ⍺ (i, j)
    M

    j=0
    1
    =
    ⍺ (i, j)
    With the constraint:
    M

    j=0

    View Slide

  170. Each Event:
    Objective:
    Constraints:
    Problem Formulation
    50
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Pmap (i)
    Min.
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +
    { Ncycles / f (i, j) }
    △Texe (i) =Tmemory
    +M

    j=0
    * ⍺ (i, j)
    Integer Linear
    Programing!
    Pmap (i) = Freq2Power ( f(i, j) ) * ⍺ (i, j)
    M

    j=0
    1
    =
    ⍺ (i, j)
    With the constraint:
    M

    j=0

    View Slide

  171. Overhead:
    Each Event:
    Objective:
    Constraints:
    Problem Formulation
    50
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Pmap (i)
    Min.
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +
    { Ncycles / f (i, j) }
    △Texe (i) =Tmemory
    +M

    j=0
    * ⍺ (i, j)
    Integer Linear
    Programing!
    Pmap (i) = Freq2Power ( f(i, j) ) * ⍺ (i, j)
    M

    j=0
    1
    =
    ⍺ (i, j)
    With the constraint:
    M

    j=0

    View Slide

  172. Overhead:
    10 DVFS configurations
    Each Event:
    Objective:
    Constraints:
    Problem Formulation
    50
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Pmap (i)
    Min.
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +
    { Ncycles / f (i, j) }
    △Texe (i) =Tmemory
    +M

    j=0
    * ⍺ (i, j)
    Integer Linear
    Programing!
    Pmap (i) = Freq2Power ( f(i, j) ) * ⍺ (i, j)
    M

    j=0
    1
    =
    ⍺ (i, j)
    With the constraint:
    M

    j=0

    View Slide

  173. Overhead:
    10 DVFS configurations
    8 events look ahead
    Each Event:
    Objective:
    Constraints:
    Problem Formulation
    50
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Pmap (i)
    Min.
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +
    { Ncycles / f (i, j) }
    △Texe (i) =Tmemory
    +M

    j=0
    * ⍺ (i, j)
    Integer Linear
    Programing!
    Pmap (i) = Freq2Power ( f(i, j) ) * ⍺ (i, j)
    M

    j=0
    1
    =
    ⍺ (i, j)
    With the constraint:
    M

    j=0

    View Slide

  174. Overhead:
    80 variables in ILP
    Each Event:
    Objective:
    Constraints:
    Problem Formulation
    50
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Pmap (i)
    Min.
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +
    { Ncycles / f (i, j) }
    △Texe (i) =Tmemory
    +M

    j=0
    * ⍺ (i, j)
    Integer Linear
    Programing!
    Pmap (i) = Freq2Power ( f(i, j) ) * ⍺ (i, j)
    M

    j=0
    1
    =
    ⍺ (i, j)
    With the constraint:
    M

    j=0

    View Slide

  175. Overhead:
    Runtime overhead: 10ms
    80 variables in ILP
    Each Event:
    Objective:
    Constraints:
    Problem Formulation
    50
    ▸ Scheduling Problem → Constrained Optimization.
    N

    i
    △Texe (i) x Pmap (i)
    Min.
    Order: ≤
    Tend (i) Tstart (i+1)
    Deadline: ≤
    Tstart (i) △Texe (i) TQoS (i)
    +
    { Ncycles / f (i, j) }
    △Texe (i) =Tmemory
    +M

    j=0
    * ⍺ (i, j)
    Integer Linear
    Programing!
    Pmap (i) = Freq2Power ( f(i, j) ) * ⍺ (i, j)
    M

    j=0
    1
    =
    ⍺ (i, j)
    With the constraint:
    M

    j=0
    Dynamic programing

    View Slide

  176. Putting Things Together
    51
    Web Application
    Rendering Engine
    Time

    View Slide

  177. PES
    Putting Things Together
    51
    Web Application
    Rendering Engine
    Time

    View Slide

  178. PES
    Putting Things Together
    51
    Web Application
    Rendering Engine
    Predictor
    Events
    Time
    Prediction

    View Slide

  179. PES
    Putting Things Together
    51
    Web Application
    Rendering Engine
    Predictor
    Events
    Scheduler
    Predictions
    Time
    Prediction

    View Slide

  180. PES
    Putting Things Together
    51
    Web Application
    Rendering Engine
    Predictor
    Events
    Speculative

    Schedules
    Scheduler
    Predictions
    Time
    Prediction Schedule

    View Slide

  181. PES
    Putting Things Together
    51
    Web Application
    Rendering Engine
    Predictor
    Events
    Speculative

    Schedules
    Scheduler
    Predictions
    Time
    Prediction Schedule F1
    Pending
    Frame Buffer
    F2 F3

    View Slide

  182. PES
    Putting Things Together
    51
    Web Application
    Rendering Engine
    Predictor
    Controller
    Events
    Speculative

    Schedules
    Pending

    Frames
    Scheduler
    Predictions
    Time
    Prediction Schedule
    F1
    Pending
    Frame Buffer F2 F3

    View Slide

  183. PES
    Putting Things Together
    51
    Web Application
    Rendering Engine
    Predictor
    Controller
    Events
    Speculative

    Schedules
    Pending

    Frames
    Scheduler
    Predictions
    Time
    Prediction Schedule
    F1
    Pending
    Frame Buffer F2 F3

    View Slide

  184. PES
    Putting Things Together
    51
    Web Application
    Rendering Engine
    Predictor
    Controller
    Events
    Speculative

    Schedules
    Pending

    Frames
    Scheduler
    Predictions
    Commit
    Time
    Prediction Schedule
    F1
    Pending
    Frame Buffer F2 F3
    ✔ ✔

    View Slide

  185. PES
    Putting Things Together
    51
    Web Application
    Rendering Engine
    Predictor
    Controller
    Events
    Speculative

    Schedules
    Pending

    Frames
    Recover
    Scheduler
    Predictions
    Commit
    Time
    Prediction Schedule
    F1
    Pending
    Frame Buffer F2 F3
    ✔ ✔ ✘

    View Slide

  186. PES
    Putting Things Together
    51
    Web Application
    Rendering Engine
    Predictor
    Controller
    Events
    Speculative

    Schedules
    Pending

    Frames
    Recover
    Scheduler
    Predictions
    Commit
    Time
    Prediction Schedule
    F1
    Pending
    Frame Buffer F2 F3
    ✔ ✔ ✘ F3

    View Slide

  187. Evaluation
    52
    52
    ▸Traces
    ▹Training: 10 users, more than 100 traces.
    ▹Testing: 36 traces, 3 for each Web application.
    ▸Baseline Mechanisms
    ▹Interactive governor (Interactive) — Android default
    ▹EBS: a state-of-the-art reactive event-based scheduler
    ▹Oracle: optimal scheduler
    ▸Metrics
    ▹Energy consumption
    ▹QoS violation

    View Slide

  188. High Prediction Accuracy, Low Mis-Prediction Penalty
    53
    Prediction
    Accuracy (%)
    60
    70
    80
    90
    100
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter

    View Slide

  189. High Prediction Accuracy, Low Mis-Prediction Penalty
    53
    Prediction
    Accuracy (%)
    60
    70
    80
    90
    100
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Mis-prediction
    Waste (ms)
    0
    10
    20
    30
    40
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter

    View Slide

  190. High Prediction Accuracy, Low Mis-Prediction Penalty
    53
    Prediction
    Accuracy (%)
    60
    70
    80
    90
    100
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Mis-prediction
    Waste (ms)
    0
    10
    20
    30
    40
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter

    View Slide

  191. High Prediction Accuracy, Low Mis-Prediction Penalty
    53
    Prediction
    Accuracy (%)
    60
    70
    80
    90
    100
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Mis-prediction
    Waste (ms)
    0
    10
    20
    30
    40
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    92% Prediction Accuracy and 20 ms of Mis-Prediction Waste

    View Slide

  192. Experimental Result
    54

    View Slide

  193. Experimental Result
    54
    Norn. Energy
    0
    0.25
    0.5
    0.75
    1
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Interactive EBS PES Oracle

    View Slide

  194. Experimental Result
    54
    Norn. Energy
    0
    0.25
    0.5
    0.75
    1
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Interactive EBS PES Oracle

    View Slide

  195. Experimental Result
    54
    Norn. Energy
    0
    0.25
    0.5
    0.75
    1
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Interactive EBS PES Oracle

    View Slide

  196. Experimental Result
    54
    Norn. Energy
    0
    0.25
    0.5
    0.75
    1
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Interactive EBS PES Oracle

    View Slide

  197. Experimental Result
    54
    Norn. Energy
    0
    0.25
    0.5
    0.75
    1
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Interactive EBS PES Oracle

    View Slide

  198. Experimental Result
    54
    Norn. Energy
    0
    0.25
    0.5
    0.75
    1
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Interactive EBS PES Oracle
    QoS Violation
    0
    0.15
    0.3
    0.45
    0.6
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Interactive EBS PES Oracle

    View Slide

  199. Experimental Result
    54
    Norn. Energy
    0
    0.25
    0.5
    0.75
    1
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Interactive EBS PES Oracle
    QoS Violation
    0
    0.15
    0.3
    0.45
    0.6
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Interactive EBS PES Oracle

    View Slide

  200. Experimental Result
    54
    Norn. Energy
    0
    0.25
    0.5
    0.75
    1
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Interactive EBS PES Oracle
    QoS Violation
    0
    0.15
    0.3
    0.45
    0.6
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Interactive EBS PES Oracle

    View Slide

  201. Experimental Result
    54
    Norn. Energy
    0
    0.25
    0.5
    0.75
    1
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Interactive EBS PES Oracle
    QoS Violation
    0
    0.15
    0.3
    0.45
    0.6
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Interactive EBS PES Oracle

    View Slide

  202. Experimental Result
    54
    Norn. Energy
    0
    0.25
    0.5
    0.75
    1
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Interactive EBS PES Oracle
    QoS Violation
    0
    0.15
    0.3
    0.45
    0.6
    163
    msn
    slashdot
    youtube
    google
    amazon
    ebay
    sina
    espn
    bbc
    cnn
    twitter
    Interactive EBS PES Oracle
    61% less QoS Violation and 26% of Energy Reduction

    View Slide

  203. Event-driven Processing is a
    Fundamental and Prevalent Paradigm
    Edge Computing Database Crowdsourced Sensor Network
    Mobile Applications Virtual Reality Internet-of-things Cloud Computing

    View Slide

  204. What’s Next?

    View Slide

  205. “Microkernel”-based Browser
    ▸ A web app/website exercises only a small portion
    of the Web specification. There are “hot” tags,
    CSS properties, etc.
    ▸ Design a minimalistic browser core, and load the
    rest only when requested by a specific webpage.
    57
    https://www.advancedwebranking.com/html/ https://maqentaer.com/devopera-static-backup/http/dev.opera.com/articles/view/mama-css-syntax/index.html

    View Slide

  206. User-Centric Language (Extensions)
    ▸ Web performance is a comprehensive user-centric objective that can be
    not captured by one single metric.
    58

    View Slide

  207. User-Centric Language (Extensions)
    ▸ Web performance is a comprehensive user-centric objective that can be
    not captured by one single metric.
    ▹ Old days: time when unload is fired, doesn’t corresponds to UX
    58

    View Slide

  208. User-Centric Language (Extensions)
    ▸ Web performance is a comprehensive user-centric objective that can be
    not captured by one single metric.
    ▹ Old days: time when unload is fired, doesn’t corresponds to UX
    ▹ Now: First Meaningful Paint (FMP), Time to Interactive (TTI), etc.
    58

    View Slide

  209. User-Centric Language (Extensions)
    ▸ Web performance is a comprehensive user-centric objective that can be
    not captured by one single metric.
    ▹ Old days: time when unload is fired, doesn’t corresponds to UX
    ▹ Now: First Meaningful Paint (FMP), Time to Interactive (TTI), etc.
    ▸ Still, focus on performance analysis and inspection without giving
    developers directly control over user-perceived performance.
    58

    View Slide

  210. User-Centric Language (Extensions)
    ▸ Web performance is a comprehensive user-centric objective that can be
    not captured by one single metric.
    ▹ Old days: time when unload is fired, doesn’t corresponds to UX
    ▹ Now: First Meaningful Paint (FMP), Time to Interactive (TTI), etc.
    ▸ Still, focus on performance analysis and inspection without giving
    developers directly control over user-perceived performance.
    ▹ Developers are given a set of high-level, coarse-grained guidelines
    58

    View Slide

  211. User-Centric Language (Extensions)
    ▸ Web performance is a comprehensive user-centric objective that can be
    not captured by one single metric.
    ▹ Old days: time when unload is fired, doesn’t corresponds to UX
    ▹ Now: First Meaningful Paint (FMP), Time to Interactive (TTI), etc.
    ▸ Still, focus on performance analysis and inspection without giving
    developers directly control over user-perceived performance.
    ▹ Developers are given a set of high-level, coarse-grained guidelines
    ▸ Proposal: empower developers to directly express their requirements of
    user-centric performance goals (up to the browser to deliver).
    58

    View Slide

  212. User-Centric Language (Extensions)
    ▸ Web performance is a comprehensive user-centric objective that can be
    not captured by one single metric.
    ▹ Old days: time when unload is fired, doesn’t corresponds to UX
    ▹ Now: First Meaningful Paint (FMP), Time to Interactive (TTI), etc.
    ▸ Still, focus on performance analysis and inspection without giving
    developers directly control over user-perceived performance.
    ▹ Developers are given a set of high-level, coarse-grained guidelines
    ▸ Proposal: empower developers to directly express their requirements of
    user-centric performance goals (up to the browser to deliver).
    ▹ Paint order: developers identify “hero” elements and specify the order
    in which hero elements are painted. div#hero {paint-order:1}
    58

    View Slide

  213. User-Centric Language (Extensions)
    ▸ Web performance is a comprehensive user-centric objective that can be
    not captured by one single metric.
    ▹ Old days: time when unload is fired, doesn’t corresponds to UX
    ▹ Now: First Meaningful Paint (FMP), Time to Interactive (TTI), etc.
    ▸ Still, focus on performance analysis and inspection without giving
    developers directly control over user-perceived performance.
    ▹ Developers are given a set of high-level, coarse-grained guidelines
    ▸ Proposal: empower developers to directly express their requirements of
    user-centric performance goals (up to the browser to deliver).
    ▹ Paint order: developers identify “hero” elements and specify the order
    in which hero elements are painted. div#hero {paint-order:1}
    ▹ Interactive state: developers specify the kind of interaction that
    should ideally be granted when a particular element is painted.
    div#menu{istate:touchstart,50}
    58

    View Slide