ソフテック・トップページへ
ホーム 製品 セキュリティ・サービス HPCサービス ダウンロード 企業情報



PGI コンパイラ製品の購入をご検討の方は、こちらからお問い合わせください



New Release Information
PGI 6.0 リリース情報
ソフテックは、PGI 製品の公認正規代理店です


PGI® Workstation & PGI® Server 6.0 Release
米国 PGI 社の PGI Workstation/Server コンパイラ製品のバージョン6.0 をリリースしましたのでお知らせいたします。本リリースにおける製品の主な新機能、特徴に関して以下に説明します。なお、ソフトウェアは http://www.softek.co.jp/SPG/ftp.html ページにてダウンロード可能です。 (2005年3月31日にリリースしました)

このドキュメントは、version 6.0 のものとなります。サブスクリプション(保守)契約をご購入あるいはご継続中のお客様は、新リリースのソフトウェアをダウンロードの上、再インストールをお願いいたします。最新の「日本語インストールの手引き」を必要なお客様は、support@softek.co.jp へメールにて依頼いただければ、送付いたします。新リリースのソフトウェアの入れ替えは次のステップで行うことができます。

バージョンアップの方法についての詳細は、こちらをご覧ください

STEP1 : 新リリースのソフトウェアのダウンロード
STEP2 : 新リリースのソフトウェアのインストール
STEP3 : 新リリースのライセンス・キーの取得と license.dat の入れ替え


ライセンスの更新に関する FAQ は、こちらをご覧ください


Version 6.0-5 の新機能、特徴 (2005/7/25追加)

PGI® 6.0-5 は、 AMD64 並びに EM64T のデュアルコア技術を搭載したプロセッサをサポートする最初の製品となります。このバージョンでのその他の主な特徴、新機能を以下に記します。
詳細は、 PGIR Workstation and Server Release and Installation Notes (PDF) をご覧ください。

  • Intel(R) 並びに AMD の デュアルコアプロセッサをサポートしました。OpenMP実行環境における新しいマルチプロセッサ(mp) 環境変数(MP_BIND、MP_BLIST、MP_SPIN) が追加されました。これらの環境変数は、現在、SuSE 9.2/9.3 and SLES 9 の OS 下で有効です。RedHat 並びに Fedora Core 上では、使用できません。
    これらの環境変数は、スレッドの実行を別の CPU に移行させるかどうかの設定(MP_BIND)、スレッドを物理的な CPU にバインドして固定させるための設定(MP_BLIST)、バリア同期の待ち状態に入ったと時に、アイドル・スレッドがどの程度、プロセス・サイクルを消費するかを制御する設定(MP_SPIN) を行うものです。(詳細は、以下のPGI 6.0の新機能の中にに説明しています)

  • 新コンパイラオプションとして、 -mp=numa (numa サブオプション)が追加されました。
    -mp オプションは、 OpenMP の指示行を含むプログラムの並列処理モジュールを生成するオプションですが、その性能の向上のために、NUMA システムライブラリをリンクし、process-to-CPU スケジューリングのaffinity(親和度)等の機能を有効にするオプションとなります。NUMA アーキテクチャのシステムにおいて有効であり、現在、SuSE 9.2/9.3 and SLES 9 の OS 下でこの NUMA ライブラリをリンクすることが可能です。これによって、NUMAアーキテクチャに対する最適化改善が行われております。

  • 新しいオプション -Mfprelaxed が追加されました。これは、単精度の div/sqrt/rsqrt の演算に対して、高速な逆数近似手法を使って実行できるようにするものです。

  • PGI Workstation ライセンスの解釈をデュアルコア対応の物理プロセッサ(ソケット)ベースのものとして行うように変更されました。具体的には、PGI Workstation ライセンスは、従来から 4CPU までの自動並列/OpenMP 並列が可能ですが、デュアルコア・プロセッサの場合は、4 CPU x 2 Core = 8 コア までの並列処理が可能となるライセンスとなります。なお、これは現在、AMD 社のプロセッサ (Opteron, Athlon64x2) のみの対応となっております。一方、インテル社のデュアルコアプロセッサ (Pentium(R), Xeon(R)) を搭載したシステムについては、4-way SMP システムが今まで市場に存在していないため、最大 4CPU(スレッド) 並列までの対応となっております。Xeon MP システム (4-way) の今後の動向によって対応される予定です。

  • Fedora Core 4 をサポートしました。

Version 6.0 の新機能、特徴
PGI 6.0 のリリース・ノートの詳細版は、PDF ファイルで提供しております。
サポートするプロセッサタイプ

PGI 5.2 と同様に、32ビット X86 系のプロセッサ並びに 64 ビットの AMD64、Intel EM64T の両方のプロセッサに対応します。PGI コンパイラの大きな特長は、CPU ターゲットを指定するコマンド・ライン・オプションである -tp p7-64 を指定することで、Intel(R) EM64T に特化した最適化を行います。PGI コンパイラは、AMD64 ネイティブな最適化と Intel(R) EM64T 用の最適化を切り替えることが可能なクロス・コンパイル機能を有します。PGI コンパイラを利用することで、将来、ご使用システムを EM64T もしくは AMD64 のどちらかの CPU プラットフォームに変更したとしても、共通コンパイラ基盤としてどちらのプラットフォームに対してもご利用いただけます。
PGI 6.0 コンパイラがサポートするプロセッサに関しては、こちらをご覧ください

サポートするOS の追加

最新の Linux ディストリビューションである RedHat Enterprise Linux 4.0 並びに Fedora Core 3, 4 を新たにサポートしました。
PGI コンパイラがサポートする Linux Distributions に関しては、こちらをご覧ください。なお、PGI 5.2 でサポートされておりました、いくつかの古い Linux Distributions に関しましては、PGI 6.0 以降はサポートされません。ご注意ください。


PGI 6.0 コンパイラの新機能、特長等

  • 全般的性能 − 32-bit x86 と 64-bit AMD64 並びに EM64T の内部組込み関数とコード生成並びに他の最適化フェーズに対して、大幅なチューニングを実施したことにより、PGI 5.2 よりも 8〜15% の性能向上を達成しました。この結果は、いくつかの理工学標準ベンチマークとアプリケーション(SPECCPU 2000, Polyhedron, NAS Benchmarks and STREAM を含む) によって測定した結果から得られたものです。
  • C/C++性能 − C/C++ に特化した以下の最適化を強化することにより、C/C++ のプログラム性能が全体として大きく向上しました。強化された最適化部分としては、ANSI ポインタ・セマンテックスのサポート、ポインタの曖昧性の削減による向上、数学内部組込み関数の最適化、ブロックのリオーダリング、ループのアンローリング、イディオム(idiom:慣用句)の認識の向上、構造的な最適化を含みます。
  • Fortran 95 − Fortran 95 規約に完全準拠したコンパイラとして、従来 pgf90 コマンドを使用していましたが、新たに pgf95 コマンドを追加しました。以前の PGI コンパイラで構築されたビルド環境の互換性を維持するために、従来から使用されている pgf90 コマンドもそのまま利用可能です。これに加えて、.f95 ファイル並びに .F95 ファイルが認識されます。
  • プロファイル・フィードバック最適化(PFO最適化) − コンパイル時の共通基盤として、プロファイル・フィードバック最適化の機能が追加されました。これは、新しいコンパイル・オプション -Mpfi / -Mpfo の制御のもとで利用可能です。
  • IPA(内部手続き間解析・最適化)の強化 − PGI コンパイラの内部手続き間解析・最適化のフェーズが強化されました。新しくコンパイルされたプログラム・ユニット間、静的なアーカイブ(ライブラリ)からリンクされたプログラム・ユニット間で生じる IPA ベースの最適化をサポートしました。また、全体的な性能を向上するため、複数の IPA 最適化手法を実装しました。
  • C/C++ テンプレートのインスタント化 − PGC++ コンパイラは GNU スタイルのテンプレートのインスタント化をサポートしました。この新しい方法は、全てのテンプレート参照を解決するために GNU リンカーを使用し、重複を回避することでテンプレートの使用の単純化に大きな効果を発揮します。
  • Large Arrays 機能− Linux86-64 ビット環境で、2GB 以上の単一データのオブジェクトが全ての PGI の Fortran、C、C++ コンパイラと並びにツールにおいてサポートされました。ローカルあるいはグローバルに宣言されたオブジェクトだけでなく、COMMON ブロック上あるいは、スタック上にアロケートされたオブジェクトに対しても、2GB 以上のものが扱えます。Large Arrays 機能を使用するためには、コンパイル・オプションに -mcmodel=medium を使用しなければなりません。なお、以前の PGI 5.2 バージョンでは、2GB 以上の単一データのオブジェクトを扱えるようにするために、-mcmodel=medium オプションの他に、-Mlarge_arrays オプションの指定も必要でしたが、PGI 6.0 以降は、-mcmodel=medium オプション指定の中に内包され、指定する必要がなくなりました。
  • 64ビットの効率性 − 大きな配列のループ処理とコード・セグメント化処理の最適化を向上させ、結果として64ビット対応のプログラムの性能効率性を向上させました。
  • 自動並列化並びにOpenMP の効率性 − OpenMP 並びに自動並列化の並列ループの最適化並びにベクトル化を向上させた結果、シングル・プロセッサ並びにマルチ・プロセッサ上での OpenMP プログラムの性能が向上しました。さらに、SuSE 9.2 のようなprocess-to-CPU スケジューリングのaffinity(親和度)機能を有する OS 上では、その機能を有効にすることが可能となりました。
  • MPBIND環境変数 − OpenMP プロセスを物理 CPU にバインド(結合)するために、MPBIND環境変数を導入しました。この環境変数を yes あるいは y とセットするとこの機能が有効となり、no あるいは n をセットするとこのバインド機能は無効となります。デフォルトはnoです。これは実行時に OpenMP ランタイム・サポート・ライブラリによって解釈され、PGI コンパイラの挙動に対して影響を及ぼすものではありません。この機能は、SuSE 9.2/9.3 and SLES 9 の OS 下で、かつ、-mp=numa オプションをつけてコンパイルされたモジュールに対して有効です。
  • MP_BLIST環境変数 − MP_BLIST 環境変数を新たに追加しました。スレッドと CPU の固定を定義するために使用され、例えば、MP_BLIST=3,2,1,0 の指定では、CPU 3,2,1,0 がそれぞれスレッド 0,1,2,3 にマッピングされます。-mp=numa オプションをつけてコンパイルされたモジュールに対して有効です。この機能は、SuSE 9.2/9.3 and SLES 9 の OS 下で、かつ、-mp=numa オプションをつけてコンパイルされたモジュールに対して有効です。
  • MP_SPIN環境変数 − MP_SPIN 環境変数を新たに追加しました(6.0-5) 。並列リージョンで実行しているスレッドが、バリア同期に入った場合、セマフォ上でのスピン実行を行います。MP_SPIN は、sched_yield() システムコールが呼び出されるされる前に、セマフォを確認する時間(サイクル数)を指定するために使われます。sched_yield() システムコールは、他のプロセスに実行を許すために、スレッドを再スケジューリングするためのものですが、並列処理においては、他にスケジューリングされない方が望ましいですので、この環境変数でその時間を設定します。デフォルトは、1000000 (Linux)サイクルです。もし、MP_SPIN=-1 とセットした場合、セマフォ上で、sched_yield() コールせずに、スピンし全スレッドが同期するまで待ちます。
  • 位置独立な静的ランタイムライブラリ(pic) − -fpic コマンドライン・オプションを使用してモジュールを構築する際、静的アーカイブが生成可能な PGI ランタイムライブラリのバージョンが提供されました。これによって、静的にリンクされた64ビット実行モジュールの生成が可能となりました。pic とは、Position-independent Code の意味であり、別のシステムで動作させる際の汎用的な実行モジュール(ライブラリ)を作成する際に有効です。
  • Prefetchディレクティブ − PGF77 並びに PGF95 のディレクティブと PGCC 並びにPGC++ のプラグマを使用して、明示的なデータのプリフェッチをユーザが指定できます。コンパイラの -Mprefetch コマンド・オプションと共にこれらのディレクティブを使用した場合、コンパイラ自体が生成するプリフェッチ命令を明示的に制御できるように強化されました。PGI ユーザガイドにその詳細が記述されております。
  • ACML 2.5.3 − AMD Core Math Library の最新エディションであるACML 2.5.3 が PGI 6.0 にバンドルされております。バンドルされている ACML ライブラリは、SSE1 とSSE2 命令を有する 32-bit x86 並びに 64-bit AMD64 互換 CPU(EM64T含む)をサポートします。なお、SSE 命令を有しないCPU 上で使用するために、性能が落ちますが従来の互換性の高い libblas.a と liblapack.a も提供しております。
  • 【注意】 ACML 2.5.3 は、-Mcache_align を内包しているコンパイル/リンク・オプション -fastsseを使用して生成されております。従って、この ACML 2.5.3 を使用する際は、必ず、全てのプログラムのコンパイル・リンク時に、-Mcache_align あるいは -fastsse オプションを付して実行してください。
  • EM64Tサポート − PGI 5.2 から AMD64 バイナリ互換である Intel(R) EM64T プロセッサをサポートしております。PGI 6.0 においてもサポートしますが、PGI コンパイラの大きな特長は、CPU ターゲットを指定するコマンド・ライン・オプションである -tp p7-64 を指定することで、Intel(R) EM64T に特化した最適化を行います。PGI コンパイラは、 AMD64 ネイティブな最適化と Intel(R) EM64T 用の最適化を切り替えることが可能なクロス・コンパイル機能を有します。従いまして、PGI コンパイラを利用することで、将来、ご使用システムを EM64T もしくは AMD64 のどちらかの CPU プラットフォームに変更したとしても、共通コンパイラ基盤としてどちらのプラットフォームに対してもご利用いただけます。
  • REDISTディレクトリ − PGI エンドユーザ・ライセンス許諾契約書の許諾条項のもとで、配布可能な PGI ランタイムライブラリ(Shared Library)が、/usr/pgi/linux86/6.0/REDIST あるいは、/usr/pgi/linux86-64/6.0/REDIST の中に集積し提供しました。これらは、別のマシンで実行モジュールを動作させる場合に必要なランタイムライブラリとなります。

PGDBG(デバッガ)とPGPROF(プロファイラ) の新機能、特長等

  • core file− PGDBG は core file のデバッグをサポートしました。
  • PGDBG における配列の表示 − 配列とデータオブジェクトにおけるデータの表示が、特に大きな配列サイズの印刷においてその表示判読性を向上させました。
  • 強化された F95 デバッギング − F95 モジュールとその派生データのサポートに関連した変更を行い、その機能が強化されました。
  • OpenMP のプライベートデータの閲覧 − パラレル領域におけるプライベートデータが閲覧できるようになりました。
  • SSE レジスタの自動的な閲覧 − PGDBG は自動的に SSE 機能を有するシステムかどうかを判断し、regs コマンドの一部としてデフォルトで SSE レジスタ内容をダンプすることができます。
  • ハードウェア・カウンタ・ベースのプロファイリング − PGPROF は 64 ビット Linux のPerformance Application Programming Interface(PAPI) を使用して低オーバヘッドのハードウェア・カウンタ・ベースのプロファイリングをサポートしました。この機能を使用するためには、PAPI ディストリビューションに含まれる PerfCtr を使ってパッチアップしたLinux OS 上で動作させることが必要です。(http://icl.cs.utk.edu/papi/
  • アセンブラベースの性能プロファイリング − PGPROF は、関数レベル、ブロックレベルだけではなく、今回アセンブラレベルでの性能プロファイリングが可能となりました。ソースとアセンブラコードは、プロファイルを見る際に交互に配置されます。この機能は、ハードウェア・性能カウンタあるいは、gprof 形式のサンプリングベースのプロファイリングを使用するときのみ利用可能です。
  • グラフ・ヒストグラムを通したプロファイルの可視化 − PGPROF はプログラムユニットの性能解析をよりコンパクトに直感的にできるようにヒストグラム・ウインドウをサポートしました。
  • プロファイル検索機構 − PGPROG GUI は、いろいろなオプションを検索できるようにサーチメニューをサポートしました。
  • プロファイラ・コマンドベース・インタフェース − PGPROG は全ての GUI バージョンの機能を網羅した新しいコマンド(Non-GUI)を追加しました。
  • スケーラビリティ比較機能の向上 − PGPROF はスケーラビリティの比較の際に計算するための数式を改めました。
  • オンラインヘルプ − PGDBG と PGPROF は新たな GUI 機能の一つとして強力なオンラインヘルプ機能を追加しました。

■ PGI 6.0 における新オプション並びに変更点について(2005年3月)

PGI コンパイラ 6.0 において新規に導入されたオプションについて説明 しているPDF ファイルです。 



既知の制限事項

  • PGI 6.0 で生成されたオブジェクトあるいはモジュールは、それ以前のリリースのオブジェクト、モジュールとは互換性がありません
  • -i8 オプションの使用において、プログラムを MPI 及び ACML ライブラリととともに使用する場合、互換性がありません。典型的には、Integer*8 配列の引数の使用により、これらのライブラリと共に使用する場合、異常終了します。
  • -mcmodel=medium オプションを使用してコンパイルされたオブジェクトを組み込んだプログラムは、静的にリンクされることはできません。これは、linux x86 の 64 ビット環境における制約事項であり、PGI コンパイラによる制約事項ではありません。
  • PGCC と-Mipa=vestigial オプションを使用した場合、リンク時に未解決な参照が生じる場合があります。これは、-Mipa にサブオプション vestigial を付加することにより、エラーとなる関数が削除されるために起こります。この場合は、vestigial を付加せずに、-Mipa のみの指定で対処してください。
  • -Mprof=func 並びに-mcmodel=medium と -mp を一緒に使用した場合、生成された実行モジュールはセグメンテーション・フォールトが生じます。これらのオプションを同時に使用することは避けてください。
  • gprof スタイルのプロファイリング機能 (-pg) を使用してコンパイル・リンクしたプログラムは、2.6.4 Linux カーネルのシステム上でセグメンテーション・フォールトが生じます。また、いくつかの Linux distributions 上で、gprof によって各々のプログラム・ユニットの報告された時間が、実際の時間より10 倍以上大きな数値になることがあります。これは、これらの Linux distributions に含まれる、ある共有ライブラリのバグによるものです。
  • -mp を使用して生成された OpenMP プログラムが、SuSE9.0 システム上の複数プロセッサで並列実行した場合、極端に遅くなります。しかし、これと同じ実行モジュールが SuSE9.1上で動作させると期待される性能と効果が得られます。この問題は未だ解析中ですが、将来のリリースで解決できた場合、その説明をする予定です。
  • ACML2.5 ライブラリは、-cache_align を含んだ -fassse コンパイル・オプションを使用して構築されております。-lacml オプションを使用して ACML ライブラリをリンクする際に、必ず、全てのプログラムに -cache_align もしくは、このオプションを含む複合オプションである -fastsse を付加してコンパイル/リンクを行ってください。

ライセンスの更新に関する FAQ
PGI 6.0 は、メジャー・バージョンアップの製品となります。現在サブスクリプション契約期間中であるお客様は無償でバージョンアップができます。是非、この機会に性能が向上した新 6.0 リリースをご利用くださいますようお願いいたします。

  • コンパイラ製品のバージョンの見方と調べ方

    製品バージョンの表し方は、メジャーマイナーおよびバグフィックスの 3 種類となります。最初の1 桁目がメジャーバージョン、2 桁目がマイナーバージョン、最後のハイフォンで続く数字がバグ・フィックス番号となります。サブスクリプション契約を行っていないお客様に関しては、購入時のマイナーバージョンの以降のバグ・フィックスに関しては無償でソフトウェアを入手することができます。
      (例) version 6.0-1
           6 : メジャーバージョン番号
           0 : マイナーバージョン番号
           1 : バグ・フィックス番号

    現在所有している PGI コンパイラのバージョンを調べるには、以下のコマンドを実行してください。
       $ pgf77 -V
        pgf77 6.0-1 <--- バージョンを表す
        Copyright 1989-2000, The Portland Group, Inc. All Rights Reserved.
        Copyright 2000-2005, STMicroelectronics, Inc. All Rights Reserved.

  • 今所有しているライセンスで新バージョンが動作しますか?

    PGI のライセンス・ファイル (license.dat) には、1.7、3.0、3.1、3.2、3.3、4.0、4.1、5.0、5.1、5.2 あるいは 6.0 と言った動作可能なバージョンを示すフィールドを持っています。現在、所有しているライセンスファイルの中のフィールドが現在、動作可能な最も高いリリース番号となります。最新のリリースを動作させるためには、最新リリース番号へのフィールド値の更新が必要です。年間サブスクリプション契約(ソフトウェア情報パッケージ購入)を行っているお客様は、ライセンスの発行サイトにおいて、新ライセンスを取得して、 license.dat の内容を変更してください。バージョンアップがサブスクリプション契約期間内で行われた場合、ライセンス発行サイト上で表示されるライセンスは自動的に更新されたものとなっていますので、この内容をコピーして、システム上の license.dat の内容を更新すると新リリース用のライセンスファイルとなります。(もちろん、新しいリリース・ソフトウェアは、インストールされていることが前提です)

======== (License.dat の例 : Release 6.0 の場合) =================
SERVER moj1 0090275c30e8 7496
#
# In the DAEMON line, the location of the pgroupd daemon
# may need to be modified.
DAEMON pgroupd /usr/pgi/bin/pgroupd
FEATURE pgf77-linux86 pgroupd 6.000 31-dec-0 1 3BD8F0B1414C40403DEC \
VENDOR_STRING=109839:4 HOSTID=0090275c30e8 ck=190
FEATURE pgprof pgroupd 6.000 31-dec-0 1 BB986021EC3F71B560B6 \
VENDOR_STRING=109839:4 HOSTID=0090275c30e8 ck=29
FEATURE pgdbg pgroupd 6.000 31-dec-0 1 EBC8706172F613B398F2 \
VENDOR_STRING=109839:4 HOSTID=0090275c30e8 ck=249
======== (License.dat の例 : Release 6.0 の場合) =================

  • 一方、例えば新規購入で、リリース 6.0-1 のライセンスを取得していれば、その後のバグ・フィックスのリリースである 6.0-2、6.0-3 等の製品はサブスクリプション契約なしでも使用可能です。なお、ライセンスファイルのバージョン・フィールドの数字より前のコンパイラリリース製品は、問題なく動作します。

ライセンス発行の手順に関しては、こちらをご覧ください。

  • 現在の自分のライセンス情報をどのように調べればよいでしょうか?

現在の自分が所有しているライセンス情報は、ライセンス発行サイトにてオンラインで入手が可能です。サイトのユーザ認証のために、製品納品時に同封したユーザ登録書に記されたアクセス・コード (ユーザー名とパスワード) を入力し、"Information" --> "Information and current licenses" のボタンをクリックすると、サブスクリプション期間終了日と新しいマイナー・リリースに対する新ライセンス・キーが表示されます。この新ライセンス・キーをコピーして 現在の license.dat を更新してください。

  • 「年間サブスクリプション契約(ソフトウェア情報パッケージ)」とは何ですか?

年間サブスクリプション契約がなされているお客様は、製品のマイナーバージョンアップ時の新しいライセンスを得る権利を有します。製品のライセンスを新規に購入し、同時に年間サブスクリプション料金をお支払いただいた場合、1年以内の最新のリリースに対するアップグレードが可能となります。年間サブスクリプションをご購入いただいていないお客様は、購入の後に60日以内のバージョンアップ・リリースに対しては、新リリースのライセンス更新が可能です。なお、サブスクリプション契約を行わないお客様が、その後再度、新ライセンスの取得を行いたい場合、サブスクリプション契約空白期間も含めたサブスクリプション料金をお支払いただくことにより、新ライセンスの取得が可能となります。

  • お客様のアクセスコード(ユーザID、パスワード)を紛失あるいは忘れた方へ

お客様のお名前、組織名、ソフテック製品出荷ID をお書き添えいただき、support@softek.co.jp へその旨、お知らせください。アクセスコードを再度メールにてお送りいたします。



 ※本ページに記載されている会社名、製品名は、各社の登録商標または商標です。
 ソフテックは、PGI 製品の公認正規代理店です

サイトマップ お問合せ
Copyright 2004 SofTek Systems Inc. All Rights Reserves.