c++ vs. python by jahrain jackson home institution: university of hawaii at hilo internship: subaru...

Post on 01-Apr-2015

226 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

C++ vs. PythonC++ vs. PythonBy Jahrain Jackson

Home Institution: University of Hawaii at Hilo

Internship: Subaru Telescope

Mentor: Matt Dinkins

22

The ProblemThe Problem

The Subaru Software Development team (SSD) The Subaru Software Development team (SSD) is migrating their instrument control software is migrating their instrument control software from C/C++ to Python.from C/C++ to Python.

Lack of performance comparisons directly Lack of performance comparisons directly between the two languages.between the two languages.

Information on performance impacts from Information on performance impacts from migrated code is needed.migrated code is needed.

33

My ProjectMy Project

Write performance benchmarking software Write performance benchmarking software in both C/C++ and Python.in both C/C++ and Python.Execute software on Subaru’s Real Time Execute software on Subaru’s Real Time System (AO188RTS) System (AO188RTS) Construct a Wiki page on Subaru’s Wiki to Construct a Wiki page on Subaru’s Wiki to present an analysis on the results.present an analysis on the results.

44

Why Python?Why Python?C++ Python

Complex syntax

Difficult to read

Minimal Syntax

Easier to read and debug

Faster development time

Increases productivity

55

Compiled vs. Interpreted

C++ is a compiled language.

Code is translated from a human readable text form into an executable form that a machine can read.

Compiled code is hardware specific.

Python is an interpreted language.

Code is translated into a machine readable form during run time by an interpreter application.

Interpreted code run on any platform with the interpreter installed.

66

Benchmarking SuiteBenchmarking Suite

Output GUI

77

Testing EnvironmentTesting Environment

AO188RTS - Subaru’s Real Time AO188RTS - Subaru’s Real Time System for controlling the adaptive System for controlling the adaptive optics equipmentoptics equipment

4x Intel Xeon 2GHz Processors4x Intel Xeon 2GHz Processors

RedHawk 4 LinuxRedHawk 4 Linux

Python v2.3, GCC v3.4.6 Python v2.3, GCC v3.4.6 (outdated)(outdated)

Real Time System – A specialized Real Time System – A specialized computer set up for software to computer set up for software to respond immediately with minimal respond immediately with minimal interference from other processes.interference from other processes.

88

Results - The GoodResults - The Good

Searching Sorting

C++ Python C++ Python

(Shorter is better)

Run

time

(ms)

99

Results – The BadResults – The Bad

C++ Python Jitter

Vector Normalization

1010

Results – The UglyResults – The Ugly

C++ Python Jitter

Matrix Inversion

1111

ConclusionsConclusions

Python ran an average of 4x slower than C++ in Python ran an average of 4x slower than C++ in averaging all test results.averaging all test results.Runtime jitter is more important for real-time applications Runtime jitter is more important for real-time applications than average execution times.than average execution times.Mathematical, memory intensive, or complex algorithms Mathematical, memory intensive, or complex algorithms suffer the biggest performance impacts in Python.suffer the biggest performance impacts in Python.Utilizing Pythons built in methods or external modules Utilizing Pythons built in methods or external modules can produce near or better than C++ performance.can produce near or better than C++ performance.

1212

AcknowledgementsAcknowledgements

Matt Dinkins – Project director and Python and Linux guru, helped Matt Dinkins – Project director and Python and Linux guru, helped me learn allot about Python and operating Linux systems.me learn allot about Python and operating Linux systems.

Subaru Telescope – For the internship opportunity and facilitating Subaru Telescope – For the internship opportunity and facilitating our research with the usage of their computers and equipment.our research with the usage of their computers and equipment.

Akamai Internship Program – Hosting and organizing my internship Akamai Internship Program – Hosting and organizing my internship at Subaru Telescope.at Subaru Telescope.

The Akamai Internship Program is funded by the Center for Adaptive Optics through its National Science Foundation Science and Technology Center grant (#AST-987683).

top related