Université Côte d'azur

UE Programmation efficace

Code de l'ECUE : SMUFA127

Ce cours donne droit à 3.0 ECTS.
EUR DS4H
Informatique
Campus SophiaTech Les Lucioles
Master 2
Semestre impair
Français

PRESENTATION

L’objectif est de former les programmeurs à codes des applications efficaces optimisables par compilation avancée, et de comprendre les phénomènes de dégradation/accélération des performances, comme le ralentissement des temps d’exécution ou l’augmentation de la consommation d’énergie.

Contenu

  • Notions des performances des programmes
  • Optimisation des performances des programmes séquentiels
  • Optimisation des performances des programmes à parallélisme d’instructions
  • Optimisation des performances des accès à la hiérarchie mémoire
  • Optimisation de la consommation d’énergie des programmes
  • Performances des programmes sur processeurs multi-coeurs
  • Statistiques et expérimentations en informatique

Responsable(s) du cours

Sid Touati

Présentiel

  • 12h de cours magistral
  • 12h de travaux dirigés

PREREQUIS

Avant le début du cours, je dois ...
  • Systèmes informatiques
  • Architecture des processeurs

OBJECTIFS

A la fin de ce cours, je devrais être capable de...
  • Programmer des logiciels efficaces
  • Identifier les optimisations possibles pour un programme
  • Expliquer les performances observées d'un programme sur un ordinateur
  • Analyser les performances d'une application parallèle ou séquentielle
  • Calculs hautes performances sur supercalculateur

CONTENU

    • Définitions
    • métriques des performances
    • comment évaluer les performances
    • quelle moyenne choisir ?
    • Introduction générale

    • Analyse de code

    • Optimisations locales

    • Optimisations à lucarne

    • Optimisations globales

       

    • Introduction

    • Techniques locales à un bloc de base

    • Techniques locales à une boucle simple

    • Techniques globales à une fonction

    • Techniques globales à une application

    • Cette hiérarchie mémoire qui empêcherait l’exploitation maximale d’ILP

      • Optimisation de registres requis et ILP

      • Ordonnancement ILP et effets de cache

      • Transformation de nids de boucles pour le cache de données

    • Réduction de taille de code

    • Optimisation du placement mémoire

    • Parallélisme de threads et compétition sur les ressources
    • Placement des threads sur les coeurs
  • Aucune description
Accéder au Syllabus complet (Authentification requise)
Important
Ce syllabus n’a aucune valeur contractuelle. Son contenu est susceptible d’évoluer en cours d’année : soyez attentifs aux dernières modifications.