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

Olivier Aumage, Alexandre Denis, 2010 – 2011

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 2010-2011.

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.

Planning et rattrapages

  • DS le mercredi 24 novembre
  • Pas de cours le mercredi 1er décembre
  • Rattrapage de cours les lundi 29 novembre, 6 décembre et 13 décembre, 14h-16h, amphi E bâtiment A29.

Documents

  • TP 1 : utilisation de pthread
  • TP 2 : parallélisme de tâches, quicksort parallèle
    • Le sujet du TP2.
    • Les séances de TP des 7, 14 et 21 octobre y seront consacrées.
    • Ce TP est noté, à rendre pour le jeudi 11 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 5 : programmation verbs sur réseau Infiniband (premiers pas en Infiniband)
  • TP 6 : programmation verbs sur réseau Infiniband (pipeline 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 21 janvier 2011 au plus tard. Envoyez votre code et votre compte-rendu par mail à Alexandre.Denis@labri.fr.

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écharger l'archive de marcel courante. Les plus téméraires peuvent également suivre la version SVN sur la page PM2 sur gforge
  • Décompresser l'archive
  • Pour ceux ayant déjà utilisé PM2 ou Marcel une année précédente, et qui auraient des variablesPM2_FLAVOR, PM2_ROOT et autres dans leur .bashrc sont priés de les enlever. PM2 utilise désormais autoconf.
  • Suivres les instructions d'installation données dans le fichier marcel/README. Attention, il faut installer dans l'ordre les paquets tbx, Puk, et marcel.
  • 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