Jobs/M2 2016 DV Profiling for Climb

From LRDE

Étude et optimisation des performances de la bibliothèque Climb
Reference id

M2 2016 DV Profiling for Climb

Dates

5 - 6 months in 2018

Research field

Dynamic Languages

Related project

Climb

Advisor

Didier Verna

General presentation of the field

Climb est une bibliothèque de traitement d'image écrite en Common Lisp. Elle est pourvue d'un ensemble d'abstractions permettant de décrire des traitements génériques (sans connaissance préalable sur la nature des images cibles) et d'un ensemble d'algorithmes prédéfinis basés sur ces abstractions. Il est évidemment possible d'écrire de nouveaux algorithmes. Elle offre également un DSL (Domain Specifique Language) pour la déclaration de chaînes complexes de traitement et une interface graphique pour la programmation visuelle de ces mêmes chaînes.

Le haut niveau d'abstraction de la bibliothèque a un impact non négligeable sur les performances.

Prerequisites

Une connaissance préalable de Lisp serait un plus, mais n'est pas requise.

Objectives

L'objectif de ce stage est d'étudier en détail le comportement de la bibliothèque vis-à-vis des performances, d'en fournir une analyse critique et constructive puis de proposer des idées d'optimisation. Même si certains centres de coûts sont bien connus ou prévisibles (par exemple le dispatch dynamique de la couche objet), il reste capital de disposer d'une vision précise de la répartition de ces coûts afin par la suite de se livrer à des optimisations pertinentes. Aujourd'hui, la bibliothèque est utilisée comme une platforme expérimentale pour l'étude de différents paradigmes de programmation générique. L'un des intérêts du language Lisp, hautement réflexif, est qu'il donne accès non seulement à de nombreux paradigmes de programmation, mais également à l'implémentation de ceux-ci. Il est donc possible d'analyser non seulement l'impact des paradigmes utilisés sur les performances, mais également l'impact de leur implémentation. Dans une optique d'optimisation, il sera donc possible d'aller jusqu'à faire évoluer l'infrastructure sous-jacente au langage lui-même.

Déroulement du stage:

- découverte du langage Lisp et de la bibliothèque Climb,

- profiling de la bibliothèque et analyse des résultats,

- expérimentations sur toute idée d'optimisation qui pourra surgir, suite à l'analyse précédente.

Benefit for the candidate

Les intérêts pour le stagiaire sont:

- découvrir un nouveau langage de programmation: Lisp,

- se familiariser avec la notion et les techniques de profiling,

- travailler sur des techniques d'optimisation de tous niveaux: algorithmiques, mais aussi purement logicielles (typage statique optionnel, macros, méta-programmation etc.).

References
Place LRDE: How to get to us
Compensation

1000€ gross/month

Future work opportunities

Ce tavail sera effectué en étroite collaboration avec un étudiant actuellement en thèse sur ce projet.

Contact

<didier at lrde . epita . fr>