Download to read offline
Code for the Earth OCP APAC Engineering Workshop Tokyo Day2 (2013年5月28日) • Application Framework (eco PHP) • Measurement of Runtime Efficiency Cloud Business Alliance Tetsu Saburi, Hideyuki Fukuhara
Session Positioning Application Framework designing "eco PHP" and promote "code for earth" Measurement of Runtime Efficiency This Topic OCP Project
100 Google searches = 30Wh How much energy do you use when you type in a Google search or watch a YouTube video? Google said that 100 searches are equal to a 60-watt light bulb burning for 28 minutes. "Specifically, we currently use about 0.0003 kWh of energy to answer the average search query," Google said. "This translates into roughly 0.2g of carbon dioxide." 2011 PC Magazine 60W 28min x 100 = We ICT user should care about energy consumption of the service that we use.
APPLICATION FRAMEWORK new programming culture (eco PHP) for electric-power-efficiency
Eco Application Framework Eco Programming Eco Platform Software x efficiency = work served by program Energy consumption Measurement of Runtime Efficiency Hardware (Application Framework) (CPU, ..., Shipho) Programmer PHP engine
Eco Programming Only using eco platform is not enough eco platform + good program = efficient Eco car Only using eco car is not enough eco car + bad driving = wasting energy eco car + eco driving = efficient eco platform + bad program = not efficient Programming Convention Driving Manner Eco Platform Eco Platform Eco Platform
Eco Platform OS Library Language Server Cluster CPUs print "Hello World" programmer Framework Current framework and language is designed only for programmer Eco Platform is designed for the earth and programmer. = flexible, scalable, and efficient across the entire stack and easy to maintain PHP, Ruby, Python, Java, Javascript, C#, ..., Django, RoR, ..., OpenMPI, ... programmer language Application framework H/W (CPU) library e.g. - eco PHP platform - eco Ruby platform Application - Web Application - High Performance Computing (CFD, bio, ...)
Distributed Computing Platform for Cluster ...... App App App App App App App App AppApp App AppApp App IaaS/Hardware Distributed Platform OS VM distributed application platform server server Distributed Platform consists of - distributed execute engine: load management and execution fault tolerance - distributed storage: fault tolerance for persistent data - distributed memory: fault tolerance for runtime data (temporary data) - easy to maintain Flavor - Web: small and frequent application (affinity and cache consideration) - HPC: big and long life application (runtime robust, <-homomorphic coding) For cluster (many servers), high efficient and easy-to-use platform is needed.
Astimegoon -Complex -Heavy -Expensive Web Application Framework for Cluster HTTP + Cookie + CGI HTTP + Application Server + Session HTTP + Heavy Application Server + Heavy Object Session Load Balancer Heavy Load Balancer memchache Web App Framework History - simple server framework for cluster - minimum session, minimum server persistence - reconsideration of cookie and client (instead of session & load balancer model) - not only request/response model but also publish/subscribe model or ... Reconsideration of Web App Framework for efficiency e.g. HTTP + Cookie + CGI/wsgi/rack/... or PHP (no session or minimum session framework) Light Load Balance (low cost and loose relation of user & server, DNS RR, SDN, ...) + + + RDB+ RDB NoSQL+ +cache+ Rails, Django, ... NoSQL time
Eco PHP Platform •Eco PHP language= subset of PHP (optimized for Compiler and CPU like http://asmjs.org/ in JS world) •Eco programming convention and Eco Programmer •Eco library •Eco language engine •HipHop compiler •HipHop machine (VM, Processor, SoC) •Eco framework for cluster •Application framework with distributed computing technology •Disaggregated Rack
Eco Programming Culture new programming culture Eco programming is more electric-power-efficient programming. Eco language, eco platform, eco programming convention, and eco programmer makes the world better. eco PHP is cool! Like Eco Wordpress
Goal Create new programming culture • Build eco application framework (eco PHP and middleware) • Foster eco programmer (eco programming conventions) Key technology • Building eco platform to maximize runtime efficiency on OCP physical system • Measurement of runtime efficiency
MEASUREMENT OF RUNTIME EFFICIENCY for the most efficient computing infrastructures
Measuring efficiency Hacking Conventional Computing Infrastructure We started a project at Facebook almost two years ago with a pretty big goal: to build one of the most efficient computing infrastructures at the lowest possible cost. We decided to honor our hacker roots and challenge convention by custom designing and building our software, servers and data centers from the ground up – and then share these technologies as they evolve. Measure the runtime efficiency
Runtime energy efficiency calls of Function A Energy consumption of CPU (Wh) user operations of Application A Energy consumption of server (Wh) Work served Energy consumption e.g.
Example of efficiency Facebook users Power Plants Blog views & updates / sec Racks CPUs convert(), edit(), ... Library calls / sec
energy measurement scope work granularity CPU CPU + memory CPU + memory + IO ... Server ... Servers ... Code snippet Function Application work served energy consumption Choice of numerator and denominator Work granularity •Code snippet: e.g. for(){...}, ... •Function: e.g. regex, image processing, ... •Application: e.g. wordpress •Service: facebook Energy consumption measurement scope •CPU •CPU + memory ... •Server ... •+ Network + Client
Type of measurement application / server work load eco Wordpress 201x Load scenario A - user behavior A - 1000 user - 10 min energy measurement scope Server (OCP1.0 H/W) x 1 Example 1: Application/Server Application (wordpress) A Server Energy consumption Work(Load) Eco wordpress 2014 Eco wordpress 2015 Eco wordpress 2016 Year Test pattern (work load) is contributed by facebook/linaro results?
Example2: CFD Benchmark/A Disaggregated Rack Fluid Calculation (CFD Benchmark) A Disaggregated Rack for HPC
Relations with other OCP Project • HipHop Project (PHP Compiler, PHP VM) • Processor or SoC Project? (Intel, AMD, ARM, ...) • Disaggregated Rack • Japan chapter: "eco Ruby" sub project
2015 document 1 . Application Framework 1.1 Eco PHP 2015 1.1.1 language spec 1.1.2 programming convention 2. Measurement 2.1 wordpress/rack 2.2 2014 vs 2015 ... Documents in future 2014 document 1. Application Framework 1.1 Eco PHP 2014 1.1.1 language spec 1.1.2 programming convention 2. Measurement 2.1 wordpress/server 3. Future vision Application Framework And Measurement of Runtime Efficiency 2014 2016 document 1. Application Framework 1.1 Eco PHP 2016 1.1.1 language spec 1.1.2 programming convention 1.2. Eco Ruby 2016 ... 2. Measurement 2.1 wordpress/rack 2.2 eco library/CPU ... Energy Work(Load) Eco wordpress 2014 Eco wordpress 2015 Eco wordpress 2016