STMicroelectronicsの100%子会社であるPortland Group(PGI)は、新しいOpenACC 1.0規格に対応するPGI Accelerator Fortran/Cコンパイラを発表した。

OpenACC 1.0は、GPUおよびアクセラレータを、ディレクティブ・ベースでプログラミングするための規格で、プログラマはプログラム中でGPU上の実行対象部分にヒントを指示してコード化することができる。

OpenACCは、2011年11月に開催された「SC11(Supercomputing Conference 2011)」にて発表され、PGI、Cray、NVIDIAによって策定された規格。CAPSがサポートすると共に、NVIDIA CUDA並列プログラミング・アーキテクチャへの完全な対応と相互運用性を有している。OpenACC 1.0は、創設メンバー各社が協力して作成したもので、その大部分はPGI Acceleratorプログラミング・モデルに基づいている。OpenACC API(Application Program Interface)は、ホストCPUから付属のアクセラレータにオフロードするコードのループと領域を規定する、一連のコンパイラ・ディレクティブを標準的なC/C++/Fortranに追加したもので、オペレーティング・システム、ホストCPU、およびアクセラレータ間の移植が可能となっている。ディレクティブを使用することにより、開発者は多くのプラットフォームやベンダと互換性がある単一のコード・ベースを持つことができる。これは、クロスプラットフォームおよび複数世代のアプリケーション開発における大きなメリットになるとコメントしている。

OpenACCを使用すると、アクセラレーションに適したコード領域をヒント(ディレクティブ)によって特定し、コードをホストCPUから付属のアクセラレータにオフロードできる。ディレクティブは、コンパイラに並列処理させるだけでなく、ループを特定のアクセラレータにどのように効率良くマッピングするか、データ移動をどのように最適化するかを詳細に規定が可能。また、計算をアクセラレータにオフロードする詳細な作業はコンパイラが行うため、開発者はディレクティブのおかげでアルゴリズムとアプリケーション機能の開発に集中できる。ディレクティブの主なメリットは、元のソース・コードを変更しなくてもアプリケーションの性能を向上させることができる点にあるという。

この他、自動SIMDベクトル化、自動並列化、プロシージャ間解析、関数インライン化など、PGIのx86ホスト性能最適化技術を含んでいる。

現在、PGI AcceleratorのFortran/C99コンパイラは、Linux/OS X/Windowsで動作するx64+NVIDIAシステムをサポート。これらのコンパイラは、CUDAに対応するNVIDIA GPUを備えたIntel/AMD x64プロセッサ・ベースの全システムでサポートされている。PGI Release 2012のバージョン12.6以降がOpenACCに準拠する。

同製品は、PGIに登録し年間保守契約を保有するユーザーには、無料で提供される。