pgi workstation and server compiler and tools …pgi workstation and server compiler and tools...

15
2008 年 5 月 株式会社 ソフテック PGI Workstation and Server Compiler and Tools Release 7.2 リリース・ノート 米国 PGI 社の PGI Workstation/Server コンパイラのバージョン 7.2 のリリース・ノートを以下に記します。 本リリースにおける製品の主な新機能、特徴に関して纏めたものです。 1. サポートするプラットフォーム 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 用ソフトウェアの全ての機能を包括し、 64 ビット x64 互換のプロセッサ上で動作 する 64 ビット Windows®オペレーティングシステム上で利用可能です。 32 ビットApple Mac OS X 32 ビットあるいは 64 ビットのIntel ® ベースのプロセッサを搭載したシステムで、 32 ビットApple Mac オペレーティングシステム上で利用可能です。 64 ビット Apple Mac OS X 64 ビットのIntel ® ベースのプロセッサを搭載したシステムで、64 ビットApple Macオペレーティング システム上で利用可能です。 64 ビット/32 ビット SUA 32 ビット SUA の全ての機能を包括し、64 ビット x64 互換のプロセッサ上で動作する 64 ビット Windows オペレーティングシステム上の SUA(the Subsystem for Unix-base Applications)で利用可能で す。(Windows 製品のライセンスキーが必要です) 32 ビット SFU 32 ビット x86 互換あるいは 64 ビット x64 互換のプロセッサ上で動作する 32 ビット Windows オペレ ーティングシステム上の SFU(Windows Services for Unix) で利用可能です。(Windows®製品のライセ ンスキーが必要です) 32 ビット SUA 32 ビット x86 互換あるいは 64 ビット x64 互換のプロセッサ上で動作する 32 ビット Windows オペレ ーティングシステム上の SUA(the Subsystem for Unix-base Applications) で利用可能です。 Windows®製品のライセンスキーが必要です) 1 © SofTek Systems, Inc. 2007

Upload: others

Post on 07-Jun-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PGI Workstation and Server Compiler and Tools …PGI Workstation and Server Compiler and Tools Release 7.2リリース・ノート 米国PGI社のPGI Workstation/Serv er コンパイラのバージョン7.2

2008 年 5 月

株式会社 ソフテック

PGI Workstation and Server

Compiler and Tools Release 7.2 リリース・ノート 米国PGI社のPGI Workstation/Server コンパイラのバージョン7.2 のリリース・ノートを以下に記します。

本リリースにおける製品の主な新機能、特徴に関して纏めたものです。

1. サポートするプラットフォーム

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用ソフトウェアの全ての機能を包括し、64ビット x64互換のプロセッサ上で動作

する 64ビット Windows®オペレーティングシステム上で利用可能です。

32ビットApple Mac OS X 32ビットあるいは 64ビットのIntel®ベースのプロセッサを搭載したシステムで、32ビットApple Macオペレーティングシステム上で利用可能です。

64ビットApple Mac OS X

64ビットのIntel®ベースのプロセッサを搭載したシステムで、64ビットApple Macオペレーティング

システム上で利用可能です。

64ビット/32ビット SUA

32 ビット SUA の全ての機能を包括し、64 ビット x64 互換のプロセッサ上で動作する 64 ビット

Windowsオペレーティングシステム上の SUA(the Subsystem for Unix-base Applications)で利用可能で

す。(Windows製品のライセンスキーが必要です)

32ビット SFU 32ビット x86互換あるいは64ビット x64互換のプロセッサ上で動作する32ビットWindowsオペレ

ーティングシステム上の SFU(Windows Services for Unix) で利用可能です。(Windows®製品のライセ

ンスキーが必要です)

32ビット SUA 32ビット x86互換あるいは64ビット x64互換のプロセッサ上で動作する32ビットWindowsオペレ

ーティングシステム上の SUA(the Subsystem for Unix-base Applications) で利用可能です。

(Windows®製品のライセンスキーが必要です)

1 © SofTek Systems, Inc. 2007

Page 2: PGI Workstation and Server Compiler and Tools …PGI Workstation and Server Compiler and Tools Release 7.2リリース・ノート 米国PGI社のPGI Workstation/Serv er コンパイラのバージョン7.2

64ビット/32ビット SUA 32 ビット SUA の全ての機能を包括し、64 ビット x64 互換のプロセッサ上で動作する 64 ビット

Windowsオペレーティングシステム上の SUA(the Subsystem for Unix-base Applications)で利用可能で

す。(Windows製品のライセンスキーが必要です)

2. PGI Workstation/Server Release 7.2 のソフトウェア内容

• PGF95 ネイティブOpenMP/自動並列 Fortran 95/90コンパイラ • PGF77 ネイティブOpenMP/自動並列 FORTRAN 77 コンパイラ • PGHPF データ並列High Performance Fortran コンパイラ

(Note: PGHPF はWindows製品には含まれておりません)

• PGCC ネイティブOpenMP/自動並列ANSI C99 and K&R Cコンパイラ • PGC++ ネイティブOpenMP/自動並列ANSI C++ コンパイラ • PGPROF マルチスレッド/OpenMP/MPI 並列対応グラフィカル・プロファイラ • PGDBG マルチスレッド/OpenMP/MPI 並列対応グラフィカル・デバッガ

• (Linux用製品のみ) MPICH MPI ライブラリ, version 1.2.7 (32-bit and 64-bit )をバンドル • PDF、HTML によるオンラインドキュメントとUNIX manページ • (Windows用製品のみ) Win32 and Win64 環境上で、UNIXライクの bashシェル・コマンド環

境(Cygwin)

(注意) ご購入ライセンス製品によって、使用できるコンパイラ言語の種類が決まります。

3. サポートするプロセッサ・システムについて

• PGI 7.1 と同様に、32ビット x86系のプロセッサ並びに 64ビットのAMD64、Intel® 64のプロセッ

サに対応します。PGI 7.2において、サポートするCPUは以下の表のとおりです。

• PGI 7.2から新しい CPU ターゲットである、-tp penryn、 -tp penryn-64 が実装されました。こ

れらのターゲットは、新しい Intel クアッドコアのプロセッサの 32ビット用、64ビット用に最適化

するためのものです。

Processors supported by PGI 7.2

Floating point HW

Brand CPU cores <target> Mem

Addressing SSE1 SSE2 SSE3 SSSE3 SSE4ABM

SSE4a

AMD Opteron/Quad-Core 4 barcelona 32-bit Yes Yes Yes No No Yes

AMD Opteron/Quad-Core 4 Barcelona-64 64-bit Yes Yes Yes No No Yes

AMD Opteron/Athlon64 2 k8-64 64-bit Yes Yes Yes No No No

AMD Opteron/Athlon64 2 k8-32 32-bit Yes Yes Yes No No No

AMD Opteron Rev E/F 2 k8-64e 64-bit Yes Yes Yes No No No

AMD Opteron Rev E/F 2 k8-32 32-bit Yes Yes Yes No No No

AMD Turion64 1 k8-64e 64-bit Yes Yes Yes No No No

AMD Turion64 1 k8-32 32-bit Yes Yes No No No No

Intel Penryn 4 penryn 32-bit Yes Yes Yes Yes Yes No

Intel Penryn 4 penryn-64 64-bit Yes Yes Yes Yes Yes No

Intel Core 2 2 Core2 32-bit Yes Yes Yes Yes Yes No

2 © SofTek Systems, Inc. 2007

Page 3: PGI Workstation and Server Compiler and Tools …PGI Workstation and Server Compiler and Tools Release 7.2リリース・ノート 米国PGI社のPGI Workstation/Serv er コンパイラのバージョン7.2

Intel Core 2 2 Core2-64 64-bit Yes Yes Yes Yes Yes No

Intel P4/Xeon EM64T 2 p7-64 64-bit Yes Yes Yes Yes No No

Intel P4/Xeon EM64T 2 p7 32-bit Yes Yes Yes Yes No No

Intel Xeon/Pentium4 1 p7 32-bit Yes Yes No No No No

AMD Athlon XP/MP 1 athlonxp 32-bit Yes No No No No No

Intel Pentium III 1 piii 32-bit Yes No No No No No

AMD Athlon 1 athlon 32-bit No No No No No No

AMD K6 1 k6 32-bit No No No No No No

Intel Pentium II 1 p6 32-bit No No No No No No

other Other x86 No p5 or px 32-bit No No No No No No

4. サポートするOS の追加

• Linux版においては、RedHat Enterprise Linux 5.0 、SUSE LINUX 10.3並びに Federa Core 7を新たに

サポートしました。PGI 7.2において、サポートするOSは以下のとおりです。なお、PGI 7.0以前で

サポートしておりました、古い Linux DistributionであるRedHat 8.0/7.3、SuSE 8.1/8.0、SLES8 SP2は、PGI 7.2 以降サポートしておりませんのでご注意ください。

Linux Operating Systems and Features Supported in PGI 7.2

Distribution Type 64-bit HT pgC++ pgdbg NPTL NUMA glibc GCC

RHEL 5.0 Linux Yes Yes Yes Yes Yes No 2.6 4.1.2

RHEL 4 Linux Yes Yes Yes Yes Yes No 2.3.4 3.4.3

Fedora C-7 Linux Yes Yes Yes Yes Yes Yes 2.6 4.1.2

Fedora C-6 Linux Yes Yes Yes Yes Yes Yes 2.5 4.1.1

Fedora C-5 Linux Yes Yes Yes Yes Yes Yes 2.4 4.1.0

Fedora C-4 Linux Yes Yes Yes Yes Yes No 2.3.5 4.0.0

Fedora C-3 Linux Yes Yes Yes Yes Yes No 2.3.3 3.4.2

Fedora C-2 Linux Yes Yes Yes Yes Yes No 2.3.3 3.3.3

SuSE 10.3 Linux Yes Yes Yes Yes Yes Yes 2.6.1 4.2.1

SuSE 10.2 Linux Yes Yes Yes Yes Yes Yes 2.5 4.1.0

SuSE 10.1 Linux Yes Yes Yes Yes Yes Yes 2.4 4.1.0

SuSE 10.0 Linux Yes Yes Yes Yes Yes Yes 2.3.5 4.0.2

SuSE 9.3 Linux Yes Yes Yes Yes Yes Yes 2.3.4 3.3.5

SuSE 9.2 Linux Yes Yes Yes Yes Yes Yes 2.3.3 3.3.4

SLES 10 Linux Yes Yes Yes Yes Yes Yes 2.4 4.1.0

SLES 9 Linux Yes Yes Yes Yes No Yes 2.3.3 3.3.3

SuSE 9.1 Linux Yes Yes Yes Yes Yes No 2.3.3 3.3.3

RHEL 3 Linux Yes Yes Yes Yes Yes No 2.3.2 3.2.3

SuSE 9.0 Linux Yes Yes Yes Yes No No 2.3.2 3.3.1

SuSE 8.2 Linux Yes Yes Yes Yes No No 2.3.2 3.3

Red Hat 9.0 Linux No No Yes Yes Yes No 2.3.2 3.2.2

HT = hyper-threading, NPTL = Native POSIX Threads Library, NUMA = Non-Uniform Memory Access. • Windows上で使用可能なコマンドベースのコンパイラ(PGI Workstation & Server)が対応するOS

3 © SofTek Systems, Inc. 2007

Page 4: PGI Workstation and Server Compiler and Tools …PGI Workstation and Server Compiler and Tools Release 7.2リリース・ノート 米国PGI社のPGI Workstation/Serv er コンパイラのバージョン7.2

は、以下のとおりです。

Windows® Operating Systems and Features Supported in PGI 7.2

OS Type 64-bit HT pgC++ pgdbg NPTL NUMA glibc GCC

Vista No Yes Yes Yes NA Yes NA NA

XP No Yes Yes Yes NA Yes NA NA

2003 No No Yes Yes NA Yes NA NA

2000 No No Yes Yes NA Yes NA NA

SFU No Yes Yes Yes NA Yes SFU 3.3

Microsoft®

Windows®

(32ビット)

SUA x86 No Yes Yes Yes NA Yes SUA 3.3

Vista Yes Yes Yes Yes NA Yes NA NA

XP 64 Yes Yes Yes Yes NA Yes NA NA

2003

x64 Yes Yes Yes Yes NA Yes NA NA

Microsoft®

Windows®

(64ビット)

SUA x64 Yes Yes Yes Yes NA Yes SUA 3.3

• IntelプロセッサベースのMac OS X に対応するコンパイラも正式にリリースいたします。

Apple Operating Systems and Features Supported in PGI 7.2

OS Type 64-bit HT pgC++ pgdbg NPTL NUMA glibc GCC

Core 2 No No Yes Yes NA NA NA 4.0.1 Apple

Mac OS X Core 2

Duo No No Yes Yes NA NA NA 4.0.1

5. 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サポートを行うことができるようになりました。

4 © SofTek Systems, Inc. 2007

Page 5: PGI Workstation and Server Compiler and Tools …PGI Workstation and Server Compiler and Tools Release 7.2リリース・ノート 米国PGI社のPGI Workstation/Serv er コンパイラのバージョン7.2

• Thread Local Storageの導入- いくつかのOpenMP並列ランタイムルーチンの効率化による性

能向上を図るために、TLS(Thread Local Storage) の使用を導入しました。

• Vector packed SIMD code- OpenMPパラレル・リージョンの中で vector packed SIMD コード

の効果を強化しました。

• 新プロセッサ・サポート- インテル® 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.

6 PGI 7.2 の新コンパイラ・オプションと従来との変更部分

未知のコンパイラ・オプションを指定した場合、今までは「警告」レベルの扱いでしたが、PGI 7.1 より、「エラー」として扱われます。この変更によって、コンパイラが認識できないオプション(スイッ

チ)が指定された場合、コンパイルエラーとなり停止することになります。(前のバージョン PGI 7.1か

ら適用されたデフォルトですのでご注意下さい)

一例 : pgf95-Error-Unknown switch: -Mconcu

しかしながら、新しいコンパイラ・オプションである -noswitcherror を指定すると、従来のように、未

知のオプション(スイッチ)が指定された場合、エラーで停止するの代わりに「警告」を出すように変

更できます。

5 © SofTek Systems, Inc. 2007

Page 6: PGI Workstation and Server Compiler and Tools …PGI Workstation and Server Compiler and Tools Release 7.2リリース・ノート 米国PGI社のPGI Workstation/Serv er コンパイラのバージョン7.2

次のオプションは、PGI 7.2から追加あるいは、修正されたものです。

• –drystdin- 標準インクルード・ディレクトリを出力して終了します。

• –Minfo=intensity[:<n>] -ループ内の「演算密度」(Computational Intensity)を表示します。サブ

オプション<n>を指定すると、その(多重)ループレベルまでの情報を表示します。デフォルトは、

最内側ループの情報が表示されます。演算密度とは、一般にループ内の演算数とメモリのロード・ス

トア数との比率を表し、演算とメモリ参照のバランスを見るための指標です。このような情報はパフ

ォーマンス・チューニングにおいて特に重視されます。

・ ループ内の演算が浮動小数点演算である場合、演算密度は、浮動小数点演算総数を浮動小数点

データのメモリロードとストアの総和で割った比率として定義します。 ・ ループ内の演算が整数演算である場合、演算密度は、整数演算総数を整数データのメモリロー

ドとストアの総和で割った比率として定義します。

以下は、Linux上で実施した例です。(現在、Linux版のみ実装)

kato@photon26:~/Himeno> pgf90 -fastsse -Minfo=intensity:3 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 ->(21+13)/(31+1) =1.0625 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ジョブで再コンパイルを行うように指示するものです。

6 © SofTek Systems, Inc. 2007

Page 7: PGI Workstation and Server Compiler and Tools …PGI Workstation and Server Compiler and Tools Release 7.2リリース・ノート 米国PGI社のPGI Workstation/Serv er コンパイラのバージョン7.2

• –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は、本オプションを含みます。

• –rpath <ldarg>- (Linux only)ldarg情報をリンカに渡します。そして、ランタイム検索パスに

そのディレクトリを加えます。

• –tp=[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 月現在、弊社の試験

によるとまだ機能しておりません)

7 © SofTek Systems, Inc. 2007

Page 8: PGI Workstation and Server Compiler and Tools …PGI Workstation and Server Compiler and Tools Release 7.2リリース・ノート 米国PGI社のPGI Workstation/Serv er コンパイラのバージョン7.2

7 PGDBG(デバッガ)の機能等

PGI Workstation/Server 7.2は、PGI 7.1に導入された以下の新機能をサポートしております。 • PGDBG 7.2は、PGDBGが動作する同じシステム上で動くMPICH-1の4つのプロセスまでのアプリケ

ーション・デバッグができます。

• PGDBG 7.2 (Windows 版)は、Microsoft® Windows CCSクラスタ上で動作するMSMPIアプリケーシ

ョンのデバッギングをサポートしました。これは、CCS対応のMSMPIデバッギングをサポートする、

業界で初めての製品です。

• PGDBG 7.2 は次の機能の強化を行いました。

・ スタックトレース機能の向上 ・ Microsoft® Visual C++との互換性をより強化しました ・ gcc/g++との互換性をより強化しました ・ 高速な disasseblyと全体の性能向上

8 PGPROF(プロファイル)の新機能等

PGI Workstation/Server 7.2は、PGPROF並列プロファイラの中で、いくつかの新しい機能の追加と機

能強化を行いました。

• PGPROF 7.2 は、Linux 版において、カウンタベースの並列アプリケーションのスケーラビリティ解

析をサポートしました。

• PGPROF 7.2は、いくつかのGUIの向上を行いました。

9 Linux上でのMPICH プログラムの実行

PGI Workstation/Server 7.2 for Linux は、MPICHライブラリ、ツールを製品の中にバンドルし、さらに、

MPI プログラムをコンパイルし、実行、デバッグ、プロファイリングを行うためのライセンスを含む形と

なりました。PGI Workstationは、一つのシングルノード上にインストールされ、そのノードは、あたかも

クラスタのように扱われます。MPIデバッガ&プロファイラは、PGI Workstation / Server ライセンスでは、

一つのノード上のみのプロセス分析に制約されますが、PGI CDKライセンスでは、ローカル、リモートを

問わず、一般的なクラスタ上での開発ツールとして使用することが可能です。

PGI Tools Guide は、MPIを利用する際のツールの利用法について詳細に説明しております。

• PGIPROFは、グラフィカルMPI/OpenMP/マルチスレッド対応の性能解析プロファイラ • PGDBGは、グラフィカルMPI/OpenMP/マルチスレッド対応のシンボリック・デバッガ • 32ビット/64ビットMPICH MPIライブラリ、バージョン 1.2.7 開発環境(Linuxのみ)

一般的なMPIプログラムの実行モジュール生成は、以下のようなコンパイル・オプションで、MPICHの

インクルードファイルの取り込みとMPICHライブラリがリンクできるようになります。

% pgf77 -o mpihello mpihello.f –Mmpi (コンパイル) % mpirun mpihello Hello world! I'm node 0 % mpirun -np 4 mpihello (実行) Hello world! I'm node 0

8 © SofTek Systems, Inc. 2007

Page 9: PGI Workstation and Server Compiler and Tools …PGI Workstation and Server Compiler and Tools Release 7.2リリース・ノート 米国PGI社のPGI Workstation/Serv er コンパイラのバージョン7.2

Hello world! I'm node 2 Hello world! I'm node 1 Hello world! I'm node 3

MPIプログラムのデバッグを行う際は、mpirun コマンドの引数に–dbg=pgdbg を追加指定してくださ

い。PGDBGのGUI表示が現れます。 % mpirun –dbg=pgdbg –np 4 mpihello

10 PGI Workstation 7.2 for Apple Mac OS

PGI Workstation 7.2 for Mac OS X は、linux86並びに linux86-64に対する 32ビット、64ビットの機能・

特徴のほとんどをサポートします。このリリースノートで注意として記されたもの以外は、MacOS機能上

の PGIコンパイラとツールは、Linuxのものと同一です。 10.1 Mac OSデバッギングの注意事項

(注意) 技術的な問題により、現リリースでは、 MAC OS X 上の PGDBG デバッガは、サポートされ

ません。 PGI 社は Apple 社と共に、この問題の解決を図っております。できるだけ早く、今後のソフト

ウェアの中に組み込めるように計画しております。

11 PGI Unified Binary

全ての PGI コンパイラは、PGI Unified Binary オブジェクトあるいは実行モジュールを生成することが

できます。この PGI Unified Binary とは、AMD64と EM64T(インテル®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 の生成を抑止します。その代わり、ホストのためのデフォル

トのターゲット自動検出ルールはターゲット・プロセッサを選択するために使用します。

11.1 PGI Unified Binary のディレクティブとプラグマ

• –tp スイッチは、コンマ(,)で区切られた複数のプロセッサ Target リストを指定する形態をサポー

トしました。二つ以上の64-bitターゲットに対しての PGI Unified Binary としての最適化(例: -tp

9 © SofTek Systems, Inc. 2007

Page 10: PGI Workstation and Server Compiler and Tools …PGI Workstation and Server Compiler and Tools Release 7.2リリース・ノート 米国PGI社のPGI Workstation/Serv er コンパイラのバージョン7.2

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 を生成する

と言う意味となります。

12 環境モジュール(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

10 © SofTek Systems, Inc. 2007

Page 11: PGI Workstation and Server Compiler and Tools …PGI Workstation and Server Compiler and Tools Release 7.2リリース・ノート 米国PGI社のPGI Workstation/Serv er コンパイラのバージョン7.2

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)

13 REDISTディレクトリ

PGI コンパイラで構築されたプログラムは、ランタイム・ライブラリ・ファイルを必要とする場合があ

ります。PGI コンパイラがインストールされていないシステム上でこのようなプログラムを実行するよう

な場合は、プログラムと共にランタイム・ライブラリ・ファイルも配布する必要があります。このために、

全てのOSプラットフォーム用の再配布用ファイルを提供しています。Windows版では、PGIは、Microsoft®の再配布ファイルも提供しています。

13.1 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 ランタイム・ライブラリの共有オブジェクトファイル、あるいは、

Windowsダイナミック・リンク・ライブラリ(DLL)が含まれます。

Linux REDIST ディレクトリに中には、サポートする全ての(CPU)ターゲット用の PGIランタイム・ラブ

ラリの共有オブジェクトファイルが含まれています。これによって、PGI がサポートしている、ほとんど

の Linux システム上で実行することが可能な実行モジュールと PGI ランタイム・ライブラリのパッケージ

を作成することが可能となります。但し、このために必要な事項は、以下のとおりです。

• 実行モジュールを実行するエンドユーザは、ランタイム・ライブラリの場所(パス)の設定等、その

ための適切な環境を構築しておくこと

• Linux においては、PGI 共有オブジェクトの検索場所を指定するために LD_LIBRARY_PATH 環境変数

11 © SofTek Systems, Inc. 2007

Page 12: PGI Workstation and Server Compiler and Tools …PGI Workstation and Server Compiler and Tools Release 7.2リリース・ノート 米国PGI社のPGI Workstation/Serv er コンパイラのバージョン7.2

をセットすること。

13.2 Microsoft® 再配布用ランタイム・ライブラリ

Windows上の PGI製品は、Microsoft Open Tools を含みます。Microsoft Open Toolsのディレクトリに

は、”redist”と言うサブ・ディレクトリが存在します。PGI 7.2 ライセンシーは、PGI End-user License Agreementに準拠し、このディレクトリ内のファイルを再配布することができます。

14 既知の制限事項

• PGDBG 7.2-1リリースは、ランダムなアドレスを有効にするシェアードライブラリのローディングを

サポートする新しい Linux システム上で、MPIプログラムのデバッギングをできるようにしました。 ・ このモードが有効な時、PGDBG の現在の実装は、極めて多くのメモリを使用するため、その

結果、性能が低下します。PGDBG を使用してMPI プログラムをデバッグする際は、PGI は現

在、Linux カーネル上でこのモードを抑止することを推奨しています。このカーネルモードを

抑止するにはルート権限で次のコマンドを実行してください。

sysctl -w kernel.randomize_va_space=0

・ Fedora Core 6 or RHEL5上でシェアードライブラリのロード認識において PGDBG内の問題に

より、MPICH-1 のデバッギングにおいて rank0 のプロセス以外のプロセスのブレーク・ポイ

ントが無視されます。これは、ランダムなアドレスを有効にするシェアードライブラリのロー

ディングを行っている時に生じます。

• "pgserv" 環境の下で起動した MPI ジョブのデバッギング時に、プログラムの最初の実行文の前にジ

ョブの進行が停止させられます。この時点でソースレベルのデバッグ情報が存在しないため、ソース

レベルの次のコマンドを出すことは非常にゆっくりと実行します。遅くなります。これが完了するか、

例外により止まるか、ユーザによって入力された PGDBG 停止コマンドによって止まるまで、ジョ

ブを実行しなければならないことを回避するため、ユーザは、最初のブレークポイントをセットすべ

きです。フォートラン・プログラムがデバッグされている場合は、"continue" コマンドを出す前に

実行パス上で、メイン、または MAIN_、あるいは別のポイントで最初のブレークポイントをセット

してください。

• PGI 7.2 で生成されたオブジェクトあるいはモジュールは、PGI 5.x並びにそれ以前のリリースのオ

ブジェクト、モジュールとは互換性がありません。

• PGI 6.1並びにそれ以前のリリースにおいて -Mipaオプションを付加して作成されたオブジェクトフ

ァイルは、PGI 7.2上で再コンパイルが必要です。

• Windows において、cygwin に含まれる vi のバージョンは、SHELL 変数に予期しないものが指定さ

れている場合、問題が起きる可能性があります。このケースの場合、viが起動される時、次のような

メッセージを出力します。この問題を修復するには、SHELL 環境変数に対して cygwin の bin ディレ

クトリの中のシェルを指定してください。(例、/bin/bash)

E79: Cannot expand wildcards E79: Cannot expand wildcards E79: Cannot expand wildcards Hit ENTER or type command to continue

• -i8オプションの使用において、プログラムをMPIライブラリととともに使用する場合、互換性があ

りません。Integer*8配列の引数の使用により、これらのライブラリと共に使用する場合、異常終了

します。

12 © SofTek Systems, Inc. 2007

Page 13: PGI Workstation and Server Compiler and Tools …PGI Workstation and Server Compiler and Tools Release 7.2リリース・ノート 米国PGI社のPGI Workstation/Serv er コンパイラのバージョン7.2

• -i8 オプションを使用するプログラムにおいて、PGI コンパイラにバンドルしている ACML ライブラ

リととともに使用する場合、互換性がありません。このオプションの互換ライブラリに関しては、

developer.amd.comをご参照ください。

• Apple Mac OS プラットフォーム上では、 PGI Workstation 7.2 コンパイラは、ユーザバイナリの静

的リンク(Static linking) をサポートしません。今後の Apple 社のアップデートとの互換性のために、

コンパイラは、ユーザバイナリのダイナミック・リンク方式(Dynamic linking) をサポートします。

• -mcmodel=medium オプションを使用してコンパイルされたオブジェクトを組み込んだプログラム

は、静的にリンクされることはできません。これは、linux 86-64環境における制約事項であり、PGIコンパイラによる制約事項ではありません。

• PGCC の-Mipa=libopt と-Mipa=vestigial オプションを同時に使用した場合、リンク時に未解決な参照

が生じる場合があります。これは、-Mipaにサブオプション vestigialを付加することにより、エラー

となる関数が削除されるために起こります。この場合は、vestigial を付加せずに、-Mipa のみの指定

で対処してください。

• -Mprof=func並びに-mcmodel=mediumあるいは-mpを一緒に使用した場合、生成された実行モジュ

ールはセグメンテーション・フォールトが生じます。これらのオプションを同時に使用することは避

けてください。

• gprofスタイルのプロファイリング機能(-pg)を使用してコンパイル・リンクしたプログラムは、2.6.4 Linuxカーネルのシステム上でセグメンテーション・フォールトが生じます。

• -mp を使用して生成された OpenMP プログラムが、SuSE9.0 システム上の複数プロセッサで並列実

行した場合、極端に遅くなります。しかし、これと同じ実行モジュールが SuSE9.以上で動作させる

と期待される性能と効果が得られます。

• ACML4.1.0 ライブラリは、-cache_align を含んだ -fassse コンパイル・オプションを使用して構築さ

れております。32-bitターゲットシステム上で、-lacmlオプションを使用してACMLライブラリをリ

ンクする際に、必ず、全てのプログラムに -cache_align もしくは、このオプションを含む複合オプ

ションである –fastsse を付加してコンパイル/リンクを行ってください。64-bit ターゲットシステム

上では、デフォルトでスタック 16byte アラインメントであるため、この問題は生じません。なお、

性能が多少劣りますがポータビリティの良い libblas.a と liblapack.a ライブラリは、SSE 命令を有し

ていないプロセッサ上で使用することができます。

• -fPIC あるいは、-mcmodel=medium オプションを使用してコンパイルし、-lacml (ACMLライブラ

リ)をリンクする際に、 “error while loading shared libraries: libacml_mv.so: cannot open shared object file: No such file or directory.” と言うエラーメッセージが出力されます。その際は、" -lacml_mv" オプションをリンク時のコマンド列に追加してください。

• -Mpfi と-mp を同時に使用することはサポートされていません。-Mpfi オプションは、コンパイル時

に –mp を抑止しますが、それは、プログラムの中のOpenMPディレクティブ/プラグマの解釈に依

存してプログラムの実行時にエラーを引き起こすことになります。OpenMPに依存しないプログラム

は、正確に profile feedback を使用することができます。-Mpfo オプションは、OpenMP 処理を抑止

します。

• Windows上で、デバッギングのためにビルドされたランタイム・ライブラリ(例 msvcrtdと libcmtd)は、PGI Workstationには含まれていません。デバッグ用途のために、-gオプションを付けてコンパ

イルするとき、PGI ランタイム・ライブラリと Microsoft ランタイム・ライブラリの両方の標準的な

non-debug バージョンがいつも使用されます。この制約は、アプリケーションコードのデバッギン

グ時にのみに影響します。

13 © SofTek Systems, Inc. 2007

Page 14: PGI Workstation and Server Compiler and Tools …PGI Workstation and Server Compiler and Tools Release 7.2リリース・ノート 米国PGI社のPGI Workstation/Serv er コンパイラのバージョン7.2

• Dynamic Link Libraries(DLLs) は、PGI 7.2 によってMicrosoft Windowsプラットフォーム上で構築す

ることができます。但し、次の制約があります。

・ DLLsは、PGI C++コンパイラでは生成することはできません。

・ もし、DLLsが PGIコンパイラにより構築された場合、ランタイムDLLsが必要となります。コ

ンパイラ・オプション-Mmakedllは、正確なランタイム・ライブラリが使用されることを保証

するためのものです。

・ もし、実行モジュールが PGIコンパイラでコンパイルされたDLLsとリンクされているものな

らば、PGI ランタイム・ライブラリDLLsを使用しなければなりません。この場合は、デフォ

ルトで使用される静的ライブラリを使用することができないからです。これを実現するために

は、実行モジュールを作成する時に PGI 7.1 から導入された-Bdynamicオプションを使用して

ください。

• PGPROF-PGI ランタイム・ライブラリ DLLs と共に、-Mprof を使用しないで下さい。プロファイリ

ングのための実行モジュールを構築するために、静的ライブラリを使用してください。-Mdll オプシ

ョンを使用していない場合は、デフォルトで静的ライブラリをリンクします。

• マルチスレッドのサンプルベースのプロファイル機能(gprof スタイルのプロファイリング:-pg あ

るいは、-Mprof=timeオプション)でレポートされる時間は、マスタ・スレッドだけのものとなって

います。一方、PGI 形式のプロファイリング(-Mprof=lines|func)あるいはハードウェア・カウンタ・

ベースプロファイリング(-Mprof=hwcts)は、個々のスレッドあるいはプロセスの時間データを個別に

取得するために使用されます。

• PGDBG-デバッグコマンドの watch 系のコマンドは、ローカル変数が対象の場合は信頼できません。

Watchされるローカル変数のスコープ範囲内から関数、サブルーチンを呼ぶことが、イベントを見失

うか、あるいは明確なイベントを誤る場合があります。もし、プログラムのスコーピングが watchされる変数のスコープ部分から離れていない場合、ローカル変数は正しく watch できます。グロー

バル、静的変数に対するwatchコマンドは、常に正しいものを与えます。

• PGDBG-デバッグコマンドの call コマンドは、次の F90/F95 フィーチャをサポートしません:

array-valued functions, pointer-valued, functions, assumed-shape array arguments, pointer arguments。この問題に対する解決策はありません。

• PGDBG-以前にrunあるいはrerunである特定のI/Oリダイレクションを行っているプログラムの実

行後に、再度、引数のない runあるいは rerunを行うと、I/O処理は、前の実行時の途中から継続さ

れます。この問題は、stdout 等のファイルへ追加出力、stdin 等の入力ポイントがリセットされない

等の予期せぬ結果を引き起こします。この制約は、I/Oリダイレクトを伴う runあるいは rerunの後

に行う shellコマンドに対しても同様な振る舞いとなります。

• PGDBG-.soや.dll等の sharedライブラリは、そのライブラリの中に含まれるコードがブレークポイ

ントとしてセットされる前にロードされていなければなりません。

• PGDBG – Unified Binaries(-tp x64を付けて構築されたモジュール)のデバッギングは、フルにサポ

ートされません。いくつかのサブプログラム名が unified binaries を生成する過程で変更されていま

す。PGDBG は、アプリケーションのソースコード内で使用されているプログラム名とこれら変更さ

れた名前との間の変換を行いません。デバッグにおいては、Unified Binaries 生成オプションと付け

ずに、native なプロセッサターゲットで実行モジュールを生成してください。あるいは、Unified Binariesのデバッグを行う方法に関しては、http://www.pgroup.com/support/tools.htm に詳細な情報

がありますので、ご参照下さい。

14 © SofTek Systems, Inc. 2007

Page 15: PGI Workstation and Server Compiler and Tools …PGI Workstation and Server Compiler and Tools Release 7.2リリース・ノート 米国PGI社のPGI Workstation/Serv er コンパイラのバージョン7.2

• PGDBG Windows-Windows上の PGDBGにおいては、一般にディレクトリ・パス名を区切るために

バックスラッシュ文字(“¥” )を使用します。PGDBGは、C言語の数式表示として、バックスラッシュ

をエスケープ文字の意味として使用します。一方、Windows プラットフォームにおける PGDBG は、

ディレクトリ・パス名を区切るためにフォワードスラッシュ文字(”/”)を使用してください。但し、

この事項は DEBUG コマンド、あるいはコマンドライン上の実行モジュール名には適用されません。

(但し、このコンベンション自体は、これらのコマンドにおいても動作します)

• PGDBG SFU/SFA-オペレーティングシステムのサポートがないために、SFU/SUA システム上の

PGDBGは、ハードウェアwatchpoint(hwatchコマンド)をサポートしていません。

• PGDBG SFU/SFA-オペレーティングシステムの制約により、32bit SUA上のプログラムだけがPGDBGのマルチスレッドのデバッギングが可能です。但し、一つ制約があり、一度ストップすると、プロセ

スは全てのスレッド、あるいは、シングルスレッドの続行(スレッドの部分的なセットの続行ではな

く)をしなければ、プロセスの続行ができません。スレッドの部分的なセットの続行は、結果として

全てのプロセス(スレッド)を続行させることになります。

以 上

※なお、文中で使用されている商品名、名称は、各社の商標あるいは登録商標です

15 © SofTek Systems, Inc. 2007