[Python-Dev] CPython build options for out-of-the box performance

Patrascu, Alecsandru alecsandru.patrascu at intel.com
Sun Feb 14 05:31:46 EST 2016


I've added the patches here[1], to be more clear about the workflow and the small modifications in the CPython build system.

[1] http://bugs.python.org/issue26359

Thank you,
Alecsandru

> -----Original Message-----
> From: Python-Dev [mailto:python-dev-
> bounces+alecsandru.patrascu=intel.com at python.org] On Behalf Of Patrascu,
> Alecsandru
> Sent: Tuesday, February 9, 2016 1:45 PM
> To: python-dev at python.org
> Subject: [Python-Dev] CPython build options for out-of-the box performance
> 
> Hi all,
> 
> This is Alecsandru from the Dynamic Scripting Languages Optimization Team
> at Intel Corporation. I want to open a discussion regarding the way
> CPython is built, mainly the options that are available to the
> programmers. Analyzing the CPython ecosystem we can see that there are a
> lot of users that just download the sources and hit the commands
> "./configure", "make" and "make install" once and then continue using it
> with their Python scripts. One of the problems with this workflow it that
> the users do not benefit from the entire optimization features that are
> existing in the build system, such as PGO and LTO.
> 
> Therefore, I propose a workflow, like the following. Assume some work has
> to be done into the CPython interpreter, a developer can do the following
> steps:
> A. Implementation and debugging phase.
>     1. The command "./configure PYDIST=debug" is ran once. It will enable
> the Py_DEBUG, -O0 and -g flags
>     2. The command "make" is ran once or multiple times
> 
> B. Testing the implementation from step A, in a pre-release environment
>     1. The command "./configure PYDIST=devel" is ran once. It will disable
> the Py_DEBUG flags and will enable the -O3 and -g flags, and it is just
> like the current implementation in CPython
>     2. The command "make" is ran once or multiple times
> 
> C. For any other CPython usage, for example distributing the interpreter,
> installing it inside an operating system, or just the majority of users
> who are not CPython developers and only want to compile it once and use it
> as-is:
>     1. The command "./configure" is ran once. Alternatively, the command
> "./configure PYDIST=release" can be used. It will disable all debugging
> functionality, enable the -O3 flag and will enable PGO and LTO.
>     2. The command "make" is ran once
> 
> If you think this benefits CPython, I can create an issue and post the
> patches that enable all of the above.
> 
> Thank you,
> Alecsandru
> 
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: https://mail.python.org/mailman/options/python-
> dev/alecsandru.patrascu%40intel.com


More information about the Python-Dev mailing list