title: OpenACC
text: # OpenACC
  
  OpenACC (pour Open Accelerators) est un standard de programmation pour le calcul parallèle développé par Cray, CAPS, Nvidia et PGI (en). Ce standard est conçu pour permettre du calcul parallèle sur des systèmes hétérogènes CPU/GPU.
  
  Tout comme OpenMP, il est possible de rajouter des commandes dans du code source C, C++ et Fortran pour identifier des portions qui pourrait bénéficier d'une accélération, en utilisant des directives au compilateur. Comme en OpenMP 4.0 et suivant, le code peut être exécuté sur CPU et GPU.
  
  Les développeurs d'OpenACC ont également travaillé sur le standard d'OpenMP afin de créer une spécification commune permettant d'étendre OpenMP pour supporter de nouveaux types d’accélérateurs dans les prochaines versions $d'OpenMP^,.$ Ces travaux ont abouti à un rapport technique incluant commentaires et discussions destinés à être débattus durant la conférence annuelle Supercomputing Conference à Salt Lake City en novembre 2012, afin de traiter le support des accélérateurs non-Nvidia par les fabricants de matériel participants à OpenMP.
  
  Durant ISC’12, des démonstrations d'OpenACC ont eu lieu sur du matériel Nvidia, AMD et Intel, sans toutefois fournir des données sur les performances.
  
  Le 12 novembre 2012, durant la conférence SC12, un brouillon de la spécification 2.0 d'OpenACC a été présenté. Les nouveautés de cette version incluent de nouvelles capacités dans le transfert de données (comme un moyen de traitement des données non structurées et des données non contigües en mémoire), et le support des appels explicites à des fonctions ainsi que la possibilité de compilation séparée (permettant la création et l'utilisation de librairies de code accéléré).
  
  