Static Analysis for High Performance Python Code Execution with Cython+

  • Last Update:2022-01-20
  • Version:001
  • Language:en

Analysis for High Performance Python Code Execution with Cython+

  • Title : Analysis for High Performance Python Code Execution with Cython+
  • Location : Lille / Paris / Munich / Télétravail
  • Type : full-time
  • Function : Developer
  • Duration : Trainee (3-6 months) / Alternance / Employment
  • Reference : Offer-2022-High-Performance.Python

Description

Cython+ is an experimental extension of the Cython compiler that we are developing at Nexedi as part of a research project. Our goal is to enable parallel multi-threaded execution on multiple cores within the Python ecosystem, currently hindered by Python's GIL.

Cython+ introduces:

  • a class system usable in multi-core execution without the GIL with static typing and automatic reference counting, compiled in C++
  • seamless interoperability with Python: our objects can be seen as both statically typed objects and Python objects
  • an asynchronous execution model centred around the concept of active objects (actors)
  • an implementation of an M:N scheduler inspired by Go
  • a type system for thread-safety inspired by Rust and Pony (under development)

The idea is to facilitate the gradual migration of existing Python code or the writing of high-performance Python libraries with a high-performance language close to Python.

We now have a proof of concept and some promising first use cases, but there is still a lot to do (see our roadmap):

  • finalise the thread-safe type system
  • write standard libraries from C or C++ libraries
  • implement an efficient asynchronous I/O system
  • introduce a promise system to suspend while waiting for tasks to finish
  • use or write a powerful multi-threaded memory allocator with minimal contention

We are looking for a candidate interested in programming language design, with experience in Python or C++ development, and an affinity for open source / free software. Knowledge of concurrent execution, language design, compilation, type systems, or static analysis will always be useful and welcome.

If you are interested in these topics, please contact us!

Responsibilities

  • Define the direction of a brand new language
  • Implement a concurrent execution runtime
  • Write standard Python-like libraries
  • Liaise with the user community

Opportunities

  • Develop in Python, C++ and Cython+.
  • Participate in the development of a programming language
  • Contribute to complex free and open source software solutions

About Nexedi

Nexedi is one of  the leading European open source and free software publishers in Europe with a portfolio of open source solutions of more than 15 million lines of code. Our customized software solutions run at Airbus, Stellantis, Sanef and other enterprises around the world. We participate in industry-leading research projects, try to build Rapid.Space, a fully open cloud provider and lobby for Europe's independence with regards to cloud and communication technologies as well as the use of Free Software. 

Interested?

We would be happy to hear from you, so drop us a line (along with your CV) at jobs(at)nexedi.com and we will get in touch with you.

Nexedi SA
147 Rue de Ballon
59110 La Madeleine
France

Phone+33 629 02 44 25
Mailinfo@nexedi.com
Webwww.nexedi.com



Phone   +33 629 02 44 25
Mail    info@nexedi.com
Web    www.nexedi.com