PGI® 7.2 のリリース・ノートの詳細版は、PDF ファイルで提供しております。
サポートするプラットフォーム
- 32ビット Linux - 32ビット x86 互換あるいは 64ビット x64 互換のプロセッサ上で動作する 32ビットLinux オペレーティングシステム上で利用可能です。
- 64ビット/32ビットLinux - 32ビット Linux 製品の全ての機能を包括し、64 ビット x64 互換のプロセッサ上で動作する 64 ビット Linux オペレーティングシステム上で利用可能です。
- 32ビット Windows -32ビット x86互換あるいは 64ビット x64 互換のプロセッサ上で動作する32ビットWindowsオペレーティングシステム上で利用可能です。
- 64ビット/32ビットWindows - 32ビットWindows(R) 製品の全ての機能を包括し、64ビットx64 互換のプロセッサ上で動作する 64ビットWindows(R)オペレーティングシステム上で利用可能です。
- 32ビットApple Mac OS X - 32ビットあるいは 64 ビットの Intel(R) ベースのプロセッサを搭載したシステムで、32ビットApple Mac オペレーティングシステム上で利用可能です。
- 64ビットApple Mac OS X - 64ビットの Intel(R) ベースのプロセッサを搭載したシステムで、64ビットApple Mac オペレーティングシステム上で利用可能です。
- 32ビット SFU - 32ビットx86互換あるいは64ビットx64互換のプロセッサ上で動作する32ビットWindows(R) オペレーティングシステム上の SFU
(Windows Service for Unix) で利用可能です。(Windows(R) 製品のライセンスキーが必要です)
- 32ビット SUA - 32ビットx86互換あるいは64ビットx64互換のプロセッサ上で動作する32ビットWindows(R) オペレーティングシステム上の SUA
(the Subsystem for Unix-base Applications) で利用可能です。(Windows(R) 製品のライセンスキーが必要です)
- 64ビット/32ビットSUA - 32ビットSUAの全ての機能を包括し、64ビットx64互換のプロセッサ上で動作する 64ビット Windows(R) オペレーティングシステム上の SUA
(the Subsystem for Unix-base Applications) で利用可能です。(Windows(R) 製品のライセンスキーが必要です)
サポートするプロセッサタイプ
PGI 7.1 と同様に、32ビット x86 系のプロセッサ並びに 64ビットの AMD64、Intel(R) 64 のプロセッサに対応します。PGI
7.2 において、サポートする CPU は以下の表のとおりです。
新たに、インテル社のクアッドコア・プロセッサ Penryn プロセッサ用の最適化をサポートしました。
PGI コンパイラは、AMD64 ネイティブな最適化と Intel(R) EM64T 用の最適化を切り替えることが可能なクロス・コンパイル機能を有します。さらに、PGI コンパイラは、一つの実行モジュールフファイルで、AMD64 あるいは EM64T のどちらにも最適な性能を提供可能な
PGI Unified Binaries の機能を業界で初めて提供しております。PGI コンパイラを利用することで、将来、ご使用システムを Intel 64(EM64T) もしくは
AMD64 のどちらかの CPU プラットフォームに変更したとしても、共通コンパイラ基盤としてどちらのプラットフォームに対してもご利用いただけます。PGI
7.2 コンパイラがサポートするプロセッサの詳細に関しては、こちらをご覧ください。
PGI がサポートするプロセッサのデフォルトで使用するハードウェア機構
| prosessor |
Prefetch |
SSE1 |
SSE2 |
SSE3 |
32-bit |
64-bit |
Scalar FP
Default |
| AMD |
Athlon |
|
|
|
|
○ |
|
x87 |
| AMD |
Athlon XP/MP |
○ |
○ |
|
|
○ |
|
x87 |
| AMD |
Athlon64 |
○ |
○ |
○ |
|
○ |
○ |
SSE |
| AMD |
Opteron |
○ |
○ |
○ |
|
○ |
○ |
SSE |
| AMD |
Opteron Rev.E/F |
○ |
○ |
○ |
○ |
○ |
○ |
SSE |
| AMD |
Opteron/Quad-Core |
○ |
○ |
○ |
○ |
○ |
○ |
SSE |
| AMD |
Turion |
○ |
○ |
○ |
○ |
○ |
○ |
SSE |
| Intel(R) |
Celeron |
|
|
|
|
○ |
|
x87 |
| Intel(R) |
Pentium II |
|
|
|
|
○ |
|
x87 |
| Intel(R) |
Pentium III |
○ |
○ |
|
|
○ |
|
x87 |
| Intel(R) |
Pentium 4 |
○ |
○ |
○ |
|
○ |
|
SSE |
| Intel(R) |
Pentium M |
○ |
○ |
○ |
|
○ |
|
SSE |
| Intel(R) |
Centrino |
○ |
○ |
○ |
|
○ |
|
SSE |
| Intel(R) |
Pentium 4 EM64T |
○ |
○ |
○ |
○ |
○ |
○ |
SSE |
| Intel(R) |
Xeon EM64T |
○ |
○ |
○ |
○ |
○ |
○ |
SSE |
| Intel(R) |
Core Duo EM64T |
○ |
○ |
○ |
○ |
○ |
○ |
SSE |
| Intel(R) |
Core 2 Duo EM64T |
○ |
○ |
○ |
○ |
○ |
○ |
SSE |
| Intel(R) |
Penryn
(Quad core) |
○ |
○ |
○ |
○ |
○ |
○ |
SSE |
サポートするOS の追加
Linux Fedora Core 8, 9 が追加されております。 Linux PGI コンパイラがサポートする Linux Distributions
に関しては、こちらをご覧ください。
PGI 7.2 MPICH ライブラリ機能
【MPIプロセスのデバッギング機能とプロファイル機能】
- MPICH-1 ライブラリ (version 1.2.7) は、製品の中にバンドルしております (Linux 版のみ)。
- Linux 版の PGDBG/PGPROF は、ローカル上(同一システム上)での 4 プロセスまでの MPICH-1 プロセス・デバッギング並びにプロファイリングが可能となります。一方、PGI CDK 製品は、ローカル並びにリモート MPI プロセス(MPICH-1、MPICH-2、MVARPICH) に対応し、その上限プロセス数は、購入ライセンスの「PGI
CDKプロセス数」まで対応します。
- Windows 版の PGDBG/PGPROF は、Microsoft Windows CCS クラスタ上で実行する MSMPI 並列プログラムのデバッギングとプロファイリング機能を有します。
PGI 7.2 コンパイラの新機能、特長等
本 PGI 7.2のリリースは、主に性能強化のための改良となります。
- 性能の向上− いくつかの標準ベンチマークや研究コミュニティ・コード、ISVコードのベンチマークの測定において、性能向上を達成しました。詳細は、http://www.pgroup.com/benchmarkに記載しいております。
- ACML 4.1-0− AMD社の最新のACMLライブラリ 4.1-0をバンドルしました。
- OpenMP− static/guided schedulingの性能向上のために、OpenMPの並列ループの分割を発見的なロジックで行うように修正されました。
- OpenMP− OpenMPのランタイムルーチンにおける並列時のmutex/semaphore(同期)処理の効率化を図りました。
- OpenMP− OpenMP パラレル・リージョンの中で、さらに追加的にインライン化を行えるように強化を図りました。
- Fortran Automatic 変数− Fortranの自動変数の生成・削除の効率を向上させました。
- NUMAサポート強化− ?Msmartalloc=hugeオプションを指定して、large page(2MB)の使用を組み合わせたNUMAサポートを行うことができるようになりました。
- Thread Local Storageの導入− いくつかのOpenMP並列ランタイムルーチンの効率化による性能向上を図るために、TLS(Thread Local Storage) の使用を導入しました。
- Vector packed SIMD code− OpenMPパラレル・リージョンの中でvector packed SIMD コードの効果を強化しました。
- 新プロセッサ・サポート− インテルR Penrynプロセッサのための最適化とインストラクションのサポートを追加しました。Penrynクラスのプロセッサを搭載したシステム上でコンパイルを行うと自動的にプロセッサを認識し、その最適化を行うことができます。あるいは、コンパイル・オプションで
?tp penryn と言うターゲットを明示的に指定することで、penryn用の最適化モジュールを作成することができます。。
- CVF互換性− 32ビットWindows 版のPGI Fortranコンパイラに、CVF互換 /iface:cref 関数をサポートしました。また、一般的な引数、文字型引数に対して、CVFスタイルの引数の渡し方のコンベンションを使用できるようにしました。CREFには、参照による引数の引き渡し、対応した文字型引数の後に、隠れた長さ(hidden
length)を引き渡すこと、さらに、アンダースコアのプリフィックスに続きアッパーケースとして外部名を現すこと、呼び出し側(caller)がスタックをクリーンアップできること等々のサポートを追加しました。なお、CREFを使用している場合は、オプション-Mnames=lowercaseを使用します。
- CVF互換属性− CVF互換属性!DEC$ ATTRIBUTE nomixed_str_len_arg をサポートしました。この属性は、-Munixオプションを使用するための方法において、隠れた長さ(hidden
length)がリストの最後に順番に置かれているということを指定するものです。注意:この属性は、CREF形態のルーチン、あるいは、デフォルトのWindows
callingのコンベンションを使用する場合にのみ適用できます。
- OpenMP Threadprivate− OpenMP Threadprivate変数のためのデバッギング・サポートを追加しました。
- Microsoft Open Tools 9− Microsoftの新バージョンMicrosoft Open Tools 9 をWindows版にバンドルしました。デフォルトで、このバージョンが使用されます。
- 18 additional CVF-compatible DFLIB and DFPORT− 以下のルーチンをサポートしました。
dflib ? delfilesqq, findfileqq, fullpathqq, getfileinfoqq,
getfileinfoqqi8, packtimeqq, setfiletimeqq, setfileaccessqq,
setfiletimeqq, splitpathqq, unpacktimeqq.
dfport− erf, erfc, derf, derfc, fstat64, lstat64, stat64.
- SSEベクトル化の拡張− 間接アドレッシングの gather インデックス配列を有するループは、ベクトル化できるようになりました。FMAX, FMIN, DMAX,
DMIN リダクション演算もベクトル化できるようになりました。
PGI 7.2 の新コンパイラ・オプションと従来との変更部分(2008年5月)

PGI コンパイラ 7.2 において新規に導入されたオプションについて説明 しているPDF ファイルです。
- 未知のコンパイラ・オプションを指定した場合、今までは「警告」レベルの扱いでしたが、PGI 7.2 より、「エラー」として扱われます。この変更によって、コンパイラが認識できないオプション(スイッチ)が指定された場合、コンパイルエラーとなり停止することになります。
一例 : pgf95-Error-Unknown switch: -Mconcu
しかしながら、新しいコンパイラ・オプションである -noswitcherror を指定すると、従来のように、未知のオプション(スイッチ)が指定された場合、エラーで停止するの代わりに「警告」を出すように変更できます。
次のオプションは、PGI 7.2から追加あるいは、修正されたものです。
- -drystdin− 標準インクルード・ディレクトリを出力して終了します。
- -Minfo=intensity[:<n>] −ループ内の「演算密度」(Computational Intensity)を表示します。サブオプション<n>を指定すると、その(多重)ループレベルまでの情報を表示します。デフォルトは、最内側ループの情報が表示されます。演算密度とは、一般にループ内の演算数とメモリのロード・ストア数との比率を表し、演算とメモリ参照のバランスを見るための指標です。このような情報はパフォーマンス・チューニングにおいて特に重視されます。
・ ループ内の演算が浮動小数点演算である場合、演算密度は、浮動小数点演算総数を浮動小数点データのメモリロードとストアの総和で割った比率として定義します。
・ ループ内の演算が整数演算である場合、演算密度は、整数演算総数を整数データのメモリロードとストアの総和で割った比率として定義します。
以下は、Linux上で実施した例です。(現在、Linux版のみ実装)
ループ内の間接アドレッシングのベクトル化
kato@photon26:~/Himeno> pgf90 -Minfo=intensity:3 -fastsse himenoBMTxp.f90
jacobi:
293, Intensity = 1.062
single add:n1*21) mul:n1*13) ld:n1*31) st:n1*1)
integer add:2+n2*(2+n1*1)
294, Intensity = 1.062
single add:n1*21 mul:n1*13 ld:n1*31 st:n1*1
integer add:2+n1*1
295, Intensity = 1.062
single add:21 mul:13 ld:31 st:1
integer add:1
---
PGF90 (Version 7.2) 05/19/2008 20:31:17 page 1
( 291) do loop=1,nn
( 292) gosa= 0.0
( 293) do k=2,kmax-1
( 294) do j=2,jmax-1
( 295) do i=2,imax-1
( 296) s0=a(I,J,K,1)*p(I+1,J,K) &
( 297) +a(I,J,K,2)*p(I,J+1,K) &
( 298) +a(I,J,K,3)*p(I,J,K+1) &
( 299) +b(I,J,K,1)*(p(I+1,J+1,K)-p(I+1,J-1,K) &
( 300) -p(I-1,J+1,K)+p(I-1,J-1,K)) &
( 301) +b(I,J,K,2)*(p(I,J+1,K+1)-p(I,J-1,K+1) &
( 302) -p(I,J+1,K-1)+p(I,J-1,K-1)) &
( 303) +b(I,J,K,3)*(p(I+1,J,K+1)-p(I-1,J,K+1) &
( 304) -p(I+1,J,K-1)+p(I-1,J,K-1)) &
( 305) +c(I,J,K,1)*p(I-1,J,K) &
( 306) +c(I,J,K,2)*p(I,J-1,K) &
( 307) +c(I,J,K,3)*p(I,J,K-1)+wrk1(I,J,K)
( 308) ss=(s0*a(I,J,K,4)-p(I,J,K))*bnd(I,J,K)
( 309) GOSA=GOSA+SS*SS
( 310) wrk2(I,J,K)=p(I,J,K)+OMEGA *SS
( 311) enddo
( 312) enddo
( 313) enddo
- -Mipa=jobs:n− -Mipaオプションは、jobs:[n]サブオプションを指定できるようになりました。このサブオプションは、並列にnジョブで再コンパイルを行うように指示するものです。
- -Mmpi=mvapich1− デフォルトのMVAPICH通信ライブラリを使用するように指示するものです。このオプションは、PGI CKのみに有効です。
- -Mnames=lowercase|uppercase− Fortran外部関数名の大文字/小文字を指定するものです。Lowercaseの場合は、小文字を使用すると言う意味となり、upperecaseは大文字を使用すると言う意味となります。
- -Mpfi[=indirect]− -Mpfiオプションは、間接的(indirect)な関数呼び出しターゲットを保持することを指示するためのindirectサブオプションです。
- -Mpfo[=indirect|nolayout]− ?Mpfoオプションは、新しいサブオプションであるindirectとnolayoutを新設しました。Indirectサブオプションは、間接的な関数呼び出しのインライン化を有効にするもので、nolayoutは、動的なコード配置を抑止するものです。
- -Mpre[=all]− サブオプションを付けない?Mpreオプションは、一部の冗長部削除を有効にします。サブオプションall を付けた場合、よりアグレッシブなpre処理を行います。
- -Mprof=[mvapich1]− −Mprofオプションは、mvapich1サブオプションを有効にしました。これはプロファイル時にmvarpich1通信ライブラリを使用できるようにするものです。このオプションを使用すると-Mmpi=mvapich1の指定を内包したことになります。
- -Mvect[=[partial]− −vectオプションは、最内側ループの分離によるループのベクトル化を有効にするように指示するサブオプション、partialを新設しました。
- -Mwritable-strings− 書き込み可能なデータセグメント内にstring constantをストアできるようにします。(注意)既存の-Xt並びに-Xsは、本オプションを含みます。
- -Mrpath − (Linux only)ldarg情報をリンカに渡します。そして、ランタイム検索パスにそのディレクトリを加えます。
- -Mtp=[barcelona-32|core-32|p7-32|penryn|penryn-32|penryn-64|px-32] − 新たにターゲット指定オプションに以下のサブオプションが加わりました。 barcelona-32 は、?tp barcelonaと同じ core2-32は、
tp core2と同じ p7-32 は、?tp p7と同じ penryn は、Intel Penryn Architecture, 32ビットモード
penryn-32は、 tp penrynと同じ penryn-64は、 Intel Penryn Architecture, 64ビットモード
px-32は、?tp pxと同じ 次のオプションは、Microsoft Windows プラットフォーム用に加わったものです。 ・ ?Miface=unix|cref|mixed_str_len_arg|nomixed_str_len_arg−サブオプション?MifacはFortranのための呼び出しルール(コンベンション)を調整するものです。
unix - Use UNIX calling conventions,語末のアンダースコアがないタイプ cref - Use CREF calling
conventions, 語末のアンダースコアがないタイプ mixed_str_len_arg ? 文字列の長さをその対応する引数の直後に置くタイプ
nomixed_str_len_arg ?文字列の長さを引数リストの最後に置くタイプ ・ ?Mlargeaddressaware[=no]−Windows用に64bitアドレス・インデックシングと単一のデータオブジェクトのサイズが2GB以上使用できるようにするものです。(2008年5月現在、弊社の試験によるとまだ機能しておりません)
PGDBG(デバッガ)の新機能等
PGI Workstation/Server 7.2は、PGI 7.1で導入された以下の新機能をサポートしております。
- PGDBG 7.2 は、PGDBG が動作する同じシステム上で動く MPICH-1 の 4 つのプロセスまでのアプリケーション・デバッグがでます。
- PGDBG 7.2 (Windows版)は、Microsoft(R) Windows CCS クラスタ上で動作する MSMPI アプリケーションのデバッギングをサポートします。
- PGDBG 7.2 は次の機能の強化を行いました。
・ スタックトレース機能の向上
・ Microsoft(R) Visual C++ との互換性をより強化しました
・ gcc/g++ との互換性をより強化しました
・ 高速な disassebly と全体の性能向上
PGPROF(プロファイル)の新機能等
PGI Workstation/Server 7.2 は、PGPROF 並列プロファイラの中で、いくつかの新しい機能の追加と機能強化を行いました。
- PGPROF 7.2 は、集合通信ルーチンも MPI プロファイリングをサポートします。
- PGPROF 7.2 は、(Windows版) は、Microsoft(R) Windows CCS クラスタ上で動作する MSMPI アプリケーションのプロファイリングをサポートします。
- PGPROF 7.2 は、いくつかの GUI の向上を行いました。
Linux上でのMPICHプログラムの実行
PGI Workstation/Server 7.2 for Linux は、MPICHライブラリ、ツールを製品の中にバンドルし、さらに、MPIプログラムをコンパイルし、実行、デバッグ、プロファイリングを行うためのライセンスを含む形となりました。PGI
Workstationは、一つのシングルノード上にインストールされ、そのノードは、あたかもクラスタのように扱われます。MPIデバッガ&プロファイラは、PGI Workstation / Server ライセンスでは、一つのノード上のみのプロセス分析に制約されますが、PGI CDKライセンスでは、ローカル、リモートを問わず、一般的なクラスタ上での開発ツールとして使用することが可能です。PGI Tools Guide は、MPIを利用する際のツールの利用法について詳細に説明しております。
※ PGI MPI プログラム開発用コンパイル・オプション、ツールの使用方法のページを新設しました。
- PGIPROF は、グラフィカル MPI/OpenMP/マルチスレッド対応の性能解析プロファイラ
- PGDBG は、グラフィカル MPI/OpenMP/マルチスレッド対応のシンボリック・デバッガ
- 32ビット/64ビット MPICH MPI ライブラリ、バージョン1.2.7 開発環境(Linuxのみ)
PGI Workstation 7.2 for Apple Mac OS
PGI Workstation 7.2 for Mac OS X は、linux86 並びに linux86-64 に対する 32 ビット、64
ビットの機能・特徴のほとんどをサポートします。このリリースノートで注意として記されたもの以外は、MacOS 機能上の PGI コンパイラとツールは、Linux
のものと同一です。
Mac OSデバッギング
(注意) 技術的な問題により、現リリースでは、 MAC OS X 上の PGDBG デバッガは、サポートされません。 PGI 社は Apple社と共に、この問題の解決を図っております。できるだけ早く、今後のソフトウェアの中に組み込めるように計画しております。
PGI Unified Binary
全ての PGI コンパイラは、PGI Unified Binary オブジェクトあるいは実行モジュールを生成することができます。この PGI
Unified Binary とは、AMD64 と EM64T(インテル(R)64)のどちらのプラットフォームに対しても性能ペナルティがない形で、それぞれの
CPU ターゲットに対してフルに最適化されたコードを「一つの実行モジュール」として生成する機能です。プロセッサが異なると、そのハードウェア命令やキャッシュサイズ等のハードウェアの特徴が微妙に異なります。コンパイラは、アーキテクチャ特有の命令や命令スケジューリング、ベクトル化実装を行います。実行時に、この実行モジュールは、その実行プラットフォーム環境を認識し、動的に該当するコード・ストリームを選択します。実行時には、実行モジュールがその環境を見極め、動的に適切な最適化コードブロックを選択します。PGI
Unified Binary は、複数のハードウェア・プラットホーム上で最適に動作する単一の実行モジュールを低オーバーヘッドで提供します。
実行モジュールのサイズは自動的に Unified binary culling( 抜粋)を経て制御されます。ターゲットが生成コードに影響する場所のサブルーチンや関数だけが、ユニークなバイナリイメージを有するようになっています。その結果、各々のターゲットのバイナリイメージのフルコピーを生成するものに比較して、10〜90%
のコードサイズの削減効果があります。
プログラムは、それを構成する全てのオブジェクト・ファイルが Unified binary としてコンパイルされなくても、PGI Unified
Biary として使用することが可能です。PGI Unified Binary のオブジェクト・ファイルは、他のオブジェクト・ファイルからなるライブラリやプログラムを生成するために使用できます。PGI
Unified Biary の実行には、特別なスタートアップコードは必要ありません。
-Mpfi オプションは、PGI Unified Binary の生成を抑止します。その代わり、ホストのためのデフォルトのターゲット自動検出ルールはターゲット・プロセッサを選択するために使用します。
PGI Unified Binary のディレクティブとプラグマ
- -tp スイッチは、コンマ(,)で区切られた複数のプロセッサ Target リストを指定する形態をサポートしました。二つ以上の 64-bit
ターゲットに対しての PGI Unified Binary としての最適化(例: -tp k8-64e,p7-64,core2-64 と指定すると三つのターゲットに最適化されたコードを生成します)を指示することができます。-tp
x64オプションの場合は、-tp k8-64,p7-64 と等価となります。
- PGI Unified Binary 指示用のディレクティブ、プラグマが新設されました。これらは、コンパイラに対して、一つ以上のターゲット用の
Unified Binary 最適化コードを関数、サブルーチン、ファイル全体に対して生成するように指示するものです。ディレクティブを指示した場合は、特別のコマンドライン・オプションは必要ありません。
Fortran ディレクティブの書式は、以下のとおりです。
!pgi$[g|r| ] pgi tp [target]...
ここで、ディレクティブが有効となるスコーピングの範囲は、g(global)、r(routine)、あるいは空白で指示します。デフォルトは、r(routine)
単位となります。例えば、
!pgi$g pgi tp k8_64 p7_64
は、全体のソースファイルに対して( g(global) でスコーピングを指示している)、k8_64 並びに p7_64 用の最適化を施した Unified
Binary を生成すると言う意味となります。
C/C++のプラグマの書式は、以下のとおりです。
#pragma [global|routine|] tp [target]...
ここで、ディレクティブが有効となるスコーピングの範囲は、g(global)、r(routine)、あるいは空白で指示します。デフォルトは、r(routine)
単位となります。
#pragma routine tp k8_64 p7_64 core2_64
これは、次の function/routine に対して、k8_64、p7_64、core2_64用の Unified Binary を生成すると言う意味となります。
環境モジュール(Environment Modules)の使用
- Linux 環境における Environment Modules パッケージ(例えば、the module load command) を使用しているユーザに対して、該当するモジュールファイルをセットアップするためのスクリプトを提供しました。
PGIコンパイラをインストールしたディレクトリ /opt/pgi、そしてMODULEPATH環境変数の値を /usr/local/Modules/modulefiles
と仮定した場合、次のコマンドを実行してください。
/opt/pgi/linux86/7.2-1/etc/modulefiles/pgi.module.install -all -install /usr/local/Modules/modulefiles
このコマンドは、インストールされているPGIコンパイラの全てのバージョンに対するモジュールファイル(module files) を作成します。
modulefiles ディレクトリには、writeパーミッションを与える必要があります。これによって、moduleコマンドを有効化します。
module load pgi32/7.2
module load pgi64/7.2
module load pgi/7.2
ここで、pgi/7.2は、32ビットシステム上では32ビットのコンパイラを、64ビットシステム上では、64ビットコンパイラを使用すると言う意味となります。何のバージョンが有効かを見るためには、以下のコマンドを使用してください。
Module avail pgi
- Module loadコマンドは、次のような環境変数をセット、あるは修正することができます。
| PGI |
the base installation directory |
| CC |
full path to pgcc |
| FC |
full path to pgf90 |
| F90 |
full path to pgf90 |
| F77 |
full path to pgf77 |
| CPP |
full path to pgCC |
| CXX |
path to pgCC |
| C++ |
path to pgCC |
| PATH |
prepends the PGI compiler and tools bin directory |
| MANPATH |
prepends the PGI man page directory |
| LD_LIBRARY_PATH |
prepends the PGI library directory |
Environment Modules パッケージ自身は、PGI 製品のサポートの範囲外ですので、詳細については、以下のURLをご覧ください。 (http://modules.sourceforge.net)
REDIST ディレクトリ
PGI コンパイラで構築されたプログラムは、ランタイム・ライブラリ・ファイルを必要とする場合があります。PGI コンパイラがインストールされていないシステム上でこのようなプログラムを実行するような場合は、プログラムと共にランタイム・ライブラリ・ファイルも配布する必要があります。このために、全ての
OS プラットフォーム用の再配布用ファイルを提供しています。Windows 版では、PGI は、Microsoft(R) の再配布ファイルも提供しています。
PGI 再配布用ランタイム・ライブラリ
PGI 7.2 リリースでは、ランタイム・ライブラリを含むディレクトリは以下のとおりです。
- $PGI/linux86/7.2/REDIST
- $PGI/linux86-64/7.2/REDIST
- $PGI/win64/7.2-1/REDIST
- $PGI/win32/7.2-1/REDIST
これらのディレクトリには、PGI End-user License Agreement(EULA) の条項に基づいた PGI ライセンス契約によって再配布可能なPGI
Linux ランタイム・ライブラリの共有オブジェクトファイル、あるいは、Windo wsダイナミック・リンク・ライブラリ(DLL) が含まれます。
Linux REDIST ディレクトリに中には、サポートする全ての(CPU)ターゲット用の PGI ランタイム・ラブラリの共有オブジェクトファイルが含まれています。これによって、PGIがサポートしている、ほとんどの
Linux システム上で実行することが可能な実行モジュールと PGI ランタイム・ライブラリのパッケージを作成することが可能となります。但し、このために必要な事項は、以下のとおりです。
- 実行モジュールを実行するエンドユーザは、ランタイム・ライブラリの場所(パス)の設定等、そのための適切な環境を構築しておくこと
- Linuxにおいては、PGI共有オブジェクトの検索場所を指定するためにLD_LIBRARY_PATH環境変数をセットすること。
Microsoft(R) 再配布用ランタイム・ライブラリ
Windows上のPGI製品は、Microsoft Open Tools を含みます。Microsoft Open Toolsのディレクトリには、"redist"と言うサブ・ディレクトリが存在します。PGI
7.2ライセンシーは、PGI End-user License Agreementに準拠し、このディレクトリ内のファイルを再配布することができます。
|