This job ad has been posted over 40 days ago! (*)
Task : High-performance Python without GIL through type inference and thread-safe memory management in Cython
Preferred location : Lille (France)
Other locations : Paris (France), Munich (Germany)
Type : Internship or Job or PhD
Function : Developer
Duration : 3-6 Months/Permanent
Reference : Offer-2020-Cython
Description : Nexedi is looking for a Python and C developer interested in implementing a multi-threaded coroutine and garbage collector extension for the Cython language.
Nexedi has been extending for one year the Cython compiler with experimental features that provide automated memory management, multi-threading without GIL and type inference. The goal of this effort is to improve Python code execution speed with 100x to 1000x acceleration factor.
Cython is a superset of the Python language that introduces basic type inference and static code analysis. It is the language used to develop libraries such as scikit-learn and lxml.
The various efforts of Nexedi – named Cython+ – are already promising. Read for example the blog entry: Blog Cypclass
The paragraph “An alternative approach to cypclass” describes our short term goals: implement the cypclass idea based on PyObject object protocol rather than on C++ object protocol as it is done currently.
A more long term goal is to implement static analysis of a Python code base and determine subsets of code that can be statically typed and compiled with Cython+, while retaining the flexibility of Python scripting for other parts of the code. This long term goal may be part of full research project based on linear types and type inference systems, based on the concept of progressive types. A PhD position can thus be considered in addition to internship and engineering positions.
Nexedi has been developing free software since launching in 2001. We are maintaining software solutions (see our full stack) with over 10 million lines of code including:
Our economic model requires each developer to fulfill R&D objectives aiming at delivering short to medium sized solutions to customer requirements and progressing the evolution of our software stack. This way we try to be innovative and fund long term free software without the need for venture capital.