{"id":5124,"date":"2011-11-14T15:17:18","date_gmt":"2011-11-14T14:17:18","guid":{"rendered":"http:\/\/www.itwriting.com\/blog\/5124-new-openacc-compiler-directives-announced-for-gpu-accelerated-programming.html"},"modified":"2011-11-14T15:17:18","modified_gmt":"2011-11-14T14:17:18","slug":"new-openacc-compiler-directives-announced-for-gpu-accelerated-programming","status":"publish","type":"post","link":"https:\/\/www.itwriting.com\/blog\/5124-new-openacc-compiler-directives-announced-for-gpu-accelerated-programming.html","title":{"rendered":"New OpenACC compiler directives announced for GPU accelerated programming"},"content":{"rendered":"<p>A new standard for accelerating C\/C++ programming with compiler directives has been announced at the <a href=\"http:\/\/sc11.supercomputing.org\/\" target=\"_blank\">SC11<\/a> Supercomputing conference in Seattle. The new standard is called <a href=\"http:\/\/www.openacc-standard.org\/\" target=\"_blank\">OpenACC<\/a>&#160; and has been created by NVIDIA, Cray, PGI (Portland Group) and CAPS enterprise.<\/p>\n<p>OpenACC compiler directives are code annotations that enable the compiler to parallelise code while ensuring thread-safety. The big difference between OpenACC and the existing <a href=\"http:\/\/openmp.org\/\" target=\"_blank\">OpenMP<\/a> standard is that OpenACC primarily targets the GPU rather than CPU, whereas OpenMP is generally CPU only. That said, OpenACC can also target the CPU so it is flexible; the idea is that it will adapt to the target system. <\/p>\n<p><a href=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2011\/11\/image22.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"http:\/\/www.itwriting.com\/blog\/wp-content\/uploads\/2011\/11\/image_thumb22.png\" width=\"244\" height=\"232\" \/><\/a><\/p>\n<p>OpenACC is \u201cdefined to be interoperable with OpenMP\u201d according to the <a href=\"http:\/\/www.openacc-standard.org\/Frequently-Asked-Questions\" target=\"_blank\">FAQ<\/a> and the OpenACC CEO hopes for some future integration, though it seems to have been developed independently which may cause some tension.<\/p>\n<p>OpenACC is expected to ship during the first half of 2012 on compilers from PGI, Cray and CAPS Enterprise. The NVIDIA involvement may make you wonder whether it is GPU-specific; the answer is \u201cmaybe\u201d. The FAQ says:<\/p>\n<blockquote>\n<p><em>Will OpenACC run on AMD GPUs?<\/em><\/p>\n<p>&#8211; It could, it requires implementation, there is no reason why it couldn\u2019t<\/p>\n<p><em>Will OpenACC run on top of OpenCL?<\/em><\/p>\n<p>&#8211; It could, it requires implementation, there is no reason why it couldn\u2019t<\/p>\n<p><em>Will AMD\/Intel\/MS\/XX support this?<\/em><\/p>\n<p>&#8211; As this is just announced we can\u2019t speak to the rate of external adoption or participation. <\/p>\n<p><em>Will OpenACC run on NVIDIA GPUs with CUDA?<\/em><\/p>\n<p>&#8211; Yes. Programmers may wish to develop some code using directives, and more sophisticated code using CUDA C, CUDA C++ or CUDA Fortra<\/p>\n<\/blockquote>\n<p>Spot the Yes in the above! Still, you can scarcely blame NVIDIA for supporting its own GPU family; and I have been impressed with how the company works with the scientific and academic community to realise the potential of massively parallel computing.<\/p>\n<p>OpenACC is about democratising parallelism, rather than advancing the state of the art. Best optimisation is obtained by more complex programming, but directives make some remarkable performance improvements easy to achieve.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A new standard for accelerating C\/C++ programming with compiler directives has been announced at the SC11 Supercomputing conference in Seattle. The new standard is called OpenACC&#160; and has been created by NVIDIA, Cray, PGI (Portland Group) and CAPS enterprise. OpenACC compiler directives are code annotations that enable the compiler to parallelise code while ensuring thread-safety. &hellip; <a href=\"https:\/\/www.itwriting.com\/blog\/5124-new-openacc-compiler-directives-announced-for-gpu-accelerated-programming.html\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">New OpenACC compiler directives announced for GPU accelerated programming<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[67,80],"tags":[244,288,296,654,702,879],"class_list":["post-5124","post","type-post","status-publish","format-standard","hentry","category-professional","category-software-development","tag-caps","tag-concurrency","tag-cray","tag-nvidia","tag-parallelism","tag-supercomputing"],"_links":{"self":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/5124","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/comments?post=5124"}],"version-history":[{"count":0,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/5124\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/media?parent=5124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/categories?post=5124"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/tags?post=5124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}