L'équipe de recherche en bioinformatique Sequoia (INRIA / LIFL / Univ. Lille 1) propose le sujet de stage ci-dessous.
La rémunération est suivant les grilles INRIA, en fonction du niveau d'études.
Les candidatures sont ouvertes jusqu'au 2 juillet. Prolongation: les candidatures sont toujours ouvertes...
Contact : Mathieu Giraud, giraud[at]lifl.fr
===
Stage financé, niveau Master, été-automne 2008
Durée : 3 à 4 mois. Début du stage entre juillet et septembre 2008
Bit-parallélisme et calcul sur carte graphiques
http://www2.lifl.fr/~giraud/bit-gpu.html
Pour quelques centaines d'euros, on peut se procurer des cartes graphiques atteignant plusieurs centaines de gigaflops, à comparer aux dizaines de gigaflops des processeurs conventionnels double-coeur ou quadri-coeur. Cette puissance "brute" reflète un modèle d'exécution parallèle bien particulier. Au départ, le calcul généraliste sur unités graphique (GPGPU) détournait l'utilisation des primitives graphiques. Aujourd'hui, des librairies telles que CUDA (Nvidia) permettent d'utiliser directement les cartes graphiques à partir d'un langage C légèrement modifié. Programmer efficacement en CUDA demande cependant une bonne réflexion sur l'architecture sous-jacente.
Le stage consiste à étudier la mise en oeuvre, sur carte graphique, d'une famille d'algorithmes de recherche de motifs utilisés en bioinformatique, au moyen du bit-parallélisme. Le parallélisme au niveau du bit est une technique utilisant les opérateurs logiques comme opérateurs parallèles. Un processeur à 32 ou 64 bits est ainsi vu comme autant de petites unités de calcul parallèles. Avec le grand nombre de processeurs élémentaires sur les cartes graphiques, on peut atteindre dès aujourd'hui des téra-opérations par seconde, ce qui permet de rechercher des motifs complexes sur des génomes entiers.
Selon le profil du candidat, le stage pourra s'orienter vers le développement d'une bibliothèque distribuable d'opérateurs ou bien vers l'étude d'algorithmes adaptés. Dans les deux cas, le succès du stage dépendra d'une compréhension fine de l'architecture de la carte graphique et de ses contraintes.
Prérequis : connaissances en architecture des ordinateurs, et si possible en CUDA.
Références bibliographiques
1. NVIDIA, CUDA Programming Guide, 2007.
2. S. Wu and U. Manber, Fast Text Searching Allowing Errors, Communications of the ACM, 35, 83-91, 1992.
Message édité par magiraud le 03-07-2008 à 15:11:57