Softwares

Loky Apr 2023
The aim of this project is to provide a robust, cross-platform and cross-version implementation of the ProcessPoolExecutor class of concurrent.futures.
The aim of this project is to provide a robust, cross-platform and cross-version implementation of the ProcessPoolExecutor class of concurrent.futures. It features:
  • Deadlock free implementation: one of the major concern in standard multiprocessing and concurrent.futures libraries is the ability of the Pool/Executor to handle crashes of worker processes. This library intends to fix those possible deadlocks and send back meaningful errors.

  • Consistent spawn behavior: All processes are started using fork/exec on POSIX systems. This ensures safer interactions with third party libraries.

  • Reusable executor: strategy to avoid respawning a complete executor every time. A singleton pool can be reused (and dynamically resized if necessary) across consecutive calls to limit spawning and shutdown overhead. The worker processes can be shutdown automatically after a configurable idling timeout to free system resources.


python, multiprocessing, parallel computing
BenchOpt Nov 2022
Benchmarking tool for optimization.
BenchOpt is a package to simplify, make more transparent and more reproducible the comparisons of optimization algorithms.

BenchOpt is written in Python but it is available with many programming languages. So far it has been tested with Python, R, Julia and compiled binaries written in C/C++ available via a terminal command. If it can be installed via conda it should just work!
Dicodile Nov 2022
Package to run distributed convolutional sparse coding for very large signals.
Package to run distributed convolutional sparse coding for very large signals.
Joblib Sep 2022
Easy and reliable parallel computing with Python functions.
Joblib is a set of tools to provide lightweight pipelining in Python. In particular:
  • transparent disk-caching of functions and lazy re-evaluation (memoize pattern)
  • easy simple parallel computing
Joblib is optimized to be fast and robust on large data in particular and has specific optimizations for numpy arrays. It is BSD-licensed and its documentation can be found at https://joblib.readthedocs.io/.

Starting 2017, I have been involved in Joblib development, first to integrate loky as a new multiprocessing backend and them as a regular developer for the library.

python, multiprocessing, parallel computing
alphacsc May 2022
alphcsc is a library to perform shift-invariant sparse dictionary learning, also known as convolutional sparse coding (CSC), on time-series data.
alphcsc is a library to perform shift-invariant sparse dictionary learning, also known as convolutional sparse coding (CSC), on time-series data.
DICOD Jul 2018
Package to run the experiments for the ICML paper DICOD: Distributed Convolutional Coordinate Descent for Convolutional Sparse Coding, ICML 2018, T. Moreau, L. Oudre, N. Vayatis.
Package to run the experiments for the ICML paper DICOD: Distributed Convolutional Coordinate Descent for Convolutional Sparse Coding, ICML 2018, T. Moreau, L. Oudre, N. Vayatis.
Gnome Shell Extension NvApplet Oct 2016
Gnome shell extension displaying the status of Nvidia GPU card in the gnome-shell panel.
Gnome shell extension displaying the status of Nvidia GPU card in the gnome-shell panel.


gnome-shell, clutter, bash
Gnome Shell Extension Section Todolist Oct 2016
Gnome shell extension to manage a todolist with different subsections.
Gnome shell extension to manage a todolist with different subsections.
This section is integrated in the gnome shell with a counter of the remaining tasks.
javascript, gnome-shell, bash, clutter