# HG changeset patch
# User paugier <pierre.augier@univ-grenoble-alpes.fr>
# Date 1612366169 -3600
#      Wed Feb 03 16:29:29 2021 +0100
# Node ID fe740f102e65dd610fba565f4c34e3e71b4588f1
# Parent  43776bbcaf5bf08a9c7902072f1f88cf46b14263
First version correspondence.md

diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -48,3 +48,4 @@
 fluidfft_final/Pyfig/fig_classes.svg
 
 reply_Zwart2020/paper.tex
+reply_Zwart2020/correspondence.tex
\ No newline at end of file
diff --git a/reply_Zwart2020/Makefile b/reply_Zwart2020/Makefile
--- a/reply_Zwart2020/Makefile
+++ b/reply_Zwart2020/Makefile
@@ -16,4 +16,10 @@
 	rm -f $(name).pdf
 
 letter_contact_NatureAstronomy.pdf: letter_contact_NatureAstronomy.md figs/fig_bench_nbabel_parallel.png header.tex
-	pandoc -V fontsize=12pt -s letter_contact_NatureAstronomy.md -o letter_contact_NatureAstronomy.pdf
\ No newline at end of file
+	pandoc -V fontsize=12pt -s letter_contact_NatureAstronomy.md -o letter_contact_NatureAstronomy.pdf
+
+correspondence.tex: correspondence.md figs/fig_bench_nbabel_parallel.png header.tex
+	pandoc -V fontsize=12pt --natbib -s correspondence.md -o correspondence.tex
+
+correspondence.pdf: correspondence.tex
+	$(LATEXMK) correspondence.tex
\ No newline at end of file
diff --git a/reply_Zwart2020/correspondence.md b/reply_Zwart2020/correspondence.md
new file mode 100644
--- /dev/null
+++ b/reply_Zwart2020/correspondence.md
@@ -0,0 +1,129 @@
+---
+title: "Ecological impact of computing with Python:
+  education is more important than languages"
+bibliography: ./pubs.bib
+link-citations: true
+lang: en
+documentclass: article
+numbersections: true
+header-includes:
+    - \include{header}
+---
+
+\cite{Zwart2020} recently published in Nature Astronomy a comment on **The
+ecological impact of high-performance computing in astrophysics**. His 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
+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 bad and inefficient implementation in Python, running 50 times slower than
+a C++ 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
+wattmeters[^2].
+
+[^1]: Our code is available here: <https://github.com/paugier/nbabel>.
+
+[^2]: The measurements were carried out on Grid'5000 clusters
+(<https://www.grid5000.fr>).
+
+Before focusing on the N-Body problem, let's put it in perspective and recall
+what is "Python" and why it is so successful. Indeed, all indicators show that
+Python is one of the most used and loved languages for science and data
+analysis[^3]. Python is a generalist programming language (quite good for most
+tasks) oriented towards communication between humans and fast prototyping.
+Reading and writing Python is very accessible and do not require a long
+training. There are strong open-source communities using Python and a rich
+scientific ecosystem of several efficient libraries.
+
+[^3]: TODO. References.
+
+It is worth to understand that in 2020, it is no longer meaningful to separate
+languages as being "compiled" or "interpreted". More precisely, many
+"interpreted" dynamic languages (for example Julia or Matlab) are actually
+partly compiled. Let's recall that compiling code to machine instructions can
+be done ahead-of-time (AOT, before the execution) or just-in-time (JIT, during
+the execution). Python also has AOT and JIT compilers. However, the most
+standard way to execute Python code is to interpret it with a program called
+CPython. It is the reference implementation of the language and in 2021, it
+still does not have a builtin JIT compiler. Therefore, CPython is relatively
+slow which explains Zwart results. However, it is important to realize that
+this inefficiency of the interpreter has a weak effect on the overall
+performance of most programs. The total elapsed time and the energy consumption
+are dominated by hard work done in optimized and efficient libraries. This is
+the basic principle of all the scientific Python ecosystem using Numpy.
+
+This is a very usual situation for which only very few lines of code dominate
+the total computation. It is usually known as the 80/20 rule and associated
+with two principles: (i) "premature optimization is the root of all evil" and
+(ii) "measure, don't guess". These principles also apply for energy efficiency.
+For most Python programs, it would be very inefficient and expensive to turn
+them fully in C++, with a small gain/cost ratio.
+
+However, there are also algorithms requiring low-level code. For example, for
+the N-Body problem, the computation of the accelerations involves for each
+particle a loop on all other particles. Few lines of code are repeated $N^2/2$
+times per timestep. For Zwart benchmark, there are 10000 timesteps and
+$N=16384$, so the program is dominated by 1,342,177,280,000 executions of a
+simple and inexpensive computation. Using CPython for this very hot loop makes
+the whole program very inefficient. Good news for Python, it's very easy to use
+efficient alternatives. For this benchmark, we use 3 tools: (i) Pythran, a
+Python-Numpy AOT compiler transpiling to C++, (ii) Numba, a Python-Numpy JIT
+compiler based on LLVM and (iii) PyPy, an alternative Python interpreter with a
+JIT.
+
+\begin{figure}[ht]
+\centerline{\includegraphics[width=0.65\textwidth]{figs/fig_bench_nbabel_parallel}}
+
+\cprotect\caption{Efficiency in terms of CO$_2$ production and elapsed time for
+10 implementations in Python, Julia, C++ and Fortran. Energy consumption
+measurements were carried out on Grid'5000 clusters with 2.30 GHz Intel Xeon
+E5-2630 processors and converted from kWh to CO$_2$ using 283 g CO$_2$ / kWh.
+Optimizations were activated for all implementations with flags like
+\verb!-OFast!, \verb!-march=native! and \verb!--check-bounds=no!.}
+
+\end{figure}
+
+Figure 1 is equivalent to Figure 3 in Zwart (2020). The CO$_2$ production is
+ploted as a function of the elapsed time for 10 implementations. The C++ and
+Fortran implementations (green stars) are taken from the website
+<http://www.nbabel.org/> and were used by Zwart (2020). Note that these
+implementations could have been further optimized. However, we think they are
+representative of what many scientists using C++ or Fortran could have
+obtained. We consider 3 implementations in Julia (blue circles): "Julia
+nbabel.org" is taken from the NBabel website. "Julia optimized" and "Julia
+parallel" have been proposed by Julia users after a long discussion[^4] on
+Julia's forum. Finally, we consider 5 implementations in Python (red markers).
+We would like to emphasize few points: (1) These implementations are fully
+written in Python. The core of the algorithm is written in "low level" code.
+The implementation using Pythran and Numba are written in Python-Numpy but
+Numpy is only used for its arrays as a data-structure and not for advanced
+high-level functions. (2) Four implementations in Python are fastest than the
+C++ implementation. The simple implementation labelled "Pythran naive" (simple
+Numpy code accelerated only by decorating one function with `@transonic.jit`)
+is only 5.7 times slower than the optimized version in Julia. (3) All Python
+implementations are simpler to reason, read and write than the C++ and Fortran
+implementations.
+
+[^4]: https://discourse.julialang.org/t/nbabel-nbody-integrator-speed-up/
+
+The 4 points close to the bottom-left corner correspond to 2 parallel
+implementations using Pythran+OpenMP and Julia for 6 and 12 cores. We consider
+in Figure 1 the energy consumption of the cores used (6 or 12 for these runs
+and 1 for the sequential jobs), which make sense on shared clusters in which
+one can reserve only the needed cores. We see that parallelism with threads
+speedup the computation but does not decrease too much energy consumption.
+
+We think that minimizing the ecological impact of scientific computing is
+limited by human factors: time, work, knowledge and skills. For example,
+scientists have to be able to run heavy computations on shared clusters
+optimized in terms of energy 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. Our
+measurements demonstrate 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.
diff --git a/reply_Zwart2020/figs/fig_bench_nbabel_parallel.png b/reply_Zwart2020/figs/fig_bench_nbabel_parallel.png
index edf90ef07fc3c0d91201d1274609c8401845dcab..47c2786a2d752abffa7da0bdda8f9599b86f0416
GIT binary patch
literal 47984
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

diff --git a/reply_Zwart2020/header.tex b/reply_Zwart2020/header.tex
--- a/reply_Zwart2020/header.tex
+++ b/reply_Zwart2020/header.tex
@@ -46,3 +46,5 @@
 
 \usepackage{titling}
 \setlength{\droptitle}{-10mm}
+
+\usepackage{cprotect}
\ No newline at end of file
diff --git a/reply_Zwart2020/letter_contact_NatureAstronomy.md b/reply_Zwart2020/letter_contact_NatureAstronomy.md
--- a/reply_Zwart2020/letter_contact_NatureAstronomy.md
+++ b/reply_Zwart2020/letter_contact_NatureAstronomy.md
@@ -70,7 +70,7 @@
 - There is no drastically inefficient implementation. Even the simple
 implementation labelled "Pythran naive" (simple Numpy code accelerated only by
 decorating one function with `@jit`) is only 5.7 times slower than the
-optimized version in Julia, and not by several orders of magnitude.
+optimized version in Julia, and not by orders of magnitude.
 
 - All Python implementations considered in this benchmark are simpler to
 reason, read and write than the C++ and Fortran implementations. These
diff --git a/reply_Zwart2020/paper.md b/reply_Zwart2020/paper.md
--- a/reply_Zwart2020/paper.md
+++ b/reply_Zwart2020/paper.md
@@ -77,7 +77,7 @@
 
 First, one can note that the article is based on only one particular problem
 (N-Body). Most of the time spent in one function of few lines (two loops). It
-is the case in most real codes but one need to keep this in mind when
+is the case in most real codes but one needs to keep this in mind when
 interpreting the results.
 
 The benchmark seems tailored to give a bad result for Python.
@@ -99,9 +99,20 @@
 because of 2 differences in the codes. There is an algorithm problem in the C++
 code and big floats are used in the Fortran code.
 
-We now turn to the presentation of 4 other implementations written only in
+We now turn to the presentation of 5 other implementations written only in
 Python.
 
+- **nbabel/py/bench_pypy_Point.py** contains a pure Python implementation
+running the 1024 particles case with PyPy in 151 s, i.e. only 3 times slower
+than the C++ implementation (compared to ~50 times slower as shown in the
+figure taken from Zwart, 2020).
+
+What is PyPy. PyPy is very promissing. However, PyPy is slow for codes using
+Python extensions using the CPython C-API (in particular Numpy). And pure
+Python as a language is not well adapted for very high performance computing.
+Classes and objects defined in pure Python are too dynamical. There is no
+homogeneous container.
+
 - **nbabel/py/bench_numba.py** is a quite simple Numpy-Numba implementation. We
 measure it to be 20% faster than the C++ implementation. Therefore, we think
 there is a problem with the point in figure 3 of \cite{Zwart2020} which show
@@ -139,16 +150,7 @@
 Just with these small modifications, we obtained very high performance (see
 figure). ...
 
-- **nbabel/py/bench_pypy_Point.py** contains a pure Python implementation
-running the 1024 particles case with PyPy in 151 s, i.e. only 3 times slower
-than the C++ implementation (compared to ~50 times slower as shown in the
-figure taken from Zwart, 2020).
-
-What is PyPy. PyPy is very promissing. However, PyPy is slow for codes using
-Python extensions using the CPython C-API (in particular Numpy). And pure
-Python as a language is not well adapted for very high performance computing.
-Classes and objects defined in pure Python are too dynamical. There is no
-homogeneous container.
+- **nbabel/py/bench_omp.py**
 
 ## What is "Python used for science and data"?