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

Small modif intro fluiddyn

parent d4a2cbd7
No related branches found
No related tags found
No related merge requests found
......@@ -64,15 +64,18 @@
% architected, where it is stored, and its reuse potential.}
\href{http://fluiddyn.readthedocs.io}{FluidDyn} is a project to foster
open-science and open-source in the fluid dynamics community. A set of Python
packages forms a framework to study fluid dynamics with different methods, in
particular laboratory experiments (package \fluidpack{lab}), simulations
(packages \fluidpack{fft}, \fluidpack{sim} and \fluidpack{foam}) and data
processing (package \fluidpack{image}). In this article, we give an overview
of the specialized packages of the project (\fluidpack{fft} and \fluidpack{sim}
are described in two companion papers) and then focus on the base package
called \fluidpack{dyn}, which contains basic tools used in the specialized
packages.
open-science and open-source in the fluid dynamics community. It can be seen
as a research project on how to use open-source dynamics, methods and tools to
do better science.
%
A set of Python packages forms a framework to study fluid dynamics with
different methods, in particular laboratory experiments (package
\fluidpack{lab}), simulations (packages \fluidpack{fft}, \fluidpack{sim} and
\fluidpack{foam}) and data processing (package \fluidpack{image}). In this
article, we give an overview of the specialized packages of the project
(\fluidpack{fft} and \fluidpack{sim} are described in two companion papers) and
then focus on the base package called \fluidpack{dyn}, which contains common
code used in the specialized packages.
%
With the projet FluidDyn, we try to demonstrate that specialized scientific
code can be written with methods and good practices of the open-source
......@@ -85,7 +88,7 @@
advantage of the simple object-oriented programming model of Python.
%
All codes are also written to be highly efficient, using C++, Cython and
Pythran for to speedup the performance critical functions.
Pythran to speedup the performance critical functions.
\section*{Keywords}
......@@ -106,9 +109,10 @@
\subsection*{Science, software, open-source and the computer revolution}
Science is mainly a collective activity. \href{https://en.wikipedia.org/wiki/%
Standing_on_the_shoulders_of_giants}{"Standing on the shoulders of giants"}:
how to build new knowledge from the work of others. Need to exchange ideas.
Standing_on_the_shoulders_of_giants}{``Standing on the shoulders of giants''}:
how to build new knowledge from the work of others. One important aspect is the
exchange ideas.
These last decades, we have lived a revolution on how people exchange ideas.
Computers of all kinds (from smartphones to computer clusters) connected by a
......@@ -111,11 +115,6 @@
These last decades, we have lived a revolution on how people exchange ideas.
Computers of all kinds (from smartphones to computer clusters) connected by a
world wide web are very common and used for so many applications.
A lot of money and work. Approximately 5\% PIB. Many companies, some very
powerfull (Google, Facebook).
This is changing our world and also the way science is done.
world wide web are used for so many applications.
......@@ -121,14 +120,14 @@
Software and programming in science take a much bigger place than before.
Change the status of software. Before programs were badly considered. A
mathematical demonstration has to be included in a paper but not a code. Now
codes are at the center of research.
Big changes in software engineering, driven primarily by web. Massive use of
the open-source methods, distributed source management tools and web.
A lot of money and work. Web represents approximately 5\% of GDP in USA! Many
companies, some very powerfull (Google, Facebook). Many companies base part of
their work on the open-source paradigm and use and contribute to open-source
languages, libraries, operating systems.
%
Big changes in software engineering. Massive use of the open-source methods and
tools: distributed source management tools and web-based source development tools
(for example github and bitbucket).
Increase computer power, in particular with GPU and increase knowledge
algorithms of artificial intelligence. Data science. Big boom. Even more money
in software engineering and open-source software.
......@@ -130,8 +129,18 @@
Increase computer power, in particular with GPU and increase knowledge
algorithms of artificial intelligence. Data science. Big boom. Even more money
in software engineering and open-source software.
This dynamics is changing our world and also the way science is done.
Software and programming in science take a much bigger place than before.
Change the status of software. Before programs were sometimes badly
considered. A mathematical demonstration has to be included in a paper but not
a code. Now codes are at the center of research.
Using the open-source methods and tools for science and sharing/collaborating
via the web: ``open-science''.
......@@ -149,9 +158,11 @@
Python in fluid mechanics is growing fast but is still only weakly used. It is
thus still necessary to present its characteristics.
\subsection*{Distributed source management tools}
\subsection*{Methods and tools for Open-source software engineering}
\textbf{Distributed source management tools}
Git, Mercurial
Github, bitbucket, gitlab
......@@ -153,8 +164,13 @@
Git, Mercurial
Github, bitbucket, gitlab
\textbf{Continuous integration}
\textbf{Question and answer websites} (for example stackoverflow)
\subsection*{Python}
The Python language has been design to boost the communication of technical
......@@ -278,7 +294,7 @@
Companies basing their business on Python for science (anaconda). Comparable to
Mathworks but based on open-source solutions.
\subsubsection*{Issues}
\subsubsection*{Two of the main Python issues}
\subparagraph{Since the standard Python interpreter does not do any proper
compilation,} Python code can be is some CPU bounded cases too slow. One have
......@@ -326,7 +342,10 @@
Another strategy is to add a JIT to CPython through an external module (numba)
and to only compile the critical functions. Numba is particularly interesting
because it can take advantage of the GPU.
because it can take advantage of the
GPU. \url{https://devblogs.nvidia.com/parallelforall/seven-things-numba/}
\subparagraph{Other weakness of CPython is its multicore computational
parallelism.}
......
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