OpenACC : le standard de programmation parallèle par NVIDIA
Accélérer les applications hybrides CPU/GPU avec les directives

Les rubriques (actu, forums, tutos) de Développez
Réseaux sociaux


 Discussion forum

Sur le même sujet
Le , par Idelways, Expert Confirmé Sénior
En compagnie de Cray, PGI et avec le soutien de Caps ; NVidia a développé un nouveau standard ouvert pour la programmation parallèle.

OpenACC est conçu pour permettre aux programmeurs d'exploiter facilement la puissance transformatrice de l'hétérogénéité des systèmes informatiques hybrides CPU/GPU (processeur graphique). Il trouve son indication auprès des programmeurs travaillant dans l'analyse de donnée, l'intelligence artificielle et la physique entre autres domaines scientifiques et techniques.



Le standard donne la possibilité aux développeurs C/C++ et Fortran de désigner au compilateur les boucles et régions du code à accélérer en leur passant de "simples conseils" (ou directives) « sans qu'ils aient besoin de modifier ou d'adapter le code sous‐jacent lui‐même », affirment les initiateurs du standard. Les investissements dans les applications existantes peuvent donc être conservés, tout en permettant une migration facile vers l'informatique accélérée

L'annonce du standard souligne que la plupart des développeurs rapportent des augmentations 2 à 10 fois supérieures dans les performances des applications (après près de deux semaines de tests avec les nouveaux compilateurs).

Le standard sera pris en charge par les compilateurs de Cray, PGI et CAPS à partir du premier trimestre 2012. Il sera entièrement compatible et interopérable avec l'architecture de programmation parallèle NVIDIA CUDA.

Télécharger les spécifications du standard OpenACC

Source : comuniqué de presse collectif



Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de wirenth wirenth
http://www.developpez.com
Membre éclairé
le 17/11/2011 18:48
Je suis assez étranger au développement parallèle, concrètement c'est quoi la différence avec OpenMP ? l'exploitation du GPU ?
Avatar de Joker-eph Joker-eph
http://www.developpez.com
Membre expérimenté
le 17/11/2011 19:24
OpenMP se limite aux machines à mémoire partagée alors que le type de modèle de programmation visé ici est plus hétérogène. Ça signifie qu'avant d'exécuter du code sur un accélérateur il faut y avoir transféré (ou mapper dans son espace mémoire) les données à traiter.
Avatar de Traroth2 Traroth2
http://www.developpez.com
Expert Confirmé Sénior
le 17/11/2011 21:34
C'est compatible CUDA, très bien, mais est-ce que c'est compatible OpenCL ? Parce qu'une technologie "ouverte" qui dépend entièrement d'une technologie propriétaire, ça ne me semble pas très ouvert, personnellement...

Edit : La FAQ dit que non, mais que rien ne s'y oppose. De même qu'une compatibilité avec les GPU d'AMD...
Avatar de gbdivers gbdivers
http://www.developpez.com
Inactif
le 17/11/2011 23:11
Cela me semble un peu concurent avec OpenCL, qui permet aussi les architectures hybrides CPU/GPU. J'ai pas trop testé les CPU multi core avec OpenCL mais c'est faisable sans problème.
A priori, la différence est l'utilisation de directives (de la même manière que OpenMP) plutôt que de kernels.
A tester... mais je doute de l'intérêt. Peut être plus en remplacement de OpenCL qu'en complément.
Avatar de gbdivers gbdivers
http://www.developpez.com
Inactif
le 17/11/2011 23:54
Cela dépend comment on prend la chose
On retrouve beaucoup de poins commun avec l'existant :
- utilisation des directives comme OpenMP
- programmation des GPU comme CUDA
- programmation hybride comme OpenCL
Bref, je vois pas comment ça va se positionner. Mais j'ai pas encore testé
Avatar de Joker-eph Joker-eph
http://www.developpez.com
Membre expérimenté
le 18/11/2011 10:41
C'est clairement une solution qui remplace OpenCL. Si vous déjà vu à quoi ressemble un code OpenCL, une solution "à la OpenMP" à le mérite de rendre ça "utilisable" !
Avatar de iNaKoll iNaKoll
http://www.developpez.com
Membre du Club
le 18/11/2011 19:21
Bonjour,

C'est quoi la différence avec OpenHMPP ? Ca commence à faire pas mal de Open** vive LE standard...
Avatar de Joker-eph Joker-eph
http://www.developpez.com
Membre expérimenté
le 01/01/2012 15:29
C'est dans la même veine qu'HMPP, mais fait par les ricains et supporté par un plus large nombre d'industriel dont Nvidia. A noter que CAPS qui a produit HMPP fait partie du consortium OpenACC.

Voir aussi cette analyse: http://terboven.wordpress.com/2011/1...p-and-openacc/

OpenACC n'est qu'un prototype de ce qui devrait apparaitre en tant que partie du standard OpenMP 4.0 si j'ai bien lu.
Offres d'emploi IT
ATS Niort - Concepteur Développeurs Java, TIBCO H/F
CDI
Atos Technology Services - Poitou Charentes - Niort
Parue le 18/08/2014
Architecte .net h/f
CDI
BULL FR - Provence Alpes Côte d'Azur - Aix-en-Provence (13100)
Parue le 31/07/2014
Ingénieur développement h/f
Stage
Atos Technology Services - Lorraine - Metz (57000)
Parue le 18/08/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula