本ページは、PGIコンパイラを使用して、ライセンスに係わる問題や FLEXlm ライセンスマネージャに関する FAQ のページです。
© 株式会社ソフテック
コンパイル/リンク/プログラム実行時の問題への回答
1. FLEXlm ライセンスの意味を教えて下さい
FLEXlm はフローティング・ライセンス・サーバのソフトウェアとして広く使われております。同時に複数のユーザが任意のマシン上でコンパイラを使用することを許可する等、使用ライセンス数管理の目的で用いられます。Workstation 製品、Server 製品の両方で FLEXlm 形式のライセンスをご利用可能ですが、Workstation 製品では登録された 1 台のマシンおよび同時使用ユーザ(任意)の上限が 1 名までの制限がございます。動作の実際は、ライセンスサーバマシンで lmgrd という名称のデーモンが常時起動することになります(その他 PGI のライセンスデーモン pgroupd も起動します)。 FLEXlm 用のデーモン・ソフトウェアは、PGI コンパイラ製品にバンドルされております。なお、FLEXlm ライセンス・マネージャ用のデーモン・ソフトウェアは、現在、x86、並びに x86-64 のプロセッサ対応の Linux、Windows、Mac OS X (ノードロック版のみ) が提供されております。その他の OS/プラットフォーム用は提供されておりません。
1.1 PGI コンパイラのライセンスに関する FAQ
ライセンス情報の取得、ライセンスキー、サブスクリプションに関する FAQ を別途ページを設けて説明しておりますので、こちらのページをご覧ください。
2. PGI コンパイラのライセンスの取得方法、変更方法について教えてください
(2008 年 1 月 15 日更新)
ライセンスキーの取得を含むライセンス管理のための方法が、2008 年 1 月 1 日から変更されました。
PGI のライセンスは、お客様自身で PGI 社の Web サイトで取得できます。PGI 製品のライセンス管理(ライセンスキーの取得を含む)は、PGI社顧客サポート・サイトのお客様個人用 Web アカウント(ご購入時に PGI 社が自動的に作成済)を使用して、このアカウントの下で行います。PGI 社顧客サポート・サイトにアクセスするためには、お客様個人用の Web アカウントが必要です。製品をご購入いただいたお客様には、予め PGI 社でこのアカウントを作成済みです。
個人用Webアカウントの確認方法、ライセンスキーの取得方法の詳細については、こちらのページをご覧ください。
2.1 PGI 社のお客様個人用Webアカウントについて教えてください
(2008 年 1 月 15 日更新)
2008 年 1 月 1 日から個人の Web アカウントでログインしてライセンス管理を行うように変更されました。従って、お客様は、PGI社サイトにログインするための Web アカウントを持っていただく必要があります。
この Web アカウントは、新規にご購入いただいたお客様だけでなく、過去に製品をご購入いただいたお客様に対しても、2008 年 1 月 1 日の 時点で自動作成されております。 WebアカウントID名は、ユーザ登録の際にいただいているお客様個人の e-mail アドレスと同一となります。また、暫定パスワードに関しては、2008年の1月以降、お客様のアカウントが登録された際に、お客様へメールされております。この暫定パスワードを忘れた、あるいは失くした場合は、すぐに暫定パスワードを再発行する方法がありますので、これを行ってからログインしてください。
個人用 Web アカウントの確認方法、暫定パスワードの再発行の詳細については、こちらのページの PDF ファイルをご覧ください。
2.2 試用ライセンスキーの取得の方法を教えてください
試用ライセンスキーの取得方法については、こちらのページをご覧ください。
3. PGI コンパイラのライセンスの変更が必要な場合は、どのような場合ですか
ライセンス・ファイルの変更が必要な場合は、以下に示すとおりです。コンパイラを使用するマシンの変更が生じる場合、あるいは、同じマシンにおいてもOS、ハードウェアの一部を変更した場合は、現在お使いのライセンス・キーを変更しなければなりません。この場合、新マシン用のライセンスをWeb によるオンラインで取得できます。参考情報として、こちらのページもご参照ください。
(PGI ソフトウェアのバージョンアップの際)
(マシンのコンフィグレーションを変更した時 : FLEXlm 形式、PGI形式)
4. ライセンス発行をやり直せますか?またその際のライセンスの取得方法について教えてください
オンラインでライセンスを再取得することが可能です。ただし、マシンの変更などでライセンスの再発行を行う場合は、以前のライセンスを取り消した後に、新たなライセンスの取得を行う必要がございます。この際のライセンス取消し処理の場合のみ、取り消しが完了するまでには 1 日程度時間が掛かりますので予めご了承下さい。ライセンスの取得方法については、こちらのページをご覧ください。
(2007年2月更新)
従来、マシンの故障等でインストールしたマシンの hostID の変更が生じた場合で、お客様のソフトウェア情報パッケージ(サブスクリプション)契約がない場合、ライセンスキーの変更(再発行)ができない形態でしたが、サブスクリプション契約がない場合においても、製品の「ご購入時点でのバージョン」に対するライセンスキーの再発行ができるようになりました。これは、今までご購入いただいている全製品ライセンスに対して適用されます。何らかの理由により、ライセンスキーの再発行を行いたい場合は、こちらのページをご参照ください。
なお、ご購入いただいた製品のライセンスの使用に関しましては、PGI 社の End-User License Agreement(PDF) に則り、ご利用いただくようにお願いいたします。特に、PGI Workstation(1ノードロック)製品の場合で、現在使用しているライセンスを他のマシンに移行する際は、現在使用しているライセンスキーを削除する等の措置を必ず行っていただくようにお願いいたします。
5.1 最新バージョンのライセンスキーで、それ以前のバージョンのコンパイラを使用できますか
PGI コンパイラのライセンス・キーは、ご購入いただいた時点での最新バージョンに対応するキー、あるいは年間サブスクリプションをご契約いただいている場合は、契約期間中での最新バージョンのキーとなっており、この最新のキーを取得できるようになっております。 この最新のライセンス・キーは、それ以前のバージョン(過去のバージョン)のコンパイラも動作可能な互換性を有しておりますので、最新のキーファイル (license.dat) をシステムに設定すれば、過去のコンパイラもご利用いただけます。
(詳細な説明) 最新バージョンだけでなく、過去のバージョンも同時にインストールして各々動作しますか
5. ライセンスを取得する際の hostid 情報は、どのように知ることができますか
Linux/Mac OS X 上に、PGI をインストールした後、$PGI/license.info ファイルの中に、FLEXlm 形式のライセンス取得に必要な hostid (Hostid=number)情報が記述されています。Windows の場合は、C:\Program files\PGI\license.info ファイルに記述されています。また、以下のコマンドでも、現在のシステム上での hostid 情報を出力することが可能です。下記例での太字 2012 は PGI コンパイラのバージョン番号です。適宜、現インストール・バージョン(総称バージョン名でも良いし、個別リビジョン番号でも良い)に変更してください。なお、FLEXlm 形式の hostid は、一般的にネットワークインタフェース (Linux の場合 eth0) の MAC アドレスが使用されます。
【Linux 版の場合】 $PGI はデフォルトでは /opt/pgi です (FLEXlm ライセンス(32bit)の場合) (FLEXlm ライセンス(64bit)の場合) $PGI/linux86/2012/bin/lmutil lmhostid $PGI/linux86-64/2012/bin/lmutil lmhosti 【Windows 版の場合】 次のコマンドでも hostID 情報が表示されます。 PGI$ lmutil lmhostid lmutil - Copyright (c) 1989-2005 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved. The FLEXlm host ID of this machine is "0015f214bbad" 【Mac OS X 版の場合】 (32bitの場合) (64bitの場合) $PGI/osx86/2012/bin/lmutil lmhostid $PGI/osx86-64/2012/bin/lmutil lmhostid
6. PGI 社のサイトで取得した license.dat ファイルの内容を変更する方法を教えてください
ライセンスファイルが、FLEXlm 形式のライセンスファイルの中で、変更可能な部分は、1行目の SERVER 行の中の「ホスト名」と最後の引数である 27000 と言うポート番号のみです。「ホスト名」は、当該システムのホスト名を変更した場合は、/etc/hosts (Linux/Mac) あるいは Windows のホスト名と対応がつくように、license.dat 内の「ホスト名」も変更して下さい。その後、再度 FLEXlmライセンスマネージャを再起動してください。lmgrd と言うライセンスマネージャが使用するTCPポート番号は、任意に変更することができます。
7. PGI Workstation ライセンスで、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
このエラーは PGI ライセンス規約に則った正常なメッセージです。PGI Workstation ライセンスは、インストールしたマシン上だけでのノードロック形式のライセンスです。たとえ、PGI コンパイラを NFS 領域にインストールし、他のシステムと共用しようとしても、ライセンス規定上、他のシステムではコンパイラを使用することができません。PGI コンパイラをインストールしたマシン上にログインして、コンパイラをお使いください。なお、PGI Server ライセンスの場合は、問題なく NFS 上の PGI コンパイラを使用して、インストールしたマシン以外の他のシステム上でもコンパイルが可能です。なお、 NFS 上に PGI コンパイラをインストールして共用する場合、その NFS クライアントマシンは NFS サーバのマシンと同じ CPU タイプであること、Linuxのカーネルリビジョンが同じであること、glibc のバージョンが同じであることが必要です。もし、PGI Server ライセンスを購入し、全く異なるシステム(例えば、AMD64 と Pentium 4のようなもの)間においては NFS 共用は行わずに、それぞれローカルに PGI コンパイラをインストールしてください。
もし、PGI コンパイラのソフトウェアを NFS 領域にインストールしない状況で、上記のメッセージが出力される場合は、PGI コンパイラをインストールしたマシンのネットワーク・カード等を交換した場合などが想定されます。ネットワーク・カードを交換した場合、FLEXlm hostid 情報が変わりますので、現在の取得済みライセンスを取り消し、新たにライセンスを再度取得しなければなりません。詳細については、こちらをご覧ください。
8. PGI Server ライセンス購入しました。複数のマシン上に PGI コンパイラをインストールして、各マシン上でコンパイラを使う際の license.dat の設定の仕方を教えてください
PGI Server ライセンスは、ネットワーク上の任意のマシン上で使用可能なフローティング・ライセンスです。従って、ご質問の構成で、各マシン上で 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

(参考情報)
PGI Server ライセンス製品の使用を例として、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 版の PGI Server 製品のライセンス管理方式が、全て FLEXlm形式に統一されました。Linux 版並びに Windows 版の両方に対応可能な「PGI Server クロスプラットフォーム製品」の場合、少なくとも1台のシステム(Linux あるいは Windowsのどちらか)上で、FLEXlm ライセンス管理デーモンを動作させる形態となりました。FLEXlm管理サーバに対するクライアントとなるシステムでは、Windows/Linux 問わず、上記の「hostB」のような設定を行ってください。
8-0 フローティング・ライセンスでファイアウォールを介在して、FLEXlmライセンス管理サーバへアクセスしなければならない場合の設定の方法を教えてください
(2007年9月27日初稿)
フローティング形式のライセンスの場合、コンパイラをインストールしたマシン(クライアント側)からPGI の FLEXlmライセンス管理サーバとなるマシンへライセンス・チェックのためのパケットが送られます。その TCP パケット送信の途中にファイアウォールが介在した場合、そのルールによっては、そのパケットの中継が拒絶され、クライアント側のコンパイラが使用できません。ここでは、ファイアウォールを介在する場合の flexlm ライセンス管理ソフトウェアの設定とファイアウォール側のフィルタルールの設定について説明します。基本的に、Linux/Mac 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、MAC OS X、Windows 版の全ての場合も同じように設定できます。このように、明確にポート番号を明記することで、firewall に対しては、明示的にそのポートのみをオープンするように設定できます。
これから、具体的に Windows 上での 設定方法を説明します。
以上の作業で、ファイアウォール対応の FLEXlm ライセンス管理サーバの設定が終了します。これで、クライアントのシステム上でコンパイラコマンドが使用できます。Linux/MAC OS X の場合もFLEXlmライセンス管理マネージャを停止させ、license.dat にポート番号を追記して、再度、ライセンス管理マネージャンを起動してください。さらに、firewall 側に二つのポート番号がオープンにする設定を行ってください。
なお、クライアント側のシステム上に置く license.dat は、現時点での設定を変更する必要はありません。 以下のような形態となります。
(一例)
SERVER my_host1 {hostid} 27000
USE_SERVER
8-1 PGI Server/CDKライセンスでのFLEXlm リダンダント(冗長)ライセンスサーバの設定の方法を教えてください
PGI Server / 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 PGI2012-server-complete pgroupd 2013.0213 B7DC8266F6DD \
COMPONENTS="pgi-hpf-lin64 pgi-f95-lin64 pgi-f77-lin64 \
(以下の行は省略)
3台の管理サーバ上でのライセンスファイルの設定とFLEXlm管理マネージャの起動方法は以下のとおりです。(PGI のインストール・ディレクトリが /opt/pgi の場合の表記をしています)
① 上記のライセンスファイルを3台のライセンス管理サーバとなるマシン上に /opt/pgi/license.dat として
保存します。
② 各管理サーバ上でFLEXlmライセンスマネージャを起動します。
(Linux 上では /etc/init.d/lmgrd start、Windows 上ではこちらを参照)
3台のマシン上のライセンスマネージャ・デーモンがお互いに同期が確立するまで、数分かかることがあります。この FLEXlm ライセンス・デーモンの動作ログは、/opt/pgi/flexlm.log(Linux) あるいは、C:\Program files\PGI\license.log(Windows) 上に記録されますので、問題があった場合、これをご確認ください。なお、何らかの理由で相互にライセンスマネージャ・デーモンがプロセス間通信できない場合は、FLEXlm ライセンスマネージャを停止するか、当該デーモンプロセス ( Linux の場合、lmgrd と pgroupd ) を強制的に Kill してください。その後、この手順を再実行してください。3台全てのマシンのライセンスマネージャ(デーモン)が接続・同期される必要があります。 ライセンス管理サーバ以外のクライアントとしてのマシン上では、PGI コンパイラをインストールして、ライセンスサーバ上で設定されている license.dat ファイルを所定の場所へコピーし保存するだけで良いです。これによって、コンパイラをご使用になれます。
9. 新しいリリース・バージョンの PGI コンパイラをインストールして使用した際、License file does not support this version のエラーが生じます
LICENSE MANAGER PROBLEM License file does not support this version ... Connection refused
このエラーメッセージは、インストールした PGI のソフトウェア・バージョンとそれに対応するライセンス・ファイルのライセンス・キーがマッチしていない場合のエラーです。次のような状況で起こりえます。
上記の 1 の場合は、新リリースのための新しいライセンスを取得してください。詳しくは、こちらのページをご覧ください。2 の場合は、新ライセンスファイルを license.dat として保存(上書き)してください。
上記の 3 の場合は、FLEXlm ライセンス・デーモン (lmgrd) を以下のコマンドでリスタートしてください。以下の例は、Linux 版の場合で、インストールした新バージョンが 11.9 の場合のコマンドを示しております。Windows 上ではこちらを参照してください。
$PGI/linux86/11.9/bin/lmgrd.rc restart (32ビットLinux) $PGI/linux86-64/11.9/bin/lmgrd.rc restart (64ビットLinux)
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
ライセンスファイル (license.dat) で指定されたSERVER行の「ホスト名」がご利用になっているマシンのホスト名と一致していないか、FLEXlm ライセンス・マネージャのデーモンが立ち上がっていない場合に表示されるメッセージです。
以下の三点をご確認ください。ここでは、現バージョンが 11.10 (2011) であることを前提にして記述しておりますが、これは、今お使いのバージョン番号に置き換えてお考えいただいて結構です。
11. マシンをリブート後に以下のメッセージと共に、急に PGI コンパイラが使用できなくなりました
pgf90-linux86: LICENSE MANAGER PROBLEM: Cannot connect to license server (-15,12 :111 "Connection refused")
これは、マシンを再起動したときに、自動的に PGI の FLEXlm ライセンス・マネージャ・デーモンを起動していないことによる問題です。 PGI の初期インストール時に、ライセンス・デーモンの自動起動の設定を忘れていたことによる原因です。ルート権限にて、以下の対策を順番に実施してください。以下の例は、PGI バージョン 11.9 がインストールされている場合を記述したものですが、他のバージョンが動作している場合は、11.9 の数字を他のバージョン番号に読み替えて実行してください。
● ライセンス・マネージャ(lmgrd デーモン)が起動されているかの確認方法 # ps ax |grep lmgrd (一例) 1915 ? S 0:00 /opt/pgi/linux86-64/11.9/bin/lmgrd -c /usr/pgi/license.dat 1917 ? Ssl 0:00 pgroupd -T photon29 11.7 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ビットの場合】 (RedHat の場合) # cp $PGI/linux86/11.9/bin/lmgrd.rc /etc/rc.d/init.d/lmgrd # chkconfig --add lmgrd あるいは、 # ln -s /etc/rc.d/init.d/lmgrd /etc/rc.d/rc3.d/S90lmgrd # ln -s /etc/rc.d/init.d/lmgrd /etc/rc.d/rc5.d/S90lmgrd (SUSE の場合) # cp $PGI/linux86/11.9/bin/lmgrd.rc /etc/init.d/lmgrd # chkconfig --add lmgrd 【64ビットの場合】 (RedHat の場合) # cp $PGI/linux86-64/11.9/bin/lmgrd.rc /etc/rc.d/init.d/lmgrd # chkconfig --add lmgrd あるいは、 # ln -s /etc/rc.d/init.d/lmgrd /etc/rc.d/rc3.d/S90lmgrd # ln -s /etc/rc.d/init.d/lmgrd /etc/rc.d/rc5.d/S90lmgrd (SUSE の場合) # cp $PGI/linux86-64/11.9/bin/lmgrd.rc /etc/init.d/lmgrd # chkconfig --add lmgrd ● FLEXlm ライセンス・マネージャ・デーモンを手動起動する # $PGI/linux86/11.9/bin/lmgrd.rc # $PGI/linux86-64/11.9/bin/lmgrd.rc start (32ビット/64ビット共用製品)
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: /usr/pgi/license.dat
FLEXlm error: -97,121
● ライセンス・マネージャ(lmgrd 並びに pgroupd デーモン)が起動されているかを確認してみる
# ps -efw | grep lmgrd
root 24916 1 0 13:56 ? 00:00:00 /usr/pgi/linux86-64/5.2/bin/lmgrd -c /usr/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 以上で、修正は終了です。次回のマシン起動時にはうまく、両方のデーモンが起動されるはずです。
12. 今所有しているライセンスで新リリース・バージョンが動作しますか
詳細は、こちらのページで説明しております。
13. 現在の自分のライセンス情報をどのように調べればよいでしょうか
現在の自分が所有しているライセンス情報は、ライセンス発行サイトにてオンラインで入手が可能です。サイトのユーザ認証のために、ご自身のPGIアカウント (登録ユーザe-mai アドレスとパスワード) でログインし、"Manage PGI products" のボタンをクリックすると、ライセンス PIN 番号が表示されますので、この PIN 番号をクリックすると、現在のライセンス情報を閲覧することができます。詳細は、こちらのページで説明しております。
14. PGI のライセンス発行サイトでライセンスを発行した際、MKLICENSE had trouble creating a license のメッセージが出て、正規のライセンスが取得できません
ライセンス発行サイトにて、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) ....(略)...
15. コンパイラのバージョンアップを行った後、コンパイルすると、FLEXlm version of vendor daemon is too old と言うメッセージが出て、コンパイルできません
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: /usr/pgi/license.dat FLEXlm error: -83,318 For further information, refer to the FLEXlm End User Manual, available at "www.macrovision.com".
この問題を回避するためには、以下のコマンドを実行してください。
16. 現在、PGI バージョン 5.1 を使用していますが、5.1 より下位バージョンの PGI コンパイラを使用する必要があります。現在の 5.1 用のライセンスファイルで下位バージョンは動作しますか
現在、使用している PGI コンパイラのバージョンよりも下位のバージョンのコンパイラ(PGI 4.x 等)は、現在のライセンス・ファイル (license.dat) をそのまま下位バージョンをインストールした直下 ($PGI下) にコピーしていただければ、動作します。ライセンス・ファイルは、下位バージョンの動作に対して互換性を有します。但し、使用するマシンが同一であること、ホスト名を変更していないことが必要です。PGI 4.x 等のの下位バージョンのインストールの仕方並びに FLEXlm ライセンス・マネージャの設定の方法については、こちらのページをご覧ください。
17. PGI のインストール・ディレクトリ配下(/opt/pgi)にlicense.datをセットしたにもかかわらず、ライセンスファイルがないというメッセージが出ます
正規のライセンスファイル(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"
18. FLEXlm ライセンスマネージャの動作のトラブルに関して調べるため、その動作ログファイルのある場所を教えてください
一般に、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 配下の flexlm.log
(PGI 6.2 以降) c:\Program Files\PGI\flexlm 配下の flexlm.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): /usr/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 コマンドの引数は、以下でみることができます。
# /usr/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: /usr/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
-----------------------------------------------------
19. FLEXlm ライセンス管理マネージャの動作メカニズムと license.dat の関係を教えてください
一般に、 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 製品のライセンスを取得する際、インストールしたシステム(PGI Workstation製品) あるいは、ライセンス管理サーバとなるシステム(PGI
Server製品)の 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 /usr/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/rc.d/init.d/lmgrd start (RedHat Linux の場合) # /etc/init.d/lmgrd start (SuSE Linux の場合)
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 /usr/pgi/linux86-64/11.9/bin/lmgrd -c /usr/pgi/license.dat 10731 ? Ss 0:00 pgroupd -T photon29 11.7 3 -c /usr/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 ファイルの定義は、ミスの多い部分ですので、一度、確かめることをお勧めします。
12. PGI 7.1 以前のバージョンを使用している環境に、PGI 7.2以降(2008年5月~)の新しいライセンス・キー(license.dat) に入れ替えると、LICENSE MANAGER PROBLEMでコンパイルエラーとなります
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 ライセンスデーモンが正常に起動するはずです。
21. FLEXlmのライセンス管理ソフトウェアが動作する「システム」が静的な IPアドレスを持たない、DHCP等でアドレスを動的に提供される構成の場合のライセンスマネージャの設定方法を教えてください(PGI Workstationライセンス)
FLEXlm 技術によるライセンス管理では、従来、そのライセンス管理を行う「サーバ」となるシステムでは、静的 IP アドレスによる「ホスト名」の固定が必要でした。しかし、PGI コンパイラをインストールしたシステムは、ラップトップ等の PC もあるため、必ずしも静的 IP アドレスで構成できない場合もあります。DHCP 等の技術で PC の IPアドレスが動的に割り当てられる場合は、デフォルトの FLEXlm のサーバの設定では、license.dat ファイルに定義した「ホスト名」が固定されない場合があり得るため、ライセンスサーバのソフトウェア(lmgrd)が起動できないことがあります。 これを回避するための方法をここで説明します。別の言葉で言うと、DHCP で IP アドレスを割り当てられている構成のシステムでの「FLEXlm ライセンス管理システム」の設定方法を説明します。また、この例は、Apple 社の Mac 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 の中の「ホスト名」の記述を行うことです。
【ライセンスキーの取得時の hostid(MAC アドレス)は?】
ライセンスキーを取得するためには、そのシステムのユニークな hostid( MAC アドレス) を取得する必要があります。ライセンスキーの取得時に必要な hostid を知る方法は、他のページでも紹介していますが、ここでは、FLEXlmのコマンドで行う方法をご紹介します。 Linux/MacOS X/Windows ともに共通ですが、以下のコマンドでキー取得に必要な hostid を特定します。(Windows 上では、PGI コマンドプロンプトを開き、以下のコマンドを入力して下さい。(以下の lmutil コマンドは、$PGI/linux86(-64)/{version番号}/bin (Mac OS Xでは、$PGI/osx86(-64)/{version番号}/bin、Windowsでは、C:\Program files\PGI\flexlm 配下にあります。)
(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 に対するホスト名を定める】
/etc/hostsファイル、あるいは Windowsの hosts ファイルに定義する、いわゆる「ループバック」に対する「ホスト名」を定めます。これはどんな名前でも構いません。仮にここでは、「moon-lpbk」と定めます。なお、一般的な localhost という名称を使うことは避けてください。上記の hostid とこのホスト名で、ライセンスキーを取得してください。
【取得したライセンスキー license.dat の 1行目】
取得したライセンスキーの1行目を以下に記します。この中に、ホスト名と hostid が記されているはずです。
SERVER moon-lpbk 0002b32c36ba 27000
【/etc/hosts ファイルにループバックのホスト名を追記】
Linux/MacOS X 上では、ルート権限で、/etc/hosts ファイルを変更します。
Windows 上では、hosts ファイルは、以下の場所に存在します。
Windows XP/Vista/7 (32bit) の場合→「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. # # For example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host 127.0.0.1 localhost 127.0.0.1 moon-lpbk この行を追加する (以下、省略)
以上の設定を行った後、lmgrd(ライセンスサーバ) の起動を行ってください。
(Linuxの場合)
以下のコマンドの実行を行ってください。これは、システムの再起動時に、自動的に FLEXlmマネージャを立ち上げるためのスクリプトを登録するものです。以下の例の "2010" は、バージョン番号を示します。PGI 9.0 の場合は、"9.0" と読み替えて下さい。なお、PGI
2010 は、PGI 10.x の「総称ディレクトリ」を意味します。
【32ビットの場合】 (RedHat の場合) # cp $PGI/linux86/2010/bin/lmgrd.rc /etc/rc.d/init.d/lmgrd (SUSE の場合) # cp $PGI/linux86/2010/bin/lmgrd.rc /etc/init.d/lmgrd 【64ビットの場合】 (RedHat の場合) # cp $PGI/linux86-64/2010/bin/lmgrd.rc /etc/rc.d/init.d/lmgrd (SUSE の場合) # cp $PGI/linux86-64/2010/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 になっていない場合は、以下のコマンドを実行してください (RedHat の場合) # ln -s /etc/rc.d/init.d/lmgrd /etc/rc.d/rc3.d/S90lmgrd # ln -s /etc/rc.d/init.d/lmgrd /etc/rc.d/rc5.d/S90lmgrd あるいは、 # chkconfig --add lmgrd (SUSE の場合) # chkconfig --add lmgrd
次に、現在のセッションで、本作業の最初に停止した FLEXlm マネージャの手動再起動を行います。OS により、以下のどちらかで起動してください。また、デーモンが正常に起動したかの確認方法は、ps コマンドで lmgrd プロセス, pgroupd プロセスの存在をご確認ください。
# /etc/rc.d/init.d/lmgrd start (RedHat Linuxの場合)
# /etc/init.d/lmgrd start (SUSE Linuxの場合)
(Windowsの場合)
Windows の「コントロールパネル」を開き、「管理ツール」を起動します。管理ツールを起動した後、以下のような画面が現れますので、この中の「サービス」をクリックし、その画面を出します。
以下の画面は、Windows システムの「サービス」の開始、終了、再起動をコントロールするものです。この中に、「PGI License Server」と言う名称のサービスがありますので、それをクリックして選択します。その際、以下のような画面となりますので、「サービスの開始」をクリックし実行してください。これによって、ライセンス管理マネージャ起動し、PGIコンパイラを使用することが出来ます。

(Mac OS Xの場合)
システムのブート時に、ライセンスサーバ・デーモン(lmgrd)とPGI ベンダー・デーモン(pgroupd)が自動起動するための設定を行います。システム管理権限を有するユーザIDでログインした後、ターミナルを開き、以下のようなシステム(root)権限でのコマンド実行モードでコマンド操作する必要があります。
tiger:/etc kato$ sudo -s password:****** tiger:/etc root# (root 権限のコマンドモードに変更される)
システムブート時のデーモン自動起動の設定を行います。まず、/Library/StartupItems/PGI ディレクトリを作成します(すでに、過去のバージョンにおいて作成済みの場合は、この PGI ディレクトリを利用します)。その後、PGI ライセンス構成ファイル(PGI ファイルと StartupParameters.plist をファイル)を必ず、コピーしてください(PGI 7.2 以降のラインセンスキーの書式が変更されたため、これ以降のバージョンに同梱された 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
22. ライセンスキーの管理を行うための、Webアカウントの取扱いと問題に対する対処法を教えて下さい
PGI 社のお客様用の Webアカウントは、製品ライセンスをご購入の際に、自動的に発行されます。この Webアカウントで PGI 社のサイトにログインすることにより、ライセンスの管理を行うことが可能とtなります。Webアカウントに関する取り扱いについての FAQ 等は、こちらのページに用意してありますので、ご参照ください。