Algorithmes Parallèles: Travaux Pratiques

Pendant les séances de TP nous allons implémenter une sélection des algorithmes parallèles.

Les sujets principaux du cours sont:

  • Algorithmes sur les matrices
  • Algorithmes de tri
  • Algorithmes sur les graphes

Détails Pratiques

  • Asssistant: Daniel Lagrava
  • Les TPs ont lieu tous les mardis de 12h30 à 14h00 en salle 316/318.
Les séances de de TPs ne sont pas obligatoires, néanmoins ce contenu fera partie de l'examen
Visitez le site du cours sur dokeos pour faciliter les communications: https://dokeos.unige.ch/home/courses/14002/ Notez qu'il faut s'inscrire.

Exercices

TP 1: Rappel MPI, introduction OpenMP

Le but de ce TP est de faire un rappel de MPI, ainsi que d'offrir une introduction rapide à OpenMP. Veuillez télécharger Les slides et les codes exemples.

La présentation:

Pour la partie MPI:

Pour la partie OpenMP:

TP 2: MPI et performances

Dans ce TP nous allons implémenter la résolution de l'équation de Laplace avec MPI. Ensuite, avec ce code nous allons faire des mesures de performance.

La présentation:

Séance Labo (04/03/2010)

Notez qu'il n'y aura pas de cours ce jeudi. La séance sera remplacée par une séance au laboratoire 314/315 (8:30-10:00)

Profitez de cette occasion pour poser des questions sur MPI et OpenMP.

Séance Exercices (09/03/2010)

La présentation:

Séance Exercices (16/03/2010)

Discusion sur vos résultats.

Scatter & Gather

Exemple d'un code qui fait un scatter simple:

Essayez de le comprendre. Modifiez-le pour faire un gather après le scatter.

Ensuite implémentez une somme des éléments d'un vecteur naïve de la façon suivante: le processeur 0 initialise le vecteur, il le partage entre tous les processeurs. Chaque processeur somme son morceau de vecteur. Après ils envoient tous leur résultat au processeur 0 (avec un gather), celui-ci calcule la somme et rend le résultat final.

A noter que cette façon est naïve car il existe une primitive reduce en MPI qui permet d'appliquer des opérations simples sur des vecteurs distribués (somme, min, max, etc.).