jeudi 22 décembre 2011

Votre premier Hello World OpenMP sur un environnement Ubuntu 11.04

OpenMP (Open Multi-Processing)

  • Une interface de programmation pour le calcul parallèle sur architecture à mémoire partagée
  • Supportée sur de nombreuses plateformes, incluant Unix et Windows, pour les langages de programmation C/C++ et Fortran
  • Permet de développer rapidement des applications parallèles à petite granularité en restant proche du code séquentiel


#include <omp.h> : directive qui permet d'inclure la bibliotheque omp (OpenMP)

#pragma omp parallel :
  • S'applique à la ligne qui suit ou au bloque suivant.
  • Permet de déclarer une région parallèle. 
Variable privée :
  • est propre à chaque thread
  • a une valeur indéterminée à l'entrée de la région parallèle à moins d'utiliser une clause firstprivate.
NB : Les modifications qu'elle va subir ne seront visible qu'à l'intérieur du thread 


omp_get_num_threads() :  retourne le nombre de threads
omp_get_thread_num()   :   retourne le numéro du thread

Pour modifier le nombre des threads , il suffit de changer  le contenu de la variable OMP_NUM_THREADS
 
export OMP_NUM_THREADS=4


Exécution :