Ecole d'ingénieur et centre de recherche en Sciences du numérique
 

Méthodes de calcul pour les Communications Numériques

[CompMeth]
T Enseignement Technique


Résumé

On traite une sélection d'expériences en laboratoire sur les techniques de programmation et implémentation pour le calcul haute performance dans les systèmes de intercommunications. Les étudiants apprendront des concepts architecturales et méthodes d'optimisation d'un logiciel dans le but d'implémenter un algorithme de façon efficace.

Débouchés pédagogiques: Les étudiants obtiendront des connaissances de certaines méthodes génériques de programmation numérique et une connaissance plus approfondie sur un sujet traité dans le contexte d'un mini-projet. Ils apprendront aussi de travailler en équipe et de synthétiser leur compréhension à travers une présentation a la fin du cours devant tout les étudiants.

Méthodes d'enseignement et d'apprentissage: Cours et laboratoires

Règles du cours: La participation aux séances de laboratoire et au réunions de mini-projet est obligatoire.

Description

Méthodes d'enseignement et d'apprentissage: Cours et laboratoires

1. Lors du premier exercise, les étudiants verront la programmation ou conception d'une implémentation avec l'arithmétique en virgule fixe. En particulier, on traite la gestion de la dégradation du fonctionnement d'un algorithme due à la résolution finie dans la représentation des variables et l'arithmétique avec saturation. Les étudiants analyseront la transformée de Fourier rapide avec deux configurations arithmétiques a travers un banc de test en langage C. Une configuration est représentative d'un processeur de signal numérique (DSP) et l'autre des portes logiques d'un circuit intégré prédiffusé programmable (FPGA).

2. Le deuxième exercice couvre des techniques d'optimisation utilisant les extensions de parallélisation numérique "single-instruction multiple-data" (SIMD) de l'architecture x86-64 ou ARM. Les étudiants implémenteront un multiplication vectorielle par composant pour des vecteurs longs et expérimenteront avec les techniques d'optimisation afin d'atteindre la performance maximale pour l'architecture choisie.

L'exercice montre les méthodes pour analyser la performance temporelle d'une implémentation logicielle. De plus, les étudiants apprendront les façons d'inspecter les choix d'un compilateur afin de peaufiner sa stratégie d'optimisation et finalement d'améliorer la performance du résultat final.

3. Les mini-projets permettront aux étudiants de former des groupes afin d'étudier un problème plus complexe à travers un effort d'équipe. Des réunions régulières seront organisées avec l'instructeur et des assistants afin de guider les étudiants et d'analyser le progrès de l'équipe. Les sujets varient d'année en année mais peuvent inclure

a) acquisition et traitement temps-réel

b) Implementations avec GPU

c) calcul parallèle sur un réseau d'interconnexions très haut-débit et serveurs configurer avec des containeurs.

d) analyse de performance temps-reel

e) accélération SIMD sur processeur ARM embarqué

Nb heures: 42 heures, 36 heures dédiées aux travaux pratiques.

Evaluation: 50% résultats et présentation du mini-projet, 50% rapport et performance lors de travaux pratiques.

 

Nombre d'heures: 42.00
Nombre d'heures par semaine: 3.00
Forme du contrôle: examen écrit