Ceci est une ancienne révision du document !
Table des matières
Python: Multiprocessing et GIL
Python est lent et n'est pas multiprocess
Ballivernes … billevesées …
Toutes les Intelligences Artificielles ont une façade en python … Dja daja (ah bon!)
L'interpréteur python est généralement CPython qui est comme son nom l'indique écrit en C, le C serait lent ?
Ressources sur le module multiprocessing
Mais comme souvent, les tutos sont hyper-compliqués, les auteurs montrent qu'ils sont très fort avec des exemples inappropriés.
Remarques
Certains modules, tel que numpy, sont déjà multiprocess.
GIL
Le module threading permet de lancer des tâches en parallèles, mais en réalité elles ne le sont pas: tous se fait sur un seul cœurs du processeur. Les tâches sont découpées en petits bouts, excécution d'un bout d'une, puis un petit de l'autre, etc …
Le GIL (Global Interpreteur Lock) évite de surcharger un thread.
Le module multiprocessing utilise réellement un cœur pour chaque tâche, et il est possible que chaque tâche communique avec une autre.
Par contre, un processus n'utilise toujours qu'un seul cœur.
Exemples
Je vous propose des exemples simples: