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



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



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


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

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

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

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


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

・旧バージョン PGI® 6.1 のリリースノートは、こちらのページで閲覧できます。
・旧バージョン PGI® 6.0 のリリースノートは、こちらのページで閲覧できます。

・PGI 6.2 の英語版リリース・ノートは、こちらで閲覧できます。


Version 6.2 の新機能、特徴 (2006年9月)
PGI® 6.2 のリリース・ノートの詳細版は、PDF ファイルで提供しております。
新製品体系(Windows(R)対応製品の追加)

PGI 6.2 バージョンより従来の Windows の Win64 環境だけでなく、新たにWin32 に対応した PGI コンパイラ&ツール製品をご提供します。これらは、Linux の 32bit あるいは 64bit バージョンとほぼ同じ機能を提供します。本製品は、Windows 上のコマンド・プロンプトからコマンドレベルで操作する製品であり、Visual Studio 2005 等のIDE環境と統合はできません(Visual Studio 2005 開発環境と統合可能な新製品 PGI Visual Fortran は、PGI Workstation/Server 製品系列とは別に 11 月下旬以降に発売される予定です。)なお、デバッガ(pgdbg)、性能解析プロファイラ(pgprof)等の PGI ツールは GUI ベースで操作できます。

Winodws 版の PGI Workstation/Server のコマンド・インタフェース環境は、UNIX-like の cygwin シェル環境を提供しています。これは、Linux における BASH シェル環境と同様なものであり、使い慣れた UNIX/Linuxコマンド(vi, cp, sed, awk, grep, make等)を使用して、プログラムの開発が可能であり、Linux 上での PGI コンパイラオプションと同じ形態でコンパイラを使用できます。また、本製品には新たに Microsoft Open Tools (Microsoft が提供するリンカー等のツール、ライブラリ、インクルードファイル等) が含まれており、Microsoft のネイティブな開発環境が提供されます。これによって、Microsoft Visual C++ との相互運用性が向上し、PGI FortranとVisual C++ の混合プログラムのデバッギングもサポートします。

 Microsoft Compute Cluster Server 2003 との相互運用性としては、Microsoft によって実装されている Microsoft MPI library (MSMPI) は、Windows x64 版のPGI コンパイラと共に使用することができます。

以下に、PGI コンパイラ 6.2 以降の製品販売体系について纏めます。

 PGI Workstation/Server 6.2
32ビット専用製品 ( 32bit x86系プロセッサ 32bit 対応OS)
  PGI Workstation
(ノードロック)
PGI
Server

(フローティング)
備考
Linux専用製品 32bit-Linux 専用
Windows専用製品
(コマンドベース)
32bit-Windows 専用
Linux + Windows
クロスプラットフォーム
対応製品
販売して
おりません
Linux 用と Windows 用の二つのライセンスキーを含んだ形態で提供
32ビット/ 64ビット共用製品 (32bit x86系 or AMD64/EM64Tプロセッサ 32bit or 64bit 対応OS)
  PGI Workstation
(ノードロック)
PGI
Server

(フローティング)
備考
Linux専用製品 32bit or 64bit のどちらの Linux にも対応
Windows専用製品
(コマンドベース)
32bit or 64bit のどちらの Windows にも対応、32bit OS上では 32bit のモジュールのみ生成可能、64bit 用のクロスコンパイルは不可
Linux + Windows
クロスプラットフォーム
対応製品
販売して
おりません
Linux 用と Windows 用の二つのライセンスキーを含んだ形態で提供


 PGI Visual Fortan 6.2
32ビット/64ビット製品 (32ビットWindows あるいは 64ビットWindows対応)
Windows(R) 専用
(Visual Studio 2005に統合可能な製品)
ノードロック
ライセンス
32bit or 64bit のどちらの Windows 上でも利用可能。64bit Windows にインストールした場合、32bit モードと 64bit モードのコンパイル機能を有する。なお、発行されるライセンス・キーは 32bit Windows上でも機能する。

サポートするプロセッサタイプ

PGI 6.1 と同様に、32ビット X86 系のプロセッサ並びに 64 ビットの AMD64、Intel EM64T の両方のプロセッサに対応します。PGI コンパイラの大きな特長は、CPU ターゲットを指定するコマンド・ライン・オプションである -tp p7-64 を指定することで、Intel(R) EM64T に特化した最適化を行います。PGI コンパイラは、AMD64 ネイティブな最適化と Intel(R) EM64T 用の最適化を切り替えることが可能なクロス・コンパイル機能を有します。さらに、PGI コンパイラは、一つの実行モジュールにおいて、AMD64 あるいは EM64T のどちらにも最適な性能を提供可能な PGI Unified Binaries の機能を業界で初めて提供しております。

PGI コンパイラを利用することで、将来、ご使用システムを EM64T もしくは AMD64 のどちらかの CPU プラットフォームに変更したとしても、共通コンパイラ基盤としてどちらのプラットフォームに対してもご利用いただけます。PGI 6.2 から新規に導入された CPU target は、core2 並びに core2-64 ですが、これは、インテル社の Core 2 Duo 等の Core マイクロアーキテクチャ(Xeon 5100番台 を含む)を有するプロセッサとなります。また、PGI 6.1 で導入された k8-64e ターゲットの中に、Opteron Rev.F プロセッサも含まれました。 PGI 6.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 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 2 EM64T SSE


サポートするOS の追加

最新の Linux ディストリビューションである SUSE 10.1 並びに SUSE Linux Enterprise Server 10 (SUSE Linux Enterprise Desktopを除く)を新たにサポートしました。従来からサポートしている RedHat Enterprise Linux 3, 4 並びに Fedora Core 3, 4, 5 (PGI 6.1-5より) もサポートされます。 PGI コンパイラがサポートする Linux Distributions に関しては、こちらをご覧ください
PGI 6.2 から 32bit Windows(R) 並びに 64ビット Windows(R) x64 対応バージョンがリリースされました。

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

  • Uniform high-performance development environment- 64ビット並びに32ビット環境に跨る共通なハイ・パフォーマンス開発環境が、LinuxあるいはMicrosoft(R) Windows(R)上でかつ、AMD社並びにインテル社のプロセッサを有するプラットフォーム上で提供されます。
  • Windows 32-bit support- 32ビットPGI Workstation/Serverコマンドレベル・コンパイラとGUI対応デバッガ、プロファイラは、Microsoft Windowsネイティブな32ビットプラットフォームをサポートしました。Win32環境での旧PGI 6.0 以前のWindows対応コンパイラは、MINGW(Minimalistic GNU for Windows)プラットフォームを使用していました。MINGWとは、Win32上の GNU GCC 及び binutils プロジェクトに基づくコンパイラシステムの構築に利用されるランタイムヘッダ群を言います。
  • PGI Unified Binaries- PGI 6.2 コンパイラは、PGI 6.1で導入された PGI Unified Binary オブジェクトあるいは実行モジュールを生成することができます。この PGI Unified Binary とは、AMD64とEM64Tのどちらのプラットフォームに対しても性能ペナルティがない形で最適なコードを一つの実行モジュールとして生成する機能です。このPGI Unified Binaryを生成するためには、コンパイラオプション-tp x64を明示的に指定してコンパイルする必要があります。PGI Unified Binary の性能は、PolyhedronとSPEC benchmarksを使用して、AMD64、EM64Tそれぞれのネイティブな最適化によって生成したバイナリの性能と比較しても平均1%以内に収まっております。
  • ANSI C99 - PGCC 並びに PGC++ コンパイラ 6.2は、ANSI C99 をサポートしています。コンパイラオプション -c99(あるいは -c9x) スイッチ(デフォルト値)は、Cのソースコードが C9x Standard であることを前提であるものとします。-c89(あるいは -c8x)スイッチは、C89 standard であると解釈します。両方とも、C++スタイルのコメント(//)をサポートします。
  • デュアルコアプロセッサにおける自動並列化 - シングルプロセッサ上の性能を向上させるために、自動並列化対象ループ部分に対して、シリアル処理のための代替コードを生成するようになりました。また、自動並列化機能の中に、パイプライン型並列処理形式を実装しました。パイプライン型並列処理とは、ループ・イテレーションに依存する配列の依存性が存在するループに対して、各スレッド間で依存配列を順番に引き渡して制御することで並列化を実現する方法です。
  • ベクトル化の強化- ベクトライザの更なるチューニングがなされました。これには、イディオム(idiom:慣用句)の認識の向上や型変換を伴うループのベクトル化等が含まれます。また、コンパイラはループ内のステートメント数に拘らず、全てのループのベクトル・コードを生成するように改められました。すなわち、コンパイラオプションのデフォルトは、-Mvect=nosizelimit となりました。一方、そのステートメントのサイズは、-Mvect=sizelimit:n (nはループ内のステートメントの数)によって制限されます。
  • Fortran言語サポート- 内部組込み関数INT_PTR_KIND, INT1, INT2, INT3, INT4, null terminatedstrings(例 ‘text’c) をサポートしました。また、OPEN 文の指定子として、SHARED の追加、ACCESS指定子に STREAM を追加しました。リダクション型の組込み関数をインラインするようにしましWindows上では、CFV/DFV 互換ディレクティブとモジュールが有効となりました。
  • C/C++性能- C/C++ に特化した以下の最適化を強化することにより、C/C++ のプログラム性能が全体として大きく向上しました。強化された最適化部分としては、ポインタの曖昧性の削減による向上、構造的な最適化を含みます。
  • IPA(内部手続き間解析・最適化)の強化 - PGI コンパイラの内部手続き間解析・最適化(IPA)の自動的インライン機能が強化されました。自動インラインが可能な対象を広げ、アロケートされたメモリ配置を追跡する機能、さらなるデータ伝播操作、特定の標準Cライブラリ関数を最適化するために-Mipa=libc オプションの追加等を行っております。
  • gcc互換性の強化 - gcc-style の “asm” ステートメント(インラインアセンブル)の互換性が向上し、C 言語(pgcc)並びに C++ 言語(pgCC)で、拡張インラインアセンブル構文がサポートされました。但し、C++言語に対する、このサポートはLinux のみです。また、structs 内のゼロレングス配列、空のstructs、不完全 enum タイプのサポートを行いました。さらに、__extension__キーワードが認識できるようになりました。
  • MMX並びにSSEインライン組込み関数- C/C++ で有効なインライン組込み関数をサポートするためのファイルを実装しました。このファイルは、emmintrin.h、mmintrin.h、 pmmintrin.h、 xmmintrin.h となります。
  • Microsoft Compute Cluster Server 2003- PGI Workstation は、現在リリースされているMicrosoft Compute Cluster Server 並びに Compute Cluster Pack と共に評価、試験が実施されています。マイクロソフトの方針に従って、64ビットCCS、CCP のインクルードファイルとライブラリを使用することができます。Win32上では、32ビットCCS、CCP へのMicrosoft互換の Fortran インタフェースを提供します。Win32 ライブラリである lib/msmpi.obj (Microsoft MPI ライブラリ)は、-Mmpi オプションをリンク時に指定することで、利用可能となります。
  • 新しい高速数学関数- 新しい、高速な sine, cosine, sincos ルーチン(単精度、倍精度)が導入されました。これらは、-fastsse オプションを付加した場合、ベクトル・コード並びにスカラ・コードの両方に適用されます。但し、-Kieee オプションを付加した場合、これらは適用されません。
  • ACML 3.5 - AMD Core Math Library の最新エディションであるACML 3.5 が PGI 6.2 にバンドルされております。バンドルされているACMLライブラリは、SSE1 と SSE2 命令を有する 32-bit x86 並びに64-bit AMD64 互換CPU(EM64T含む)をサポートします。なお、SSE 命令を有しない CPU上で使用するために、性能が落ちますが従来の互換性の高い libblas.a と liblapack.a もバンドルされています。【注意】ACML 3.5 は、-Mcache_alignを内包しているコンパイル/リンク・オプション -fastsse を使用して生成されております。従って、このACML 3.5 を使用する際は、必ず、全てのプログラムのコンパイル・リンク時に、-Mcache_alignあるいは -fastsseオプションを付して実行してください。なお、ACML 3.5 はWin32 では使用できません
  • サポートOS - SUSE 10.1、SUSE Linux Enterprise Server 10、Fedora Core 5 をサポートしました。
    対応プロセッサ - 新たにインテル社製の Core 2 Duo プロセッサをサポートしました。この CPU ターゲットは、core2(32bit)、core2-64(64bit)であり、-tp core2、-tp core2-64 オプションを付加することでCoreアーキテクチャ用に最適化されます。
  • Windowsポーティング強化 - ar と ranlib コマンドの PGI 6.2 バージョンはネイティブな Windows オブジェクトファイル・フォーマットと互換性を有します。環境変数 PGI_OBJSUFFIX を”o”と設定することにより、.obj の代わりに .o のサフィックスが付されたオブジェクトファイルが生成されます。
  • Visual C++ デバッギング - Windows上で、Microsoft Visual Studio C++ との相互運用性が向上し、PGI コンパイル・コードと Visual studio C/C++ の混合プログラムのデバッギングもサポートします。

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

  • PGDBG 6.2 は、Windows上で動作しているプロセスをアタッチできるようになりました。これは、PGDBGの "attach" コマンドあるいは、PGDBGのGUIの中の"File->Attach to Target" を通して行えます。
  • PGDBG 6.2は、新しいコマンド引数 -attach を新設しました。これは、スタートアップ時に自動的に動作しているプロセスをアタッチすることができる機能です。例えば、シェルあるいは、コマンド・ウィンドウから"pgdbg -attach 1234" と入力した場合、PGDBGはプロセス番号1234をアタッチしようとします。
  • Microsoft Visual C++でコンパイルされたC/C++プログラムに対するシンボリック・デバッグが可能となりました。VC++あるいはMicrosoft CL(Command Line) でコンパイルされたオブジェクトは、PGI Fortranのメインプログラムとリンクすることができ、さらに、デバッギングも可能です。
  • Java(TM) 2 Runtime Envirenmnet, Standard Edition 1.5.0_06 がバンドルされました。

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

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


  • -Mmpi - PGI は 32bit Microsoft Compute Cluster Pack への Win32 Fortran インタフェースを提供します。-Mmpi オプションが指定された場合、Win32 オブジェクトファイルである、lib/lmsmpi.obj がリンクされます。なお、Win64 あるいは、PGI C/C++ 上では、このような特別のインタフェースは必要としません。
  • -c99 - ANSI C99 として解釈することを有効にします。(PGI 6.1 では -c9x でしたが、このオプションも同機能で有効です) これは、PGI 6.2 からデフォルトとなりました。
  • -c89 - ANSI C89 として解釈することを有効にします。(PGI 6.1では -c8x でしたが、このオプションも同機能で有効です)
  • -Mdaz - EM64T プロセッサの場合、-fastsse オプション付加時、-Mdaz がデフォルトとなりました。一方、AMD64 プロセッサの場合は、-fastsse オプション付加時、従来と同様、-Mnodaz がデフォルトとなります。また、AMD64 において C/C++ に対しても、複合オプション -fastsse は、-Mflushzオプションを内包しました。
  • -Mfprelaxed[=div,rsqrt,sqrt] - -Mfprelaxedオ プションは、緩い精度で処理を行う場合の細かな制御機能を使用できるようにサブオプションを追加し、拡張されました。デフォルトは、-Mnofprelaxed です(緩い精度での処理を行いません)。サブオプションは以下のとおりです。
      div : 緩い精度で除算処理を行います。
      rsqrt : 緩い精度でsqrtの逆数近似(1/sqrt)の処理を行います。
      sqrt : 緩い精度でsqrtの処理を行います。
    なお、サブオプションを付加しない場合(-Mfprelaxedのみ)は、そのターゲットプロセッサに応じて、顕著な性能向上が行える処理に緩い精度での処理を行うかを選択し適用されます。
  • -Mmakeimplib=export_all と -Mmakedll=export_all - DLL 内の全ての関数を自動的にエキスポートします。(Windows)
  • -Minfo - 適用された最適化に関するメッセージ出力が、より詳細になりました。例えば、ベクトル化や並列化がどのように適用されたかを明示するメッセージやスカラ・コード/ベクトル・コードの条件付コード(altcode) の生成された場合のメッセージがより明確に出力されるようになりました。
  • -Bstatic_pgi - PGI 用のライブラリは静的リンクで行い、システム依存ライブラリはダイナミックローディングできるようにするためのリンク・オプションが新設されました。
  • -Mipa=except:<func> - IPA 最適化において、インラインすべきでない関数funcを指定します。-Mipa=inline と共に指定します。デフォルトは、内部的に検出されたすべての関数がインライン対象となります。
  • -Minline=except - IPA によって行われる自動インライン機能にも影響します。
  • -M[no]autoinline[=levels:n] - 最適化オプション -O2 以上において、C/C++ コンパイラはインラインキーワードで定義されたもの、あるいはクラス実体 (class body)で定義された関数をインライン化します。-Mnoautoinline は、このインライン化を抑止します。Levels:n は、インラインの段数(レベル)の数の制約値を指定します。そのデフォルトは4です。
  • -M[no]smartalloc - これは、メインルーチンの中で mallopt ルーチンへのコールを加えます。これを有効にするためには、Fortran、C、C++ のメインプログラムを含むファイルをコンパイルする際に、このオプションを付する必要があります。デフォルトは、-Mnosmartalloc です。
  • -Ktrap=none - IEEE のトラップ条件を決定するために使用される -Ktrap オプションに新しいサブオプションが追加されました。-Ktrap=none は、全てのトラップを抑止します。
  • -mp=[no]numa - -mp あるいは -Mconcur のリンク時に -lnuma のリンクを行います(行いません)。-mp=numa の numa サブオプションは廃止されました。libnuma のリンクを禁止したい場合は、-mp=nonuma あるいは、-Mconcur=nonuma を指定します。また、システム上に libnuma が存在しない場合、PGI コンパイラは stub (仲介)ライブラリを提供します。
  • -Mipa=[no]libc - システム標準 C ライブラリ内であるルーチンへの呼び出しを最適化するために使用します。-fast オプション時のデフォルトは -Mipa=libc です。 nolibc は、その機能を抑止します。

既知の制限事項

  • PGI 6.2 で生成されたオブジェクトあるいはモジュールは、PGI 5.x並びにそれ以前のリリースのオブジェクト、モジュールとは互換性がありません。PGI 6.1並びにそれ以前のリリースにおいて -Mipaオプションを付加して作成されたオブジェクトファイルは、PGI 6.2上で再コンパイルが必要です。
  • Windows 版の PGI C++ 6.2 for Windows において、template instantiation が Linux上の PGI C++ コンパイラと互換をとるために変更となりました。Windows 上の全ての C++ソースプログラムは、再コンパイルが必要であり、全ての template instantiation フラグは Windows makefile から削除しなければなりません。
  • Windows において、cygwin に含まれるvi のバージョンは、SHELL 変数に予期しないものが指定されている場合、問題が起きる可能性があります。このケースの場合、viが起動される時、次のようなメッセージを出力します。
    E79: Cannot expand wildcards
    E79: Cannot expand wildcards
    E79: Cannot expand wildcards
    Hit ENTER or type command to continue
  • -i8 オプションの使用において、プログラムをMPIと共に使用する場合、互換性がありません。典型的には、Integer*8配列の引数の使用により、これらのライブラリと共に使用する場合、異常終了します。
  • -i8 オプションの使用において、プログラムを PGI にバンドルされている ACML ライブラリと共に使用する場合、互換性がありません。このオプションの互換ライブラリに関しては、developer.amd.comを ご参照ください。
  • -mcmodel=medium オプションを使用してコンパイルされたオブジェクトを組み込んだプログラムは、静的にリンクされることはできません。これは、linux x86 の 64ビット環境における制約事項であり、PGIコンパイラによる制約事項ではありません。
  • PGCC の -Mipa=linopt と -Mipa=vestigial オプションを同時に使用した場合、リンク時に未解決な参照が生じる場合があります。これは、-Mipa にサブオプションvestigialを付加することにより、エラーとなる関数が削除されるために起こります。この場合は、vestigial を付加せずに、-Mipa のみの指定で対処してください。
    -Mprof=func 並びに -mcmodel=medium あるいは -mp を一緒に使用した場合、生成された実行モジュールはセグメンテーション・フォールトが生じます。これらのオプションを同時に使用することは避けてください。
    gprof スタイルのプロファイリング機能(-pg)を使用してコンパイル・リンクしたプログラムは、2.6.4 Linux カーネルのシステム上でセグメンテーション・フォールトが生じます。また、いくつかの Linux distributions 上で、gprof と PGPROF によって各々のプログラム・ユニットの報告された時間が、実際の時間より10倍以上大きな数値になることがあります。これは、これらの Linux distributionsに含まれる、ある共有ライブラリのバグによるものです。
  • -mp を使用して生成された OpenMP プログラムが、SuSE9.0 システム上の複数プロセッサで並列実行した場合、極端に遅くなります。しかし、これと同じ実行モジュールが SuSE9.1 上で動作させると期待される性能と効果が得られます。
  • ACML3.5 ライブラリは、-cache_align を含んだ -fassseコ ンパイルオプションを使用して構築されております。32-bit ターゲットシステム上で、-lacml オプションを使用してACMLライブラリをリンクする際に、必ず、全てのプログラムに -cache_alignもしくは、このオプションを含む複合オプションである -fastsse を付加してコンパイル/リンクを行ってください。64-bit ターゲットシステム上では、デフォルトでスタック16byteアラインメントであるため、この問題は生じません。
  • マルチスレッドのサンプルベースのプロファイル機能( gprofスタイルのプロファイリング: -pg あるいは、-Mprof=time オプション)でレポートされる時間は、マスタ・スレッドのものとなっています。一方、PGI形式のプロファイリング (-Mprof=lines|func) では、個々のスレッドあるいはプロセスの時間データを個別に取得するために使用されます。
  • PGDBG-デバッグコマンドの watch 系のコマンドは、ローカル変数が対象の場合は信頼できません。Watchされるローカル変数のスコープ内から関数、サブルーチンを呼ぶことによって、イベントをミスさせるか、あるいはイベントを失敗させる場合があります。もし、プログラムのスコーピングがwatchされる変数のスコープ部分から離れると、ローカル変数は正しくwatchできます。グローバル、静的変数に対するwatchコマンドは、常に正しいものを与えます。
  • PGDBG-デバッグコマンドの stacktrace コマンドは、-gオプションを付けずにコンパイルしたルーチンに入った場合、コール・スタック中のフレームをスキップすることがあります。例外が memset() のようなライブラリルーチンで現れる時、これ問題は顕著になり、stacktraceは、calling ルーチンを示さなくなります。現在のルーチンは、名前によって識別できないため、unlknownaddr だけを表示します。この制約に対する解決策はありません。
  • 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-shared ライブラリは、そのライブラリの中に含まれるコードがブレークポイントととしてセットされる前にロードされていなければなりません。
  • PGDBG - Unified Binaries (-tp x64 を付けて構築されたモジュール)のデバッギングは、フルにサポートされません。いくつかのサブプログラム名がunified binariesを生成する過程で変更されています。PGDBGは、アプリケーションのソースコード内で使用されているプログラム名とこれら変更された名前との間の変換を行いません。デバッグにおいては、Unified Binaries 生成オプションと付けずに、nativeなプロセッサターゲットで実行モジュールを生成してください。
  • PGDBG Windows-Windows においては、一般にディレクトリ・パス名を区切るためにバックスラッシュ文字(“\” )を使用します。PGDBG は、C言語の数式表示として、バックスラッシュをエスケープ文字の意味として使用します。一方、Windowsプラットフォームにおける PGDBG は、ディレクトリ・パス名を区切るためにフォワードスラッシュ文字(”/”)を使用します。但し、この事項は DEBUG コマンド、あるいはコマンドライン上の実行モジュール名には適用されません。
  • PGPROF Windows- DLL のプロファイルはサポートされておりません。
  • PGDBG Windows-PGDBG の exit 処理において、偽の internal エラーの出力が報告されています。PGDBGセッションの終了を行った際に、次のようなテキストが出力されます。
    PGDBG Internal Error:
    jpgdbg: lost input connection with host
    Do you want to abort your debug session?
    <Yes> <No>
    このエラーは無視してください。<yse>をクリックしてください。
  • -Mpfi と-mp を同時に指定することはサポートされていません。-Mpfi オプションは、コンパイル時に -mp を抑止します


Winodws上でのDLL(dynamic link libraries)使用の制約事項等

  • DLLは、PGC++コンパイラでは生成できません。
  • DLLがPGIコンパイラによって構築された場合、必ずランタイムDLLを使用しなければなりません。-makedllオプションによって、正確なランタイムライブラリが使用しているかを確認できます。
  • 実行モジュールが任意のPGIコンパイラで生成したDLLとリンクされる場合は、PGIランタイムライブラリDLLを使用しなければなりません(特に、静的ライブラリが使用されることはできません)これを実現するために、実行モジュールを生成する時に、-Mdllオプションを使用してください。
  • PGIランタイムライブラリDLLと-Mprofを一緒に使用することはできません。プロファイリングのための実行モジュールを構築する際は、静的ライブラリを使用してください。-Mdllを使用しないデフォルト環境では、静的ライブラリが使用されます。


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

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

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

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

    現在所有している PGI コンパイラのバージョンを調べるには、以下のコマンドを実行してください。
       $ pgf77 -V
        pgf77 6.2-2 <--- バージョンを表す
        Copyright 1989-2000, The Portland Group, Inc. All Rights Reserved.
        Copyright 2000-2006, 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、6.1 あるいは 6.2 と言った動作可能なバージョンを示すフィールドを持っています。現在、所有しているライセンスファイルの中のフィールドが現在、動作可能な最も高いリリース番号となります。最新のリリースを動作させるためには、最新リリース番号へのフィールド値の更新が必要です。年間サブスクリプション契約(ソフトウェア情報パッケージ購入)を行っているお客様は、ライセンスの発行サイトにおいて、新ライセンスを取得して、 license.dat の内容を変更してください。バージョンアップがサブスクリプション契約期間内で行われた場合、ライセンス発行サイト上で表示されるライセンスは自動的に更新されたものとなっていますので、この内容をコピーして、システム上の license.dat の内容を更新すると新リリース用のライセンスファイルとなります。(もちろん、新しいリリース・ソフトウェアは、インストールされていることが前提です)

======== (License.dat の例 : Release 6.2 の場合) =================
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.200 31-dec-0 1 3BD8F0B1414C40403DEC \
VENDOR_STRING=109839:4 HOSTID=0090275c30e8 ck=190
FEATURE pgprof pgroupd 6.200 31-dec-0 1 BB986021EC3F71B560B6 \
VENDOR_STRING=109839:4 HOSTID=0090275c30e8 ck=29
FEATURE pgdbg pgroupd 6.200 31-dec-0 1 EBC8706172F613B398F2 \
VENDOR_STRING=109839:4 HOSTID=0090275c30e8 ck=249
======== (License.dat の例 : Release 6.2 の場合) =================

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

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

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

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

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

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

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

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



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

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