Skip to content
Snippets Groups Projects
Commit 221c57143917 authored by Pierre Augier's avatar Pierre Augier
Browse files

Serge's email

parent ced4a590ceb7
No related branches found
No related tags found
No related merge requests found
......@@ -13,9 +13,9 @@
Zwart recently published in Nature Astronomy a comment on **The ecological
impact of high-performance computing in astrophysics** \cite{Zwart2020}. The
main claim is that the Python programming language represents an issue for the
climate and should be avoided. We will show that scientific programs written in
climate and should be avoided. We advocate that scientific programs written in
Python can be very efficient and energy friendly. We argue that human factors
and education are much more important than the choice of languages.
To support his idea, Zwart presents a benchmark on the N-Body problem with a
very inefficient implementation in Python, running 50 times slower than a C++
......@@ -17,9 +17,9 @@
Python can be very efficient and energy friendly. We argue that human factors
and education are much more important than the choice of languages.
To support his idea, Zwart presents a benchmark on the N-Body problem with a
very inefficient implementation in Python, running 50 times slower than a C++
implementation! As Python users concerned about our ecological impact, we
implementation. As Python users concerned about our ecological impact, we
worked on similar benchmarks on the same problem[^1]. In contrast to Zwart, we
(i) also consider efficient implementations in Python and Julia and (ii)
properly measure the energy consumption with dedicated hardware equipped with
......@@ -35,8 +35,8 @@
Python is one of the most used and loved languages for science and data
analysis[^3]. Python is a dynamic programming language oriented towards
communication between humans and fast prototyping. Reading and writing Python
is very accessible and do not require a long training. It is generalist (quite
good for very different tasks) and was designed to increase developers
is very accessible and do not require a long training. It is generalist
(seemingly suited to different tasks) and was designed to increase developers
productivity. There are strong open-source communities using Python and a rich
scientific ecosystem of several efficient libraries.
......@@ -46,7 +46,7 @@
[Github reports](https://octoverse.github.com/) or the [Stack Overflow Annual
Developer Survey](https://insights.stackoverflow.com/survey).
It is worth to understand that characterizing a language as being "compiled" or
It is worth understanding that characterizing a language as being "compiled" or
"interpreted" is a language abuse: these categories make sense only for
specific implementations of languages. Moreover, some interpreters of dynamic
languages (for example Julia or Matlab) actually compile parts of the code on
......@@ -112,8 +112,8 @@
implementation. The implementation labelled "Pythran naive" (simple Numpy code
accelerated only by decorating one function with `@transonic.jit`
\cite{transonic}) is only 3 times slower than the Fortran implementation. (3)
All Python implementations are simpler to reason, read and write than the C++
and Fortran implementations.
All Python implementations are simpler to reason about, read and write than the
C++ and Fortran implementations.
For comparison, we also consider three implementations in Julia (blue circles):
the implementation labelled "Julia" is comparable with the "Pythran" and
......@@ -141,11 +141,10 @@
consumption. They should also know how to profile their codes to discover which
parts can potentially be optimized. Therefore, money and time should be
invested on educating students and scientists. This benchmark demonstrates that
Python is actually a good solution to easily obtain good performance with
simple and readable codes. Therefore, teaching efficient Python to scientists
and engineers can be profitable to minimize the overall ecological impact of
computing. Of course, other languages have their own strengths and are more
adapted than Python for specific tasks.
Python can actually be a good solution to easily obtain good performance with
simple and readable codes. Therefore, education and tooling can be profitable
to minimize the overall ecological impact of computing, whatever the underlying
language.
\bibliographystyle{naturemag}
\bibliography{./pubs}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment