Eléments logiciels pour le traitement des données massives

ENSAE - OMI309

Cours animé par : Matthieu Durut 2, Xavier Dupré 2

Le cours est évalué avec un projet informatique. Programme de l’année 2017 : Feuille de route 2017 (3A).


Eléments techniques

CPU

Notebooks

Le notebook suivant montre comment écrire du code C++ tout en l’utilisant depuis Python pour mesurer une optimisation que proposent les processeurs CPU : le branching.

Lectures

GPU

Lectures sur le GPU

Lectures sur le C++

Python

Bas niveau

Sécurité et bas niveau

Optimisation

  • No Bits Left Behind : l’article quelques stratégies bas-niveau pour optimiser les programmes

Modules


Eléments théoriques

Crypographie, block chain

Lectures

Compilateur, compilation à la volée, JIT

La compilation à la volée ou JIT pour Just in Time est utilisé pour optimiser une partie du code après que l’exécution du programme ait démarrée. numba permet de demander à un compilateur JIT de remplacer le code python par un code optimisé en C++ souvent beaucoup plus rapide si ce code est purement numérique.

Lectures

à venir

Modules


Eléments logiciels

Compression des données

Lorsque les données sont volumineuses. Une solution consiste à les compresser.

Lectures

Modules

Workflow de données

Lectures

Modules

Framework de deep learning

Quelques modules spécialisé dans le calcul GPU:

Les ingénieurs cherchent sans arrêt à créer le bon outil, celui qui leur fait gagner du temps lors de la conception de programmes complexes. Voici quelques outils qui vont dans ce sens. Il faut toujours regarder la date de création de l’outil, s’il est toujours maintenu, s’il est utilisé…


Map Reduce

Map Reduce en pratique

Lectures

Vidéos

avec PIG sur Azure et Cloudera

Les trois séances suivantes sont plus appliquées et dédiées à la découverte de Hadoop, un environnement qui permet d’exécuter des tâches Map/Reduce. Plusieurs angles d’approche sont possibles. Celle retenue est l’utilisation du langage PIG-latin dont la logique ressemble beaucoup à celle du SQL. Les outils Python 1 simplifient la communication avec le cluster.

Trois projets réalisés par les élèves lors de l’année 2014-2015 :

Lectures

Getting started, installation, setup

PIG

Ces enseignements vous sont proposés via des notebooks. Ils requièrent une surcouche apporté par le module pyensae. Le python n’est pas l’objet de ce cours, les notebooks sont utilisés pour pouvoir regrouper dans un même document toutes les opérations effectuées dans un langage Map/Reduce. La page En résumé : Anaconda décrit comment installer ces outils sur les trois OS principaux Windows, OS X, Linux.


Bibliographie

Cours

Articles

Liens

Librairies / outils

  • amazon-dsstne : moteur de recommandation d’Amazon

  • Elastic Search : moteur de recherche

  • Giraph : Large-scale graph processing on Hadoop

  • Hadoop : système de fichier distribué + Map Reduce simple

  • Kafka : distributed streaming platform, conçu pour stocker et récupérer en temps réel des événements de sites web

  • Mesos : Apache Mesos abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), Elixi

  • MLlib : distributed machine learning for Spark

  • Parquet : Apache Parquet is a columnar storage format available to any project in the Hadoop ecosystem.

  • Presto : Distributed SQL Query Engine for Big Data (Facebook)

  • Spark : Map Reduce, minimise les accès disques, (DPark clone Python de Spark, pas vraiment maintenu)

  • Spark SQL : SQL distribué, sur couche de Spark

  • Storm : Apache Storm is a free and open source distributed realtime computation system, conçu pour distribuer des pipelines de traitements de données

  • YARN : Ressource negociator

  • rapids : numpy, pandas version GPU

  • kubernetes : automatisation de déploiement d’applications dans des containers (type docker)

Librairies à suivre

  • multiverso : framework de parallélisation

  • lightLDA : Latent Dirichlet Application parallélisée

  • lightGBM : A fast, distributed, high performance gradient boosting (GBDT, GBRT, GBM or MART) framework based on decision tree algorithms.

Feuilles de routes des années passées

Footnotes

1

C’est l’objet du paragraphe Getting started, installation, setup.

2(1,2)

Contributeur et coordinateur du cours.

3

Contributeur, encadrant.