Feuille de route 2019 (3A)

Page principale du cours

Plan

Les cours et séances se déroulent sur 5 séances de 3h mardi après-midi.

Intervenants

Xavier Dupré, Matthieu Durut.

Notes

Liens, notebooks prévus pour les séances pratiques.

Séance 1

Séance 2

Python est devenu le langage de référence pour le machine learning bien qu’il soit très lent. Il doit bien exister quelques tours de magie derrière cet incroyable destin. Cette séance en explique certains en s’intéressant à trois aspects : l’utilisation de C++ via cython, la notion de branching et la parallélisation avec openmp. La séance s’appuie sur le projet td3a_cpp qui peut servir de modèle pour utiliser python et cython pour paralléliser les calculs. Le module fonctionne sur Windows, Linux, Mac OSX et est disponible sur pypi (voir aussi Python rapide avec cython).

cython n’est pas la seule option pour accélérer un programme, pythran. L’article Pythran: Python at C++ speed ! utilise pythran pour accélérer l’algorithme du TSP. Il essaye de convertir un code python en C++. Le projet TSP Simulated Annealing est une bonne base pour construire un projet utilisant pythran et openmp.

Le GPU sous Python est plus facile d’accès avec une librairie de deep learning déjà compilée. pytorch est populaire parmi les chercheurs, tensorflow est le pionnier et de ce fait le plus utilisé, notamment avec keras. Une librairie jeune mais qui s’attaque au machine learning standard sous GPU est rapids (lire RAPIDS cuGraph — The vision and journey to version 1.0 and beyond) et implémente une version GPU des dataframes avec cudf et des algorithmes de machine learning les plus populaires avec cuml.

Séance 5