HMPP

HMPP

Hybrid Multicore Parallel Programming

HMPP (Hybrid Multicore Parallel Programming) est un ensemble d'outils de développement au service de la programmation multi-cœurs hybride. HMPP est un produit commercial de CAPS entreprise [1].

Sommaire

Description

La suite HMPP comprend deux outils :

  • un compilateur C et Fortran,
  • un environnement d'exécution.

Plates-formes supportées :

  • Debian 4.0 et supérieure.
  • RedHat Entreprise Linux 4.5 et supérieure.
  • RedHat Entreprise Linux 5.1 et supérieure.

Les principes

L'idée fondatrice est : « Pour adresser le monde du multi-cœurs hybride le développeur doit annoter son application et non pas la modifier. » De ce principe est né un jeu de directives de compilation. Lesquelles permettent la déclaration et l'appel de codelets, pouvant être déportés et exécutés sur des accélérateurs. Elles indiquent également les conditions d'exécution des codelets (synchrone, asynchrone, garde) et permettent aussi de spécifier les transferts de données.

Les codelets étant liés dynamiquement à l'application, HMPP peut, sans nécessiter de recompilation, utiliser de nouveaux accélérateurs ou même des versions améliorées des codelets.

Les directives HMPP

Les directives HMPP permettent l'exécution distante de partie de code ainsi qu'une gestion des transferts de données vers et depuis les accélérateurs matériels.

Reconnaître une directive HMPP

<label> : identifiant unique pour un couple (codelet, callsite)

<directive type> : type de directive HMPP

<directive parameter> : paramètre de directive HMPP

[&] : permet de continuer la directive sur une nouvelle ligne

Langage C

#pragma hmpp <label> <directive type> [, <directive parameter>]* [&]

Langage Fortran

!hmpp <label> <directive type> [, <directive parameter>]* [&]

Type des directives HMPP

Les directives principales sont :

  • codelet
  • callsite


La directive codelet permet de déclarer une fonction comme étant un codelet. La directive callsite permet l'appel d'un codelet dans le code.


Les directives suivantes permettent une utilisation plus avancée (asynchronisme) :

  • hmppGlobalInit
  • synchronize
  • advanceload
  • delegatedstore
  • release

Références

Publications

  • CAPS boosts multicore software applications with HMPP www.hpcwire.com 12 juin 2008
  • CAPS supports AMD FireStream processors www.hpcwire.com 22 juillet 2008
  • An Evolutionary path for High Performance Heterogeneous Multicore Programming par François Bodin www.hpcwire.com 13 juin 2008

Voir aussi

Articles connexes

liens externes

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Hybrid Multicore Parallel Programming ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article HMPP de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • OpenHMPP — HMPP for Hybrid Multicore Parallel Programming. Based on a set of directives, OpenHMPP Standard is a programming model designed to handle hardware accelerators without the complexity associated with GPU programming. This approach based on… …   Wikipedia

  • Hybrid Multicore Parallel Programming — HMPP (Hybrid Multicore Parallel Programming) est un ensemble d outils de développement au service de la programmation multi cœurs hybride. HMPP est un produit commercial de CAPS entreprise [1]. Sommaire 1 Description 2 Les principes 3 …   Wikipédia en Français

  • OpenHMPP — Le Standard Ouvert OpenHMPP (HMPP pour Hybrid Multicore Parallel Programming) est un modèle de programmation basé sur un jeu de directives, conçu pour manipuler les accélérateurs matériels sans se soucier de la complexité associée à la… …   Wikipédia en Français

  • Cerro de Pasco — This article is about the city of Cerro de Pasco. For other uses, see Pasco. Cerro de Pasco   Town   …   Wikipedia

  • CUDA — Compute Unified Device Architecture CUDA (Compute Unified Device Architecture) est une technologie de GPGPU (General Purpose Computing on Graphics Processing Units), c est à dire qu on utilise un processeur graphique (GPU) pour exécuter des… …   Wikipédia en Français

  • Codelet — est une fonction qui peut être exécutée sur un accélérateur matériel. Propriétés C est une fonction pure ; Il retourne void ; Ses paramètres ne sont pas des alias et peuvent être accessibles en entrée et en sortie. Une exécution de… …   Wikipédia en Français

  • Compute Unified Device Architecture — Schéma de principe de l architecture CUDA CUDA (Compute Unified Device Architecture) est une technologie de GPGPU (General Purpose Computing on Graphics Processing Units), c est à dire qu on utilise un processeur graphique (GPU) pour exécuter des …   Wikipédia en Français

  • Technologie NVIDIA® CUDA™ — Compute Unified Device Architecture CUDA (Compute Unified Device Architecture) est une technologie de GPGPU (General Purpose Computing on Graphics Processing Units), c est à dire qu on utilise un processeur graphique (GPU) pour exécuter des… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”