Projets-Stages/Projects-Internship

Propositions de projets-stages / Projects-Internships proposals 2010/2011

Sujets Master M1 projets TER (Descriptif sur le site du Master M1)

  • Programmation efficace des cartes graphiques : L’architecture CUDA de Nvidia permet d’effectuer des calculs parallèles sur les cartes graphiques. L’objectif de ce projet est en premier lieu d’étudier les possibilités offertes par CUDA, puis d’étudier son exploitation dans le cadre d’un code mixte CPU-GPU pour définir des méthodes pour le développement de codes hétérogènes/hybrides. Différents codes seront à réaliser et à tester sur une machine multi-coeurs et multi-GPU.
  • Programmation du processeur CELL : Le processeur CELL équipe de nombreux supercalculateurs ainsi que les PS3. Il présente la particularité d’intégrer un processeur principal ainsi que de 6 à 8 co-processeurs vectoriels capables de fonctionner de manière asynchrone. Cette architecture complexe rend ce processeur particulièrement puissant, mais également plus difficile à programmer et tirer partie de son plein potentiel nécessite une connaissance approfondie de cette architecture.
    L’objectif de ce projet est de proposer des méthodes de programmation plus simples et plus efficaces pour cette architecture. Ces méthodes devront être validées par des tests de performances sur différents codes. Une PS3 sera mise à disposition pour tester la programmation et la performance du processeur CELL.

Sujets IUT 2A projets tutorés

  • Bilbliothèque multi-coeurs/SIMD et tests de performance : Création d’une bibliothèque exploitant les capacités vectorielles (SSE) et multi-coeurs des processeurs actuels. Les bibliothèques actuelles sont encore largement codées de manière séquentielle malgré l’émergence de processeurs 2 à 12 coeurs dotés d’unités vectorielles. L’objectif est de développer quelques fonctions/algorithmes dans des versions SIMD et/ou threadées et de comparer les performances avec des versions séquentielles. Les fonctions visées sont par exemple l’initialisation de structures de données, la recherche, le tri, quelques traitements d’images simples, etc. Les tests de performance seront effectués sur différents ordinateurs dotés de 2 à 48 coeurs.
  • OpenGL Objet : La bibliothèque OpenGL est constituée d’un ensemble de fonctions C permettant d’accéder aux fonctionnalités 3D des cartes graphiques. Ces fonctions sont cependant nombreuses (déclaration de formes, textures, lumières, shaders, etc) et possèdent de nombreux arguments (codage des textures, répétition des textures, couleurs des lumières, paramètres des shaders, etc) rendant leur mise en œuvre complexe. Plusieurs dizaines d’appels sont souvent nécessaires pour réaliser l’affichage de formes simples. L’objectif de ce projet est de simplifier la programmation OpenGL en introduisant une sur-couche objet la plus simple possible et permettant d’exploiter les dernières possibilités des cartes graphiques. Une application basée sur cette sur-couche devra être réalisée afin de la comparer à une version OpenGL standard et de vérifier que les performances ne sont pas affectées.
  • Android et développement natif : Les périphériques sous Android tels que les smartphones ou les tablettes se multiplient actuellement. Leur programmation est basée sur le langage Java qui présente des avantages en terme de portabilité du code binaire entre des architectures différentes. Cependant l’architecture de ces périphériques est souvent basée sur un même processeur de type ARM ce qui limite l’intérêt de l’utilisation du Java. Le kit de développement Android permet également de développer du code natif à partir de code C/C++, mais le support est limité. L’objectif de ce projet est de tester le support et l’intégration de code C/C++ au sein de code Android Java, ainsi que la différence de performance entre du code Java et du code natif. Des exemples d’applications seront à définir conjointement.

Projets-stages terminés / Past projects-internships

Projets TER

  • Programmation performante d’architectures parallèles hétérogènes : Romain JAMET, Clément LEGER, Cédric LUKIC, Vincent PARROT, january-june 2010 (pdf)

Stages

  • Création d’applications mobiles multiplateformes : José MARTINS, june-august 2010 (pdf)