CYTHON+

«La Programmation concurrente multi-coeur en Python»

Le projet "Cython+" vise à transférer le modèle extrêmement performant de programmation concurrente multi-coeur du langage golang vers le langage Python en s'appuyant sur des approches scientifiques et technologiques issues de trois décennies de savoir-faire français dans le domaine de la programmation par acteurs autour d'Actalk. Cython+ est un projet stratégique et très visible car Python, langage d'usage universel d'origine européenne, connaît la plus forte traction du marché mais fait désormais face à la concurrence de Google avec golang.

Synthèse du projet

CYTHON+

Le projet "Cython+" vise à rendre le langage de programmation européen "Python" performant sur les micro-processeurs à plusieurs cœurs, efficace d'un point vue énergétique et à lancer un nouvel éditeur de compilateurs libres. Il s'appuie sur "Cython", un sur-ensemble du langage "Python" très utilisé dans le domaine de l'intelligence artificielle ou du calcul scientifique, et sur trois décennies de savoir-faire français dans le domaine de la programmation à object concurrente autour d'Actalk. Le projet "Cython+" permettra de préserver la position stratégique du langage "Python", de renforcer son large écosystème d'entreprises européennes et de proposer une alternative compétitive et souveraine au langage golang de Google dont le succès croissant menace le leadership de "Python".

Objectifs du projet

L'objet du projet "Cython+" est de faire en sorte que l'on puisse exploiter efficacement tous les cœurs d'un micro-processeur avec un programme écrit en Python dans le domaine de la programmation système ou réseau, de façon à corriger le principal défaut du langage Python, à accroître la compétitivité de son écosystème. L'approche envisagée consiste à transférer le modèle extrêmement performant de programmation concurrente multi-cœurs du langage golang vers le langage Python en s'appuyant sur des approches scientifiques et technologiques innovantes issues de trois décennies de savoir-faire français dans le domaine de la programmation à object concurrente autour d'Actalk.

Cython est en réalité un sur-ensemble du langage Python qui apporte à la fois le typage fort à Python, des performances équivalentes au C et une forme de parallélisme de bas niveau bien adaptée au calcul scientifique. C'est avec Cython que sont développés les librairies scikit-learn ou certains composants de la base de données répartie transactionnelle NEO. Cython corrige les lacunes du langage Python en matière de typage ou de performance. Cython permet aussi de corriger le problème du "Global Interpreter Lock" (GIL) qui est à l'origine du mauvais support des micro-processeurs multi-cœurs en Python.

Nous proposons dans le projet "Cython+" de supprimer le GIL de façon très spécifique : uniquement au niveau des fonctions Cython asynchrones ne faisant pas appel à des objets Python. On ne modifie donc rien dans le langage Python ni dans le runtime "CPython" qui constitue l'implémentation de référence du langage Python en C. Tous les programmes déjà développés en Python restent compatibles. On modifie uniquement le compilateur Cython et la sous-partie du langage Cython disjointe de Python que l'on étend avec un ramasse-miettes et des coroutines exploitables sur une architecture multi-cœur.

Ainsi, "Cython+" offrira le même type de programmation par coroutines que golang, le même niveau de parallélisme, le même type de gestion de mémoire, le même type de performance, une gestion d'exceptions dont golang ne bénéficie pas complètement, un modèle de programmation concurrente meilleur que celui de go, une librairie standard très fournie avec un support communautaire bien plus large et une garantie d'isolation mémoire entre threads. "Cython+" deviendra une alternative à golang présentant de très nombreux avantages, ce qui renforcera la communauté du premier langage européen de développement qu'est devenu Python. 

 

Dernières nouvelles

Nos publications

Code source

Le code source de Cython+ peut être trouvé sur les répertoires suivants :

Ressources

Ce projet a été sélectionné pour recevoir un financement par les Projets Structurants Pour la Compétitivité - N⁰ 1 Régions. Il est soutenu par CapDigitial et la Région Île-de-France.

 

Financé par BPI France  en coopération with Cap Digital  et la région Île-de-France