FLASH INFORMATIQUE FI



Penser multi-core




Francis LAPIQUE



Une proposition de cours

AMD et Intel semblent avoir mis un terme à la course des fréquences horloge des processeurs. On est loin de l’objectif fixé en 2002 d’atteindre pour 2005 les 10 GHz de fréquence. Côté Intel, on parle maintenant de performance par Watt. Plus de performance, mais à quel coût sur le plan énergétique. Par exemple, pour obtenir une amélioration de performance de 13 pour cent, quel est le prix à payer au niveau de la puissance ? Et bien, nous dit James Reinders (Chief Evangelist chez Intel) : « il n’est pas inhabituel d’augmenter la puissance de 73 pour cent ! D’un autre côté, en se contentant d’une performance de 87 pour cent, la consommation est divisée par un facteur deux ? Pourquoi donc ne pas accoupler deux processeurs, les sous-cadencer, tout en se trouvant dans une situation où la performance est de l’ordre de 73 pour cent plus élevée à consommation égale ».
Voilà sans doute une bonne raison qui nous fait entrevoir que les processeurs /multi-core/ vont faire partie de notre quotidien. Se pose alors la question, que va-t-on en tirer au niveau applicatif ?
Penser parallèle, avec en toile de fond la limitation de la bande passante mémoire et la latence de l’accès mémoire, c’est grossièrement penser à bas niveau en intégrant des interfaces comme MPI, ou processus léger POSIX , à haut niveau comme OpenMP ou encore comme une combinaison des deux, par exemple MPI+OpenMP. En travaillant avec l’interface MPI, vous devez penser votre parallélisme en termes d’échange de messages en faisant des appels du genre MPI_Send et MPI_Recv. En travaillant avec OpenMP, vous ajoutez dans votre code Fortran ou C des directives, appels et variables d’environnement pour indiquer au compilateur les parties à paralléliser ou à non-paralléliser.
Destinée aux architectures multi-core, Intel vient de mettre à disposition, sous licence GPLv2, une bibliothèque Threading Building Blocks (TBB), t pour penser parallèle des applicatifs écrits en C++. L’approche rappelle celle de la Standard Template Library (STL). TBB se compose principalement :

  • d’algorithmes génériques pour la parallélisation :
    • parallel_for
    • parallel_while
    • parallel_reduce
    • pipeline
    • parallel_sort
    • parallel_scan
  • de /containers STL thread-safe / :
    • concurrent_hash_map
    • concurrent_queue
    • concurrent_vector
  • d’objets de synchronisation :
    • atomic, spin_mutex, spin_rw_mutex,
    • queuing_mutex, queuing_rw_mutex, mutex
  • d’une gestion de l’allocation mémoire :
    • cache_aligned_allocator
    • scalable_allocator
  • d’un /task scheduler /qui correspond à la gestion d’un /pool de threads/.

Vous n’avez pas à vous soucier de détails spécifiques de bas niveau, c’est la bibliothèque TBB qui va les prendre en charge.
Nous allons proposer pour les programmeurs C++ (prérequis : une bonne connaissance de la STL), un cours d’initiation à la bibliothèque TBB , et un cours plus avancé sur des caractéristiques plus difficiles de la TBB. Pour une bonne mise en place du cours, pouvez-vous prendre contact avec l’auteur par e-mail en indiquant par quel type de cours vous êtes intéressés et sa durée en nombre de ½ journées.



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.