Systèmes et supports d'exécution pour le parallélisme

Olivier Aumage, Alexandre Denis, 2009 – 2010

Sujets d'Initiation à la Recherche (IR)

Download

Powered By GForge Collaborative Development Environment

Marcel sources are included in the PM2 software suite. The whole distribution is available here.

Description

Cette page regroupe les documents relatifs au cours Système et Supports d'exécutions pour le parallélisme (SSEP) du master SR (Système et Réseaux), pour l'année universitaire 2009-2010.

Le cours SSEP aborde les thématiques des intergiciels, du multithreading et des communications dans le contexte du calcul intensif.

Le cours et les travaux dirigés sont assurés par Alexandre Denis et Olivier Aumage.

Documents

  • TP 1 : utilisation de pthread
  • TP 2 : parallélisme de tâches, quicksort parallèle
    • Le sujet du TP2.
    • Les séance de TP des 8, 15 et 22 octobre y seront consacrées.
    • Ce TP est noté, à rendre pour le jeudi 5 novembre au plus tard. Envoyez votre code et votre compte-rendu par mail à Alexandre.Denis@labri.fr.
  • TP 3 : ordonnanceur de threads coopératif
  • TP 3 : découverte du réseau Myrinet
  • TP 5 : programmation verbs sur InfiniBand.
    • Le sujet du TP6.
    • Un squelette de code pour établir les connexions.
    • Un Makefile pour compiler le squelette ci-dessus.
    • Les spécifications OpenFabrics 1.2 :
    • Ce TP est noté, à rendre pour le vendredi 8 janvier 2010 au plus tard. Envoyez votre code et votre compte-rendu par mail à Alexandre.Denis@labri.fr.
    • Les séances du 10 et 17 décembre seront consacrée à ce sujet.

Archives

Bibliographie

Cours de C sur les pointeurs et structures de données

  • Rappels sur les pointeurs ici.
  • Rappels sur les structures de données dynamiques ici.
  • Présentation sur les pointeurs, le passage de paramètres (et les chaînes de caractères) ici.

Programmation

  • Rappels sur GDB et le débogage ici.

Multithreading

  • Transparents sur la bibliothèque multithread Marcel : ici
  • The Native Posix Thread Library for Linux (Ulrich Drepper, Ingo Molnar, 2000) : ici
  • Portable Multithreading, The Signal Stack Trick for User-Space Thread creation (Ralf Engelschall, 2000) : ici

Ordonnancement

  • Thèse de Vincent Danjean (Marcel, Scheduler Activations) : ici
  • Thèse de Samuel Thibault (Bulles, ordonnancement NUMA) : ici

Contextes System V (makecontext/swapcontext)

  • Exemple : ici
  • Documentation (GNU C library) : ici
  • Documentation (man) : ici

Outils pour les TP

Mesures de temps

Marcel

  • Télécharr marcel-2.90 sur la page PM2 sur gforge
  • Décompressermarcel-2.90
  • Modifier votre .bashrc pour ajouter les lignes :
    export PM2_ROOT=répertoire d'installation de PM2
    export PM2_FLAVOR=marcel_smp
    export PATH=${PM2_ROOT}/bin:${PATH}
  • Relancer le shell !
  • Initialiser l'installation PM2 : dans le répertoire de PM2, taper :
    ./configure
    pm2-create-sample-flavors
    
    Note : cette dernière étape prend du temps. Ne vous inquiétez pas, c'est normal !
  • Compiler PM2 : dans le répertoire d'installation de PM2, taper :
    make
  • Exemple de Makefile pour compiler un programme Marcel.
  • N'oubliez pas de transformez vos appels pthread_* en marcel_* !
  • Insérez un marcel_init(&argc, argv); au début de votre programme.

Gnuplot

  • Page de documentation de gnuplot.
  • Aide gnuplot express :
    • Tracer une courbe simple (fichier d'entrée à deux colonnes) :
      plot "fichier.txt"
    • Utiliser un style avec trait continu :
       set style data linespoints
    • Passer en échelle logarithmique (log 2) pour X :
      set logscale x 2
    • Annuler l'échelle logarithmique :
      unset logscale x
    • Zoomer sur les X de 4 à 4096 :
      plot [4:4096] "fichier.txt"
    • Exporter en fichier postscript :
      set terminal postscript eps
      (passe en mode postscript)
      set output "toto.eps"
      (donne le nom du fichier destination)
      puis tracer la courbe normalement avec
      plot

      Pour revenir en sortie X11 :
      set terminal x11
    • Tracer plusieurs courbes sur le même graphe :
      plot "fichier1.txt", "fichier2.txt"
    • Prendre d'autres colonnes que 1 pour X et 2 pour Y (ex.: 2 pour X, 4 pour Y) :
      plot "fichier.txt" using 2:4

Contact

E-mail:
Olivier.Aumage@inria.fr
Alexandre.Denis@inria.fr
Tel:
05 24 57 41 19 (Olivier Aumage)
05 24 57 41 14 (Alexandre Denis)
Fax:
05 24 57 40 41
Address:
Olivier Aumage / Alexandre denis
Team Runtime
INRIA Bordeaux - Sud-Ouest, Bâtiment A29 bis
351 cours de la Libération
F-33405 TALENCE CEDEX
FRANCE