ライセンス関係に関するFAQ

 本ページは、PGIコンパイラを使用して、ライセンスに係わる問題や FLEXlm ライセンスマネージャに関する FAQ のページです。
© 株式会社ソフテック

PGI ライセンス関係のFAQ

  1. FLEXlm ライセンスの意味を教えて下さい
  2. PGI コンパイラのライセンスに関する FAQ
  3. PGI コンパイラのライセンスの取得方法、変更方法について教えてください
  4. PGI 社のお客様個人用 Web アカウントについて教えてください
  5. PGI 社のお客様個人用アカウントのアクティベーションが失敗します
  6. 試用ライセンスキーの取得の方法について教えてください
  7. PGI コンパイラのライセンスの変更が必要な場合は、どのような場合ですか
  8. 搭載しているOSのバージョンアップをした際は、ライセンスキーの変更が必要ですか
  9. ライセンス発行をやり直せますか?またその際のライセンスの取得方法について教えてください
  10. 最新バージョンのライセンスキーで、それ以前のバージョンのコンパイラを使用できますか
  11. ライセンスを取得する際の hostid 情報は、どのように知ることができますか
  12. PGI 社のサイトで取得した license.dat ファイルの内容を変更する方法を教えてください
  13. Node-locked ライセンスで、NFS 領域に PGI をインストールしました。インストールしたマシン以外のシステムでPGI コンパイラを使用すると、以下の Invalid host エラーが生じます
  14. Network floating 製品ライセンス購入しました。複数のマシン上に PGI コンパイラをインストールして、各マシン上でコンパイラを使う際の license.dat の設定の仕方を教えてください
  15. フローティング・ライセンスでファイアウォールを介在して、FLEXlmライセンス管理サーバへアクセスしなければならない場合の設定の方法を教えてください
  16. Network floating/CDKライセンスでのFLEXlm リダンダント(冗長)ライセンスサーバの設定の方法を教えてください
  17. 新しいリリース・バージョンの PGI コンパイラをインストールして使用した際、License file does not support this version のエラーが生じます
  18. コンパイル時に、以下のような Server node is down のエラーでコンパイルができません
  19. マシンをリブート後に以下のメッセージと共に、急に PGI コンパイラが使用できなくなりました
  20. SUSE Linux 9.x 上で、マシンをリブート後に以下のメッセージと共に、急に PGI 5.2 コンパイラが使用できなくなりました
  21. 今所有しているライセンスで新リリース・バージョンが動作しますか
  22. 現在の自分のライセンス情報をどのように調べればよいでしょうか
  23. PGI のライセンス発行サイトでライセンスを発行した際、MKLICENSE had trouble creating a license のメッセージが出て、正規のライセンスが取得できません
  24. コンパイラのバージョンアップを行った後、コンパイルすると、FLEXlm version of vendor daemon is too old と言うメッセージが出て、コンパイルできません
  25. 現在、PGI バージョン 5.1 を使用していますが、5.1 より下位バージョンの PGI コンパイラを使用する必要があります。現在の 5.1 用のライセンスファイルで下位バージョンは動作しますか
  26. PGI のインストール・ディレクトリ配下(/opt/pgi)にlicense.datをセットしたにもかかわらず、ライセンスファイルがないというメッセージが出ます
  27. FLEXlm ライセンスマネージャの動作のトラブルに関して調べるため、その動作ログファイルのある場所を教えてください
  28. FLEXlm ライセンス管理マネージャの動作メカニズムと license.dat の関係を教えてください
  29. PGI7.1 以前のバージョンを使用している環境に、PGI 7.2 以降(2008年5月~)の新しいライセンス・キー(license.dat) に入れ替えると、LICENSE MANAGER PROBLEM でコンパイルエラーとなります。
  30. FLEXlmライセンスサーバを起動するシステムが DHCP で動的 IP アドレスで構成される場合のライセンスマネージャの実装方法は?
  31. ライセンスキーの管理を行うための、Webアカウントの取扱いと問題に対する対処法を教えて下さい
  32. Ubuntu 上で、PGI 12.x 以降にバンドルされた FLEXlm ライセンスマネージャ関連の lmgrd や lmutil ソフトウェアが実行できません
  33. openSUSE or SLES 上で、PGI 12.x 以降にバンドルされた FLEXlm ライセンスマネージャ関連の lmgrd や lmutil ソフトウェアが以下のような状態で、実行できません
  34. 64bit Red Hat/CentOS/Scientific Linux/Fedora 等で、PGI 12.x 以降にバンドルされているFLEXlm ライセンスマネージャ関連の lmgrd や lmutil ソフトウェアが以下のような状態で、実行できません
  35. OpenSUSE/SLES 上で PGI 12.x 以降をインストールしたとき、/opt/pgi/lincese.info ファイルが生成されていません。このため hostid が分かりません
  36. Linux 上で PGI 2012(12.x) をインストールした後に、コンパイルを行うと LICENSE MANAGER PROBLEM:Bad message command. のエラーが生じます。但し、license.dat の変更は行っていません。また、ライセンスマネージャ lmgrd の動作環境も変更せず、過去の PGI 11.x で構築した FLEXlm 環境を使用しています。
  37. ライセンスマネージャ(lmgrd) の起動ログを見ると、 Failed to open the TCP port number in the license. のエラーが生じてライセンスマネージャが起動しません。
  38. Linux上にインストールした際、/opt/pgi/license.info 内の FLEXnet hostid を確認しようとしたら、当該情報が記述されていません。
  39. コンパイラを実行した際、 LICENSE MANAGER PROBLEM: The desired vendor daemon is down. FLEXnet Licensing error:-97,121 のエラーでコンパイルできません。
 

ライセンス関係の問題への回答

Question  1. FLEXlm ライセンスの意味を教えて下さい

Answer

FLEXlm はフローティング・ライセンス・サーバのソフトウェアとして広く使われております。同時に複数のユーザが任意のマシン上でコンパイラを使用することを許可する等、使用ライセンス数管理の目的で用いられます。Workstation 製品、Server 製品の両方で FLEXlm 形式のライセンスをご利用可能ですが、Workstation 製品では登録された 1 台のマシンおよび同時使用ユーザ(任意)の上限が 1 名までの制限がございます。動作の実際は、ライセンスサーバマシンで lmgrd という名称のデーモンが常時起動することになります(その他 PGI のライセンスデーモン pgroupd も起動します)。 FLEXlm 用のデーモン・ソフトウェアは、PGI コンパイラ製品にバンドルされております。なお、FLEXlm ライセンス・マネージャ用のデーモン・ソフトウェアは、現在、x86、並びに x86-64 のプロセッサ対応の Linux、Windows、OS X (ノードロック版のみ) が提供されております。その他の OS/プラットフォーム用は提供されておりません。

Question  1.1 PGI コンパイラのライセンスに関する FAQ

Answer

 ライセンス情報の取得、ライセンスキー、サブスクリプションに関する FAQ を別途ページを設けて説明しておりますので、こちらのページをご覧ください。

Question  2. PGI コンパイラのライセンスの取得方法、変更方法について教えてください

Answer

(2008 年 1 月 15 日更新)
ライセンスキーの取得を含むライセンス管理のための方法が、2008 年 1 月 1 日から変更されました。
PGI のライセンスは、お客様自身で PGI 社の Web サイトで取得できます。PGI 製品のライセンス管理(ライセンスキーの取得を含む)は、PGI 顧客サポート・サイトのお客様個人用 Web アカウント(ご購入時に PGI 社が自動的に作成済)を使用して、このアカウントの下で行います。PGI 社顧客サポート・サイトにアクセスするためには、お客様個人用の Web アカウントが必要です。製品をご購入いただいたお客様には、予め PGI 社でこのアカウントを作成済みです。
 個人用Webアカウントの確認方法、ライセンスキーの取得方法の詳細についてはこちらのページをご覧ください。

Question  2.1 PGI 社のお客様個人用Webアカウントについて教えてください

Answer

(2008 年 1 月 15 日更新)
2008 年 1 月 1 日から個人の Web アカウントでログインしてライセンス管理を行うように変更されました。従って、お客様は、PGI サイトにログインするための Web アカウントを持っていただく必要があります。
この Web アカウントは、新規にご購入いただいたお客様だけでなく、過去に製品をご購入いただいたお客様に対しても、2008 年 1 月 1 日の 時点で自動作成されております。 WebアカウントID名は、ユーザ登録の際にいただいているお客様個人の e-mail アドレスと同一となります。また、パスワードをアクティベーションを行うためのメールは、2008年の1月以降、お客様のアカウントが登録された際に、お客様へ送られております。このアクティベーション案内のメールをなくした場合は、再度、そのメールを再発行する方法があります。また、アクティベーションを行ったけれどもパスワードを忘れた場合も、その対処法がありますので、これを行ってからログインしてください。
個人用 Web アカウントの確認方法については、こちらのページ、アクティベーション用メールの再発行やパスワードの再発行については、こちらのページをご覧ください。

Question  2.2 PGI 社のお客様個人用アカウントのアクティベーションが失敗します

Answer

(2013 年 10 月 29 日更新)
PGI から送付されたアカウントのアクティベーション用メール内のパスワード設定用 URL をダブルクリックしても、意味不明な状態となり、アクティベーションが失敗する場合は、こちらのページをご覧ください。これにて、対処できない場合は support[at]softek.co.jp までお問い合わせください。[at]は@に置き換えてください。

Question  2.3 試用ライセンスキーの取得の方法を教えてください

Answer

現在、試用版の提供はありません。無償版である PGI Community Edition をご利用ください。こちらのページをご覧ください。

Question  3. PGI コンパイラのライセンスの変更が必要な場合は、どのような場合ですか

Answer

ライセンス・ファイルの変更が必要な場合は、以下に示すとおりです。コンパイラを使用するマシンの変更が生じる場合、あるいは、同じマシンにおいても ethernet カードの変更(マザーボードの交換を含む)した場合は、現在お使いのライセンス・キーを変更しなければなりません。この場合、新マシン用のライセンスを Web によるオンラインで取得できます。

(PGI サブスクリプションの更新を行った場合=最新のバージョンを使用したい場合)

(マシンのコンフィグレーションを変更した時 : FLEXlm 形式)
    PGI の登録されている現在のライセンスキーを削除し、新規に取得する

  • 別のシステムへライセンスを移行するとき
  • ネットワークカードをマザーボードから抜き、新しいカードと交換したとき
  • ネットワークカードを別のスロットへ移動したとき
  • マザーボードを交換したとき

Question  3-1. 搭載しているOSのバージョンアップをした際は、ライセンスキーの変更が必要ですか?

Answer

マシンのハードウェアの変更はせず、OSのバージョンアップを行った場合は、現在使用しているライセンスキー(license.dat) の変更は必要ありません。また、Linux 版のライセンスをお持ちの場合は、現在 CentOS のものから SuSE Linux に変更するような distiribution の種別を変更する場合でも、ライセンスキーの変更は必要ありません。これは、ライセンスキーを生成する際、ハードウェア上の ethernet カードの MACアドレスを基に生成しているため、OSのバージョンには依存しないためです。なお、現在お持ちのライセンスのOSの種類、例えば、Linux版からWindows 版への変更の場合は、ライセンス製品が異なるため、新しく当該OS版のライセンス製品をご購入いただく必要があります。

Question  4. ライセンス発行をやり直せますか?またその際のライセンスの取得方法について教えてください

Answer

オンラインライセンスを再取得することが可能です。ただし、マシンの変更などでライセンスの再発行を行う場合は、以前のライセンスを取り消した後に、新たなライセンスの取得を行う必要がございます。この際のライセンス取消し処理の場合のみ、取り消しが完了するまでには 1 日程度時間が掛かりますので予めご了承下さい。ライセンスの取得方法についてはこちらのページをご覧ください。

(2007年2月更新)
従来、マシンの故障等でインストールしたマシンの hostID の変更が生じた場合で、お客様のソフトウェア情報パッケージ(サブスクリプション)契約がない場合、ライセンスキーの変更(再発行)ができない形態でしたが、サブスクリプション契約がない場合においても、製品の「ご購入時点でのバージョン」に対するライセンスキーの再発行ができるようになりました。これは、今までご購入いただいている全製品ライセンスに対して適用されます。何らかの理由により、ライセンスキーの再発行を行いたい場合は、こちらのページをご参照ください。
なお、ご購入いただいた製品のライセンスの使用に関しましては、PGI 社の End-User License Agreement(PDF) に則り、ご利用いただくようにお願いいたします。特に、Node-locked(1ノードロック)製品の場合で、現在使用しているライセンスを他のマシンに移行する際は、現在使用しているライセンスキーを削除する等の措置を必ず行っていただくようにお願いいたします。

Question  5.1 最新バージョンのライセンスキーで、それ以前のバージョンのコンパイラを使用できますか

Answer

PGI コンパイラのライセンス・キーは、ご購入いただいた時点での最新バージョンに対応するキー、あるいは年間サブスクリプションをご契約いただいている場合は、契約期間中での最新バージョンのキーとなっており、この最新のキーを取得できるようになっております。 この最新のライセンス・キーは、それ以前のバージョン(過去のバージョン)のコンパイラも動作可能な互換性を有しておりますので、最新のキーファイル (license.dat) をシステムに設定すれば、過去のコンパイラもご利用いただけます。
(詳細な説明) 最新バージョンだけでなく、過去のバージョンも同時にインストールして各々動作しますか

Question  5. ライセンスを取得する際の hostid 情報は、どのように知ることができますか

Answer

Linux/OS X 上に、PGI をインストールした後、$PGI/license.info ファイルの中に、FLEXlm 形式のライセンス取得に必要な hostid (Hostid=number)情報が記述されています。Windows の場合は、C:\Program files\PGI\license.info ファイルに記述されています。また、以下のコマンドでも、現在のシステム上での hostid 情報を出力することが可能です。下記例での太字 2016 は PGI コンパイラのバージョン番号です。適宜、現インストール・バージョン(総称バージョン名でも良いし、個別リビジョン番号でも良い)に変更してください。なお、FLEXlm 形式の hostid は、一般的にネットワークインタフェース (Linux の場合 eth0) の MAC アドレスが使用されます。

Linux 版の場合】 $PGI はデフォルトでは /opt/pgi です
 (FLEXlm ライセンス(32bit)の場合)            (FLEXlm ライセンス(64bit)の場合)
  $PGI/linux86/2016/bin/lmutil lmhostid  $PGI/linux86-64/2016/bin/lmutil lmhosti

【Windows 版の場合】
 次のコマンドでも hostID 情報が表示されます。

 PGI$ lmutil lmhostid
 lmutil - Copyright (c) 1989-2011 Flexera Software, Inc. All Rights Reserved.
 The FLEXlm host ID of this machine is "0015f214bbad"

【OS X 版の場合】
(32bitの場合)                        (64bitの場合)
 $PGI/osx86/2016/bin/lmutil lmhostid    $PGI/osx86-64/2016/bin/lmutil lmhostid

Question  6. PGI 社のサイトで取得した license.dat ファイルの内容を変更する方法を教えてください

Answer

ライセンスファイルが、FLEXlm 形式のライセンスファイルの中で、変更可能な部分は、1行目の SERVER 行の中の「ホスト名」と最後の引数である 27000 と言うポート番号のみです。「ホスト名」は、当該システムのホスト名を変更した場合は、/etc/hosts (Linux/Mac) あるいは Windows のホスト名と対応がつくように、license.dat 内の「ホスト名」も変更して下さい。その後、再度 FLEXlmライセンスマネージャを再起動してください。lmgrd と言うライセンスマネージャが使用するTCPポート番号は、任意に変更することができます。

Question  7. Node-locked ライセンスで、NFS 領域に PGI をインストールしました。インストールしたマシン以外のシステムで PGI コンパイラを使用すると、以下の Invalid host エラーが生じます
  pgf90-linux86: LICENSE MANAGER PROBLEM: Failed to checkout license
  pgf90-linux86: LICENSE MANAGER PROBLEM: Invalid host
  The hostid of this system does not match the hostid
  specified in the license file
  Feature: pgf90-linux86
  Hostid: 0002b32c36ba

Answer

このエラーは PGI ライセンス規約に則った正常なメッセージです。Node-locked ライセンスは、インストールしたマシン上だけでのノードロック形式のライセンスです。たとえ、PGI コンパイラを NFS 領域にインストールし、他のシステムと共用しようとしても、ライセンス規定上、他のシステムではコンパイラを使用することができません。PGI コンパイラをインストールしたマシン上にログインして、コンパイラをお使いください。なお、Network floating ライセンスの場合は、問題なく NFS 上の PGI コンパイラを使用して、インストールしたマシン以外の他のシステム上でもコンパイルが可能です。なお、 NFS 上に PGI コンパイラをインストールして共用する場合、その NFS クライアントマシンは NFS サーバのマシンと同じ CPU タイプであること、Linuxのカーネルリビジョンが同じであること、glibc のバージョンが同じであることが必要です。もし、Network floating ライセンスを購入し、全く異なるシステム(例えば、AMD64 と Pentium 4のようなもの)間においては NFS 共用は行わずに、それぞれローカルに PGI コンパイラをインストールしてください。
もし、PGI コンパイラのソフトウェアを NFS 領域にインストールしない状況で、上記のメッセージが出力される場合は、PGI コンパイラをインストールしたマシンのネットワーク・カード等を交換した場合などが想定されます。ネットワーク・カードを交換した場合、FLEXlm hostid 情報が変わりますので、現在の取得済みライセンスを取り消し、新たにライセンスを再度取得しなければなりません。詳細については、こちらをご覧ください。

Question  8. Network floating ライセンス購入しました。複数のマシン上に PGI コンパイラをインストールして、各マシン上でコンパイラを使う際の license.dat の設定の仕方を教えてください

Answer

Network floating ライセンスは、ネットワーク上の任意のマシン上で使用可能なフローティング・ライセンスです。従って、ご質問の構成で、各マシン上で PGI コンパイラを使用することができます。ここでの仮定は、二つのマシン上に PGI コンパイラをインストールすることとします。また、1 台目のマシン上で FLEXlm ライセンス・マネージャのデーモン・プロセス (lmgrd) を立ち上げることを想定します。このFLEXlm ライセンス・マネージャを起動するマシンは、できるだけサーバの停止を伴わないものを選択してください(ライセンス管理サーバの位置づけとなります)。

1 台目のマシン:ホスト名を 「hostA」とします】ライセンス・サーバとしての位置づけ
PGI コンパイラを「インストールの手引き」に従いインストールし、新規ライセンス・キー(license.dat) を取得してください。次に、FLEXlm ライセンス・マネージャのデーモンを (lmgrd) を起動してください。これらの手続きは、全て弊社発行の「インストールの手引き」に記述されています。これで、1 台目のマシン上では、PGI コンパイラを使用することができます。なお、FLEXlm ライセンス・マネージャのデーモンを起動したこの1台目のマシンが、他のシステムにインストールされた PGI コンパイラのライセンス使用権を管理するライセンス・サーバと言う位置づけになりますので、このサーバが停止されますと、他のマシン上でのコンパイラが動作しませんのでご注意ください。FLEXlm リダンダント(冗長)サーバ構成の設定は、こちらをご覧ください

2 台目以降のマシン:ホスト名を 「hostB」とします】ライセンス管理的には、「クライアントの位置づけ」
PGI コンパイラを「インストールの手引き」に従い、手引きに則りインストールしてください。$PGI (/opt/pgi) 配下にある license.dat のファイルに対して、1 台目のマシン上の正規ライセンスファイル (/opt/pgi/license.dat) をコピーし、上書きします。その後、そのファイルの1行目(SERVER行)のみ残し、DAEMON行以降を削除します。その後に、2行目に"USE_SERVER" を記述して改行します。これによって、「クライアントの位置づけ」となるシステム上では、以下に示すように 2行のみからなる license.dat を配置することになります。なお、FLEXlm ライセンス・マネージャのデーモン (lmgrd) を立ち上げる必要はありません。これで、2 台目のマシンで PGI コンパイラがローカルに使用できます。なお、PGIコンパイラを使用する際の環境変数は、設定してご使用いただく必要があります。

【クライアント側のシステム上の license.datの一例】(2行のみで構成する)

SERVER hostA <hostid> 27000
USE_SERVER

【3台の冗長ライセンスサーバ構成の場合のクライアント側の license.dat の一例】

SERVER hostA <hostid> 27000
SERVER hostB <hostid> 27000
SERVER hostC <hostid> 27000
USE_SERVER

もし、コンパイラ使用時に以下のエラーが生じた場合は、上記 license.dat の SERVER 行の hostA をネットワーク上で DNS により名前解決ができない可能性がありますので、hostA.site.co.jp のようにドメイン名も含めたフル表記をしてください。あるいは、hostB上の /etc/hosts に hostA の記述を追加してください。

  LICENSE MANAGER PROBLEM: Cannot find SERVER hostname in network database

また、上記 license.dat で設定する以外の FLEXlm の慣用的な設定方法として、PGI の環境変数に直接、ライセンスサーバのリストを指定する方法もあります。以下のように LM_LICENSE_FILE に PGI のライセンスサーバのポート番号とホスト名を指定することでもクライアント側の設定は可能です。この方法の方が簡単かもしれません。

【クライアント側で設定するもう一つの方法】
各自のホームディレクトリ直下の .bashrc あるいは、.cshrc に設定する。
bashシェルの場合は、LM_LICENSE_FILE にPGIライセンスサーバの
ポート番号とそのホスト名を以下の形で指定する。

(例)
export LM_LICENSE_FILE=27000@flexlm1.softek.co.jp

もし、3台の冗長ライセンス管理サーバであれば、
export LM_LICENSE_FILE=27000@flexlm1.softek.co.jp:27000@flexlm2.softek.co.jp:27000@flexlm3.softek.co.jp
と言う形態で指定する。  

(参考情報)
Network floating ライセンス製品の使用を例として、32bit マシンと 64bit マシンの混在時の PGI 環境変数の設定例をこちらのページで説明しています。

(よくある問題)

FLEXlm サーバとなっているシステム以外のマシン(クライアント)上で PGI コンパイラを使用する際、コンパイラ・コマンドを実行する度に、ライセンスのチェックを行うため、FLEXlm ライセンス管理サーバへ TCP 接続を行います。TCP 接続のためのポート番号は、デフォルト 27000番(PGI 5.x の場合は、7496 番)ですが、各 Linux OS のデフォルトの設定で OS 内のソフトウェア・ファイアウォールによって、このようなポート接続ができないように設定されている場合があります。この問題は、コンパイラコマンドを実行すると、反応が返ってこない等のフリーズ的な状況に陥ることがありますので、各クライアントから FLEXlm サーバへ TCP 接続が可能であることをご確認ください。(例えば、 hostB から telnet hostA 27000 でコネクションができるか等を確認します)
また、Windows(R) の場合は、ライセンスサーバ側の Windows(R) 上の firewall の設定、ウイルスソフトウェアの IP フィルタの設定等に TCP をブロックする設定がなされていないかをご確認下さい。(関連記事

(追加情報:2006/10/11更新)
PGI 6.2 以降、Linux 版並びに Windows 版の Network floating 製品のライセンス管理方式が、全て FLEXlm形式に統一されました。Linux 版並びに Windows 版の両方に対応可能な「Network floating クロスプラットフォーム製品」の場合、少なくとも1台のシステム(Linux あるいは Windowsのどちらか)上で、FLEXlm ライセンス管理デーモンを動作させる形態となりました。FLEXlm管理サーバに対するクライアントとなるシステムでは、Windows/Linux 問わず、上記の「hostB」のような設定を行ってください。

Question  8-0 フローティング・ライセンスでファイアウォールを介在して、FLEXlmライセンス管理サーバへアクセスしなければならない場合の設定の方法を教えてください

Answer

(2007年9月27日初稿)
フローティング形式のライセンスの場合、コンパイラをインストールしたマシン(クライアント側)からPGI の FLEXlmライセンス管理サーバとなるマシンへライセンス・チェックのためのパケットが送られます。その TCP パケット送信の途中にファイアウォールが介在した場合、そのルールによっては、そのパケットの中継が拒絶され、クライアント側のコンパイラが使用できません。ここでは、ファイアウォールを介在する場合の flexlm ライセンス管理ソフトウェアの設定とファイアウォール側のフィルタルールの設定について説明します。基本的に、Linux/OS X でも Windows でもが同じ考え方で設定を行いますが、ここでは、Windows のマシン上に FLEXlm ライセンス管理ソフトウェアを稼動させた場合の設定に関して説明します。Windows では、OS のデフォルトで「Windowsファイアウォール」がデフォルトで動作しているため、必ず以下の操作を行う必要があります。
Windowsファイアウォール の基本は、外部からの TCP/IP アクセスを基本的に拒絶します。従って、PGI の FLEXlmライセンス管理サーバ以外の他のマシンにインストールしているコンパイラ・コマンドから、ライセンスのチェックのために FLEXlmライセンス管理ソフトウェアが動作している「サーバ」へTCP/IP接続しようとしますと、ライセンス管理サーバの Windowsファイアウォールがその接続を拒絶します。そこで、Windowsファイアウォール に限らず、一般的な firewall に対して TCPパケットを通すためには、その TCP 接続が必要とする「ポート番号」をオープンさせる必要があります。FLEXlm ライセンス管理ソフトウェアとして、基本的に以下の二つのサービス(Linux ではデーモンと言う)が動作します。

 lmgrd : The license server daemon
 pgroupd : PGI daemon(started by lmgrd)

上記の二つのサービス(デーモン)が使用するポートを firewall 上でオープンする必要があります。それぞれのサービスが、どのポートを使用するかは、license.dat の中に明示的に指定することができます。但し、lmgrd に関しては、すでにデフォルトで 27000ポートを使用するように定義されています。以下は、license.dat の一例です。以下の例は、Hostid が '121345678' の場合のライセンスファイルの例です。

 SERVER my_host1 121345678 27000
 DAEMON pgroupd             ※ my_host1 と言うサーバ・ホスト名は一例

1行目の SERVER 行は lmgrd の動作に関しての記述で、27000 ポートを使用することを明示的に記述しています。また、これは、変更して別のポートを使用するようにすることもできます。従って、上記の場合は、lmgrd と言うサービスに対して 27000 ポートを空ける指定を firewall の例外規定に追加する必要があります。
次に、2行目の DAEMON 行は、pgroupd と言う PGI デーモンの動作に関する記述です。この行では、明示的なポート番号は記述していません。デフォルトは、初期動作時に OS から提供を受けたポートを使用して起動します。もし、明示的なポート番号を指定する場合は、以下のように記します。

  SERVER my_host1 121345678 27000
  DAEMON pgroupd port=27001

上記は、port=27001 を追加記述して、明示的に 27001 ポートを使用するように指示するものです。(ポート番号は任意の番号です)Linux、OS X、Windows 版の全ての場合も同じように設定できます。このように、明確にポート番号を明記することで、firewall に対しては、明示的にそのポートのみをオープンするように設定できます。
これから、具体的に Windows 上での 設定方法を説明します。

  1. FLEXlm ライセンス管理サービス(PGI License Server) を停止
    「コントロールパネル」-「管理ツール」-「サービス」の中の、「PGI License Server」を選択し、そのサービスを停止する。
  2. C:\Program files\PGI 配下の license.dat ファイル修正
    (一例)
     DAEMON pgroupd port=27001
     2行目の DAEMON行のみ port=***** を追加。(ポート番号は任意)。
  3. Windows firewall の設定
    「コントロールパネル」-「Windowsファイアウォール」を選択します。 以下の例は、pgroupdのポートを 27001 としたときの設定です。

    ・左側メニューの「詳細設定」を選択します。
    ・設定ウインドウが現れます。
    ・左側メニューの「受信の規則」をクリックし、新しく表示された右側のメニューの
      「新しい規則」をクリックします。
    ・新しいダイアログが出ます。
    ・「ポート」の規則のボタンをおします。
    ・次に TCP かつ、「特定のローカルポート」を選び、入力欄に 27000,27001 を
     記入して次に進みます。
    ・接続を許可するを選び次に進みます。
    ・「ドメイン」と「プライベート」を選びます。
    ・「PGI FLEXLM サーバ」と名前を付けて下さい。

    以上がサーバ側の「受信設定」です。「送信設定」は行う必要はありません。
    上記の設定後、OK を押して Winowsファイアウォールの画面を閉じてください。 以上で、各ポートのオープンが完了します。
  4. FLEXlm ライセンス管理サービス(PGI License Server) を開始
    上記 1. で説明した「PGI License Server」を開始してください。

以上の作業で、ファイアウォール対応の FLEXlm ライセンス管理サーバの設定が終了します。これで、クライアントのシステム上でコンパイラコマンドが使用できます。Linux/OS X の場合もFLEXlmライセンス管理マネージャを停止させ、license.dat にポート番号を追記して、再度、ライセンス管理マネージャンを起動してください。さらに、firewall 側に二つのポート番号がオープンにする設定を行ってください。

なお、クライアント側のシステム上に置く license.dat は、現時点での設定を変更する必要はありません。 以下のような形態となります。
(一例)
 SERVER my_host1 {hostid} 27000
 USE_SERVER

Question  8-1 Network floating/CDKライセンスでのFLEXlm リダンダント(冗長)ライセンスサーバの設定の方法を教えてください

Answer

Network floating / CDKライセンス製品(PGI 6.1 以降)の場合、FLEXlm ライセンス管理サーバ機能を1台だけでなく、3台冗長に同じネットワーク内に設けることができます。ライセンスサーバの機能停止は、クライアントマシンでのコンパイル行為を不能にします。従って、ライセンス管理サーバを冗長に設ける場合は、正規ライセンスの発行時点で、当該3台のライセンス管理サーバとなるホスト情報を入力して、正規ライセンスキーの発行を行って下さい。
以下の例は、3台構成の冗長ライセンス管理サーバを使用したライセンスファイルの一例です。この場合のライセンスファイルには、3台の冗長サーバの各々を識別する 3つの SERVER 行を含みます。以下の例では、hostA、hostB、hostC が冗長構成のラーセンスサーバとなります。1行目の SERVER 行で指定された hostA は、クライアントマシンが常にアクセスする 「一次サーバ」 となります。このサーバが停止した場合は、2台目のサーバが「一次サーバ」 の役割を担います。

SERVER hostA 012345abcdef 27000
SERVER hostB 112345abcdef 27000
SERVER hostC 212345abcdef 27000
DAEMON pgroupd 
PACKAGE PGI2016-{PIN番号} pgroupd 2017.0213 B7DC8266F6DD \
COMPONENTS="pgi-hpf-lin64 pgi-f95-lin64 pgi-f77-lin64 \
(以下の行は省略)

3台の管理サーバ上でのライセンスファイルの設定とFLEXlm管理マネージャの起動方法は以下のとおりです。(PGI のインストール・ディレクトリが /opt/pgi の場合の表記をしています)

① 上記のライセンスファイルを3台のライセンス管理サーバとなるマシン上に /opt/pgi/license.dat として保存します。なお、3台のマシン上にFLEXlmライセンス管理マネージャのソフトウェアが実装されている必要があります。これを実装する最も簡単な方法は、PGIコンパイラのソフトウェアを3台のマシン上にインストールすることです。こうすることにより、同一のディレクトリ(フォルダ)にソフトウェアが配置されますので、コマンド操作性が同じとなります。
② 各管理サーバ上でFLEXlmライセンスマネージャを起動します。
 (Linux 上では /etc/init.d/lmgrd start、Windows 上ではこちらを参照

3台のマシン上のライセンスマネージャ・デーモンがお互いに同期が確立するまで、数分かかることがあります。この FLEXlm ライセンス・デーモンの動作ログは、/opt/pgi/flexlm.log(Linux) あるいは、C:\Program files\PGI\flexlm\license.log(Windows)上に記録されますので、問題があった場合、これをご確認ください。なお、何らかの理由で相互にライセンスマネージャ・デーモンがプロセス間通信できない場合は、FLEXlm ライセンスマネージャを停止するか、当該デーモンプロセス ( Linux の場合、lmgrd と pgroupd ) を強制的に Kill してください。その後、この手順を再実行してください。3台全てのマシンのライセンスマネージャ(デーモン)が接続・同期される必要があります。 ライセンス管理サーバ以外のクライアントとしてのマシン上では、PGI コンパイラをインストールして、ライセンスサーバ上で設定されている license.dat ファイルを所定の場所へコピーし保存するだけで良いです。これによって、コンパイラをご使用になれます。
以下に、実際の 3台冗長構成で起動した場合の動作ログの一例を示します。

14:22:00 (lmgrd) FLEXnet Licensing (v11.10.0.0 build 95001 x64_lsb) started on photon0 (linux) (3/16/2012)
14:22:00 (lmgrd) Copyright (c) 1988-2011 Flexera Software, Inc. All Rights Reserved.
14:22:00 (lmgrd) US Patents 5,390,297 and 5,671,412.
14:22:00 (lmgrd) World Wide Web:  http://www.flexerasoftware.com
14:22:00 (lmgrd) License file(s): /usr/pgicdk/licensecdk.dat
14:22:00 (lmgrd) lmgrd tcp-port 27000
14:22:00 (lmgrd) Redundant server configuration enabled. Attempting to establish quorum...
14:22:00 (lmgrd) Trying to establish connections to other redundant servers...
14:22:00 (lmgrd) Attempting connection to secondary redundant server photon29
14:22:00 (lmgrd) Attempting connection to tertiary redundant server photon30
14:22:02 (lmgrd) Connection attempt to secondary redundant server photon29 failed
14:22:02 (lmgrd) Connection attempt to tertiary redundant server photon30 failed
14:22:07 (lmgrd) Established connection from tertiary redundant server photon30
14:22:07 (lmgrd) Redundant server quorum established. Master is photon0
14:22:07 (lmgrd) Starting vendor daemons ...
14:22:07 (lmgrd) Started pgroupd (internet tcp_port 47199 pid 26509)
14:22:07 (pgroupd) FLEXnet Licensing version v11.10.0.0 build 95001 x64_lsb
14:22:07 (pgroupd) Server started on photon0 for:
14:22:07 (pgroupd) PGI2011-cdk-linux (consisting of:        pgi-hpf-lin64
14:22:07 (pgroupd) pgi-f95-lin64    pgi-f77-lin64   pgi-cc-lin64
14:22:07 (pgroupd) pgi-cpp-lin64    pgi-hpf-lin32   pgi-f95-lin32
14:22:07 (pgroupd) pgi-f77-lin32    pgi-cc-lin32    pgi-cpp-lin32
14:22:07 (pgroupd) pgi-prof pgi-dbg     pgi-dbg-gui)
14:22:07 (pgroupd) PGI71-cdk-linux (consisting of:      pghpf-linux86-64
14:22:07 (pgroupd) pgf90-linux86-64 pgf77-linux86-64 pgcc-linux86-64
14:22:07 (pgroupd) pgcpp-linux86-64 pghpf-linux86   pgf90-linux86
14:22:07 (pgroupd) pgf77-linux86    pgcc-linux86    pgcpp-linux86
14:22:07 (pgroupd) pgprof       pgdbg       pgdbg-gui
14:22:07 (pgroupd) pgdbg-linux86-64) pghpf-linux86-64 pgf90-linux86-64
14:22:07 (pgroupd) pgf77-linux86-64 pgcc-linux86-64 pgcpp-linux86-64
14:22:07 (pgroupd) pghpf-linux86    pgf90-linux86   pgf77-linux86
14:22:07 (pgroupd) pgcc-linux86 pgcpp-linux86   pgprof
14:22:07 (pgroupd) pgdbg        pgdbg-gui   pgdbg-linux86-64
14:22:07 (pgroupd) pgi-hpf-lin64    pgi-f95-lin64   pgi-f77-lin64
14:22:07 (pgroupd) pgi-cc-lin64 pgi-cpp-lin64   pgi-hpf-lin32
14:22:07 (pgroupd) pgi-f95-lin32    pgi-f77-lin32   pgi-cc-lin32
14:22:07 (pgroupd) pgi-cpp-lin32    pgi-prof    pgi-dbg
14:22:07 (pgroupd) pgi-dbg-gui
14:22:07 (pgroupd) EXTERNAL FILTERS are OFF
14:22:07 (lmgrd) pgroupd using TCP-port 47199
14:22:12 (lmgrd) Established connection from secondary redundant server photon29  

Question  9. 新しいリリース・バージョンの PGI コンパイラをインストールして使用した際、License file does not support this version のエラーが生じます
 LICENSE MANAGER PROBLEM License file does not support this version ... Connection refused

Answer

このエラーメッセージは、インストールした PGI のソフトウェア・バージョンとそれに対応するライセンス・ファイルのライセンス・キーがマッチしていない場合のエラーです。次のような状況で起こりえます。

  1. $PGI/license.dat が、古いテンポラリ(試用)ライセンスのままで、新規に取得した正規ライセンスに変更していない場合
  2. 新リリースのためのライセンスファイルを新たに取得していながら、license.dat の内容を更新していない場合
  3. 新リリースのためのライセンスファイルを更新したが、その後、FLEXlm ライセンス・デーモンをリスタートしていない場合

上記の 1 の場合は、新リリースのための新しいライセンスを取得してください。詳しくは、こちらのページをご覧ください。2 の場合は、新ライセンスファイルを license.dat として保存(上書き)してください。
上記の 3 の場合は、FLEXlm ライセンス・デーモン (lmgrd) を以下のコマンドでリスタートしてください。以下の例は、Linux 版の場合で、インストールした新バージョンが 15.9 の場合のコマンドを示しております。Windows 上ではこちらを参照してください

$PGI/linux86/15.9/bin/lmgrd.rc restart (32ビットLinux)
$PGI/linux86-64/11.9/bin/lmgrd.rc restart (64ビットLinux)

Question  10. 新しいリリース・バージョンの PGI コンパイラをインストールして使用した際、License file does not support this version のエラーが生じます(Linux)
 pgf90-linux86: LICENSE MANAGER PROBLEM: Failed to checkout license
 pgf90-linux86: LICENSE MANAGER PROBLEM: Server node is down or not responding

Answer

ライセンスファイル (license.dat) で指定されたSERVER行の「ホスト名」がご利用になっているマシンのホスト名と一致していないか、FLEXlm ライセンス・マネージャのデーモンが立ち上がっていない場合に表示されるメッセージです。

以下の三点をご確認ください。ここでは、現バージョンが 15.10 (2015) であることを前提にして記述しておりますが、これは、今お使いのバージョン番号に置き換えてお考えいただいて結構です。

  • インストールしたコンパイラ・バージョンにバンドルされているライセンスデーモン (/$PGI/linux86-64/15.10/bin/lmgrd) が動作しているかを確認する。具体的には、ps コマンドで現在の lmgrd の引数(バージョン名)を確認する
  • $ ps ax | grep lmgrd
     xxxx ? (略) /opt/pgi/linux86-64/11.11/bin/lmgrd -c /opt/pgi/license.dat
     yyyy ? (略) pgroupd -T photon0 11.11 3 -c /opt/pgi/license.dat --lmgrd_start 4162c4be
  • もし、上記の lmgrd のデーモンが現バージョンより古いバージョンの directory 下のものが使われている場合、一旦、現在の FLELXlm マネージャを停止し、新バージョンの lmgrd.rc(一般に、$PGI/linux86-64/{revision番号}/bin/lmgrd.rcに存在する)を /etc/init.d 配下にセットして、ライセンスマネージャ (lmgrd) を再起動する。再起動の前は、必ず、現在動作している lmgrd を以下の方法で停止させてください。

    (FLELXlm マネージャの停止方法)
    ルート権限で以下のコマンドを実行してください。

    $ /etc/init.d/lmgrd-pgi stop  

    上記のコマンドが設定されていない場合は、下記のコマンドを利用して停止してください。
    $ /opt/pgi/linux86/15.10/bin/lmgrd.rc stop   (32-bit 製品の場合)
    $ /opt/pgi/linux86-64/15.10/bin/lmgrd.rc stop (64-bit 製品の場合)

    なお、lmgrd の再起動のコマンドは、Linux 上では /etc/init.d/lmgrd start です。
  • $PGI/license.dat の「SERVER」行のホスト名が/etc/hosts ファイルに登録している名前を確認する
  • /etc/hosts の ホスト名と IP アドレスの設定が正しいかを確認する

Question  11. マシンをリブート後に以下のメッセージと共に、急に PGI コンパイラが使用できなくなりました
 pgf90-linux86: LICENSE MANAGER PROBLEM: Cannot connect to license server (-15,12 :111 "Connection refused")

Answer

これは、マシンを再起動したときに、自動的に PGI の FLEXlm ライセンス・マネージャ・デーモンを起動していないことによる問題です。 PGI の初期インストール時に、ライセンス・デーモンの自動起動の設定を忘れていたことによる原因です。ルート権限にて、以下の対策を順番に実施してください。以下の例は、PGI バージョン 16.1 がインストールされている場合を記述したものですが、他のバージョンが動作している場合は、16.1 の数字を他のバージョン番号に読み替えて実行してください。

● ライセンス・マネージャ(lmgrd デーモン)が起動されているかの確認方法

# ps ax |grep lmgrd (一例)
 1915 ?        S      0:00 /opt/pgi/linux86-64/16.1/bin/lmgrd -c /opt/pgi/license.dat
 1917 ?        Ssl    0:00 pgroupd -T photon29 11.11 3 -c /opt/pgi/license.dat --lmgrd_start 4f1fad7c
 2713 pts/0    S+     0:00 grep lmgrd

 上記のように、lmgrd(ライセンス・デーモン)並びに pgroupd のプロセスが存在していれば問題
 ありませんが、今回のような問題の場合は、「lmgrd プロセスがない」と出力されるはずです。

● リブート時にデーモンを自動起動するように設定する

  以下の $PGI は環境変数 PGI が予め設定されていることを想定しています。この設定の詳細は、
  こちらのページをご覧ください。ちなみに、$PGI は PGIコンパイラのソフトウェアがインストールされている、
  そのトップ・ディレクトリを意味します(デフォルトは、$PGI=/opt/pgi)。
  なお、SUSE LINUX 上では、PGI 5.2 以前の場合、システムリブート時に
  デーモンの自動 起動に不具合が生じるため、以下の lmgrd.rc ファイルを予め修正してから
  以下の処理を行ってください。
  SuSE Linux かつ PGI 5.2 以前の場合 lmgrd.rc のファイルの修正方法は、こちらの画面で説明しています。
  (関連 FAQ は、次項) SuSE Linux かつ PGI 6.0 以降の場合 lmgrd.rc のファイルの修正は、必要ありません。

【32ビットの場合】
# cp $PGI/linux86/16.1/bin/lmgrd.rc /etc/init.d/lmgrd
# chkconfig --add lmgrd
# sysv-rc-conf lmgrd on (Ubuntuの場合)

【64ビットの場合】
# cp $PGI/linux86-64/16.1/bin/lmgrd.rc /etc/init.d/lmgrd
# chkconfig --add lmgrd
# sysv-rc-conf lmgrd on (Ubuntuの場合)

● FLEXlm ライセンス・マネージャ・デーモンを手動起動する

# $PGI/linux86/16.1/bin/lmgrd.rc
# $PGI/linux86-64/16.1/bin/lmgrd.rc start (32ビット/64ビット共用製品)

Question  11-1 SUSE Linux 9.x 上で、マシンをリブート後に以下のメッセージと共に、急に PGI 5.2 コンパイラが使用できなくなりました
 pgf77-linux86-64: LICENSE MANAGER PROBLEM: Failed to checkout license
 pgf77-linux86-64: LICENSE MANAGER PROBLEM: The desired vendor daemon is down
 1) Check the lmgrd log file, or 2) Try lmreread
 Feature: pgf77-linux86-64
 Vendor:Host: amd64A
 License path: /opt/pgi/license.dat
 FLEXlm error: -97,121

Answer

● ライセンス・マネージャ(lmgrd 並びに pgroupd デーモン)が起動されているかを確認してみる

# ps -efw | grep lmgrd
root 24916 1 0 13:56 ? 00:00:00 /opt/pgi/linux86-64/5.2/bin/lmgrd -c /opt/pgi/license.dat

# ps -ef | grep pgroupd
root 6949 6920 0 12:57 pts/0 00:00:00 grep pgroupd
pgroupd と言う vendor daemon が存在していない)

これは、SUSE Linux のブート時に起動するソフトウェアのランレベルを設定するユーティリティ chkconfig に対応した”INIT INFO 情報"を lmgrd.rc ファイルの中に設定していないために引き起こる問題です。RedHat 系の chkconfig の仕様と SUSEの chkconfig の仕様において、引き渡す”INIT INFO 情報"は異なっております。これによる影響です。この問題を回避するための対策を以下に示します。
以下の例は、PGI バージョン 5.2 がインストールされている場合を記述したものですので、 5.2 以前のバージョンでも同様な現象が起こります。なお、 PGI 6.0 以降はこの問題は解決されております

以下は、「ルート権限」で行います。なお、以下の 5.2 は適宜、現在のバージョン番号に置き換えてください。
(バージョン5.1であれば、5.1 としてください)

(1)ライセンスマネージャの起動スクリプト(lmgrd.rc)を修正

 修正するファイルは、以下のとおりです。

【32ビットの場合】 $PGI/linux86/5.2/bin/lmgrd.rc
【64ビットの場合】 $PGI/linux86-64/5.2/bin/lmgrd.rc
 
 上記のファイルが存在するディレクトリに移動して修正します。
 このファイルを修正する方法は、こちらのページに記載されております。

(2)/etc/init.d 配下に修正されたlmgrd.rcファイルをコピー(上書き)する

  # cp lmgrd.rc /etc/init.d/lmgrd-pgi

(3)ブート時の起動スクリプトのランレベルの再設定

  # cd /etc/init.d に移る

 ・現在の lmgrd 起動時の設定を delete する
  # chkconfig --del lmgrd-pgi
  lmgrd-pgi                 0:off  1:off  2:off  3:off  4:off  5:off 6:off

 ・再度、lmgrd 起動時のランレベルを chkconfig で設定。
  # chkconfig --add lmgrd-pgi
  lmgrd-pgi                 0:off  1:off  2:off  3:on   4:off  5:on 6:off

以上で、修正は終了です。次回のマシン起動時にはうまく、両方のデーモンが起動されるはずです。

Question  12. 今所有しているライセンスで新リリース・バージョンが動作しますか  

 
Answer

詳細は、こちらのページで説明しております。

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

Answer

現在の自分が所有しているライセンス情報は、ライセンス発行サイトにてオンラインで入手が可能です。サイトのユーザ認証のために、ご自身のPGIアカウント (登録ユーザe-mai アドレスとパスワード) でログインし、"Manage PGI products" のボタンをクリックすると、ライセンス PIN 番号が表示されますので、この PIN 番号をクリックすると、現在のライセンス情報を閲覧することができます。詳細は、こちらのページで説明しております。

Question  14. PGI のライセンス発行サイトでライセンスを発行した際、MKLICENSE had trouble creating a license のメッセージが出て、正規のライセンスが取得できません

Answer

ライセンス発行サイトにて、FLEXlm用のライセンスを取得しようとしたとき、FLEXlm hostid 情報並びにホスト名を入力後、以下のようなメッセージで、正規のライセンスが発行できない場合があります。これは、ライセンス発行のための入力画面において、FLEXlm hostid の入力に対して、 ホスト名を入れ、hostname の入力に対して hostid 情報を入れてしまったための誤入力によるものです。この場合は、一旦、今、誤って発行してしまったライセンスを取り消し(delete)、再度、ライセンスを取得する必要があります。なお、ライセンスの取消しは、ライセンス発行サイト上でできますが、米国 PGI 社の確認・了承が必要なため、取消完了まで1日かかります。予め、ご了承ください。

MKLICENSE had trouble creating a license with the information
provided to it.  Send the following below to license@pgroup.com.
Do NOT send it to a customer.
stdin:line 1:Invalid license file syntax (-2,402) stdin:line 5:Invalid parameter (-42,298) stdin:line 8:Invalid parameter (-42,298) stdin:line 11:Invalid parameter (-42,298) stdin:line 14:Invalid parameter (-42,298) stdin:line 17:Invalid parameter (-42,298) stdin:line 20:Invalid parameter (-42,298) ....(略)...

Question  15. コンパイラのバージョンアップを行った後、コンパイルすると、FLEXlm version of vendor daemon is too old と言うメッセージが出て、コンパイルできません

Answer

PGI コンパイラのソフトウェアのバージョンアップを行い、新バージョン用のライセンスを更新した後に、PGI ソフトウェアに付属しているライセンスを管理する FLEXlm マネージャ関係のソフトウェア(lmgrd.rc,lmgrd, pgroupd)を新しいものに切り替えていない場合に出力されるメッセージです。

% pgf90 mesh.f
pgf90-linux86-64: LICENSE MANAGER PROBLEM: Failed to checkout license
pgf90-linux86-64: LICENSE MANAGER PROBLEM: FLEXlm version of vendor daemon is too old
Feature:       pgf90-linux86-64
License path:  /opt/pgi/license.dat
FLEXlm error:  -83,318
For further information, refer to the FLEXlm End User Manual,
available at "www.macrovision.com".

この問題を回避するためには、以下のコマンドを実行してください。

  1. 現在、動いている古いバージョンの FLEXlm ライセンスマネージャ(デーモン・プロセス)を停止する。

      $ /etc/rc.d/init.d/lmgrd stop (RedHat Linuxの場合)
      $ /etc/init.d/lmgrd stop    (SuSE Linuxの場合)

    もし、上記のコマンドで停止できない(エラーメッセージが出る)場合、以下の方法で強制的にライセンスマネージャを停止してください。まず、ps コマンドで、プロセス名 lmgrd のプロセス番号を確認します。そして、そのプロセスを kill します。

      $ ps ax | grep lmgrd
       root 24916 1 0 13:56 pts/0 00:00:00 /opt/pgi/linux86/5.2/bin/lmgrd -c /opt/pgi/...
      $ kill -9 24916

  2. 新しくインストールした PGI ソフトウェアに付属している FLEXlm ライセンスマネージャを再セット、その後、再起動します。ここでは、新たにバージョンアップしたソフトウェアが 5.2 と言う想定で、述べることにします。これ以降の新バージョンの場合でも同様な措置を行います。新しくインストールしたバージョン番号(以下の例では下線部)を適宜、変更して実行してください。バージョン 5.2 をインストールした場合は、以下のようなコマンドを実行して下さい。(5.2 用の FLEXlm 並びにpgroupd デーモンを起動するスクリプトをコピーします)

    【32ビット専用製品の場合】
      $ cp $PGI/linux86/5.2/bin/lmgrd.rc /etc/rc.d/init.d/lmgrd (RedHat Linuxの場合)
      $ cp $PGI/linux86/5.2/bin/lmgrd.rc /etc/init.d/lmgrd   (SuSE Linuxの場合)

    【32ビット/64ビット共用製品の場合】
      $ cp $PGI/linux86-64/5.2/bin/lmgrd.rc /etc/rc.d/init.d/lmgrd (RedHat Linuxの場合)
      $ cp $PGI/linux86-64/5.2/bin/lmgrd.rc /etc/init.d/lmgrd   (SuSE Linuxの場合)

    これを実行した後、手動で、再度 FLEXlm マネージャ・デーモンを起動します。

      $ /etc/rc.d/init.d/lmgrd start (RedHat Linuxの場合)
      $ /etc/init.d/lmgrd-pgi start  (SuSE Linuxの場合)

    これで、新しくインストールした 5.2 用の pgroupd デーモン(vendor deamon)に置き換わり、正常にコンパイルできるはずです。

Question  16. 現在、PGI バージョン 5.1 を使用していますが、5.1 より下位バージョンの PGI コンパイラを使用する必要があります。現在の 5.1 用のライセンスファイルで下位バージョンは動作しますか

Answer

現在、使用している PGI コンパイラのバージョンよりも下位のバージョンのコンパイラ(PGI 4.x 等)は、現在のライセンス・ファイル (license.dat) をそのまま下位バージョンをインストールした直下 ($PGI下) にコピーしていただければ、動作します。ライセンス・ファイルは、下位バージョンの動作に対して互換性を有します。但し、使用するマシンが同一であること、ホスト名を変更していないことが必要です。PGI 4.x 等のの下位バージョンのインストールの仕方並びに FLEXlm ライセンス・マネージャの設定の方法については、こちらのページをご覧ください。

Question  17. PGI のインストール・ディレクトリ配下(/opt/pgi)にlicense.datをセットしたにもかかわらず、ライセンスファイルがないというメッセージが出ます

Answer

正規のライセンスファイル(license.dat)をセットし、環境変数の LM_LICENSE_FILE にもライセンス・ファイルの場所を設定したにもかかわらず、以下のような No such file or directory のメッセージが出力されてコンパイルできない場合は、license.dat のファイル・パーミッション を確認してください。このファイルは、一般ユーザが read できる状況でなければいけません。もし、read パーミッションが許可されていない場合は、root 権限で以下のコマンドを実行してください。 Windows版の場合も同様で、licnese.dat は使用者のユーザアカウントで read できるパーミッションを付けておく必要があります。

 $ cd /opt/pgi  あるいは、PGI のインストールしたトップディレクトリ移動
 $ chmod 644 license.dat

(エラーメッセージ)
$ pgf77 -fastsse test.f -o myprog

pgf77-linux86-64: LICENSE MANAGER PROBLEM: Cannot find license file.
The license files (or license server system network addresses) attempted are
are listed below.  Use LM_LICENSE_FILE to use a different license file,
or contact your software provider for a license file.
Feature:       pgf77-linux86-64
Filename:      /opt/pgi/license.dat
License path:  /opt/pgi/license.dat
FLEXnet Licensing error:-1,73.  System Error: 2 "No such file or directory"

Question  18. FLEXlm ライセンスマネージャの動作のトラブルに関して調べるため、その動作ログファイルのある場所を教えてください

Answer

一般に、LICENSE MANAGER PROBLEM のメッセージで問題が生じた場合、FLEXlm(lmgrd) のデーモンの出力ログ(flexlm.log)を調べます。また、この問題が生じた場合は、この flexlm.log の内容もコピーして弊社サポートまで送付してください。
(ログの存在場所とファイル名)
Linux:
 (PGI 6.1 以前) /usr/pgi 配下の flexlm.log
 (PGI 6.2 以降) /opt/pgi 配下の flexlm.log
Windows:
 (PGI 6.1)    c:\Program Files\PGI 配下の license.log
 (PGI 6.2 以降)  c:\Program Files\PGI\flexlm 配下の license.log

なお、このファイルは、ログ出力を蓄積しますので、定期的に以下のコマンドで内容をゼロ・クリアしても構いません。
 $ cp /dev/null flexlm.log  (Linuxの場合)

一般に、FLEXlm (lmgrd 並びに pgroupd デーモン)が正常起動・動作した場合は、以下のような起動時ログが記録されます。
以下のログの中で FLEXnet のバージョン番号が v11.7.0.0 となっていますが、これは PGI 10.x 以降で使用されたものです。PGI 2010(10.x) 以前は、FLEXlm デーモンのバージョンが異なっておりますので、バージョンアップを適切に行わなければ、LICENSE MANAGER PROBLEM を生じることがあります。なお、FLEXlm のデーモンソフトウェアのバージョンは、PGIのリリースがアップする毎に変化していますので、PGIのバージョンアップを行った場合は、そのバージョンにバンドルされた FLEXlm ソフトウェアを使用することを推奨します。各バージョンにバンドルされた FLEXlm ソフトウェア(lmgrd)を起動するための rc ファイルは、一般に64bit版の場合、$PGI/linux86-64/{revision番号}/bin/lmgrd.rc に存在します。このファイルを起動すれば、その revision の lmgrd が常に起動されます。

(PGI 11.x の FLEXlm の正常起動時のログ)
11:34:19 (lmgrd) -----------------------------------------------
11:34:19 (lmgrd)   Please Note:
         (中略)
11:34:19 (lmgrd) -----------------------------------------------
11:34:19 (lmgrd)
         (中略)
11:34:19 (lmgrd) FLEXnet Licensing (v11.7.0.0 build 73797 x64_lsb) started on {ホスト名} (linux) (1/13/2012)
11:34:19 (lmgrd) Copyright (c) 1988-2009 Acresso Software Inc. All Rights Reserved.
11:34:19 (lmgrd) US Patents 5,390,297 and 5,671,412.
11:34:19 (lmgrd) World Wide Web:  http://www.acresso.com
11:34:19 (lmgrd) License file(s): /opt/pgi/license.dat
11:34:19 (lmgrd) lmgrd tcp-port 27000
11:34:19 (lmgrd) Starting vendor daemons ...
11:34:19 (lmgrd) Started pgroupd (internet tcp_port 53434 pid 1894)
11:34:19 (pgroupd) FLEXnet Licensing version v11.7.0.0 build 73797 x64_lsb
11:34:19 (pgroupd) Server started on photon29 for:
11:34:19 (pgroupd) PGI2010-workstation-complete (consisting of:     pgi-hpf-lin64
11:34:19 (pgroupd) pgi-f95-lin64    pgi-f77-lin64   pgi-cc-lin64
11:34:19 (pgroupd) pgi-cpp-lin64    pgi-hpf-lin32   pgi-f95-lin32
11:34:19 (pgroupd) pgi-f77-lin32    pgi-cc-lin32    pgi-cpp-lin32
11:34:19 (pgroupd) pgi-prof pgi-dbg     pgi-dbg-gui)
11:34:19 (pgroupd) PGI71-workstation-complete (consisting of:       pghpf-linux86-64
11:34:19 (pgroupd) pgf90-linux86-64 pgf77-linux86-64 pgcc-linux86-64
11:34:19 (pgroupd) pgcpp-linux86-64 pghpf-linux86   pgf90-linux86
11:34:19 (pgroupd) pgf77-linux86    pgcc-linux86    pgcpp-linux86
11:34:19 (pgroupd) pgprof       pgdbg       pgdbg-gui
11:34:19 (pgroupd) pgdbg-linux86-64)
11:34:19 (pgroupd) EXTERNAL FILTERS are OFF
11:34:19 (lmgrd) pgroupd using TCP-port 53434
以上が lmgrd/pgroupd デーモンの起動時のメッセージ

12:03:03 (pgroupd) OUT: "PGI2010-workstation-complete " usr1@photon29
12:03:03 (pgroupd) OUT: "pgi-f95-lin64 " usr1@photon29    <==コンパイラを使用すると出るメッセージ
12:03:03 (pgroupd) IN:  "pgi-f95-lin64 " usr1@photon29

● FLEXlm のライセンス管理ユーティリティ
FLEXlm デーモンである lmgrd の動作診断、ライセンスファイル等パスの確認等を行えるツールとして、lmutil コマンドを提供しています。このコマンドファイルは、以下のディレクトリ配下に存在します。なお、以下の $PGI は、PGI ソフトウェアをインストールしたトップ・ディレクトリを定義した環境変数です。

  $PGI/linux86/{バージョン番号}/bin/lmutil  (32ビットの場合)
  $PGI/linux86-64/{バージョン番号}/bin/lmutil (64ビットの場合)

この lmutil コマンドの引数は、以下でみることができます。

   # /opt/pgi/linux86-64/6.1/bin/lmutil -help

この中で、特にトラブル・シューティングで参考になる引数は、lmdiag、lmstat です。

# lmutil lmstat (ネットワークライセンスアクティビティのステータスを表示します)
lmutil - Copyright (c) 1989-2009 Acresso Software Inc. All Rights Reserved.
Flexible License Manager status on Wed 1/25/2012 18:54

License server status: 27000@photon29
    License file(s) on photon29: /opt/pgi/license.dat:

  photon29: license server UP (MASTER) v11.7

Vendor daemon status (on photon29):

   pgroupd: UP v11.7

# lmutil lmdiag (ライセンスが確認できないときの問題を診断します)
lmutil - Copyright (c) 1989-2009 Acresso Software Inc. All Rights Reserved.
FLEXnet diagnostics on Wed 1/25/2012 18:57
-----------------------------------------------------
License file: /opt/pgi/license.dat
-----------------------------------------------------
"pgf90-linux86-64" v7.1, vendor: pgroupd
  License server: photon29
  nodelocked license, locked to ethernet address "90e6ba7ccdf1" no expiration date

  Requests from the same USER do not consume a new license

This license can be checked out
-----------------------------------------------------

Question  19. FLEXlm ライセンス管理マネージャの動作メカニズムと license.dat の関係を教えてください

Answer

一般に、 LICENSE MANAGER PROBLEM のメッセージで問題が生じた場合、 FLEXlm(lmgrd) ライセンス管理システムに伴う問題が生じております。ここで、一般的な FLEXlm の管理システムに関係する事項について説明します。基本的な考え方、メカニズムを理解することにより、より効果的なトラブルシューティングが可能となります。

(1) FLEXlm 形式のライセンスの基本となる hostID 情報
一般に、 FLEXlm 形式のライセンスキーは、システムのネットワークカードの MACアドレスをユニークな hostIDとして使用します。システムに複数のネットワークカードが存在する場合は、必ず、eth0(Linux) の MACアドレスを使用することに注意する必要があります。従って、常に、ネットワーク・インタフェース・カードの eth0 はアクティブでなければいけません。eth0 がアクティブかどうかのチェックは、 Linux の場合、システム管理者権限で以下の ifconfig コマンドで確認できます。以下の例では、ホスト名 photon29 の eth0 の情報が表示され、アクティブであることが確認できます。

photon29:~ # ifconfig
eth0 		Link encap:Ethernet  HWaddr 90:E6:BA:7C:CD:F1   < == MAC address
          inet addr:192.168.0.29  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::92e6:baff:fe7c:cdf1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:19750 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16102 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:21369992 (20.3 MiB)  TX bytes:1813153 (1.7 MiB)
          Interrupt:49 Base address:0xe000

eth1      Link encap:Ethernet  HWaddr 90:E6:BA:7C:CE:63
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:50 Base address:0x8000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8807 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8807 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:622899 (608.2 KiB)  TX bytes:622899 (608.2 KiB)
          
/etc/hosts ファイルの内容
127.0.0.1   localhost.localdomain   localhost
::1     localhost6.localdomain6 localhost6
192.168.0.10    photon0

192.168.0.21    photon21
192.168.0.22    photon22
192.168.0.23    photon23
192.168.0.24    photon24

192.168.0.25    photon25

192.168.0.26    photon26
192.168.0.27    photon27
192.168.0.28    photon28
192.168.0.29    photon29  eth0 の inet6 アドレスと一致しているはず 

(2) PGI のライセンス取得の際に使用する hostID 情報の表示

PGI 製品のライセンスを取得する際、インストールしたシステム(Node-locked製品) あるいは、ライセンス管理サーバとなるシステム(Network floating製品)の hostID 情報が必要です。この情報は、実は上記で示した ネットワークカードの eth0 に相当する MACアドレスと同じものです。この情報は、PGI コンパイラをインストールした直後、以下のファイルの中に記録されます。このファイルは、PGI コンパイラをインストールしたディレクトリ・パスの直下にある license.info ファイルです。
【Linux】
 (PGI 6.1 以前) /usr/pgi/license.info (/usr/pgi はデフォルトのインストールディレクトリ)
 (PGI 6.2 以降) /opt/pgi/license.info (/opt/pgi はデフォルトのインストールディレクトリ)

この hostID情報は、別に用意されたコマンドでも表示することができます。以下の例のように、複数のネットワーク・インタフェースが搭載されている場合は、hostid が複数表示されます。一般に、この中で最初に現れる hostid でライセンスキーを取得しています。

# cat /opt/pgi/license.info 
System information:
   FLEXnet hostid  "90e6ba7ccdf1 90e6ba7cce63"
   Hostname        photon29
   Installation    /opt/pgi
   PGI Release     11.10

上記の hostid 情報が上で示した eth0 の MACアドレスと同一であることが分かります。

(3) PGI のライセンスキーを取得した際の license.dat 内容

米国の PGI 社のライセンス発行サイトにて、上記の hostID 情報を入力することで、システム、システム固有のライセンスキーが取得できます。そのライセンスキーの形式は、以下のようになっています。
一行目の SERVER 行の二つ目の引数に、hostID情報を取得したシステム(PGI をインストールしたシステム)の「ホスト名」(以下の例では photon29)を記述します。三つ目の引数 90e6ba7cce63 は、キーが発行された際に記されておりますが、これがこのシステムの hostID 情報となります。
二行目の DAEMON行は、 lmgrd ライセンスデーモンの名称(pgroupd) が記載されています。
三行目以降の PACKAGE 行は、PGI コンパイラ・コマンドの特有のキーが含まれており、これは hostID 情報とPGIバージョン番号、同時ユーザ実行数、ノードロックあるいはフローティングか等をもとに作成されたキーとなっております。

なお、ライセンスファイルの存置場所は、以下のとおりです。
【Linux】
 (PGI 6.1 以前) /usr/pgi/license.dat (/usr/pgi はデフォルトのインストールディレクトリ)
 (PGI 6.2 以降) /opt/pgi/license.dat (/opt/pgi はデフォルトのインストールディレクトリ)
【Windows】
 (PGI 6.1 以降) c:\Program Files\PGI\license.dat

# cat /usr/pgi/license.dat 

SERVER photon29 90e6ba7ccdf1 27000
DAEMON pgroupd 
PACKAGE PGI2010-workstation-complete pgroupd 2012.0213 B7DC8266F6DD \
COMPONENTS="pgi-hpf-lin64 pgi-f95-lin64 pgi-f77-lin64 \
..... (続く)

license.dat の中で確認すべきことは、1行目で、「ホスト名」とその eth0 の MACアドレスが記述されているか
どうかを確認してください。特に、複数のネットワークカードが実装されており、かつ、その I/F に
それぞれ固有のホスト名を定義している場合は、上記ライセンスファイルのホスト名が eth0 のものに
対応するかを確認してください。一般に、hostname コマンドで出力されるものが eth0 に対応する場合
多いです。

# hostname 
photon29

上記の hostname コマンドで表示されたホスト名(photon29)が、/etc/hosts上で明確に、
eth0 のIPアドレスで定義されているかどうかもご確認ください。まれに、複数のネットワークカードが
搭載されている状況で、それぞれにIPアドレスは定義したが、ホスト名が同一と言うこと(設定ミス)も
あります。特に、/etc/hosts ファイルの定義のミスで、FLEXlm ライセンス
管理マネージャが動作しないと言う事例が多いです。この場合は、非常に深刻な問題として
潜在化します。

(4) FLEXlm ライセンスマネージャ(lmgrd)が正常に動作している時のプロセス・ステータス(Linux)

Linux 上で、PGI の FLEXlm ライセンスマネージャを起動するには、以下のコマンドを使用します。 Windows の場合は、こちらを参照下さい。

# /etc/init.d/lmgrd start 

Linux上で、上記のコマンドで lmgrd をスタートさせると、lmgrd デーモンは、まず、LM_LICENSE_FILE 環境変数で定義された license.dat を参照して、その中に記述されたホスト名が、マシンの実際の hostID (MACアドレス)と同一かどうかをチェックします。これが正しい場合、lmgrd デーモンプロセスが正常に起動され、次に PGI の VENDOR デーモン(pgroupd)を起動させます(license.dat の二行目に明記されたファイル)。 vendor デーモンは、起動後単独で、ライセンスファイルの中の PACLKAGE 行で定義されたライセンスされたコンパイラ・コマンドの属性を読み取ります。その後、初めて、Vendorデーモンと lmgrd デーモンが交信し、TCP コネクションを確立します。こうして、正常なライセンスキーであることが確認されると FLEXlm 関係のデーモン(lmgrd、pgroupd) が正常に立ち上がります。これ以降、各ユーザが実行するコンパイラ・コマンドのリクエストを受け、ライセンスされたコマンドであるかのチェック、あるいは、同時利用ユーザ数、フローティング形式かどうかをその都度、チェックします。
さて、ライセンスマネージャで生じる問題のほとんどは、最初の lmgrd 起動の時点で生じています。すなわち、何らかの問題で、lmgrd デーモン自体が立ち上がっていない、あるいは、lmgrd は立ち上がったが、vendor デーモン(pgruopd)のみが立ち上がっていない等の問題です。これらの直接的な原因は、license.dat の内容が不正、あるいは、ホスト名を正しく記述をしていない等が考えられます。上述したとおり、lmgrd デーモンを立ち上げる際に、license.dat の情報をもとにチェックを行いますので、license.dat に何らかの記述的な問題があった場合、そもそもデーモン自体が立ち上がらないことになります。
そこで、正常に FLEXlm 関連のデーモンが起動された場合、Linux のプロセスステータスにどのように現れるかを以下に示します。Linux の ps コマンドを使用します。以下の ps ステータスの例で説明しますと、正常に FLEXlm 関連のデーモンが動作しているためには、二つのデーモン(lmgrdとpgroupd) が起動されている必要があります。以下の例では、 プロセス番号 10730 と 10731 です。この二つのうち、一つでも起動されていない場合は、LICENSE MANAGER PROBLEM のエラーが必ず生じます。
いずれにしても、license.dat あるいは、Linuxのシステム設定に関連する問題の可能性が高いため、上記のメカニズムを理解したうえで入念に調査する必要があります。上述した、(1) から(4) まで再度確かめることをお勧めします。

photon29:~ # ps ax |grep lmgrd
10730 ?        S      0:00 /opt/pgi/linux86-64/11.9/bin/lmgrd -c /opt/pgi/license.dat
10731 ?        Ss     0:00 pgroupd -T photon29 11.7 3 -c /opt/pgi/license.dat --lmgrd_start 4510a419
12469 pts/0    S+     0:00 grep lmgrd

(5) FLEXlm ライセンスマネージャ(lmgrd)の動作ログを見る

FLEXlm ライセンスマネージャの動作ログについては、前項 FAQ#18 で説明しました。一般に、flexlm.log のイメージは以下のとおりです。

11:03:17 (lmgrd) FLEXnet Licensing (v11.7.0.0 build 73797 x64_lsb) started on  (9/20/2006)
11:03:17 (lmgrd) Copyright (c) 1988-2009 Acresso Software Inc. All Rights Reserved
11:03:17 (lmgrd) US Patents 5,390,297 and 5,671,412.
11:03:17 (lmgrd) World Wide Web:  http://www.acresso.com
11:03:17 (lmgrd) License file(s): /opt/pgi/license.dat   (ライセンスファイル読み取り)
11:03:17 (lmgrd) lmgrd tcp-port 27000           (lmgrd自体の起動成功)
11:03:17 (lmgrd) Starting vendor daemons ...       (Vendorデーモンを起動)
11:03:17 (lmgrd) Started pgroupd (internet tcp_port 53434 pid 1894)(Vendor デーモンスタート)
11:03:17 (pgroupd) FLEXnet Licensing v11.7.0.0 build 73797 x64_lsb  (デーモン独自でライセンス内容チェック)
11:03:17 (pgroupd) Server started on photon29 for:       pghpf-linux86
11:03:17 (pgroupd) PGI2010-workstation-complete (consisting of:     pgi-hpf-lin64
11:03:17 (pgroupd) pgf95-linux86        pgf77-linux86   pgcc-linux86
11:03:17 (pgroupd) pgcpp-linux86        pghpf-linux86-64 pgf90-linux86-64
11:03:17 (pgroupd) pgf77-linux86-64 pgcc-linux86-64 pgcpp-linux86-64
11:03:17 (pgroupd) pgprof               pgdbg           pgdbg-gui
11:03:17 (pgroupd) pgdbg-linux86-64            (pgroupdデーモンが lmgrd と交信可能であれば
                             二つのデーモンの connection 確立する)
11:03:27 (pgroupd) Vendor daemon can't talk to the license server manager (lmgrd) 
(Cannot connect to license server system. (-15,570:115 "Operation now in progress"))
                             (Vendor デーモンが交信できない)
                             (ネットワーク上の何らかのトラブル)
11:03:27 (lmgrd) Vendor daemon died with status 37
11:03:27 (lmgrd) Since this is an unknown status, license server
11:03:27 (lmgrd) manager (lmgrd) will attempt to re-start the vendor daemon.)

上記の例は、トラブルが生じた場合のログを示しました。この問題は、lmgrd デーモンと pgroupd デーモン (Vendorデーモン)のコネクションの確立ができないと言う問題です。これは、一つのLinuxシステム内でのネットワーク上の問題でした。少々、分かり難い問題で、論理的な eth0 インターフェースが、立ち上がっていないことによる eth0 を通した TCPポート の確立ができないと言う問題でありました。複数の Net I/F があり、eth0 と 当該ホスト名が対応していない場合、あるいは、複数のネットワーク I/F のアドレスは設定しているが、そのどちらにも「同じホスト名」を定義している場合等、問題が潜在化し、分かり難いことがあります。このような場合も上記のエラーログのようになるでしょう。問題が起きた際に、最も効率的にトラブル・シューティングするには、基本に忠実に、上記の(1) から (4) を確認していくことです。特に、/etc/hosts ファイルの定義は、ミスの多い部分ですので、一度、確かめることをお勧めします

Question  20. PGI 7.1 以前のバージョンを使用している環境に、PGI 7.2以降(2008年5月~)の新しいライセンス・キー(license.dat) に入れ替えると、LICENSE MANAGER PROBLEMでコンパイルエラーとなります

Answer

2008年5月以降に発行するライセンスキーは、従来のものとは異なるフォーマットで生成されます。この影響で、新しいライセンスキーが従来のライセンス管理デーモンでは認識できない状況が生まれ、こうした問題がおきます。

【原因】
PGI 7.1 以前のバージョンに付随して実装されている、「ライセンス管理デーモン lmgrd/pgroupd」のFLEXlmソフトウェアが、取得した最新の PGI ライセンス・キーを認識できないことに因るものです。

 現在の PG I のサイトからライセンスキーの(再)取得を行うと、PGI 7.1 以前のライセンス・キーの書式と異なる、新方式のキー書式となっているため、この新ライセンス・キーが過去の PGI バージョンにバンドルしてあるライセンス管理デーモン lmgrd/pgroupd ソフトウェアでは認識できないと言うことで問題が起きております。現在お客様が使用している lmgrd/pgroupd のバージョン(PGI7.1より前のソフトウェアにバンドルされております) は、 FLEXlm V11.4 以前のもので、これが V11.5 以上でなければ新しいライセンスキーは認識できません。 lmgrd/pgroupd のバージョン番号は、/opt/pgi 配下の flexlm.log に記録されております。

/opt/pgi/flexlm.log の例
 11:50:53 (lmgrd) FLEXnet Licensing (v11.4.100.0 ...

photon0:~ # pgf90 test.f  (コンパイル字のエラーメッセージ)
pgf90-linux64-64: LICENSE MANAGER PROBLEM: Failed to checkout license
...
...
Feature: pgf90-linux86-64
...
FLEXnet Licensing error:-97,121

flexlm.logのエラーメッセージ
11:50:53 (lmgrd) License file(s): /opt/pgi/license.dat
11:50:53 (lmgrd) lmgrd tcp-port 27000
11:50:53 (lmgrd) Starting vendor daemons ... 
11:50:53 (lmgrd) Started pgroupd (internet tcp_port 32832 pid 11390)
11:50:53 (pgroupd) FLEXnet Licensing version v11.4.100.0 build 50818 x64_se9
11:50:53 (pgroupd) Invalid license key (inconsistent authentication code)
11:50:53 (pgroupd)      ==>FEATURE pgi72-workstation-complete pgroupd 7.2 31-dec-0 1 \
F854D5F8DCCB VENDOR_STRING=518362:8:ws HOSTID=001xxxxxxxxx \
DUP_GROUP=U SUITE_DUP_GROUP=U SIGN="1F1C 7025 C2A2 3F0C 72C4 \
D618 61D7 AE93 9A25 30BE B562 461F 25CC 3946 21C7 1703 E622 \
1AD7 2972 1216 2AFA A370 D9B2 6AEC 1667 12AE 4997 8EF3 7849 \
803E"
11:50:53 (pgroupd) Invalid license key (inconsistent authentication code)
(以下、中略)
11:50:53 (pgroupd) License server system started on squall.dpri.kyoto-u.ac.jp
11:50:53 (pgroupd) No features to serve, exiting
11:50:53 (pgroupd) EXITING DUE TO SIGNAL 36 Exit reason 4
11:50:53 (lmgrd) pgroupd exited with status 36 (No features to serve)
11:50:53 (lmgrd) pgroupd daemon found no features.  Please correct

【対策】
① いくつかの方法があるのですが、一番簡単な方法は、最新の PGI 7.2以降の「最新」 バージョンにアップグレードして、その中にバンドルしているライセンス管理デーモン lmgrd/pgroupd を使用して、ライセンス管理環境を再構築することです。アップグレードをしたとしても、現在、実装してあるPGIのバージョンは削除されませんので、コマンドの実行パス($PATH)を過去のバージョンが存在する場所に指定すると、従来通り過去のバージョンも使用できます。(参考リンク)
  (バージョンアップの方法)
  http://www.softek.co.jp/SPG/Pgi/versionup.html (弊社お客様専用のページ)

② 過去のバージョン(7.1以前) をそのまま使用したい場合は、現在の使用バージョンの PGIソフトウェア実装(/opt/pgi/linux86-64/7.1/bin)の中の lmgrd/pgroupd ファイルを最新のライセンス管理デーモン・ソフトウェア(FLEXnet v11.5以降)に入替える方法があります。最新のライセンスキーは、FLEXlmデーモンのバージョンが V11.5 以上のものに対応したものです。2012年1月現在、ライセンス管理デーモン・ソフトウェアは、V11.7 となっております。この FLEXnet v11.5 以降に対応可能な FlLEXlm ライセンスデーモン(lmgrd/pgroupd) ファイルは、PGI 社のサイトから取得できます。

  http://www.pgroup.com/support/download_licensing.php
  64bit Linux 用(FLEXnet v11.7 for Linux/x86-64) 
  32bit Linux 用(FLEXnet v11.7 for Linux/x86) 

【flexlm の入替え方法】

過去のPGI ソフトウェア PGI 7.1実装の上で、新しい lmgrd/pgroupdデーモン・ソフトウェア(V11.5以降)を
使えるようにすることで、この問題を回避できます。なお、以下の方法は、PGI 7.1の例ですが、
それ以前のPGI 7.0、6.2、6.1、5.2、5.1等の環境においても同様な方法で対処できます。

● lmgrd ライセンス・デーモンの停止
 $ /etc/rc.d/init.d/lmgrd-pgi stop (SUSE系は、/etc/init.d/lmgrd-pgi stop)

● 新 lmgrd ライセンス・デーモン・ソフトウェアの入れ替え
次に、FLEXnet v11.5以降の「最新版 FLEXnet lmgrd/pgroupdデーモン」ソフトウェアを入手していただき、
lmgrd/pgroupdソフトウェアを解凍します。4つのファイルが現れます。この中の

lmgrd と pgroupd ファイルを

現在の PGI 7.1-6 (一例)の環境にコピーします。他のバージョンの場合は、
ディレクトリのパス名が異なるだけです。(例えば、"7.1-6" が "5.2"のように) 

PGIのインストールしたディレクトリ(ライセンスマネージャのマシン上)
を /opt/pgi とします。

root 権限で行います。

$ cd /opt/pgi/linux86-64/7.1-6/bin
$ cp lmgrd lmgrd.v114
$ cp pgroupd pgroupd.v114
$ 解凍した lmgrd と pgroupd を この bin 配下においてください。

これで、新しい v11.5 lmgrd/pgroupdのセットは終わりです。最新の V11.7 を
入手した場合は、v11.7 のデーモンソフトウェアに置換され、そのセットが終了します。

●license.datの内容の確認
 (2行目のDAEMON行を以下であることを確認してください)

SERVER {hostname} 001e0b70d4d4 27000
DAEMON pgroupd
          
● lmgrd の再起動
 $ /etc/rc.d/init.d/lmgrd-pgi start (SUSE系は、/etc/init.d/lmgrd-pgi start)

以上で、最新のPGI ライセンスキーを解釈できる lmgrd ライセンスデーモンが正常に起動するはずです。

Question  21. FLEXlmのライセンス管理ソフトウェアが動作する「システム」が静的な IPアドレスを持たない、DHCP等でアドレスを動的に提供される構成の場合のライセンスマネージャの設定方法を教えてください(Node-lockedライセンス)

Answer

FLEXlm 技術によるライセンス管理では、従来、そのライセンス管理を行う「サーバ」となるシステムでは、静的 IP アドレスによる「ホスト名」の固定が必要でした。しかし、PGI コンパイラをインストールしたシステムは、ラップトップ等の PC もあるため、必ずしも静的 IP アドレスで構成できない場合もあります。DHCP 等の技術で PC の IPアドレスが動的に割り当てられる場合は、デフォルトの FLEXlm のサーバの設定では、license.dat ファイルに定義した「ホスト名」が固定されない場合があり得るため、ライセンスサーバのソフトウェア(lmgrd)が起動できないことがあります。 これを回避するための方法をここで説明します。別の言葉で言うと、DHCP で IP アドレスを割り当てられている構成のシステムでの「FLEXlm ライセンス管理システム」の設定方法を説明します。また、この例は、Apple 社の OS X で無線 LAN で接続しているシステム上で、FLEXlm ライセンスマネージャを起動する際にも同じ方法が適用できます。 以下で述べる方法は、Linux、MacOS X、Windows のいずれのプラットフォームにおいても、同様な方法で対処できます。

【方針】
 DHCP 等で動的 IP アドレスが割り当てられているシステムでは、一般に、そのアドレスに対する「ホスト名」も不定となります。FLEXlm による license.dat の中の記述には、ライセンスサーバが動作する「ホスト名」の記述があるため、本来、固定されている「ホスト名」が必要です。これに対処する方法は、/etc/hosts ファイル(Linux, MacOS X)、hosts ファイル(Winodows) の localhost (ループバック:127.0.0.1)を、当該ホスト名として使用して license.dat の中に記述(修正)することです。これによって、DNS 参照をバイパスさせることができます。

【ライセンスキーの取得時の hostid(MAC アドレス)は?】
  すでに、適切な hostid による正規の license.dat を取得している場合は、改めてライセンスファイルの取得は必要ありません。既存の license.dat 内の 1行目の「ホスト名」を記している部分をエディターで修正するだけでよいです。一方、新規にライセンスキーを取得する場合は、そのシステムのユニークな hostid( MAC アドレス) を取得する必要があります。たとえ、localhost をホスト名として採用したとしても、hostid は以下に述べる方法で取得してください。ライセンスキーの取得時に必要な hostid を知る方法は、他のページでも紹介していますが、ここでは、FLEXlmのコマンドで行う方法をご紹介します。 Linux/MacOS X/Windows ともに共通ですが、以下のコマンドでキー取得に必要な hostid を特定します。(Windows 上では、PGI コマンドプロンプトを開き、以下のコマンドを入力して下さい。(以下の lmutil コマンドは、$PGI/linux86(-64)/{version番号}/bin (OS Xでは、$PGI/osx86(-64)/{version番号}/bin、Windowsでは、C:\Program files\PGI\flexlm 配下にあります。) 当該 hostid と loalhost と言うホスト名で、ライセンスキーを取得してください。

(hostidの特定)
# lmutil lmhostid lmutil - Copyright (c) 1989-2007 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved. The FLEXnet host ID of this machine is "0002b32c36ba" Linux, MacOS Xの場合は、OS 起動時最初に active にする "eth0" or "en0"が表示されます。 また、複数の Network I/F を有する場合、以下のように複数表示される。 最初に表示されている hostid をライセンスキー取得する際に使用する。 lmutil - Copyright (c) 1989-2007 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved. The FLEXnet host ID of this machine is "0002b32c36ba 0021700a4157 0021700a415a"

【ループバック:127.0.0.1 の localhost ホスト名に関する確認】
/etc/hostsファイル、あるいは Windowsの hosts ファイルに定義する、いわゆる「ループバック」に対する「ホスト名」を有効にします(Linux 上ではデフォルトで有効となっていますが Windows では、明示的に記述する必要があります)

【ライセンスキー license.dat の 1行目のホスト名の部分の確認】
正規のライセンスキーの1行目を以下に記します。既存の license.dat の場合は、以下のように、ホスト名を記述する部分に localhost と言う名前に変更して下さい。一方、新規にlocalhost と言うホスト名でライセンスファイルを取得した場合は、以下のようになっているはずですので変更する必要はありません。なお、以下の「0002b32c36ba」の部分は hostid を意味し、一例です。

 SERVER localhost 0002b32c36ba 27000

【/etc/hosts ファイルに localhost と言うホスト名を追記】
Linux/Apple OS X 上では、ルート権限で、/etc/hosts ファイルを変更します。
Windows 上では、hosts ファイルは、以下の場所に存在します。
  Windows 7/8.1/10 の場合→「C:\Windows\system32\drivers\etc」

(Windowsの例)
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # localhost name resolution is handled within DNS itself. 127.0.0.1 localhost  この行を有効にする # ::1 localhost (以下、省略)

以上の設定を行った後、lmgrd(ライセンスサーバ) の起動を行ってください。

(Linuxの場合)
以下のコマンドの実行を行ってください。これは、システムの再起動時に、自動的に FLEXlmマネージャを立ち上げるためのスクリプトを登録するものです。以下の例の "2016" は、バージョン番号を示します。なお、PGI 2016 は、PGI 16.x の「総称ディレクトリ」を意味します。利用するバージョンが異なる場合は、適宜、そのバージョン番号に変更してください。

【32ビットの場合】

# cp $PGI/linux86/2016/bin/lmgrd.rc /etc/init.d/lmgrd

【64ビットの場合】

# cp $PGI/linux86-64/2016/bin/lmgrd.rc /etc/init.d/lmgrd 

念のため、現在のシステム起動時に設定されているランレベルを確認する
以下の chkconfig コマンドで、3, 5 が on となっているはずです

 # chkconfig -l | grep lmgrd
lmgrd-pgi                 0:off  1:off  2:off  3:on   4:off  5:on   6:off

もし、3, 5 が on になっていない場合は、以下のコマンドを実行してください

# chkconfig --add lmgrd

Ubuntu Linux の場合は、chkconfig コマンドがないため、sysv-rc-confコマンドを使用します。

# cd /etc/init.d
$ sysv-rc-conf lmgrd on
# sysv-rc-conf --list | grep lmgrd
lmgrd-pgi  1:off 2:off 3:on 4:off 5:on

次に、現在のセッションで、本作業の最初に停止した FLEXlm マネージャの手動再起動を行います。OS により、以下のどちらかで起動してください。また、デーモンが正常に起動したかの確認方法は、ps コマンドで lmgrd プロセス, pgroupd プロセスの存在をご確認ください。

# /etc/init.d/lmgrd start 

(Windowsの場合)
Windows の「コントロールパネル」を開き、「管理ツール」を起動します。管理ツールを起動した後、以下のような画面が現れますので、この中の「サービス」をクリックし、その画面を出します。

以下の画面は、Windows システムの「サービス」の開始、終了、再起動をコントロールするものです。この中に、「PGI License Server」と言う名称のサービスがありますので、それをクリックして選択します。その際、以下のような画面となりますので、「サービスの開始」をクリックし実行してください。これによって、ライセンス管理マネージャ起動し、PGIコンパイラを使用することが出来ます。

(OS Xの場合)

システムのブート時に、ライセンスサーバ・デーモン(lmgrd)とPGI ベンダー・デーモン(pgroupd)が自動起動するための設定を行います。システム管理権限を有するユーザIDでログインした後、ターミナルを開き、以下のようなシステム(root)権限でのコマンド実行モードでコマンド操作する必要があります。なお、以下の方法は、OS X 10.9 Mavericks 以前のバージョンの場合の方法です。OS X Yosemite 以降のライセンスマネージャの自動起動の設定方法を説明する URL は、弊社「お客様専用ページ」の OS X 用のインストールドキュメント内に記載されていますので、そちらをご参照ください。

tiger:/etc kato$ sudo -s
password:******
tiger:/etc root# (root 権限のコマンドモードに変更される)

システムブート時のデーモン自動起動の設定を行います。まず、/Library/StartupItems/PGI ディレクトリを作成します(すでに、過去のバージョンにおいて作成済みの場合は、この PGI ディレクトリを利用します)。その後、PGI ライセンス構成ファイル(PGI ファイルと StartupParameters.plist をファイル)を必ず、コピーしてください(ラインセンスキーの書式が変更されることがあるため、インストールするバージョンに同梱された FLEXlm ライセンスマネージャを使用する必要があります。これを実現するために、ファイルを必ずコピーしてください)。これにて、デーモン自動起動の設定が終了します。(以下を参照)

% mkdir /Library/StartupItems/PGI (存在しているならば、そのまま使用)
% cp /opt/pgi/PGI /Library/StartupItems/PGI/PGI
% cp /opt/pgi/StartupParameters.plist /Library/StartupItems/PGI/StartupParameter.plist

PGI コンパイラのインストール直後のみ、手動で FLEXlm ライセンス・デーモン (lmgrd) を起動します。
デーモンの動作ログは、/opt/pgi/license.log ファイルに記録されます。問題が生じた場合は、このファイルをご覧ください。

% cd /Library/StartupItems/PGI
% ./PGI start

Question  22. ライセンスキーの管理を行うための、Webアカウントの取扱いと問題に対する対処法を教えて下さい

Answer

PGI 社のお客様用の Webアカウントは、製品ライセンスをご購入の際に、自動的に発行されます。この Webアカウントで PGI 社のサイトにログインすることにより、ライセンスの管理を行うことが可能となります。Webアカウントに関する取り扱いについての FAQ 等は、こちらのページに用意してありますので、ご参照ください。

Question  23. Ubuntu 上で、PGI 12.x 以降にバンドルされた FLEXlm ライセンスマネージャ関連の lmgrd や lmutil ソフトウェアが以下のような状態で、実行できません。
  root@photon26:/opt/pgi/linux86-64/12.1/bin# ./lmgrd
  -su: ./lmgrd: そのようなファイルやディレクトリはありません
  -su: ./lmgrd: No such file or directory  

Answer

この問題は、PGI 12.x 以降にバンドルされたFLEXlm ライセンスマネージャ(FLEXnet バージョン 11.10) の一部の実行コマンド(バイナリ)が Linux 上で実行される際に生じます。一般の実行バイナリは、Linuxのダイナミックリンカー(/lib/ld-linux.so.2)のもとで、バイナリが実行されますが、FLEXlmのコマンドの一つである lmgrd と言う実行バイナリは、LSB(Linux Standard Base)という環境(/lib/ld-lsb.so.3)から起動されるものとしてビルドされているため、Linux 上に LSB パッケージが必要となります。以下は、lmgrdというライセンスマネージャの実行バイナリの ldd コマンドの結果です。今回の問題は、/lib/ld-lsb.so.3 ファイルが実装されていないために生じた問題です。

root@photon26-1110:/opt/pgi/linux86/12.2/bin# ldd lmgrd
        linux-gate.so.1 =>  (0xf770e000)
        libpthread.so.0 => /lib32/libpthread.so.0 (0xf76d6000)
        libm.so.6 => /lib32/libm.so.6 (0xf76ac000)
        libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf768d000)
        libc.so.6 => /lib32/libc.so.6 (0xf7513000)
        libdl.so.2 => /lib32/libdl.so.2 (0xf750e000)
        /lib/ld-lsb.so.3 => /lib/ld-linux.so.2 (0xf770f000)

以下の方法で、Linux Standard Base 4.0 core support package(lsb-core)をインストールすると、この問題は解決します。少なくとも LSB version3.0 以上のものが必要です。LSBの実装状況を調べるコマンド lsb_release がありますので、これを実行してバージョン等をご確認下さい。

ルート権限に移行した後、以下のコマンドを実行
root@photon26-1110:~# apt-get update    (データベースを最新にする)
root@photon26-1110:~# apt-cache search lsb-core (lsb-coreモジュールを探す)
lsb-core - Linux Standard Base 4.0 core support package
root@photon26-1110:~# apt-get install lsb-core (lsb-coreモジュールをインストールする)
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  alien bsd-mailx build-essential debhelper dpkg-dev fakeroot gettext html2text 
  intltool-debian libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libdpkg-perl libmail-sendmail-perl 
  libsys-hostname-long-perl libunistring0
  lsb-invalid-mta m4 ncurses-term pax po-debconf
Suggested packages:
  lsb-rpm lintian dh-make debian-keyring gettext-doc lsb libmail-box-perl
The following NEW packages will be installed:
  alien bsd-mailx build-essential debhelper dpkg-dev fakeroot gettext html2text 
  intltool-debian libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libdpkg-perl libmail-sendmail-perl 
  libsys-hostname-long-perl libunistring0
  lsb-core lsb-invalid-mta m4 ncurses-term pax po-debconf
0 upgraded, 22 newly installed, 0 to remove and 79 not upgraded.
Need to get 4255 kB of archives.
After this operation, 20.6 MB of additional disk space will be used.
Do you want to continue [Y/n]?
(snip)

Question  24. openSUSE or SLES 上で、PGI 12.x 以降にバンドルされた FLEXlm ライセンスマネージャ関連の lmgrd や lmutil ソフトウェアが以下のような状態で、実行できません。
  # ./lmgrd
  -bash: ./lmgrd: No such file or directory  

Answer

この問題の原因は、上述の FAQ 23 と同じです。

YaST のパッケージマネージャで、32bit 並びに 64bit 用の Linux Standard Base の lsb と lsb-release のパッケージを実装してください。これによって、この問題は解決します。また、OpenSUSE ではなく SLES の場合は、YaST のパッケージマネージャ上で "lsb" で検索した際に現れる lsb と lsb-release の他に、その関連パッケージも実装した方が安全なようです。少なくとも LSB version3.0 以上のものが必要です。LSBの実装状況を調べるコマンド lsb_release がありますので、これを実行してバージョン等をご確認下さい。ソフトウェアのパッケージ管理は、コマンドベースの zypper コマンドを使用して行うことも可能です。以下は、openSuSE 12.1 上での lsb を探してインストールするための操作を模擬したものです。

photon0:/usr/pgi # zypper search lsb
リポジトリのデータを読み込んでいます...
インストール済みのパッケージを読み込んでいます...

S | 名前        | 概要                               | 種類
--+-------------+------------------------------------+-----------
i | lsb         | Linux Standard Base Core           | パッケージ
i | lsb-release | Linux Standard Base リリースツール | パッケージ

photon0:/usr/pgi # zypper in lsb         (このシステムは既にインストール済みです)
リポジトリのデータを読み込んでいます...
インストール済みのパッケージを読み込んでいます...
'lsb' は既にインストール済みです。
'lsb-4.0-15.1.1.x86_64' に対する更新候補はありません。既に最新のバージョンがインストールされています。
パッケージの依存関係を解決しています...
何もすることがありません。

Question  25. 64bit Red Hat/CentOS/Scientific Linux/Fedora 等で、PGI 12.x 以降にバンドルされている FLEXlm ライセンスマネージャ関連の lmgrd や lmutil ソフトウェアが以下のような状態で、実行できません。
  # ./lmgrd
  -bash: ./lmgrd: No such file or directory  

Answer

この問題の原因は、上述の FAQ 23 と同じです。LSBパッケージがシステムに実装されていないために起こる問題です。以下の対策を実施して下さい。なお、少なくとも LSB version3.0 以上のものが必要です。LSBの実装状況を調べるコマンド lsb_release がありますので、これを実行してバージョン等をご確認下さい。なお、LSBモジュールが実装されない状態で PGIコンパイラのインストールを行うと、インストール後に生成される /opt/pgi/license.info 内の FLEXLM hostID情報が記述されていない状態となっております。これによってライセンスキーの生成に必要な hostid を閲覧できない状態になりますのでご注意下さい。

LSBパッケージが実装されていない場合は、Yum のパッケージマネージャで Linux Standard Base の redhat-lsb のパッケージを実装してください。これによって、この問題は解決します。

[root@photon29 bin]# yum search lsb
Loaded plugins: refresh-packagekit, security
======================= N/S Matched: lsb ===============================================
redhat-lsb.i686 : LSB base libraries support for Red Hat Enterprise Linux
redhat-lsb.x86_64 : LSB base libraries support for Red Hat Enterprise Linux
redhat-lsb-graphics.x86_64 : LSB graphics libraries support for Red Hat Enterprise Linux
redhat-lsb-printing.x86_64 : LSB printing libraries support for Red Hat Enterprise Linux

上記の内、redhat-lsb.x86_64 の確認をしてください。32ビット環境用も必要であれば、redhat-lsb.i686も実装して下さい。

(インストール)
[root@photon29 bin]# yum install redhat-lsb.x86_64 redhat-lsb.i686

Question  26. OpenSUSE/SLES 上で PGI 12.x 以降をインストールしたとき、/opt/pgi/lincese.info ファイルが生成されていません。このため hostid が分かりません

Answer

この問題の原因は、上述の FAQ 24 と同じです。少なくとも LSB version3.0 以上のものが必要です。LSBの実装状況を調べるコマンド lsb_release がありますので、これを実行してバージョン等をご確認下さい。

YaST のパッケージマネージャで、32bit 並びに 64bit 用の Linux Standard Base の lsb と lsb-release のパッケージを実装してください。その後、再度、PGI 12.x をインストールしてください。既に同じリビジョンのソフトウェアの実装が存在しますが、上書きインストールでも問題ありません。ただし、インストール中に、JAVA のインストールのお尋ねがありますが、これは NO としてください。

Question  27. Linux 上で PGI 2012(12.x) をインストールした後に、コンパイルを行うと LICENSE MANAGER PROBLEM:Bad message command. のエラーが生じます。但し、license.dat の変更は行っていません。また、ライセンスマネージャ lmgrd の動作環境も変更せず、過去の PGI 11.x で構築した FLEXlm 環境を使用しています。

Answer

この問題は、FLEXlm ライセンスマネージャ環境に起因する問題です。この現象が生じる環境は、PGI 12.x より前のバージョンに付属していた FLEXlm ライセンスマネージャ(例えば、PGI 11.x 付属の lmgrd)環境のもとで、新しい PGI 12.x のコンパイラを使用したときに生じます。この解決策は、PGI 12.x に付属している FLEXlm ライセンスマネージャ(lmgrd 等)を使用して、lmgrd を再起動することで解決します。

PGI 12.1 以降、付属する FLEXlm ライセンスマネージャは、新しく FLEXnet v.11.10.0.0 に更新されております。PGI 11.x の頃は、FLEXnet v.11.7.0.0 でした。 PGI 12.x 以降の PGI コンパイラの各コマンドのライセンスマネージャへの問い合わせに関するモジュールは、新しい FLEXnet v.11.10 に対応しているため、これと過去の v.11.7.0.0 の lmgrd と言うライセンスマネージャ間で通信を行う際に、一部問題が起きているため、こうしたエラーが起きるようです。

PGI 11.10 で構築した lmgrd (v.11.7.0.0) が稼働中
[root@photon29]# ps ax |grep lmgr
19099 pts/1    S      0:00 /usr/pgi/linux86-64/11.10/bin/lmgrd -c /usr/pgi/license.dat
19100 ?        Ssl    0:00 pgroupd -T photon29 11.7 3 -c /usr/pgi/license.dat --lmgrd_start 4f3fc933
19515 pts/1    S+     0:00 grep lmgr

PGI 12.1 の pgfortran を使用しようとしたら、
[kato@photon29]$ pgfortran -o a.out himenoBMTxp.F90 -V12.1 -fastsse -D_ACCEL -Minfo=accel -ta=nvidia,time
pgi-f95-lin64: LICENSE MANAGER PROBLEM: Failed to checkout license
pgi-f95-lin64: LICENSE MANAGER PROBLEM: Failed to checkout license
pgi-f95-lin64: LICENSE MANAGER PROBLEM: Failed to checkout license
pgi-f95-lin64: LICENSE MANAGER PROBLEM: Failed to checkout license
pgi-f95-lin64: LICENSE MANAGER PROBLEM: Bad message command.
Feature:       pgi-f95-lin64
License path:  /usr/pgi/license.dat:
FLEXnet Licensing error:-140,10006
For further information, refer to the FLEXnet Licensing documentation,
available at "www.flexerasoftware.com".

この問題の解決方法は、以下のように行います。この例は、PGI 12.x リリースが使用できるように 当該 subscription が有効であることを前提にします。現在、稼働している lmgrd を PGI 12.1 以降に付属したものに入れ替えて、再起動します。その際の license.dat は、今まで使用していたもので結構です。以下の例では、PGI 11.10 当時の lmgrd 環境が動作している場合を想定しています。

(1) 現在の lmgrd を停止させる
[root@photon29]# cd /etc/init.d
[root@photon29]# ./lmgrd stop (あるいは、./lmgrd-pgi stop かもしれない)

(2) 新規にインストールした PGI 12.x に付属の lmgrd を使用するように、lmgrd起動スクリプトを変更する
  ルート権限で行う。/etc/rc.d/init.d/lmgrd-pgi ファイルの内容の一部を変更。
  
/etc/rc.d/init.d/lmgrd(あるいは lmgrd-pgi) ファイルを編集
....
## Where to find the PGI software?
PGI=${PGI:-/opt/pgi}
#RELEASE=11.10       >=== 11.10 の lmgrd が今まで稼働。コメント化する
RELEASE=12.2         >=== 新しくインストールしたリビジョン番号に変更
....

(3) lmgrd を再起動 ( (1)で lmgrd を停止させてから1分以上の間隔を空けること)
[root@photon29]# cd /etc/init.d
[root@photon29]# ./lmgrd start (あるいは、./lmgrd-pgi start)
[root@photon29]# ps ax |grep lmgr
19783 pts/1    S      0:00 /opt/pgi/linux86-64/12.2/bin/lmgrd -c /usr/pgi/license.dat
19784 ?        Ssl    0:00 pgroupd -T photon29 11.10 3 -c /usr/pgi/license.dat --lmgrd_start 4f3fccd2
19864 pts/1    S+     0:00 grep lmgrd 
終了(正常動作)

Question  28. ライセンスマネージャ(lmgrd) の起動ログを見ると、以下の TCP ポートが開かないと言うメッセージが記録されています。何度、lmgrd start を繰り返してもこの問題で、ライセンスマネージャが起動しません。 (lmgrd) Failed to open the TCP port number in the license.

Answer

ライセンスマネージャ(lmgrd)の動作ログは、以下の場所に存在します。ライセンスマネージャの問題が疑われる場合は、まず、以下のログファイルでエラーメッセージの内容をお調べください。

  • Linux : /opt/pgi/flexlm.log
  • Windows : C:\Program files\PGI\flexlm\license.log
  • OS X : /opt/pgi/license.log

このエラーが生じる原因はいくつか考えられます。

  1. LinuxとOS X の場合、/etc/hosts ファイルに 127.0.0.1 の localhost 行が存在しない時
  2. 各 OS プラットフォーム共通ですが、ライセンスマネージャ lmgrd プロセスが使用する 27000ポートが他のアプリケーションで使用されている
  3. 1分以上時間を空けずにlmgrdライセンスマネージャを再起動した時

上記 1. の場合を説明します。Linux (OS X) において FLEXlmライセンスマネージャの起動時に上記エラー行が表示され、ライセンスマネージャが起動しない場合には、/etc/hosts ファイルを確認してください。一般的な "127.0.0.1 localhost" が記述されていることが必要となります。また、この 127.0.0.1 の localhost 以外のエイリアスを指定しても良いのですが、他の IPアドレスに定義されたホスト名を 127.0.0.1 に重複して指定することは避けて下さい。

127.0.0.1       localhost.localdomain localhost

/etc/hostsファイルにて、localhost が、ローカルループバックアドレスである127.0.0.1に対し設定されていない場合に、上記のエラーが発生します。

上記 2. の場合を説明します。PGIとは異なる他のアプリケーションが FLEXlm ライセンスマネージャ技術を使用している場合、すでにデフォルトポート番号であるTCP 27000 ポートを使用していることが考えられます。この確認方法は コマンド lmutil lmstat コマンドで、License server の使用ポート番号が表示されていますので、これがPGI以外のアプリケーションであるかどうかをご確認ください。

photon0:> lmutil lmstat
lmutil - Copyright (c) 1989-2012 Flexera Software LLC. All Rights Reserved.
Flexible License Manager status on Sat 2/2/2013 14:34

License server status: 27000@photon0
    License file(s) on photon0: /usr/pgi/license.dat:

   photon0: license server UP (MASTER) v11.10

Vendor daemon status (on photon0):

   pgroupd: UP v11.10

もし、ポート番号が競合している場合、/opt/pgi/license.dat の1行目の SERVER 行に 27000 と言う文字列(使用するTCPポート番号)がありますので、これを 27001 等の別の番号に変更した上で、lmgrd の再起動を行ってください。

上記 3. の場合は、単純に1分以上空けて、lmgrd の再起動を行ってください。

Question  29. Linux上にインストールした際、/opt/pgi/license.info 内の FLEXnet hostid を確認しようとしたら、当該情報が記述されていません。

Answer

この問題は、Linux 上に LSB(Linux Standard Base) と言うパッケージが実装されていないために生じる現象です。本来は、LSBパッケージを実装した後に、PIGのインストールを行っていれば、回避できた問題です。まず、LSBモジュールを実装して下さい。なお、PGIの再インストールは必要ありません。

LSBパッケージをインストールする方法は、以下をご覧ください。

  1. Red Hat/CentOS/Scientific Linux/Fedora の場合
  2. OpenSUSE の場合
  3. Ubuntuの場合

PGI用のライセンスファイルを取得するための FLEXnet hostid は、以下のコマンドで確認することができます。/opt/pgi/license.info ファイルから参照出来ない場合は、以下のコマンドで確認して下さい(ご参考)。なお、以下のコマンドは、PGI用の PATH の設定を行ってから実施して下さい。

[root@photon32 ~]# lmutil lmhostid
lmutil - Copyright (c) 1989-2013 Flexera Software LLC. All Rights Reserved.
The FlexNet host ID of this machine is "b8aeed335ff1"   これがFLEXnet hostID

[root@photon32 ~]# lmutil lmhostid -hostname
lmutil - Copyright (c) 1989-2013 Flexera Software LLC. All Rights Reserved.
The FlexNet host ID of this machine is "HOSTNAME=photon32"

[root@photon32 ~]# lmutil lmhostid -internet
lmutil - Copyright (c) 1989-2013 Flexera Software LLC. All Rights Reserved.
The FlexNet host ID of this machine is "INTERNET=192.168.0.32"

Question  30. コンパイラを実行した際、 LICENSE MANAGER PROBLEM: The desired vendor daemon is down. FLEXnet Licensing error:-97,121 のエラーでコンパイルできません。

Answer

以下のような実行エラーが端末に現れます。

PGI$ pgf77  test.f90
pgfortran: LICENSE MANAGER PROBLEM: Failed to checkout license
pgfortran: LICENSE MANAGER PROBLEM: Failed to checkout license
pgfortran: LICENSE MANAGER PROBLEM: Failed to checkout license
pgfortran: LICENSE MANAGER PROBLEM: Failed to checkout license
pgfortran: LICENSE MANAGER PROBLEM: The desired vendor daemon is down.
 Check the lmgrd log file, or try lmreread.
Feature:       pgi-f77-win64
Vendor:Host:   localhost
License path:  C:\Program Files\PGI\license.dat;C:\PROGRA~1\PGI/license.dat;
FLEXnet Licensing error:-97,121

また、FLEXlmログには、以下のような履歴が残ります。(【Linux】/opt/pgi/flexlm.log、【Windows】C:\Program files\PGI\flexlm\license.log、【OS X】/opt/pgi/license.log)

(pgroupd) Vendor daemon can't talk to lmgrd (License server machine is down or not responding. (-96,491))
(pgroupd) EXITING DUE TO SIGNAL 28 Exit reason 5

この問題は、FLEXlm ライセンスマネージャが正常に動作していない時の現象です。ライセンスマネージャを構成する二つのデーモンプロセス lmgrd と pgroupd(ベンダーデーモン)間のプロセス間通信の確立が出来ないことに因るものです。

この原因として、以下の二つが考えられます。

  1. システム内のソフトウェア・ファイアウォールが機能していて、システム内のTCPプロセス間通信を常に拒絶するモードになっている場合
  2. Linux, Windows, OS X システム・ネットワーク環境内 DNS 等によるホスト名の「名前解決」が正常に動作していない場合

1 の原因であるソフトウェア・ファイアウォールとは、Windows firewall あるいは、アンチ・ウイルス・ソフトウェアの中のファイアウォール機能を言います。特に、後者のアンチ・ウイルス・ソフトウェアのファイアウォールは、自動で機能している場合も多いため認識していない場合が多いです。特に McAfee パーソナルファイアウォールが動作している場合、この問題が生じることが報告されています。ファイアウォールが原因であるかどうかを確認するために、まず、Windows firewall を含む全てのファイアウォール機能を disable にしてください。その後、FLEXlmライセンスマネージャを再起動してから、再度、コンパイルが出来るかをお確かめ下さい。以上の確認だけは必ず行ってください(その後の調査の時間の節約に繋がります)。ほとんどのケースは、この方法で解決します。なお、デフォルトの Windows 環境では、Windows firewall が enable であっても、こうした問題が起こることはありません。多くは、商用のアンチ・ウイルス・ソフトウェアのファイアウォール機能が原因です。特に Windows 環境の推奨としては、アンチ・ウイルス・ソフトウェアの中のファイアウォール機能部分は使用せず、ファイアウォール機能は Windows native の Windows firewall でカバーすることを推奨いたします。Windows 上での firewall の設定方法は、こちらの FAQ で説明しております。

もう一つの原因の可能性として、2 の DNS 等による名前解決が当該システム内で不良である場合が考えられます。もし、そのような環境の場合は、license.dat 内の当該システムのホスト名を localhost (127.0.0.1=ループバック)に変更してから、ライセンスマネージャを再起動してください。ループバックアドレスを使用すると DNS 参照をバイパスさせることができます。

【ループバック:127.0.0.1 の localhost ホスト名に関する確認】
/etc/hostsファイル、あるいは Windowsの hosts ファイルに定義する、いわゆる「ループバック」に対する「ホスト名」を有効にします(Linux 上ではデフォルトで有効となっていますが Windows では、明示的に記述する必要があります)

【ライセンスキー license.dat の 1行目のホスト名の部分の確認】
正規のライセンスキーの1行目を以下に記します。既存の license.dat の場合は、以下のように、ホスト名を記述する部分に localhost と言う名前に変更して下さい。一方、新規にlocalhost と言うホスト名でライセンスファイルを取得した場合は、以下のようになっているはずですので変更する必要はありません。なお、以下の「0002b32c36ba」の部分は hostid を意味し、一例です。

 SERVER localhost 0002b32c36ba 27000

【/etc/hosts ファイルに localhost と言うホスト名を追記】
Linux/Apple OS X 上では、ルート権限で、/etc/hosts ファイルを変更します。
Windows 上では、hosts ファイルは、以下の場所に存在します。
  Windows 7/8.1/10 の場合→「C:\Windows\system32\drivers\etc」

(Windowsの例)
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows. # # This file contains the mappings of IP addresses to host names. Each # entry should be kept on an individual line. The IP address should # be placed in the first column followed by the corresponding host name. # The IP address and the host name should be separated by at least one # space. # # Additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # localhost name resolution is handled within DNS itself. 127.0.0.1 localhost  この行を有効にする # ::1 localhost (以下、省略)

以上の修正を施した後、FLEXlm(PGI)ライセンスマネージャを再起動してください。