###############
Parallélisation
###############
.. index:: GIL, Global Lock Interpreter
Le langage Python propose plusieurs façons de paralléliser un traitement
sans faire appel à des librairies extérieures. C'est ce que propose d'aborder
les paragraphes suivantes.
.. toctree::
:maxdepth: 2
thread
.. index:: asyncio, uvloop, gevent
Il existe d'autres librairies qui ont été développés pour des usages
spécifiques telles que
`joblib `_ qui est utilisé
par `scikit-learn `_.
La librairie `gevent `_ est un équivalent
de la librairie `asyncio `_
qui a été intégrée à Python 3.4. Plus récemment, le package
`uvloop `_
propose une accélération de deux à quatre fois par rapport à la librairie
`asyncio `_ :
`uvloop: Blazing fast Python networking `_.
Cette dernière librairie est utilisée par le module
`sanic `_ qui implémenté
un serveur web plus rapide que
`flask `_.
La page `Parallel Processing in Python `_
passe en revue différentes stratégies de parallélisation
pour l'implémentation de calculs numériques avec
:epkg:`joblib`, :epkg:`cython`, :epkg:`OpenMP`.