SlideShare a Scribd company logo
What Are Your Programming Language’s
Energy-Delay Implications?
Mining Software Repositories 2018
Gothenburg, Sweden
Stefanos Maria Panos Diomidis
Georgiou Kechagia Louridas Spinellis
Introduction
2
15%
2.3%
Motivation
3
Research Gap
4
Existing Work
• Energy/Performance investigation
• Examination of running applications
• Experiments on a single platform
Ours
• Energy Delay Product measurements
• Comparison of 14 languages
• Analysis of small programming tasks
• Experiments on 3 platforms
Energy Delay Product
5
Research Questions
6
RQ1: Which programming languages are the
most EDP efficient and inefficient for particular
task?
RQ2: Which type of programming languages are,
on average, more EDP efficient and inefficient for
each of our selected platforms?
RQ3: How much does the EDP of each
programming language differ among the selected
platforms?
Programming Languages
• Monthly index rating based on languages
popularity
• Data retrieved from 25 search engines
using search query
• Programming Languages criteria:
1. The least, 5000 hits on Google
2. Turing complete
3. Wikipedia page
7
Selected Programming Languages
Categories Programming Compilers & Interpreters Optimization
Languages Embedded Laptop Server Flags
Compiled C 6.3.0 6.4.1 6.4.1 -O3
C++ 6.3.0 6.4.1 6.4.1 -O3
Go 1.4.3 1.7.6 1.7.6 --
Rust 1.20.0 1.18.0 1.21.0 -O
Swift 3.1.1 3.0.2 3.0.2 -O
Semi-Compiled C# 4.6.2 4.6.2 4.6.2 -optimize+
VB.NET 4.6.2 4.6.2 4.6.2 -optimize+
Java 1.8.0 1.8.0 1.8.0 --
Interpreted JavaScript 9.0.4 8.9.3 8.9.3 --
Perl 5.24.1 5.24.1 5.24.1 --
PHP 5.6.30 7.0.25 7.0.25 --
Python 2.7.23 2.7.13 2.7.13 --
R 3.3.3 3.4.2 3.4.2 --
Ruby 2.4.2 2.4.1 2.4.1 -- 8
Rosetta Code Repository
9
Data Set
Categories Tasks
Arithmetic exponentiation-operator and numerical-integration
Compression huffman-coding and lzw-compression
Concurrent concurrency-computing and synchronous-concurrency
Data structures array-concatenation and json
File handling file-input-output
Recursion Factorial, ackermann-function and palindrome-detection
Regular Expression regular expression
Sorting algorithms selection, insertion, merge, bubble, and quick
String manipulation url-encoding/decoding
Object-Oriented inheritance single/multiple, class, and call-an-object-method
Functional function-composition
10
Amendments
✓ Wrapped tasks in a loop (more than a sec.)
✓ Wrote from scratch missing implementations
✓ Removed multiple implementations of the same
languages
✓ Made tasks execution loop dependent and added
volatile variables
✓ 2000 approx. BASH script to manage data set
11
Automated Script for the experiment
Experimental Platform
13
Execution Process
14
1
2
3
4
5
6
15
16
RQ1. Which programming languages are the most EDP
efficient and inefficient for particular tasks?
17
Task categories Most
efficient/inefficient
Arithmetic C/R, VB.NET
Compression C/VB.NET, Java
Concurrent C/VB.NET, Perl
File Handling Rust/VB.NET
Regular
Expressions
JavaScript/Java
Sorting Go/Swift, R
Functional C++/Swift, Perl
OpenMP + libco
Sys Calls + I/O buffers
V8 engine + RegEx
Memory + Speed
Meta-programming
Computation speed
Possible Applications
18
Task categories Most
efficient/inefficient
Arithmetic C/R, VB.NET
Compression C/VB.NET, Java
Concurrent C/VB.NET, Perl
File Handling Rust/VB.NET, Swift
Regular
Expressions
JavaScript/Java
Sorting Go/Swift, R
Functional C++/Swift, Perl
Task categories Most
efficient/inefficient
Arithmetic C/R, VB.NET
Compression C/VB.NET, Java
Concurrent C/VB.NET, Perl
File Handling Rust/VB.NET, Swift
Regular
Expressions
JavaScript/Java
Sorting Go/Swift, R
Functional C++/Swift, Perl
Task categories Most
efficient/inefficient
Arithmetic C/R, VB.NET
Compression C/VB.NET, Java
Concurrent C/VB.NET, Perl
File Handling Rust/VB.NET, Swift
Regular
Expressions
JavaScript/Java
Sorting Go/Swift, R
Functional C++/Swift, Perl
Task categories Most
efficient/inefficient
Arithmetic C/R, VB.NET
Compression C/VB.NET, Java
Concurrent C/VB.NET, Perl
File Handling Rust/VB.NET, Swift
Regular
Expressions
JavaScript/Java
Sorting Go/Swift, R
Functional C++/Swift, Perl
RQ2. Which types of programming languages are, on average,
more EDP efficient and inefficient for each of the selected
platforms?
19
Rank Embedded Laptop Server
1 C C C
2 C++ Go Go
3 Go C++ C++
4 Rust JavaScript C#
5 JavaScript Rust JavaScript
6 C# C# Rust
7 VB.NET VB.NET VB.NET
8 PHP PHP PHP
9 Ruby Ruby Python
10 Python Swift Ruby
11 Perl Python Swift
12 Java Perl Perl
13 Swift Java Java
14 R R R
RQ3. How much does the EDP of each programming language
differ among the selected platforms?
• Hypothesis H0: A programming language’s average EDP, does not
have a statistically important difference between the measurement
platforms.
20
There is a significant difference between the average EDP, in
some case, of the embedded and laptop platforms.
Conclusions
• Proper selection of programming languages
implementation offer EDP efficiency.
• Compiled are more EDP efficient than semi-compiled and
interpreted, in most of cases.
• There is no statistical difference among the same
implementations on different platforms.
21
Future work
• More and more realistic test inputs
• More categories e.g., networking
• Different CPU clock frequencies
22
Take-aways
• a customized and extended data set that can be used
as a benchmark for similar studies
• a set of tools for measuring the EDP of various
programming languages and tasks
• an empirical study on programming language EDP
implications,
• a programming language-based ranking catalogue, in
the form of heat maps, where developers can find which
programming language to pick for particular tasks
Contact details: sgeorgiou@aueb.gr
sgeorgiou@singularlogic.eu
https://github.com/stefanos1316
Thank you!
References
• https://mashable.com/2017/12/12/qualcomm-s
napdragon-845-phone-innovations/
• http://emsys-design.com/data-centers.php
• https://www.ziprecruiter.com/blog/software-de
veloper-job-description-sample-template/
• http://www.lincoder.com/using-strace-to-trace-
system-calls-and-signals-in-linux/
• https://en.wikipedia.org/wiki/Npm_(software)
EDP how it works
Consider the following case where we have
applications A1 and A2.
A1 has 2 seconds of execution time and 5 joules
of energy consumption.
A2 has 3 seconds of execution time and 2 joules
of energy consumption.
By increasing their weights (E x T^w where w =
1,2,3) we can see the following:
w = 1: A1 2s 5j => 10 EDP
A2 3s 2j => 6 EDP
w = 2: A1 4s 5j => 20 EDP
A2 9s 2j => 18 EDP
w = 3: A1 8s 5j => 40 EDP
A2 27s 2j => 54 EDP
Get ready, questions are coming!!!
Which are the different venues for measuring
software’s energy consumption?
What are their pitfalls of each approach?
What are your Programming Language's Energy-Delay Implications?

More Related Content

What's hot

Parallel language and compiler
Parallel language and compilerParallel language and compiler
Parallel language and compiler
SVijaylakshmi
 
CV_reuven_shefer
CV_reuven_sheferCV_reuven_shefer
CV_reuven_shefer
reuven shefer
 
Embedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals masterEmbedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals master
Hossam Hassan
 
introduction to programming languages
introduction to programming languagesintroduction to programming languages
introduction to programming languages
NaqashAhmad14
 
VenkateshPenta_Thunderhead_6.7Yrs
VenkateshPenta_Thunderhead_6.7YrsVenkateshPenta_Thunderhead_6.7Yrs
VenkateshPenta_Thunderhead_6.7Yrs
Venkatesh Penta
 
Ppl for students unit 1,2 and 3
Ppl for students unit 1,2 and 3Ppl for students unit 1,2 and 3
Ppl for students unit 1,2 and 3
Akshay Nagpurkar
 
Compiler design tutorial
Compiler design tutorialCompiler design tutorial
Compiler design tutorial
HarikaReddy115
 
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programming
Cavite National Science High School
 
Compiler design
Compiler designCompiler design
Compiler design
suganyasanjai
 
Julia Computing - an alternative to Hadoop
Julia Computing - an alternative to HadoopJulia Computing - an alternative to Hadoop
Julia Computing - an alternative to Hadoop
Shaurya Shekhar
 
Principles of programming
Principles of programmingPrinciples of programming
Principles of programming
Rob Paok
 
The ICNP BaT from translation tool to translation server
The ICNP BaT from translation tool to translation serverThe ICNP BaT from translation tool to translation server
The ICNP BaT from translation tool to translation server
Ulrich Schrader
 
Introduction to course
Introduction to courseIntroduction to course
Introduction to course
nikit meshram
 
subbu_resume
subbu_resumesubbu_resume
subbu_resume
Subbarao Babu
 
Introduction to matlab for medical doctors and biologists (call slides)
Introduction to matlab for medical doctors and biologists (call slides)Introduction to matlab for medical doctors and biologists (call slides)
Introduction to matlab for medical doctors and biologists (call slides)
Biomathematics
 
kapil_2_3years
kapil_2_3yearskapil_2_3years
kapil_2_3years
Kapil Chauhan
 
Dhiraj_Resume
Dhiraj_ResumeDhiraj_Resume
Dhiraj_Resume
dhirajsi
 
Managing multilingual webcontent
Managing multilingual webcontentManaging multilingual webcontent
Managing multilingual webcontent
CrossLang / CrossCheck / CrossCast
 
Specification of a Visual Programming Language by Example
Specification of a Visual Programming Language by ExampleSpecification of a Visual Programming Language by Example
Specification of a Visual Programming Language by Example
Maximilian Fellner
 
KRITI_BHOLA_CV
KRITI_BHOLA_CVKRITI_BHOLA_CV
KRITI_BHOLA_CV
kriti bhola
 

What's hot (20)

Parallel language and compiler
Parallel language and compilerParallel language and compiler
Parallel language and compiler
 
CV_reuven_shefer
CV_reuven_sheferCV_reuven_shefer
CV_reuven_shefer
 
Embedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals masterEmbedded c c++ programming fundamentals master
Embedded c c++ programming fundamentals master
 
introduction to programming languages
introduction to programming languagesintroduction to programming languages
introduction to programming languages
 
VenkateshPenta_Thunderhead_6.7Yrs
VenkateshPenta_Thunderhead_6.7YrsVenkateshPenta_Thunderhead_6.7Yrs
VenkateshPenta_Thunderhead_6.7Yrs
 
Ppl for students unit 1,2 and 3
Ppl for students unit 1,2 and 3Ppl for students unit 1,2 and 3
Ppl for students unit 1,2 and 3
 
Compiler design tutorial
Compiler design tutorialCompiler design tutorial
Compiler design tutorial
 
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programming
 
Compiler design
Compiler designCompiler design
Compiler design
 
Julia Computing - an alternative to Hadoop
Julia Computing - an alternative to HadoopJulia Computing - an alternative to Hadoop
Julia Computing - an alternative to Hadoop
 
Principles of programming
Principles of programmingPrinciples of programming
Principles of programming
 
The ICNP BaT from translation tool to translation server
The ICNP BaT from translation tool to translation serverThe ICNP BaT from translation tool to translation server
The ICNP BaT from translation tool to translation server
 
Introduction to course
Introduction to courseIntroduction to course
Introduction to course
 
subbu_resume
subbu_resumesubbu_resume
subbu_resume
 
Introduction to matlab for medical doctors and biologists (call slides)
Introduction to matlab for medical doctors and biologists (call slides)Introduction to matlab for medical doctors and biologists (call slides)
Introduction to matlab for medical doctors and biologists (call slides)
 
kapil_2_3years
kapil_2_3yearskapil_2_3years
kapil_2_3years
 
Dhiraj_Resume
Dhiraj_ResumeDhiraj_Resume
Dhiraj_Resume
 
Managing multilingual webcontent
Managing multilingual webcontentManaging multilingual webcontent
Managing multilingual webcontent
 
Specification of a Visual Programming Language by Example
Specification of a Visual Programming Language by ExampleSpecification of a Visual Programming Language by Example
Specification of a Visual Programming Language by Example
 
KRITI_BHOLA_CV
KRITI_BHOLA_CVKRITI_BHOLA_CV
KRITI_BHOLA_CV
 

Similar to What are your Programming Language's Energy-Delay Implications?

Introduction to Compiler design
Introduction to Compiler design Introduction to Compiler design
Introduction to Compiler design
Dr. C.V. Suresh Babu
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptx
Asst.prof M.Gokilavani
 
C Course material
C Course materialC Course material
C Course material
Fareed Khan
 
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
APIs and SDKs: Breaking Into and Succeeding in a Specialty MarketAPIs and SDKs: Breaking Into and Succeeding in a Specialty Market
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
Scott Abel
 
Week - 04, 05 Software Chapter 2 info sys.ppt
Week - 04, 05 Software Chapter 2 info sys.pptWeek - 04, 05 Software Chapter 2 info sys.ppt
Week - 04, 05 Software Chapter 2 info sys.ppt
TALHA RIAZ PERSOTA
 
Putting Compilers to Work
Putting Compilers to WorkPutting Compilers to Work
Putting Compilers to Work
SingleStore
 
A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...
IRJET Journal
 
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Professor Lili Saghafi
 
Compilers.pptx
Compilers.pptxCompilers.pptx
Compilers.pptx
MohammedMohammed578197
 
What is the best programming language for your web product?
What is the best programming language for your web product?What is the best programming language for your web product?
What is the best programming language for your web product?
MobiDev
 
A Performance Comparison Of C# 2013, Delphi Xe6, And Python 3.4 Languages
A Performance Comparison Of C# 2013, Delphi Xe6, And Python 3.4 LanguagesA Performance Comparison Of C# 2013, Delphi Xe6, And Python 3.4 Languages
A Performance Comparison Of C# 2013, Delphi Xe6, And Python 3.4 Languages
ijpla
 
computer-science_engineering_principles-of-programming-languages_introduction...
computer-science_engineering_principles-of-programming-languages_introduction...computer-science_engineering_principles-of-programming-languages_introduction...
computer-science_engineering_principles-of-programming-languages_introduction...
AshutoshSharma874829
 
Intro to Programming Lang.pptx
Intro to Programming Lang.pptxIntro to Programming Lang.pptx
Intro to Programming Lang.pptx
ssuser51ead3
 
Unit 1
Unit 1Unit 1
LAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoTLAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoT
Linaro
 
DMA113 Chap1
DMA113 Chap1DMA113 Chap1
DMA113 Chap1
Bro Shola Ajayi
 
Comparative study of programming languages
Comparative study of programming languagesComparative study of programming languages
Comparative study of programming languages
Prabhat singh
 
Programming languages,compiler,interpreter,softwares
Programming languages,compiler,interpreter,softwaresProgramming languages,compiler,interpreter,softwares
Programming languages,compiler,interpreter,softwares
Nisarg Amin
 
Qualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDzQualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDz
Paulo Batuta
 
DAE Tools 1.8.0 - Introduction
DAE Tools 1.8.0 - IntroductionDAE Tools 1.8.0 - Introduction
DAE Tools 1.8.0 - Introduction
Dragan Nikolić
 

Similar to What are your Programming Language's Energy-Delay Implications? (20)

Introduction to Compiler design
Introduction to Compiler design Introduction to Compiler design
Introduction to Compiler design
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptx
 
C Course material
C Course materialC Course material
C Course material
 
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
APIs and SDKs: Breaking Into and Succeeding in a Specialty MarketAPIs and SDKs: Breaking Into and Succeeding in a Specialty Market
APIs and SDKs: Breaking Into and Succeeding in a Specialty Market
 
Week - 04, 05 Software Chapter 2 info sys.ppt
Week - 04, 05 Software Chapter 2 info sys.pptWeek - 04, 05 Software Chapter 2 info sys.ppt
Week - 04, 05 Software Chapter 2 info sys.ppt
 
Putting Compilers to Work
Putting Compilers to WorkPutting Compilers to Work
Putting Compilers to Work
 
A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...A Research Study of Data Collection and Analysis of Semantics of Programming ...
A Research Study of Data Collection and Analysis of Semantics of Programming ...
 
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
Programming Languages Categories / Programming Paradigm By: Prof. Lili Saghafi
 
Compilers.pptx
Compilers.pptxCompilers.pptx
Compilers.pptx
 
What is the best programming language for your web product?
What is the best programming language for your web product?What is the best programming language for your web product?
What is the best programming language for your web product?
 
A Performance Comparison Of C# 2013, Delphi Xe6, And Python 3.4 Languages
A Performance Comparison Of C# 2013, Delphi Xe6, And Python 3.4 LanguagesA Performance Comparison Of C# 2013, Delphi Xe6, And Python 3.4 Languages
A Performance Comparison Of C# 2013, Delphi Xe6, And Python 3.4 Languages
 
computer-science_engineering_principles-of-programming-languages_introduction...
computer-science_engineering_principles-of-programming-languages_introduction...computer-science_engineering_principles-of-programming-languages_introduction...
computer-science_engineering_principles-of-programming-languages_introduction...
 
Intro to Programming Lang.pptx
Intro to Programming Lang.pptxIntro to Programming Lang.pptx
Intro to Programming Lang.pptx
 
Unit 1
Unit 1Unit 1
Unit 1
 
LAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoTLAS16-108: JerryScript and other scripting languages for IoT
LAS16-108: JerryScript and other scripting languages for IoT
 
DMA113 Chap1
DMA113 Chap1DMA113 Chap1
DMA113 Chap1
 
Comparative study of programming languages
Comparative study of programming languagesComparative study of programming languages
Comparative study of programming languages
 
Programming languages,compiler,interpreter,softwares
Programming languages,compiler,interpreter,softwaresProgramming languages,compiler,interpreter,softwares
Programming languages,compiler,interpreter,softwares
 
Qualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDzQualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDz
 
DAE Tools 1.8.0 - Introduction
DAE Tools 1.8.0 - IntroductionDAE Tools 1.8.0 - Introduction
DAE Tools 1.8.0 - Introduction
 

Recently uploaded

Signatures of wave erosion in Titan’s coasts
Signatures of wave erosion in Titan’s coastsSignatures of wave erosion in Titan’s coasts
Signatures of wave erosion in Titan’s coasts
Sérgio Sacani
 
快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样
快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样
快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样
hozt8xgk
 
fermented food science of sauerkraut.pptx
fermented food science of sauerkraut.pptxfermented food science of sauerkraut.pptx
fermented food science of sauerkraut.pptx
ananya23nair
 
Farming systems analysis: what have we learnt?.pptx
Farming systems analysis: what have we learnt?.pptxFarming systems analysis: what have we learnt?.pptx
Farming systems analysis: what have we learnt?.pptx
Frédéric Baudron
 
在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样
在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样
在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样
vluwdy49
 
Randomised Optimisation Algorithms in DAPHNE
Randomised Optimisation Algorithms in DAPHNERandomised Optimisation Algorithms in DAPHNE
Randomised Optimisation Algorithms in DAPHNE
University of Maribor
 
Gadgets for management of stored product pests_Dr.UPR.pdf
Gadgets for management of stored product pests_Dr.UPR.pdfGadgets for management of stored product pests_Dr.UPR.pdf
Gadgets for management of stored product pests_Dr.UPR.pdf
PirithiRaju
 
11.1 Role of physical biological in deterioration of grains.pdf
11.1 Role of physical biological in deterioration of grains.pdf11.1 Role of physical biological in deterioration of grains.pdf
11.1 Role of physical biological in deterioration of grains.pdf
PirithiRaju
 
Male reproduction physiology by Suyash Garg .pptx
Male reproduction physiology by Suyash Garg .pptxMale reproduction physiology by Suyash Garg .pptx
Male reproduction physiology by Suyash Garg .pptx
suyashempire
 
BIRDS DIVERSITY OF SOOTEA BISWANATH ASSAM.ppt.pptx
BIRDS  DIVERSITY OF SOOTEA BISWANATH ASSAM.ppt.pptxBIRDS  DIVERSITY OF SOOTEA BISWANATH ASSAM.ppt.pptx
BIRDS DIVERSITY OF SOOTEA BISWANATH ASSAM.ppt.pptx
goluk9330
 
LEARNING TO LIVE WITH LAWS OF MOTION .pptx
LEARNING TO LIVE WITH LAWS OF MOTION .pptxLEARNING TO LIVE WITH LAWS OF MOTION .pptx
LEARNING TO LIVE WITH LAWS OF MOTION .pptx
yourprojectpartner05
 
Juaristi, Jon. - El canon espanol. El legado de la cultura española a la civi...
Juaristi, Jon. - El canon espanol. El legado de la cultura española a la civi...Juaristi, Jon. - El canon espanol. El legado de la cultura española a la civi...
Juaristi, Jon. - El canon espanol. El legado de la cultura española a la civi...
frank0071
 
SDSS1335+0728: The awakening of a ∼ 106M⊙ black hole⋆
SDSS1335+0728: The awakening of a ∼ 106M⊙ black hole⋆SDSS1335+0728: The awakening of a ∼ 106M⊙ black hole⋆
SDSS1335+0728: The awakening of a ∼ 106M⊙ black hole⋆
Sérgio Sacani
 
cathode ray oscilloscope and its applications
cathode ray oscilloscope and its applicationscathode ray oscilloscope and its applications
cathode ray oscilloscope and its applications
sandertein
 
Authoring a personal GPT for your research and practice: How we created the Q...
Authoring a personal GPT for your research and practice: How we created the Q...Authoring a personal GPT for your research and practice: How we created the Q...
Authoring a personal GPT for your research and practice: How we created the Q...
Leonel Morgado
 
JAMES WEBB STUDY THE MASSIVE BLACK HOLE SEEDS
JAMES WEBB STUDY THE MASSIVE BLACK HOLE SEEDSJAMES WEBB STUDY THE MASSIVE BLACK HOLE SEEDS
JAMES WEBB STUDY THE MASSIVE BLACK HOLE SEEDS
Sérgio Sacani
 
Immersive Learning That Works: Research Grounding and Paths Forward
Immersive Learning That Works: Research Grounding and Paths ForwardImmersive Learning That Works: Research Grounding and Paths Forward
Immersive Learning That Works: Research Grounding and Paths Forward
Leonel Morgado
 
TOPIC OF DISCUSSION: CENTRIFUGATION SLIDESHARE.pptx
TOPIC OF DISCUSSION: CENTRIFUGATION SLIDESHARE.pptxTOPIC OF DISCUSSION: CENTRIFUGATION SLIDESHARE.pptx
TOPIC OF DISCUSSION: CENTRIFUGATION SLIDESHARE.pptx
shubhijain836
 
Methods of grain storage Structures in India.pdf
Methods of grain storage Structures in India.pdfMethods of grain storage Structures in India.pdf
Methods of grain storage Structures in India.pdf
PirithiRaju
 
IMPORTANCE OF ALGAE AND ITS BENIFITS.pptx
IMPORTANCE OF ALGAE  AND ITS BENIFITS.pptxIMPORTANCE OF ALGAE  AND ITS BENIFITS.pptx
IMPORTANCE OF ALGAE AND ITS BENIFITS.pptx
OmAle5
 

Recently uploaded (20)

Signatures of wave erosion in Titan’s coasts
Signatures of wave erosion in Titan’s coastsSignatures of wave erosion in Titan’s coasts
Signatures of wave erosion in Titan’s coasts
 
快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样
快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样
快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样
 
fermented food science of sauerkraut.pptx
fermented food science of sauerkraut.pptxfermented food science of sauerkraut.pptx
fermented food science of sauerkraut.pptx
 
Farming systems analysis: what have we learnt?.pptx
Farming systems analysis: what have we learnt?.pptxFarming systems analysis: what have we learnt?.pptx
Farming systems analysis: what have we learnt?.pptx
 
在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样
在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样
在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样
 
Randomised Optimisation Algorithms in DAPHNE
Randomised Optimisation Algorithms in DAPHNERandomised Optimisation Algorithms in DAPHNE
Randomised Optimisation Algorithms in DAPHNE
 
Gadgets for management of stored product pests_Dr.UPR.pdf
Gadgets for management of stored product pests_Dr.UPR.pdfGadgets for management of stored product pests_Dr.UPR.pdf
Gadgets for management of stored product pests_Dr.UPR.pdf
 
11.1 Role of physical biological in deterioration of grains.pdf
11.1 Role of physical biological in deterioration of grains.pdf11.1 Role of physical biological in deterioration of grains.pdf
11.1 Role of physical biological in deterioration of grains.pdf
 
Male reproduction physiology by Suyash Garg .pptx
Male reproduction physiology by Suyash Garg .pptxMale reproduction physiology by Suyash Garg .pptx
Male reproduction physiology by Suyash Garg .pptx
 
BIRDS DIVERSITY OF SOOTEA BISWANATH ASSAM.ppt.pptx
BIRDS  DIVERSITY OF SOOTEA BISWANATH ASSAM.ppt.pptxBIRDS  DIVERSITY OF SOOTEA BISWANATH ASSAM.ppt.pptx
BIRDS DIVERSITY OF SOOTEA BISWANATH ASSAM.ppt.pptx
 
LEARNING TO LIVE WITH LAWS OF MOTION .pptx
LEARNING TO LIVE WITH LAWS OF MOTION .pptxLEARNING TO LIVE WITH LAWS OF MOTION .pptx
LEARNING TO LIVE WITH LAWS OF MOTION .pptx
 
Juaristi, Jon. - El canon espanol. El legado de la cultura española a la civi...
Juaristi, Jon. - El canon espanol. El legado de la cultura española a la civi...Juaristi, Jon. - El canon espanol. El legado de la cultura española a la civi...
Juaristi, Jon. - El canon espanol. El legado de la cultura española a la civi...
 
SDSS1335+0728: The awakening of a ∼ 106M⊙ black hole⋆
SDSS1335+0728: The awakening of a ∼ 106M⊙ black hole⋆SDSS1335+0728: The awakening of a ∼ 106M⊙ black hole⋆
SDSS1335+0728: The awakening of a ∼ 106M⊙ black hole⋆
 
cathode ray oscilloscope and its applications
cathode ray oscilloscope and its applicationscathode ray oscilloscope and its applications
cathode ray oscilloscope and its applications
 
Authoring a personal GPT for your research and practice: How we created the Q...
Authoring a personal GPT for your research and practice: How we created the Q...Authoring a personal GPT for your research and practice: How we created the Q...
Authoring a personal GPT for your research and practice: How we created the Q...
 
JAMES WEBB STUDY THE MASSIVE BLACK HOLE SEEDS
JAMES WEBB STUDY THE MASSIVE BLACK HOLE SEEDSJAMES WEBB STUDY THE MASSIVE BLACK HOLE SEEDS
JAMES WEBB STUDY THE MASSIVE BLACK HOLE SEEDS
 
Immersive Learning That Works: Research Grounding and Paths Forward
Immersive Learning That Works: Research Grounding and Paths ForwardImmersive Learning That Works: Research Grounding and Paths Forward
Immersive Learning That Works: Research Grounding and Paths Forward
 
TOPIC OF DISCUSSION: CENTRIFUGATION SLIDESHARE.pptx
TOPIC OF DISCUSSION: CENTRIFUGATION SLIDESHARE.pptxTOPIC OF DISCUSSION: CENTRIFUGATION SLIDESHARE.pptx
TOPIC OF DISCUSSION: CENTRIFUGATION SLIDESHARE.pptx
 
Methods of grain storage Structures in India.pdf
Methods of grain storage Structures in India.pdfMethods of grain storage Structures in India.pdf
Methods of grain storage Structures in India.pdf
 
IMPORTANCE OF ALGAE AND ITS BENIFITS.pptx
IMPORTANCE OF ALGAE  AND ITS BENIFITS.pptxIMPORTANCE OF ALGAE  AND ITS BENIFITS.pptx
IMPORTANCE OF ALGAE AND ITS BENIFITS.pptx
 

What are your Programming Language's Energy-Delay Implications?

  • 1. What Are Your Programming Language’s Energy-Delay Implications? Mining Software Repositories 2018 Gothenburg, Sweden Stefanos Maria Panos Diomidis Georgiou Kechagia Louridas Spinellis
  • 4. Research Gap 4 Existing Work • Energy/Performance investigation • Examination of running applications • Experiments on a single platform Ours • Energy Delay Product measurements • Comparison of 14 languages • Analysis of small programming tasks • Experiments on 3 platforms
  • 6. Research Questions 6 RQ1: Which programming languages are the most EDP efficient and inefficient for particular task? RQ2: Which type of programming languages are, on average, more EDP efficient and inefficient for each of our selected platforms? RQ3: How much does the EDP of each programming language differ among the selected platforms?
  • 7. Programming Languages • Monthly index rating based on languages popularity • Data retrieved from 25 search engines using search query • Programming Languages criteria: 1. The least, 5000 hits on Google 2. Turing complete 3. Wikipedia page 7
  • 8. Selected Programming Languages Categories Programming Compilers & Interpreters Optimization Languages Embedded Laptop Server Flags Compiled C 6.3.0 6.4.1 6.4.1 -O3 C++ 6.3.0 6.4.1 6.4.1 -O3 Go 1.4.3 1.7.6 1.7.6 -- Rust 1.20.0 1.18.0 1.21.0 -O Swift 3.1.1 3.0.2 3.0.2 -O Semi-Compiled C# 4.6.2 4.6.2 4.6.2 -optimize+ VB.NET 4.6.2 4.6.2 4.6.2 -optimize+ Java 1.8.0 1.8.0 1.8.0 -- Interpreted JavaScript 9.0.4 8.9.3 8.9.3 -- Perl 5.24.1 5.24.1 5.24.1 -- PHP 5.6.30 7.0.25 7.0.25 -- Python 2.7.23 2.7.13 2.7.13 -- R 3.3.3 3.4.2 3.4.2 -- Ruby 2.4.2 2.4.1 2.4.1 -- 8
  • 10. Data Set Categories Tasks Arithmetic exponentiation-operator and numerical-integration Compression huffman-coding and lzw-compression Concurrent concurrency-computing and synchronous-concurrency Data structures array-concatenation and json File handling file-input-output Recursion Factorial, ackermann-function and palindrome-detection Regular Expression regular expression Sorting algorithms selection, insertion, merge, bubble, and quick String manipulation url-encoding/decoding Object-Oriented inheritance single/multiple, class, and call-an-object-method Functional function-composition 10
  • 11. Amendments ✓ Wrapped tasks in a loop (more than a sec.) ✓ Wrote from scratch missing implementations ✓ Removed multiple implementations of the same languages ✓ Made tasks execution loop dependent and added volatile variables ✓ 2000 approx. BASH script to manage data set 11
  • 12. Automated Script for the experiment
  • 15. 15
  • 16. 16
  • 17. RQ1. Which programming languages are the most EDP efficient and inefficient for particular tasks? 17 Task categories Most efficient/inefficient Arithmetic C/R, VB.NET Compression C/VB.NET, Java Concurrent C/VB.NET, Perl File Handling Rust/VB.NET Regular Expressions JavaScript/Java Sorting Go/Swift, R Functional C++/Swift, Perl OpenMP + libco Sys Calls + I/O buffers V8 engine + RegEx Memory + Speed Meta-programming Computation speed
  • 18. Possible Applications 18 Task categories Most efficient/inefficient Arithmetic C/R, VB.NET Compression C/VB.NET, Java Concurrent C/VB.NET, Perl File Handling Rust/VB.NET, Swift Regular Expressions JavaScript/Java Sorting Go/Swift, R Functional C++/Swift, Perl Task categories Most efficient/inefficient Arithmetic C/R, VB.NET Compression C/VB.NET, Java Concurrent C/VB.NET, Perl File Handling Rust/VB.NET, Swift Regular Expressions JavaScript/Java Sorting Go/Swift, R Functional C++/Swift, Perl Task categories Most efficient/inefficient Arithmetic C/R, VB.NET Compression C/VB.NET, Java Concurrent C/VB.NET, Perl File Handling Rust/VB.NET, Swift Regular Expressions JavaScript/Java Sorting Go/Swift, R Functional C++/Swift, Perl Task categories Most efficient/inefficient Arithmetic C/R, VB.NET Compression C/VB.NET, Java Concurrent C/VB.NET, Perl File Handling Rust/VB.NET, Swift Regular Expressions JavaScript/Java Sorting Go/Swift, R Functional C++/Swift, Perl
  • 19. RQ2. Which types of programming languages are, on average, more EDP efficient and inefficient for each of the selected platforms? 19 Rank Embedded Laptop Server 1 C C C 2 C++ Go Go 3 Go C++ C++ 4 Rust JavaScript C# 5 JavaScript Rust JavaScript 6 C# C# Rust 7 VB.NET VB.NET VB.NET 8 PHP PHP PHP 9 Ruby Ruby Python 10 Python Swift Ruby 11 Perl Python Swift 12 Java Perl Perl 13 Swift Java Java 14 R R R
  • 20. RQ3. How much does the EDP of each programming language differ among the selected platforms? • Hypothesis H0: A programming language’s average EDP, does not have a statistically important difference between the measurement platforms. 20 There is a significant difference between the average EDP, in some case, of the embedded and laptop platforms.
  • 21. Conclusions • Proper selection of programming languages implementation offer EDP efficiency. • Compiled are more EDP efficient than semi-compiled and interpreted, in most of cases. • There is no statistical difference among the same implementations on different platforms. 21
  • 22. Future work • More and more realistic test inputs • More categories e.g., networking • Different CPU clock frequencies 22
  • 23. Take-aways • a customized and extended data set that can be used as a benchmark for similar studies • a set of tools for measuring the EDP of various programming languages and tasks • an empirical study on programming language EDP implications, • a programming language-based ranking catalogue, in the form of heat maps, where developers can find which programming language to pick for particular tasks Contact details: sgeorgiou@aueb.gr sgeorgiou@singularlogic.eu https://github.com/stefanos1316 Thank you!
  • 24. References • https://mashable.com/2017/12/12/qualcomm-s napdragon-845-phone-innovations/ • http://emsys-design.com/data-centers.php • https://www.ziprecruiter.com/blog/software-de veloper-job-description-sample-template/ • http://www.lincoder.com/using-strace-to-trace- system-calls-and-signals-in-linux/ • https://en.wikipedia.org/wiki/Npm_(software)
  • 25. EDP how it works Consider the following case where we have applications A1 and A2. A1 has 2 seconds of execution time and 5 joules of energy consumption. A2 has 3 seconds of execution time and 2 joules of energy consumption. By increasing their weights (E x T^w where w = 1,2,3) we can see the following: w = 1: A1 2s 5j => 10 EDP A2 3s 2j => 6 EDP w = 2: A1 4s 5j => 20 EDP A2 9s 2j => 18 EDP w = 3: A1 8s 5j => 40 EDP A2 27s 2j => 54 EDP
  • 26. Get ready, questions are coming!!!
  • 27. Which are the different venues for measuring software’s energy consumption?
  • 28. What are their pitfalls of each approach?