Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation parallèle, calcul scientifique et de haute performance (HPC) Discussion :

OpenACC : le nouveau standard de développement parallèle par NVIDIA


Sujet :

Programmation parallèle, calcul scientifique et de haute performance (HPC)

  1. #1
    Expert éminent sénior
    OpenACC : le nouveau standard de développement parallèle par NVIDIA
    OpenACC : le nouveau standard de développement parallèle par NVIDIA
    Accélérer plus facilement les applications hybrides combinant CPU/GPU avec les directives



    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


  2. #2
    Membre averti
    Je suis assez étranger au développement parallèle, concrètement c'est quoi la différence avec OpenMP ? l'exploitation du GPU ?

  3. #3
    Membre confirmé
    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.

  4. #4
    Membre chevronné
    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...
    J'appelle "Point Traroth" le moment dans une discussion où quelqu'un parle des Bisounours. A partir de ce moment, toute discussion sérieuse devient impossible, puisque la légitimité d'une des parties pour exposer son point de vue est mise en cause. C'est juste un anathème, un moyen de décrédibiliser les autres sans avoir à discuter.

  5. #5
    Inactif  
    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.

  6. #6
    Inactif  
    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é

  7. #7
    Membre confirmé
    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" !

  8. #8
    Membre régulier
    Bonjour,

    C'est quoi la différence avec OpenHMPP ? Ca commence à faire pas mal de Open** vive LE standard...

  9. #9
    Membre confirmé
    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.

###raw>template_hook.ano_emploi###