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

GreenWeb: Language Extensions for Energy-Effici...

GreenWeb: Language Extensions for Energy-Efficient Mobile Web Computing

PLDI 2016 Presentation

Yuhao Zhu

June 15, 2016
Tweet

More Decks by Yuhao Zhu

Other Decks in Technology

Transcript

  1. GreenWeb: Language Extensions for Energy-Efficient Mobile Web Computing Yuhao Zhu

    The University of Texas at Austin with Vijay Janapa Reddi PLDI 2016 1
  2. 0 30 60 90 120 2011 2012 2013 2014 2015

    2016 2 Source: BIA/Kelsey Search Volume (B) Web: Mobile Overtaking Desktop
  3. 0 30 60 90 120 2011 2012 2013 2014 2015

    2016 2 Source: BIA/Kelsey Search Volume (B) Mobile Desktop Web: Mobile Overtaking Desktop
  4. 0 30 60 90 120 2011 2012 2013 2014 2015

    2016 2 Source: BIA/Kelsey Search Volume (B) Mobile Desktop Web: Mobile Overtaking Desktop
  5. Energy Concern Among Mobile Developers 4 [ICSE 2016] Manotas et

    al., “An Empirical Study of Practitioners’ Perspectives on Green Software Engineering”
  6. Energy Concern Among Mobile Developers 4 Percentage (%) 0 25

    50 75 100 Mobile Desktop Data Center Never/Rarely Sometimes Often/Almost Always “My applications have requirements about energy usage.” [ICSE 2016] Manotas et al., “An Empirical Study of Practitioners’ Perspectives on Green Software Engineering”
  7. Energy Concern Among Mobile Developers 4 Percentage (%) 0 25

    50 75 100 Mobile Desktop Data Center Never/Rarely Sometimes Often/Almost Always “My applications have requirements about energy usage.” [ICSE 2016] Manotas et al., “An Empirical Study of Practitioners’ Perspectives on Green Software Engineering”
  8. Energy Concern Among Mobile Developers 4 Percentage (%) 0 25

    50 75 100 Mobile Desktop Data Center Never/Rarely Sometimes Often/Almost Always “My applications have requirements about energy usage.” [ICSE 2016] Manotas et al., “An Empirical Study of Practitioners’ Perspectives on Green Software Engineering”
  9. Developers are Willing to Make Trade-offs 5 [ICSE 2016] Manotas

    et al., “An Empirical Study of Practitioners’ Perspectives on Green Software Engineering”
  10. Developers are Willing to Make Trade-offs 5 Percentage (%) 0

    25 50 75 100 Mobile Never/Rarely Sometimes Often/Almost Always “I'm willing to sacrifice performance, etc. for reduced energy usage.” [ICSE 2016] Manotas et al., “An Empirical Study of Practitioners’ Perspectives on Green Software Engineering”
  11. Developers are Willing to Make Trade-offs 5 Percentage (%) 0

    25 50 75 100 Mobile Never/Rarely Sometimes Often/Almost Always “I'm willing to sacrifice performance, etc. for reduced energy usage.” [ICSE 2016] Manotas et al., “An Empirical Study of Practitioners’ Perspectives on Green Software Engineering”
  12. 9 ▸ Runtime that saves energy while meeting the QoS

    constraints GreenWeb: Language for Energy-Efficiency ▸ Language abstractions for expressing QoS
  13. 9 ▸ Runtime that saves energy while meeting the QoS

    constraints ▸ Result in 60% energy savings on real hardware/software implementations GreenWeb: Language for Energy-Efficiency ▸ Language abstractions for expressing QoS
  14. 9 ▸ Runtime the QoS constraints ▸ Result hardware/software implementations

    GreenWeb: Language for Energy-Efficiency ▸ Language abstractions for expressing QoS
  15. 11 Performance QoS Experience [OSDI 1996] Y. Endo et al.,

    “Using Latency to Evaluate Interactive System Performance.” Understanding Mobile Web QoS
  16. 11 Performance QoS Experience [OSDI 1996] Y. Endo et al.,

    “Using Latency to Evaluate Interactive System Performance.” Understanding Mobile Web QoS Too slow
  17. 11 Performance QoS Experience Unusable [OSDI 1996] Y. Endo et

    al., “Using Latency to Evaluate Interactive System Performance.” Understanding Mobile Web QoS Too slow
  18. 11 Performance QoS Experience Unusable Tolerable [OSDI 1996] Y. Endo

    et al., “Using Latency to Evaluate Interactive System Performance.” Understanding Mobile Web QoS Too slow
  19. 11 Performance QoS Experience Unusable Tolerable [OSDI 1996] Y. Endo

    et al., “Using Latency to Evaluate Interactive System Performance.” Understanding Mobile Web QoS Too slow Diminishing Returns
  20. 11 Performance QoS Experience Unusable Tolerable Imperceptible [OSDI 1996] Y.

    Endo et al., “Using Latency to Evaluate Interactive System Performance.” Understanding Mobile Web QoS Too slow Diminishing Returns
  21. 12 Performance QoS Experience Unusable Tolerable Imperceptible Understanding Mobile Web

    QoS Energy [OSDI 1996] Y. Endo et al., “Using Latency to Evaluate Interactive System Performance.”
  22. 12 Performance QoS Experience Unusable Tolerable Imperceptible Understanding Mobile Web

    QoS Energy [OSDI 1996] Y. Endo et al., “Using Latency to Evaluate Interactive System Performance.”
  23. 12 Performance QoS Experience Unusable Tolerable Imperceptible Understanding Mobile Web

    QoS Energy [OSDI 1996] Y. Endo et al., “Using Latency to Evaluate Interactive System Performance.”
  24. 12 Performance QoS Experience Unusable Tolerable Imperceptible Understanding Mobile Web

    QoS Energy [OSDI 1996] Y. Endo et al., “Using Latency to Evaluate Interactive System Performance.”
  25. 12 Performance QoS Experience Unusable Tolerable Imperceptible Understanding Mobile Web

    QoS “Negative” Energy consumption Energy [OSDI 1996] Y. Endo et al., “Using Latency to Evaluate Interactive System Performance.”
  26. 12 Performance QoS Experience Unusable Tolerable Imperceptible Understanding Mobile Web

    QoS Energy [OSDI 1996] Y. Endo et al., “Using Latency to Evaluate Interactive System Performance.”
  27. 12 Performance QoS Experience Unusable Tolerable Imperceptible Understanding Mobile Web

    QoS Energy [OSDI 1996] Y. Endo et al., “Using Latency to Evaluate Interactive System Performance.”
  28. 13 Performance QoS Experience Unusable Tolerable Imperceptible Abstracting Mobile Web

    QoS ▸ Performance metric ▹ Frame latency vs. Frame throughput
  29. 13 Performance QoS Experience Unusable Tolerable Imperceptible Abstracting Mobile Web

    QoS ▸ Performance metric ▹ Frame latency vs. Frame throughput QoS Type
  30. 13 Performance QoS Experience Unusable Tolerable Imperceptible Abstracting Mobile Web

    QoS ▸ Performance metric ▹ Frame latency vs. Frame throughput ▸ Threshold performance values ▹ Imperceptible target vs. Usable target QoS Type
  31. 13 Performance QoS Experience Unusable Tolerable Imperceptible Abstracting Mobile Web

    QoS ▸ Performance metric ▹ Frame latency vs. Frame throughput ▸ Threshold performance values ▹ Imperceptible target vs. Usable target QoS Type QoS Target
  32. <html> <head> <script> function animateMove() { /* Animation code omitted

    */ } </script> </head> <body> <div ontouchend=“animateMove()”> <div/> <!— other elements --> </body> </html> 14 Expressing Mobile Web QoS
  33. <html> <head> <script> function animateMove() { /* Animation code omitted

    */ } </script> </head> <body> <div ontouchend=“animateMove()”> <div/> <!— other elements --> </body> </html> 14 Expressing Mobile Web QoS element
  34. <html> <head> <script> function animateMove() { /* Animation code omitted

    */ } </script> </head> <body> <div ontouchend=“animateMove()”> <div/> <!— other elements --> </body> </html> 14 Expressing Mobile Web QoS element event
  35. <html> <head> <script> function animateMove() { /* Animation code omitted

    */ } </script> </head> <body> <div ontouchend=“animateMove()”> <div/> <!— other elements --> </body> </html> 14 Expressing Mobile Web QoS element event
  36. <html> <head> <script> function animateMove() { /* Animation code omitted

    */ } </script> </head> <body> <div ontouchend=“animateMove()”> <div/> <!— other elements --> </body> </html> 14 Expressing Mobile Web QoS Expressing QoS at an event granularity element event
  37. <script> function animateMove() { /* Animation code omitted */ }

    </script> </head> <body> <div ontouchend=“animateMove()”> <div/> <!— other elements --> </body> </html> <style> </style> <html> <head> 15 Expressing Mobile Web QoS Annotation element event
  38. <script> function animateMove() { /* Animation code omitted */ }

    </script> </head> <body> <div ontouchend=“animateMove()”> <div/> <!— other elements --> </body> </html> <style> </style> <html> <head> 15 Expressing Mobile Web QoS Annotation element event div { } ontouchend
  39. { : Type, Target} <script> function animateMove() { /* Animation

    code omitted */ } </script> </head> <body> <div ontouchend=“animateMove()”> <div/> <!— other elements --> </body> </html> <style> </style> <html> <head> 15 Expressing Mobile Web QoS Annotation element event div { } ontouchend: throughput, low;
  40. { : Type, Target} <script> function animateMove() { /* Animation

    code omitted */ } </script> </head> <body> <div ontouchend=“animateMove()”> <div/> <!— other elements --> </body> </html> <style> </style> <html> <head> 15 Expressing Mobile Web QoS Annotation element event div { } ontouchend: throughput, low;
  41. { : Type, Target} <script> function animateMove() { /* Animation

    code omitted */ } </script> </head> <body> <div ontouchend=“animateMove()”> <div/> <!— other elements --> </body> </html> <style> </style> <html> <head> 15 Expressing Mobile Web QoS Annotation element event div { } ontouchend: throughput, low;
  42. { : Type, Target} <script> function animateMove() { /* Animation

    code omitted */ } </script> </head> <body> <div ontouchend=“animateMove()”> <div/> <!— other elements --> </body> </html> <style> </style> <html> <head> 15 Expressing Mobile Web QoS Annotation function newAnimateMove() { /* New animation code */ } element event div { } ontouchend: throughput, low;
  43. { : Type, Target} <script> function animateMove() { /* Animation

    code omitted */ } </script> </head> <body> <div ontouchend=“animateMove()”> <div/> <!— other elements --> </body> </html> <style> </style> <html> <head> 15 Expressing Mobile Web QoS Annotation function newAnimateMove() { /* New animation code */ } Implementation independent element event div { } ontouchend: throughput, low;
  44. { : Type, Target} <script> function animateMove() { /* Animation

    code omitted */ } </script> </head> <body> <div ontouchend=“animateMove()”> <div/> <!— other elements --> </body> </html> <style> </style> <html> <head> 15 Expressing Mobile Web QoS Annotation function newAnimateMove() { /* New animation code */ } Implementation independent element event div { } ontouchend: throughput, low;
  45. { : Type, Target} <script> function animateMove() { /* Animation

    code omitted */ } </script> </head> <body> <div ontouchend=“animateMove()”> <div/> <!— other elements --> </body> </html> <style> </style> <html> <head> 15 Expressing Mobile Web QoS Annotation function newAnimateMove() { /* New animation code */ } Implementation independent Non-interfering w.r.t. functionality element event div { } ontouchend: throughput, low;
  46. 16 Original application GreenWeb- annotated application GreenWeb Annotation Process Automatic

    Annotation? ▸ AutoGreen: automatically reasons about and inserts GreenWeb annotations
  47. 16 GreenWeb- annotated application GreenWeb Annotation Process Automatic Annotation? ▸

    AutoGreen: automatically reasons about and inserts GreenWeb annotations DOM Tree
  48. ▸ AutoGreen: automatically reasons about and inserts GreenWeb annotations 17

    GreenWeb- annotated application GreenWeb Annotation Process
  49. ▸ AutoGreen: automatically reasons about and inserts GreenWeb annotations 17

    GreenWeb- annotated application GreenWeb Annotation Process Callback Instrumentation
  50. ▸ AutoGreen: automatically reasons about and inserts GreenWeb annotations 17

    GreenWeb- annotated application GreenWeb Annotation Process QoS Information Event Profiling Callback Instrumentation
  51. ▸ AutoGreen: automatically reasons about and inserts GreenWeb annotations 17

    GreenWeb- annotated application GreenWeb Annotation Process QoS Information Event Profiling Annotation Generation Callback Instrumentation
  52. ▸ Language abstractions for expressing QoS 18 ▸ Runtime the

    QoS constraints ▸ Result hardware/software implementations GreenWeb: Language for Energy-Efficiency
  53. ▸ Language abstractions 18 ▸ Runtime that saves energy while

    meeting the QoS constraints ▸ Result hardware/software implementations GreenWeb: Language for Energy-Efficiency
  54. 19 GreenWeb Runtime Overview Frame Event Enforcing event-level QoS at

    the frame-level energy-efficiently Runtime Objective QoS Annotations
  55. QoS type: latency QoS target: 16 ms 19 GreenWeb Runtime

    Overview Frame Event Enforcing event-level QoS at the frame-level energy-efficiently Runtime Objective
  56. QoS type: latency QoS target: 16 ms 19 GreenWeb Runtime

    Overview Frame Event Enforcing event-level QoS at the frame-level energy-efficiently Runtime Objective
  57. QoS type: latency QoS target: 16 ms 19 GreenWeb Runtime

    Overview Frame Event Enforcing event-level QoS at the frame-level energy-efficiently Runtime Objective
  58. QoS type: latency QoS target: 16 ms 19 GreenWeb Runtime

    Overview Frame Event 16 ms Enforcing event-level QoS at the frame-level energy-efficiently Runtime Objective
  59. QoS type: latency QoS target: 16 ms throughput 19 GreenWeb

    Runtime Overview Frame Event 16 ms Enforcing event-level QoS at the frame-level energy-efficiently Runtime Objective
  60. QoS type: latency QoS target: 16 ms throughput 19 GreenWeb

    Runtime Overview Frame Event Frame Frame 16 ms 16 ms 16 ms Enforcing event-level QoS at the frame-level energy-efficiently Runtime Objective
  61. 19 GreenWeb Runtime Overview Frame Event Frame Frame Time Event

    16 ms 16 ms 16 ms Enforcing event-level QoS at the frame-level energy-efficiently Runtime Objective QoS target: 2 s
  62. 19 GreenWeb Runtime Overview Frame Event Frame Frame Time Event

    Frame 16 ms 16 ms 16 ms Enforcing event-level QoS at the frame-level energy-efficiently Runtime Objective 2 s QoS target: 2 s
  63. 19 GreenWeb Runtime Overview Frame Event Frame Frame Time Event

    Frame 16 ms 16 ms 16 ms Enforcing event-level QoS at the frame-level energy-efficiently { Runtime Objective 2 s QoS target: 2 s
  64. 19 GreenWeb Runtime Overview Frame Event Frame Frame Time Event

    Frame 16 ms 16 ms 16 ms Enforcing event-level QoS at the frame-level energy-efficiently Frame Association { Runtime Objective 1 2 s
  65. 19 GreenWeb Runtime Overview Frame Event Frame Frame Time Event

    Frame 16 ms 16 ms 16 ms Enforcing event-level QoS at the frame-level energy-efficiently Frame Association Frame Scheduling { Runtime Objective 1 2 2 s
  66. 21 Frame Association S S L P C Frame Browser

    Process Renderer Process GPU Process Event
  67. 21 Frame Association S S L P C Frame Browser

    Process Renderer Process GPU Process Event Main Thread Compositor Thread
  68. 21 Frame Association S S L P C Frame Browser

    Process Renderer Process GPU Process Event Main Thread Compositor Thread IPC Inter-thread Message
  69. 22 Frame Association S S L P C Frame Browser

    Process Renderer Process GPU Process Event Frame S S L P C
  70. 22 Frame Association S S L P C Frame Browser

    Process Renderer Process GPU Process Event Frame S S L P C Distribute QoS information along with the communication messages
  71. Choices of Energy-saving Techniques 23 GreenWeb can support a range

    of energy saving techniques ▹Dynamic resolution scaling [MobiCom 2015] ▹Power-saving display colors [MobiSys 2012] ▹Selective resource loading [NSDI 2015]
  72. Choices of Energy-saving Techniques 23 GreenWeb can support a range

    of energy saving techniques ▹Dynamic resolution scaling [MobiCom 2015] ▹Power-saving display colors [MobiSys 2012] ▹Selective resource loading [NSDI 2015] ▹ACMP-based hardware mechanism
  73. Energy Consumption Performance Big Core Small Core ACMP-based Hardware Substrate

    24 ▸ Asymmetric Chip-multiprocessor, a.k.a., Big/Little architecture
  74. Energy Consumption Performance Big Core Small Core ACMP-based Hardware Substrate

    24 ▸ Asymmetric Chip-multiprocessor, a.k.a., Big/Little architecture Frequency Levels
  75. Energy Consumption Performance Big Core Small Core ACMP-based Hardware Substrate

    24 ▸ Asymmetric Chip-multiprocessor, a.k.a., Big/Little architecture ▸ Already used in commodity devices (e.g., Samsung Galaxy S6) Frequency Levels
  76. Energy Consumption Performance Big Core Small Core ACMP-based GreenWeb Runtime

    25 ▸ Provide just enough energy to meet QoS constraints
  77. Energy Consumption Performance Big Core Small Core ACMP-based GreenWeb Runtime

    25 ▸ Provide just enough energy to meet QoS constraints div {ontouchend: latency, 16 ms}
  78. Energy Consumption Performance Big Core Small Core ACMP-based GreenWeb Runtime

    25 ▸ Provide just enough energy to meet QoS constraints 16 ms div {ontouchend: latency, 16 ms}
  79. Energy Consumption Performance Big Core Small Core ACMP-based GreenWeb Runtime

    25 ▸ Provide just enough energy to meet QoS constraints 16 ms div {ontouchend: latency, 16 ms}
  80. Energy Consumption Performance Big Core Small Core ACMP-based GreenWeb Runtime

    25 ▸ Provide just enough energy to meet QoS constraints ▸ Event-based scheduling [HPCA 2015]
  81. Energy Consumption Performance ACMP-based GreenWeb Runtime 26 ▸ Provide just

    enough energy to meet QoS constraints ▸ Event-based scheduling [HPCA 2015] Execution Time = [PLDI 2003] Xie, et al., “Compile-Time Dynamic Voltage Scaling Settings: Opportunities and Limits” Energy =
  82. Energy Consumption Performance ACMP-based GreenWeb Runtime 26 ▸ Provide just

    enough energy to meet QoS constraints ▸ Event-based scheduling [HPCA 2015] Execution Time = Tmemory + [PLDI 2003] Xie, et al., “Compile-Time Dynamic Voltage Scaling Settings: Opportunities and Limits” Energy =
  83. Tcpu Energy Consumption Performance ACMP-based GreenWeb Runtime 26 ▸ Provide

    just enough energy to meet QoS constraints ▸ Event-based scheduling [HPCA 2015] Execution Time = Tmemory + [PLDI 2003] Xie, et al., “Compile-Time Dynamic Voltage Scaling Settings: Opportunities and Limits” Energy =
  84. Energy Consumption Performance ACMP-based GreenWeb Runtime 26 ▸ Provide just

    enough energy to meet QoS constraints ▸ Event-based scheduling [HPCA 2015] Execution Time = Tmemory + Ncycles / f [PLDI 2003] Xie, et al., “Compile-Time Dynamic Voltage Scaling Settings: Opportunities and Limits” Energy =
  85. Energy Consumption Performance ACMP-based GreenWeb Runtime 26 ▸ Provide just

    enough energy to meet QoS constraints ▸ Event-based scheduling [HPCA 2015] Execution Time = Tmemory + Ncycles / f [PLDI 2003] Xie, et al., “Compile-Time Dynamic Voltage Scaling Settings: Opportunities and Limits” Energy =
  86. Energy Consumption Performance ACMP-based GreenWeb Runtime 26 ▸ Provide just

    enough energy to meet QoS constraints ▸ Event-based scheduling [HPCA 2015] Execution Time = Tmemory + Ncycles / f [PLDI 2003] Xie, et al., “Compile-Time Dynamic Voltage Scaling Settings: Opportunities and Limits” Energy = Execution Time x Power
  87. ▸ Language abstractions 27 ▸ Runtime that saves energy while

    meeting the QoS constraints ▸ Result hardware/software implementations GreenWeb: Language for Energy-Efficiency
  88. ▸ Language abstractions 27 ▸ Runtime the QoS constraints ▸

    Result in 60% energy savings on real hardware/software implementations GreenWeb: Language for Energy-Efficiency
  89. Real Hardware/Software Setup 28 ODroid XU+E development board, which contains

    an Exynos 5410 SoC used in Samsung Galaxy S4. Implementation incorporated into Chrome running on Android.
  90. Real Hardware/Software Setup 28 ODroid XU+E development board, which contains

    an Exynos 5410 SoC used in Samsung Galaxy S4. Implementation incorporated into Chrome running on Android. UI-level record and replay for reproducibility. [ISPASS’15]
  91. Evaluation ▸Baseline Mechanisms ▹Highest performance (Perf) — Standard to guarantee

    responsiveness ▹Interactive governor (Interactive) — Android default 29 29
  92. Evaluation ▸Baseline Mechanisms ▹Highest performance (Perf) — Standard to guarantee

    responsiveness ▹Interactive governor (Interactive) — Android default 29 ▸Metrics ▹Energy Saving ▹QoS Violation 29
  93. Evaluation ▸Baseline Mechanisms ▹Highest performance (Perf) — Standard to guarantee

    responsiveness ▹Interactive governor (Interactive) — Android default 29 ▸Metrics ▹Energy Saving ▹QoS Violation 29 ▸Applications ▹Top webpages (e.g., www.amazon.com) ▹Web Apps based on popular frameworks (e.g., Todo List)
  94. 30 Norm. Energy 0.0 0.3 0.5 0.8 1.0 CamanJS Craigslist

    Paperjs Goo Google Todo CNet BBC LZMA-JS Amazon W3School MSN GreenWeb Interactive Perf Evaluation Results
  95. 31 Norm. Energy 0.0 0.3 0.5 0.8 1.0 CamanJS Craigslist

    Paperjs Goo Google Todo CNet BBC LZMA-JS Amazon W3School MSN GreenWeb Interactive Perf Evaluation Results
  96. 32 Norm. Energy 0.0 0.3 0.5 0.8 1.0 CamanJS Craigslist

    Paperjs Goo Google Todo CNet BBC LZMA-JS Amazon W3School MSN GreenWeb Interactive Perf Evaluation Results
  97. 33 Evaluation Results QoS Violations (%) 0.0 0.8 1.5 2.3

    3.0 CamanJS Craigslist Paperjs Goo Google Todo CNet BBC LZMA-JS Amazon W3School MSN Norm. Energy 0.0 0.3 0.5 0.8 1.0 CamanJS Craigslist Paperjs Goo Google Todo CNet BBC LZMA-JS Amazon W3School MSN GreenWeb Interactive Perf
  98. Norm. Energy 0.0 0.3 0.5 0.8 1.0 CamanJS Craigslist Paperjs

    Goo Google Todo CNet BBC LZMA-JS Amazon W3School MSN GreenWeb Interactive Perf 34 Evaluation Results QoS Violations (%) 0.0 0.8 1.5 2.3 3.0 CamanJS Craigslist Paperjs Goo Google Todo CNet BBC LZMA-JS Amazon W3School MSN No QoS Violations
  99. Norm. Energy 0.0 0.3 0.5 0.8 1.0 CamanJS Craigslist Paperjs

    Goo Google Todo CNet BBC LZMA-JS Amazon W3School MSN GreenWeb Interactive Perf 34 Evaluation Results QoS Violations (%) 0.0 0.8 1.5 2.3 3.0 CamanJS Craigslist Paperjs Goo Google Todo CNet BBC LZMA-JS Amazon W3School MSN 29.2% - 66.0% energy savings, 0.8% more QoS violations No QoS Violations
  100. 35 GreenWeb Programming language support for balancing energy-efficiency and QoS

    in mobile Web computing Abstraction Express QoS constraints
  101. 35 GreenWeb Programming language support for balancing energy-efficiency and QoS

    in mobile Web computing Abstraction Express QoS constraints Runtime Satisfy QoS specifications using energy saving techniques
  102. 35 GreenWeb Programming language support for balancing energy-efficiency and QoS

    in mobile Web computing Abstraction Express QoS constraints Runtime Satisfy QoS specifications using energy saving techniques Effect Significant energy savings
  103. 37 GreenWeb: Language Extensions for Energy-Efficient Mobile Web Computing Yuhao

    Zhu The University of Texas at Austin with Vijay Janapa Reddi PLDI 2016