汎用ポストプロセッサー EnSight

カタログ(PDF 約3.1MB)EnSightカタログ

開発元: 米国 Computational Engineering International, Inc.   http://www.ceisoftware.com

分散処理とVR

はじめに

通常、EnSightを1台のマシンで動作させている場合には意識することはありませんが、EnSightはサーバー・クライアントの形式を採用しているソフトウェアです。EnSightを起動すると、クライアント・プログラムとサーバー・プログラムの2つのプログラムが起動され、その2つのプログラム間の通信によって、データの可視化処理を行います。サーバー・プログラムでは、データの読込みや流線の計算、等値面の計算などの計算処理を行います。クライアント・プログラムでは、その計算によって作成された線や面といったレンダリング(描画処理)用のデータを受け取り、画面にレンダリングを行うといった処理を担います。EnSightは、これらの処理を複数のマシンを使って行うことができます。複数のマシンを利用してEnSightが行うことができる処理を以下に示します。

サーバー・クライアント・モード

EnSight Standard/HPC/VRでは、サーバー・クライアント・モードを利用して、サーバー・プログラムとクライアント・プログラムを異なるマシンで起動することができます。このモードを利用すると、データを移動せずに、別の高性能なグラフィックスを持つマシンで可視化処理が行えます。詳しくは、下記の「サーバー・クライアント・モードを利用する場合」を参照してください。


サーバー・プログラムで行う処理の並列分散

EnSight HPC/VRでは、SOS(Server of Servers)という並列分散処理機能を使用することができます。このSOS並列分散処理機能を利用した場合は、サーバー・プログラムを複数起動し、1つのサーバー・プログラムで行っていた計算処理を各サーバー・プログラムに分散して並列処理することができます。この並列処理には、空間で分割された個々の分割領域を並列処理する「空間分割による並列処理」と、複数ステップの個々のステップを並列処理する「時間分割による並列処理」があります。また、「空間分割による並列処理」には、EnSightがデータを自動で分割する方法と、予め分割されたデータを読み込む方法がありますが、自動分割の方法では、扱えるフォーマットには制限があります。詳しくは、下記の「SOS並列分散処理機能を利用する場合」を参照してください。
さらに、このSOS並列分散処理機能を利用したEnSightをバッチ・モードで実行をしたい場合は、実行用のスクリプト・ファイルを独自に用意にする必要があります。スクリプト・ファイルの作成方法は、「並列分散処理機能を利用してEnSightをバッチ・モードで実行する方法」のページを参照してください。


マルチプロジェクション・システムやVRシステムへの表示

EnSight VRは、マルチプロジェクション・システムやVRシステムでの表示も可能です。EnSight VRでは、EnSightのクライアント・プログラムが行うレンダリング部分をレンダリング・クライアント・プログラムとして分離し、別の複数のマシン上でレンダリング・クライアント・プログラムを起動して並列処理させ、その処理結果を複数のディスプレイにそれぞれ表示することができます。詳しくは、下記の「マルチプロジェクション・システム、VRシステムを利用する場合」を参照してください。


並列レンダリングによる画像重畳

レンダリング・クライアント・プログラムの並列処理としては、EnSight HPCとEnSight VRで使用することができる「Parallel Compositingオプション」を使った並列処理があります。このParallel Compositingオプションを使用した並列処理では、1台のマシンでレンダリングできないような大規模なレンダリング・データを、各レンダリング・クライアント・プログラムで分散処理させ、そのレンダリングの結果(奥行き情報付き画像)をEnSightのマスター・クライアント(GUIを表示しているクライアント)で重ね合わせて表示します。詳しくは、下記の「Parallel Compositingオプションを利用する場合」を参照してください。


上記のように複数のマシンを利用してEnSightを起動する場合には、EnSightのクライアント・プログラムとサーバー・プログラムが通信できるように、予めCEIShellと呼ばれるプログラムを各マシン上で起動して、専用の通信環境(CEIShellネットワーク)を構築しておく必要があります。使用するマシンの台数が多い場合は、手動で各マシンにログインしてCEIShellプログラムを実行するのは非常に面倒ですが、EnSight10.1で追加された「CEIStart」プログラムを利用すると、各マシン上でのCEIShell の起動から、その構築されたCEIShell ネットワーク上でのEnSightの起動までの処理を、クライアント・マシン上から簡単に行えるようになります。ここでは、この「CEIStart」の使い方と共に、サーバー・クライアント・モード、SOS並列分散処理機能、マルチプロジェクション・システムやVRシステム、さらには、Parallel Compositingオプションを利用する場合のプログラムの構成や操作手順等について説明します。

「CEIStart」プログラムを使って、複数のマシン間でCEIShellネットワークを構築するには、マシン間でSSHを利用したログインが必要になります。この設定については、「SSHを利用したログインの設定」を参照してください。

マルチスレッドによる並列処理
EnSight Standard/HPC/VRのクライアント・プログラムおよびサーバー・プログラムでは、マルチスレッドによる並列処理が行われます。EnSight Free/Desktopでは、スレッド並列は行われません。


サーバー・クライアント・モードを利用する場合

機能の特徴

計算を実行したサーバー・マシンに計算結果のデータがあり、そのデータを移動せずに、別の高性能なグラフィックス・ハードウェアをもつマシンで可視化処理を行いたい場合に有効です。

読み込み可能なデータ

サーバー・クライアント・モードでは、読み込み可能なデータは、EnSightのサーバー・プログラムが動作しているマシンから参照できるディスク上に置いてあるデータになります。データの読み込み方法は、EnSightを通常起動した場合と同じです。

マシンの構成とプログラムの構成

サーバー・クライアント・モードを利用する場合には、EnSightのGUIを実行するマシン(可視化結果をレンダリング(描画処理)するマシン)では、図1-1のように、EnSightのクライアント・プログラムを起動し、データの読み込みや各種計算処理をするためのマシンでは、EnSightのサーバー・プログラムを起動します。このように異なるマシン上で、サーバー・クライアント・モードのEnSightを実行する場合には、サーバー・プログラムを起動するマシン(サーバー・マシン)とクライアント・プログラムを起動するマシン(クライアント・マシン)の間でサーバー・プログラムとクライアント・プログラムが通信できるように、両方のマシンでEnSightのCEIShellプログラムを実行し、CEIShellネットワークというネットワークを構築しておく必要があります。クライアント・プログラムとサーバー・プログラム間では、図1-2のように、可視化処理を実行するためのコマンドと、可視化結果の幾何形状データ(断面、等値面、流線等のポリゴンやラインのデータ)がネットワークを介して送信されます。CEIShellネットワーク構築後に、クライアント・プログラムを起動すると、サーバー・プログラムがサーバー・マシン上で自動的に起動されます。

図1-1 マシンの構成(イメージ)と役割
図1-2 プログラムの構成
EnSightの起動手順

1. Pythonスクリプトの準備 サーバー・クライアント・モードで使用するPythonスクリプトは、EnSightのインストール・フォルダーのbinフォルダーの中に、下記のファイル名で用意されています。これらのPythonスクリプト・ファイルをそのまま利用します。


  クライアント・マシンで実行されるPythonスクリプト・ファイル:run_ceishell_on_a_remote_host_fe.py
  サーバー・マシンで実行されるPythonスクリプト・ファイル:  run_ceishell_on_a_remote_host_be.py


各Pythonスクリプトで行われる処理の内容
クライアント・マシン上で実行されるPythonスクリプトでは、まず、EnSightのクライアント・プログラムを起動するためのCEIShellコマンドが実行されます。次に、サーバー・マシンにSSHで接続し、サーバー・マシンで起動されるPythonスクリプトのコマンドが実行されます。一方、サーバー・マシンで実行されるPythonスクリプトでは、EnSightのサーバー・プログラムを起動するためのCEIShellが実行されます。また、このサーバー・マシンで実行されるCEIShellコマンドが、クライアント・マシンで起動されたCEIShellと接続して、CEIShellネットワークを確立します。
クライアント・マシンおよびサーバー・マシンで実行されるCEIShellコマンドは、それぞれ以下のものになります。

 クライアント・マシン:ceishell31 -app -child
 サーバー・マシン:  ceishell31 -parent connect://クライアント・マシンのホスト名 -role SERVER

※CEIShellコマンドの引数に、「-role SERVER」を指定することで、そのCEIShellを実行したマシンでサーバー・プログラムを起動する設定になります。

CEIStartを利用せずに、直接、CEIShellコマンドを実行してEnSightを起動したい場合は、日本語インストレーション・ガイドの「5.5 サーバー・クライアント」の「(2) CEIShellコマンドを利用した起動方法」を参照してください。

2. CEIStartの起動 クライアント・マシン上で、コマンドプロンプト(コンソール)を開いて、「ceistart101」コマンドを実行してください。
「CEIStart Configuratins」ダイアログ(図2)が表示されます。

図2

3. パラメーターの設定 「CEIStart Configuratins」ダイアログの「Click a configuration to edit:」から「Remote Server」を選択し、サーバー・マシンと接続するための以下の項目を設定してください(図3)。

Remote computer: サーバー・マシンのホスト名、または、IPアドレスを指定してください。
SSH cmd: Windowsの場合は、「plink.exe」、Linuxの場合は「ssh」を指定してください。
User name: サーバー・マシンへのログイン名を指定してください。

クライアント・マシンとサーバー・マシンとの間で、ポートフォワーディングを行われている場合は、「Use SSH tunnel」をチェックしてください。その他の各項目の設定は、日本語インストレーション・ガイドを参照して適宜行ってください。

※このPythonスクリプトでは、クライアント・マシンからサーバー・マシンにSSHでログインを行います。SSHによるログインには、事前の設定が必要です。詳しくは、「SSHを利用したログインの設定」を参照してください。また、Windowsで設定を行う場合は、「Windows環境でCEIStartを利用する場合の設定」も参照してください。

図3

4. EnSightの起動 「CEIStart Configuratins」ダイアログの「Launch」ボタンを押してください。


Launchボタンを押した後に実行される処理の内容
まず、「run_ceishell_on_a_remote_host_fe.py」ファイルが、クライアント・マシン上で実行されます。そのスクリプトの中では、SSHのコマンドを利用して、指定されたサーバー・マシン上で「run_ceishell_on_a_remote_host_be.py」ファイルがリモート実行され、クライアント・マシンとの間でCEIShellネットワークが構築されます。最後に構築されたCEIShellのネットワークを利用してEnSightが自動で起動されます。

SOS並列分散処理機能を利用する場合

機能の特徴

EnSight HPC/VRで利用可能なSOS(Server of Servers)並列分散処理では、サーバー・プログラムを複数起動し、データの読み込みや流線の計算、等値面の計算などの計算処理を各サーバー・プログラムに分散して並列処理することができます。例えば、クラスター・マシン上にデータ・ファイルがある場合に、そのクラスター・マシンを使ってEnSightの計算処理を分散処理させ、そのクラスター・マシンとは別のマシンに可視化結果を表示することができます。SOS並列分散処理機能で行う並列処理には、空間で分割されたデータに対して、各サーバー・プログラムが個々の分割領域を処理する場合の「空間分割による並列処理」と、複数ステップ・データに対して、各サーバー・プログラムが個々のステップを処理する場合の「時間分割による並列処理」があります。どちらの並列処理を行うかは、データを読み込む際に、「開く」ダイアログの「SOSオプション」にある「分割タイプ」で指定します。


空間分割による並列処理

1つのサーバー・プログラムが行うデータの読み込みや可視化処理の負荷を軽減させることができます。また、並列数に応じてサーバー・プログラムが使用するメモリも少なくすることができますので、大規模データを扱う場合に有効です。

時間分割による並列処理

ステップ1の処理を1つ目のサーバー・プログラムが行い、ステップ2の処理を2つ目のサーバー・プログラムが行うといったように、個々のステップの処理を各サーバー・プログラムに割り振り、各ステップのデータの読み込みおよび可視化処理を同時並行に行います。これにより、各サーバー・プログラムが個々のステップの可視化結果を予め用意した状態になります。通常、EnSightで時系列アニメーション(ステップを進めるアニメーション)を行う場合は、各ステップのデータを読み込み、可視化処理を行って、その結果を表示しますが、時間分割による並列処理では、時系列アニメーションを行う時に、予め作成された可視化結果をレンダリングするだけになります。複数ステップのデータを高速にアニメーションしたい場合に有効です。また、時系列アニメーションをフリップブックを作成して表示する場合も、この並列処理を行うことで、フリップブックの作成時間を短縮できます。

読み込み可能なデータ

「空間分割による並列処理」を行う場合と「時間分割による並列処理」を行う場合で、読み込むことができるデータが少し異なります。


空間分割による並列処理で扱えるデータ

この並列処理でのデータの読み込みには、「データを自動分割する方法」と「予めデータ・ファイルを分割しておく方法」の2種類があります。

【データを自動分割する方法】
この方法では、単独のデータセットに対して、EnSightが分割する領域を決め、EnSightの各サーバー・プログラムがそれぞれの領域を読み込み、その領域に対して処理を行います。データを予め分割しておく必要はありません。なお、データの自動分割に対応しているフォーマットは、EnSight Case Gold、Plot3D、cth, xdmf2, Exodus, Siloのみです。

【予めデータ・ファイルを分割しておく方法】
この方法では、予めいくつかの領域に分割されたデータ・ファイルを使用し、その分割されたデータ・ファイルをEnSightの各サーバー・プログラムで読み込みます。この分割されたデータをEnSightで読み込むには、SOS Caseファイルを作成する必要があります(※1)。また、分割された各データの形状ファイルには、同じパート名のパートが定義されている必要があります(次期バージョンの10.2では、この制限はなくなり、同じパート名のパートが定義されていなくても読み込めるようになる予定です)。分割された各データの形状ファイルに、同じパート名のパートが含まれていない場合は、「空」のパートの情報を定義することで読み込めるようになります。EnSight Case Goldフォーマットの場合で、空のパートを定義する場合は、「part」行、パート番号、「description」行のみを定義します。

なお、分割されていないデータをお持ちの場合は、そのデータがEnSightのCase Goldフォーマットのファイルであれば、EnSightの付属のツール「Partition101」を使ってデータを分割することもできます。このツールは、データをXYZ軸方向に任意の数に分割することができます。分割後は、分割領域毎に、形状ファイル、変数ファイル、それらを読み込むためのCaseファイルが作成されます(※2)。ソルバーのネイティブなフォーマットのデータをお持ちの場合は、EnSightの「幾何学的情報を保存」の機能を使ってEnSight Case Goldフォーマットに変換することもできます(※3)。


1 SOS Caseファイルのフォーマットについては、日本語インストレーション・ガイドの「5.3.6 SOS Caseファイル」、および、User Manualの「9.8 Server-of-Server Casefile Format」をご覧ください。

2 「Partition101」を使ったデータの分割方法については、日本語インストレーション・ガイドの「5.3.8 大規模データを扱う場合について」をご覧ください。

3 OpenFOAMの並列計算結果を使った並列分散処理については、OepnFOAMの並列計算結果の読み込みをご覧ください。


時間分割による並列処理で扱えるデータ

この並列処理では、複数ステップのデータであれば、どのフォーマットのデータでも構いません。ただし、各ステップのデータが、空間で分割されているものは扱えません。データを読み込むと、起動されているEnSightの各サーバー・プログラムに、EnSightが自動的に各ステップのデータを割り振ります。各サーバー・プログラムが割り振られたステップのデータを読み込み、同時並行に処理します。なお、起動するサーバー・プログラムの数は、読み込むデータのステップ数と一致しなくても構いません。

マシンの構成とプログラムの構成

並列処理を行うには、使用する各マシン上でEnSightのCEIShellプログラムを起動して、CEIShellネットワークというネットワークが構築された状態にしておく必要があります。そして、そのCEIShellネットワークを利用して、EnSightを起動する必要があります。図4-1のように、EnSightのGUIを実行するマシン(可視化結果をレンダリング(描画処理)するマシン = クライアント・マシン)でクライアント・プログラムを起動し、データの読み込みや各種計算処理を並列処理するためのマシン(= サーバー・マシン)でサーバー・プログラムを起動します。また、図4-2のように、クライアント・プログラムとサーバー・プログラムの間には、SOSサーバーというプログラムも必要になります。これは、クライアント・プログラムから各サーバー・プログラムへ可視化処理のためのコマンドを送信し、その処理の結果(ポリゴン等のデータ)を各サーバー・プログラムからクライアント・プログラムに送信するものです。

図4-1 マシンの構成(イメージ)と役割
図4-2 プログラムの構成

CEIShellネットワークが構築されていれば、クライアント・プログラムを起動した時に、各サーバー・プログラムとSOSサーバーは各マシン上で自動的に起動されます。SOSサーバーをクライアント・マシンまたはサーバー・マシンで起動する場合は、クライアント・プログラムまたはサーバー・プログラムを起動するためのCEIShellでSOSサーバーの起動を指定できるため、SOSサーバー用にCEIShellを起動する必要はありません。なお、SOSサーバーを介して、サーバー・プログラムからクライアント・プログラムに送られるデータは、空間分割による並列処理を行う場合と、時間分割による並列処理を行う場合で異なります。

空間分割による並列処理

SOSサーバーが、各サーバー・プログラムで処理された各分割領域の可視化結果を全て集め、全領域の可視化結果としてクライアント・プログラムに送信します。

時間分割による並列処理

SOSサーバーが、クライアント・プログラムで指定されたステップの可視化結果を、そのステップを処理したサーバー・プログラムから取得し、クライアント・プログラムに送信します。

上記のCEIShellネットワークの構築からEnSightの起動までの操作は、手動で行うと各マシンでコマンドの実行が必要になり面倒ですが、「CEIStart」プログラムを利用した場合は、クライアント・マシン上で起動した「CEIStart」のメニューを設定するだけで操作できます。下記の「EnSightの起動手順」では、この「CEIStart」を利用したEnSightの起動手順を紹介しています。

1つのサーバー・マシンで、複数のサーバー・プログラムを起動する場合
SOS並列分散処理機能を利用する場合に、1台のサーバー・マシン上で複数のサーバー・プログラムを起動することができ、SOS Caseファイル(「読み込み可能なデータ」参照)を使用した場合は、各サーバー・マシンで起動するサーバー・プログラムの数を指定することができます。この場合は、基本的には、サーバー・プログラムを起動したいマシン上でCEIShellを1つ起動しておけば、そのマシン上で複数のサーバー・プログラムを起動することができます。ただし、前述の「データ自動分割する方法」や「時間分割による並列処理」でデータを読み込む場合は、予め起動したいサーバー・プログラムの数だけCEIShellを起動しておく必要があります。

EnSightの起動手順

1. Pythonスクリプトの準備 「CEIStart」からSOS並列分散処理機能を利用したEnSightを起動するためのPythonスクリプトのサンプルが、EnSightのインストール・フォルダーのensight101\ceistart_configsフォルダーの中に用意されています。ただし、このサンプル・スクリプトは、クライアント・マシンからログイン・ノードを介してサーバー・マシンにアクセスするシステムを想定したもので、そのログイン・ノードでSOSサーバーを起動するように設定されています。また、SSHポートフォーワードなどの設定項目が定義されており、スクリプトの記述が複雑になっています。そこで、必要最小限のコマンドのみが定義されたサンプルのスクリプト・ファイルを用意しました。以下のものをダウンロードしてご利用ください。

 CEIStartに新たなSOS用のメニューを追加したPythonスクリプト・ファイル:user_server_configs.py
 クライアント・マシンで実行するPythonスクリプト・ファイル:      sample_script1_for_sos_fe.py
 サーバー・マシンで実行するPythonスクリプト・ファイル:        sample_script1_for_sos_be.py

SOSサーバー・プログラムをどのマシンで起動するかにより、実行するCEIShellコマンドの引数が変わってきますが、このサンプルでは、クライアント・マシン上でSOSサーバー・プログラムを起動する場合を想定しています。

user_server_configs.pyは、EnSightのインストール・フォルダーのensight101\ceistart_configsフォルダーの中にある「site_server_configs.py」に、新たなメニュー表示するための記述を追加したものになります。

各Pythonスクリプトで行われる処理の内容
「user_server_configs.py」ファイルは、「CEIStart」をクライアント・マシン上で起動した時に、自動的に読み込まれるファイルです。このファイルに記述されたメニューの定義に従って、「CEIStart」にメニューが表示されます。また、「CEIStart」上で、追加したメニュー「Sample1 for SOS」を選択して「Launch」ボタンを押すと、クライアント・マシン上で「sample_script1_for_sos_fe.py」が実行されます。「sample_script1_for_sos_fe.py」ファイルでは、まず、EnSightのGUIを起動するためのCEIShellコマンドが実行されます。次に、スクリプト内で指定された各サーバー・マシンにSSHで接続され、「sample_script1_for_sos_be.py」が実行されます。なお、EnSightのGUIを起動するためのCEIShellコマンドでは、このマシン上でSOSサーバーを起動するための設定と、起動するサーバー・プログラムの数の設定が行われます。「sample_script1_for_sos_be.py」ファイルでは、サーバー・プログラムを起動するためのCEIShellが実行されます。また、このサーバー・マシンで起動される各CEIShellコマンドが、クライアント・マシンで起動されたCEIShellと接続して、CEIShellネットワークを構築します。
上記のサンプルでは、クライアント・マシンとサーバー・マシンで実行するCEIShellコマンドは、以下のようなコマンドになっています。

 クライアント・マシン:ceishell31 -app -child listen://\?nconnections=サーバーの数 -role SOS
 サーバー・マシン:  ceishell31 -parent connect://クライアント・マシンのホスト名 -role SOS_SERVERS

※CEIShellコマンドの引数に指定されたオプションは、それぞれ以下のような意味を持ちます。
 -role SOS:     CEIShellを実行したマシンでSOSサーバーを起動する設定になります。
 -role SOS_SERVERS:CEIShellを実行したマシンでサーバー・プログラムを起動する設定になります。

1) クライアント・マシンで起動するCEIStartのメニュー用のPythonスクリプト・ファイル「user_server_configs.py」の準備 このファイルには、CEIStartを起動した時に使用可能なネットワークの設定として「Click a configuration to Edit」にリストされるメニュー、および、そのメニューで設定可能なパラメーターの項目が定義されています。

  1. ダウンロードした「user_server_configs.py」ファイルを、ユーザーのホーム・フォルダーの中の.ensight101フォルダーに置いてください。
  2. この「user_server_configs.py」ファイルを使ってCEIStartプログラムを起動すると、「Sample1 for SOS」というメニューが表示されるようになっています。
  3. ファイルをテキスト・エディターで開き、下記の赤字で示した「sample_script1_for_sos_fe.py」ファイルのパスを、クライアント・マシンの実際にファイルを置くフォルダーのパスに変更してください。

sample1_SOS = "cpython"+str(ver)+" \"C:\\Work\\scripts\\SOS\\sample_script1_for_sos_fe.py\""

EnSightのインストール・フォルダーのensight101\site_preferencesフォルダーに置くこともできます。ユーザーのホーム・フォルダーの中の.ensight101フォルダーにした場合は、そのユーザーのみ変更が適用されますが、このsite_preferencesフォルダーにコピーした場合は、全てのユーザーにその変更が適用されます。このsite_preferencesに置く場合は、ファイル名を「cei_server_configs.py」としてください。

2)クライアント・マシンで実行されるPythonスクリプト・ファイル「sample_script1_for_sos_fe.py」の準備 このファイルには、サーバー・マシンからの接続を受けるためのCEIShellを起動するコマンド、EnSightのサーバー・プログラムを起動するサーバー・マシンのホスト名、および、そのサーバー・マシンで実行するPythonスクリプト・ファイルが定義されています。

  1. ファイルを1)で指定したフォルダーに置いてください。
  2. ファイルをテキスト・エディターで開き、下記の赤字で示した、「sample_script1_for_sos_be.py」ファイルのパス、および、ホスト名を、実際にファイルを置くフォルダーのパス、および、実際に使用するマシンのホスト名に変更し<てください。

remoteCmd = "cpython"+ver+" \"/home/username/scripts/SOS/sample_script1_for_sos_be.py\""+" "+ver+" "+headhost

hosts = ["server1", "server2", "server3", "server4", "server5"]

1つのサーバー・マシン上で、複数のサーバー・プログラムを起動することもできます。その場合は、hostsのホスト名に同じ名前のものを重複して指定してください。

3)サーバー・マシンで実行するPythonスクリプト・ファイル「sample_script1_for_sos_be.py」の準備 このファイルには、クライアント・マシンに接続するためのCEIShellコマンドが定義されています。

ファイルをサーバー・マシンの「sample_script1_for_sos_fe.py」で指定したフォルダーに置いてください。

2. CEIStartの起動 クライアント・マシンで、コマンドプロンプト(コンソール)を開いて、「ceistart101」コマンドを実行してください。

「CEIStart Configuratins」ダイアログが表示され、「user_server_configs.py」ファイルが所定のフォルダーに置かれていれば、「Click a configuration to edit」リストに「Sample1 for SOS」が表示されます。(図5参照。図は、Windows版。)

※「Click a configuration to edit」リストから、必要のないメニューを削除したい場合は、「CEIStartのメニューの削除」を参照してください。

図5

3. パラメーターの設定 「CEIStart Configuratins」ダイアログの「Click a configuration to edit:」から「Sample1 for SOS」を選択し、サーバー・マシンと接続するための以下の項目を設定してください(図6)。

SSH cmd: Windowsの場合は、「plink.exe」、Linuxの場合は「ssh」を指定してください。
User name: 各サーバー・マシンへのログイン名を指定してください。
Number of Servers: 使用するサーバー・マシンの台数を指定してください。

使用するサーバー・マシンは、「sample_script1_for_sos_be.py」ファイルの「hosts」のリストにされたものの先頭から順に、指定された台数使用します。台数の最大値を増やしたい場合は、「hosts」で指定するホスト名を増やすと共に、「user_server_configs.py」ファイルの「Sample1 for SOS」の項目にある「nprocs」の設定を変更してください。

図6

4. EnSightの起動 「CEIStart Configuratins」ダイアログの「Launch」ボタンを押してください。

Launchボタンを押した後に実行される処理の内容
まず、「sample_script1_for_sos_fe.py」ファイルが、クライアント・マシン上で実行されます。そのスクリプトの中では、SSHのコマンドを利用して、指定されたサーバー・マシン上で「sample_script1_for_sos_be.py」ファイルがリモート実行され、クライアント・マシンとの間でCEIShellネットワークが構築されます。最後に、構築されたCEIShellのネットワークを利用してEnSightが自動で起動されます。

EnSightをバッチ・モードで実行する場合
CEIStartは、対話的に操作を行う場合に使用するプログラムです。CEIStartは、バッチ・モードでの実行には対応していません。バッチ・モードでEnSightの実行をしたい場合は、「sample_script1_for_sos_fe.py」ファイルを実行するコマンドとEnSightを実行するコマンドを記述したスクリプト・ファイルを独自に用意にする必要があります。スクリプト・ファイルの作成方法は、「並列分散処理機能を利用してEnSightをバッチ・モードで実行する方法」のページを参照してください。

マルチプロジェクション・システム、VRシステムを利用する場合

機能の特徴

EnSight VRでは、EnSight HPCの機能に加え、マルチプロジェクション・システムやVRシステムに対して、1台または複数台のマシンを使った複数プロセスでレンダリング(描画処理)することができます。さらに、立体視やヘッドトラッキングを利用するVRシステムへの表示もできます。


読み込み可能なデータ

マルチプロジェクションやVRシステムで表示を行う場合に読み込み可能なデータは、EnSightのクライアント・プログラムを起動したマシンから参照できるディスク上に置いてあるデータになります。データの読み込み方法は、EnSightを通常起動した場合と同じです。

マシンの構成とプログラムの構成

複数の(マシンの)グラフィックス・ボードからの出力をマルチプロジェクション・システムやVRシステムに表示するには、使用する各マシン上でEnSightのCEIShellプログラムを起動して、CEIShellネットワークというネットワークが構築された状態にしておく必要があります。そして、そのCEIShellネットワークを利用して、EnSightを起動する必要があります。図7-1のように、EnSightのGUIを実行するマシン(可視化結果を表示するマシン=マスター・クライアント・マシン)でマスター・クライアント・プログラムを起動し、レンダリングを行う各マシン(=レンダリング・クライアント・マシン)でレンダリング・クライアント・プログラムを起動します。また、図7-2のように、マスター・クライアント・プログラムとレンダリング・クライアント・プログラムの間には、コラボレーション・ハブというプログラムが必要になり、マスター・クライアント・プログラムとサーバー・プログラムの間には、SOSサーバーというプログラムも必要になります。マスター・クライアント・プログラムから発行されたコマンドは、コラボレーション・ハブを介してSOSサーバーに送られ、サーバー・プログラムで可視化処理されます。可視化処理された結果は、SOSサーバーを介してコラボレーション・ハブに送られ、マスター・クライアント・プログラムと各レンダリング・クライアント・プログラムでレンダリングされます。

図7-1 マシンの構成(イメージ)と役割
図7-2 プログラムの構成

CEIShellネットワークが構築されていれば、マスター・クライアント・プログラムを起動した時に、各レンダリング・クライアント・プログラム、コラボレーション・ハブ、および、SOSサーバーは、各マシン上で自動的に起動されます。通常は、マスター・クライアント・マシンでCEIShellコマンドを実行する時に、サーバー・プログラム、SOSサーバー、および、コラボレーション・ハブが、マスター・クライアント・プログラムと同じマシン上で起動されるように指定します。

上記のCEIShellネットワークの構築からEnSightの起動までの操作は、手動で行うと各マシンでコマンドの実行が必要になり面倒ですが、「CEIStart」プログラムを利用した場合は、クライアント・マシン上で起動した「CEIStart」のメニューを設定するだけで操作できます。下記の「EnSightの起動手順」では、この「CEIStart」を利用したEnSightの起動手順を紹介しています。

サーバー・プログラムを複数起動して、SOS並列分散処理機能を併用することも可能です。

ディスプレイ・コンフィグ・ファイルの準備

EnSight VRを使って、マルチプロジェクション・システム、VRシステムで表示を行う場合は、プロジェクター/画面のサイズや解像度、視点の中心位置などの設定をEnSight に教えるためのディスプレイ・コンフィグ・ファイルを作成する必要があります。例えば、2台のレンダリング・クライアント・マシンに、それぞれ1画面ずつ表示する場合は、以下の記述のようなディスプレイ・コンフィグ・ファイルになります。

CVFd 1.0
display
wallresolution

1280 1024

screen # left

hostid machine1

displayid :0.0

displayorigin 0.0 0.0

resolution 1280 1024

screen # right

hostid machine2

displayid :0.0

displayorigin 0.0 0.0

resolution 1280 1024

このファイルは、EnSightを起動する時のコマンドライン・オプションとして指定します。ファイル・フォーマットの詳細は、EnSightのUser Manualの「12 Caves, Walls & Head-mounted displays」を参照してください。CAVEシステムで表示を行う場合のディスプレイ・コンフィグ・ファイルの設定、EnSightでヘッドトラッキングを利用する場合の設定、ユーザー定義入力デバイスを使用するための設定についてまとめた資料があります。こちらからダウンロードできます。資料では、3面のCAVEシステムを利用する場合を例に、それらの設定について紹介しています。

EnSightの起動手順

1. Pythonスクリプトの準備 マルチプロジェクション・システム、VRシステムを利用する場合のPythonスクリプトのサンプルを用意しました。以下のものをダウンロードしてご利用ください。

 CEIStartにVR用のメニューを追加したPythonスクリプト・ファイル:     user_server_configs.py
 マスター・クライアント・マシンで実行するPythonスクリプト・ファイル:  sample_script1_for_vr_fe.py
 レンダリング・クライアント・マシンで実行するPythonスクリプト・ファイル:sample_script1_for_vr_be.py

コラボレーション・ハブ、SOSサーバー・プログラムをどのマシンで起動するかにより、実行するCEIShellコマンドの引数が変わってきます。このサンプルでは、マスター・クライアント・マシン上でコラボレーション・ハブ、SOSサーバー・プログラム、および、サーバー・プログラムを起動する場合を想定しています。

各Pythonスクリプトで行われる処理の内容
「user_server_configs.py」ファイルは、「CEIStart」をクライアント・マシン上で起動した時に、自動的に読み込まれるファイルです。このファイルに記述されたメニューの定義に従って、「CEIStart」にメニューが表示されます。また、「CEIStart」上で、追加したメニュー「Sample1 for VR」を選択して「Launch」ボタンを押すと、クライアント・マシン上で「sample_script1_for_vr_fe.py」が実行されます。「sample_script1_for_vr_fe.py」ファイルでは、まず、EnSightのGUIを起動するためのCEIShellコマンドが実行されます。次に、スクリプト内で指定された各レンダリング・クライアント・マシンにSSHで接続され、「sample_script1_for_vr_be.py」が実行されます。なお、EnSightのGUIを起動するためのCEIShellコマンドでは、このマシン上でコラボレーション・ハブとSOSサーバーを起動するための設定、および、起動するサーバー・プログラムの数の設定が行われます。また、「-role COLLABHUB」と「-role SOS」を指定したことにより、このマシン上でコラボレーション・ハブとSOSサーバーを起動するための設定が行われます。「sample_script1_for_vr_be.py」では、レンダリング・クライアント・プログラムを起動するためのCEIShellが実行されます。また、このレンダリング・クライアント・マシンで起動される各CEIShellコマンドが、マスター・クライアント・マシンで起動されたCEIShellと接続して、CEIShellネットワークを構築します。
上記のサンプルでは、マスター・クライアント・マシンとレンダリング・クライアント・マシンで実行するCEIShellコマンドは、以下のようなコマンドになっています。

 マスター・クライアント・マシン:  ceishell31 -app -child listen://\?nconnections=レンダリング・クライアントの数 -role COLLABHUB -role SOS
 レンダリング・クライアント・マシン:ceishell31 -parent connect://クライアント・マシンのホスト名 -role DRCLIENTS

※CEIShellコマンドの引数に指定されたオプションは、それぞれ以下のような意味を持ちます。
 -role SOS:    CEIShellを実行したマシンでSOSサーバーを起動する設定になります。
 -role COLLABHUB:CEIShellを実行したマシンでコラボレーション・ハブを起動する設定になります。
 -role DRCLIENTS:CEIShellを実行したマシンでレンダリング・クライアント・プログラムを起動する設定になります。

1) マスター・クライアント・マシンで起動するCEIStartのメニュー用のPythonスクリプト・ファイル「user_server_configs.py」の準備 このファイルには、CEIStartを起動した時に使用可能なネットワークの設定として「Click a configuration to Edit」にリストされるメニュー、および、そのメニューで設定可能なパラメーターの項目が定義されています。

  1. ダウンロードした「user_server_configs.py」ファイルを、ユーザーのホーム・フォルダーの中の.ensight101フォルダーに置いてください。
  2. この「user_server_configs.py」ファイルを使ってCEIStartプログラムを起動すると、「Sample1 for VR」というメニューが表示されるようになっています。
  3. ファイルをテキスト・エディターで開き、下記の赤字で示した「sample_script1_for_vr_fe.py」ファイルのパスを、マスター・クライアント・マシンの実際にファイルを置くフォルダーのパスに変更してください。

sample1_VR = "cpython"+str(ver)+" \"C:\\Work\\scripts\\VR\\sample_script1_for_vr_fe.py\""

EnSightのインストール・フォルダーのensight101\site_preferencesフォルダーに置くこともできます。ユーザーのホーム・フォルダーの中の.ensight101フォルダーにした場合は、そのユーザーのみ変更が適用されますが、このsite_preferencesフォルダーにコピーした場合は、全てのユーザーにその変更が適用されます。このsite_preferencesフォルダーに置く場合は、ファイル名を「cei_server_configs.py」としてください。

2)マスター・クライアント・マシンで実行するPythonスクリプト・ファイル「sample_script1_for_vr_fe.py」の準備 このファイルには、各レンダリング・クライアント・マシンからの接続を受けるためのCEIShellを起動するコマンド、レンダリング・クライアント・プログラムを起動するレンダリング・クライアント・マシンのホスト名、および、それらのマシンで実行するPythonスクリプト・ファイルが定義されています。

  1. ファイルを1)で指定したフォルダーに置いてください。
  2. ファイルをテキスト・エディターで開き、下記の赤字で示した、「sample_script1_for_vr_be.py」ファイルのパス、および、ホスト名を、実際にファイルを置くフォルダーのパス、および、レンダリング・クライアント・マシンの実際に使用するマシンのホスト名に変更し<てください。

remoteCmd = "cpython"+ver+" \"/home/username/scripts/VR/sample_script1_for_vr_be.py\""+" "+ver+" "+headhost

hosts = ["client1", "client2", "client3", "client4"]

3)レンダリング・クライアント・マシンで実行するPythonスクリプト・ファイル「sample_script1_for_vr_be.py」の準備 このファイルには、マスター・クライアント・マシンに接続するためのCEIShellコマンドが定義されています。

ファイルを「sample_script1_for_vr_fe.py」で指定したフォルダーに置いてください。

2. CEIStartの起動 マスター・クライアント・マシンで、コマンドプロンプト(コンソール)を開いて、「ceistart101」コマンドを実行してください。

「CEIStart Configuratins」ダイアログが表示され、「user_server_configs.py」ファイルが所定のフォルダーに置かれていれば、「Click a configuration to edit」リストに「Sample1 for VR」が表示されます。(図8参照。図は、Windows版。)

※「Click a configuration to edit」リストから、必要のないメニューを削除したい場合は、「CEIStartのメニューの削除」を参照してください。

図8

3. パラメーターの設定 「CEIStart Configuratins」ダイアログの「Click a configuration to edit:」から「Sample1 for VR」を選択し、レンダリング・クライアント・マシンと接続するための以下の項目を設定してください(図9)。

SSH cmd: Windowsの場合は、「plink.exe」、Linuxの場合は「ssh」を指定してください。
User name: 各レンダリング・クライアント・マシンへのログイン名を指定してください。
Number of Servers: 使用するレンダリング・クライアント・マシンの台数を指定してください。
EnSight options: -dconfigオプションと共に、読み込むディスプレイ・コンフィグ・ファイルを指定してください。

使用するレンダリング・クライアント・マシンは、「sample_script1_for_vr_be.py」ファイルの「hosts」のリストにされたものの先頭から順に、指定された台数使用します。台数の最大値を増やしたい場合は、「hosts」で指定するホスト名を増やすと共に、「user_server_configs.py」ファイルの「Sample1 for VR」の項目にある「nprocs」の設定を変更してください。

図9

4. EnSightの起動 「CEIStart Configuratins」ダイアログの「Launch」ボタンを押してください。

Launchボタンを押した後に実行される処理の内容
まず、「sample_script1_for_vr_fe.py」ファイルが、マスター・クライアント・マシン上で実行されます。そのスクリプトの中では、SSHのコマンドを利用して、指定されたレンダリング・クライアント・マシン上で「sample_script1_for_vr_be.py」ファイルがリモート実行され、マスター・クライアント・マシンとの間でCEIShellネットワークが構築されます。最後に、構築されたCEIShellのネットワークを利用してEnSightが自動で起動されます。

Parallel Compositingオプションを利用する場合

機能の特徴

EnSightには、複数のEnSightのクライアント・プログラムを並列に起動し、それらのクライアント上で並列にレンダリング(描画処理)を行い、EnSightのマスター・クライアントでそれらのレンダリングの結果を重ね合わせることができる「Parallel Compositingオプション(PCオプション)」があります。このPCオプションを利用したレンダリングでは、サーバー・プログラムが作成したポリゴンを各レンダリング・クライアント・プログラムに分配し、奥行き情報付きの画像を作成します。そして、マスター・クライアント・プログラムで、それらの画像を奥行き情報を比較しながら重畳し、マスター・クライアント・プログラム(GUI)上のグラフィックス・ウィンドウにその画像を表示します。このPCオプションは、EnSight HPCとEnSight VRで利用できます。


マシンの構成とプログラムの構成

PCオプションを使った並列レンダリングを行う場合もマルチプロジェクション・システムやVRシステムの場合と同様に、まず、使用する各マシン上でEnSightのCEIShellプログラムを起動して、CEIShellネットワークというネットワークが構築された状態にしておく必要があります。そして、そのCEIShellネットワークを利用して、EnSightを起動する必要があります。図10-1のように、EnSightのGUIを実行するマシン(可視化結果を表示するマシン=マスター・クライアント・マシン)でマスター・クライアント・プログラムを起動し、レンダリングを行う各マシンでレンダリング・クライアント・プログラムを起動します。また、図10-2のように、マスター・クライアント・プログラムとレンダリング・クライアント・プログラムの間には、コラボレーション・ハブというプログラムが必要になり、マスター・クライアント・プログラムとサーバー・プログラムの間には、SOSサーバーというプログラムも必要になります。マスター・クライアント・プログラムから発行されたコマンドは、コラボレーション・ハブを介してSOSサーバーに送られ、サーバー・プログラムで可視化処理されます。このParallel Compositingオプションを利用する場合は、可視化処理された結果は、SOSサーバーを介してコラボレーション・ハブに送られ、各レンダリング・クライアント・プログラムでレンダリングされます。レンダリングされた結果は合成(重畳)され、マスター・クライアント・プログラムで表示されます。

図10-1 マシンの構成(イメージ)と役割
図10-2 プログラムの構成

CEIShellネットワークが構築されていれば、マスター・クライアント・プログラムを起動した時に、各レンダリング・クライアント・プログラム、コラボレーション・ハブ、および、SOSサーバーは、各マシン上で自動的に起動されます。通常は、マスター・クライアント・マシンでCEIShellコマンドを実行する時に、サーバー・プログラム、SOSサーバー、および、コラボレーション・ハブが、マスター・クライアント・プログラムと同じマシン上で起動されるように指定します。

上記のCEIShellネットワークの構築からEnSightの起動までの操作は、手動で行うと各マシンでコマンドの実行が必要になり面倒ですが、「CEIStart」プログラムを利用した場合は、クライアント・マシン上で起動した「CEIStart」のメニューを設定するだけで操作できます。下記の「EnSightの起動手順」では、この「CEIStart」を利用したEnSightの起動手順を紹介しています。

サーバー・プログラムを複数起動して、SOS並列分散処理機能を併用することも可能です。

EnSightの起動手順

1. Pythonスクリプトの準備 Parallel Compositingオプションを使用する場合のPythonスクリプトのサンプルを用意しました。以下のものをダウンロードしてご利用ください。

 CEIStartにPCオプション用のメニューを追加したPythonスクリプト・ファイル:user_server_configs.py
 マスター・クライアント・マシンで実行するPythonスクリプト・ファイル:  sample_script1_for_vr_fe.py
 レンダリング・クライアント・マシンで実行するPythonスクリプト・ファイル:sample_script1_for_vr_be.py

Parallel Compositingオプションを利用する場合のCEIShellコマンドは、マルチプロジェクション・システムやVRシステムを利用する場合のコマンドと同じで、EnSightの起動オプションのみが異なります。Pythonスクリプト・ファイルの編集内容については、前述のマルチプロジェクション・システムやVRシステムの「Pythonスクリプトの準備」を参照してください。

2. CEIStartの起動 マスター・クライアント・マシンで、コマンドプロンプト(コンソール)を開いて、「ceistart101」コマンドを実行してください。

「CEIStart Configuratins」ダイアログが表示され、所定のフォルダーに「user_server_configs.py」ファイルが置かれていれば、「Click a configuration to edit」リストに「Sample1 for Parallel Compositing」が表示されます。(図11参照。図は、Windows版。)

※「Click a configuration to edit」リストから、必要のないメニューを削除したい場合は、「CEIStartのメニューの削除」を参照してください。

図11

3. パラメーターの設定 「「CEIStart Configuratins」ダイアログの「Click a configuration to edit:」から「Sample1 for Parallel Compositing」を選択してください(図12)。

SSH cmd: Windowsの場合は、「plink.exe」、Linuxの場合は「ssh」を指定してください。
User name: 各レンダリング・クライアント・マシンへのログイン名を指定してください。
Number of Servers: 使用するレンダリング・クライアント・マシンの台数を指定してください。
EnSight options: -prdistオプションを指定してください。

使用するレンダリング・クライアント・マシンは、「sample_script1_for_vr_be.py」ファイルの「hosts」のリストにされたものの先頭から順に、指定された台数使用します。台数の最大値を増やしたい場合は、「hosts」で指定するホスト名を増やすと共に、「user_server_configs.py」ファイルの「Sample1 for PC」の項目にある「nprocs」の設定を変更してください。

図12

4. EnSightの起動 「CEIStart Configuratins」ダイアログの「Launch」ボタンを押してください。

Launchボタンを押した後に実行される処理の内容
まず、「sample_script1_for_vr_fe.py」ファイルが、マスター・クライアント・マシン上で実行されます。そのスクリプトの中では、SSHのコマンドを利用して、指定されたレンダリング・クライアント・マシン上で「sample_script1_for_vr_be.py」ファイルがリモート実行され、マスター・クライアント・マシンとの間でCEIShellネットワークが構築されます。最後に、構築されたCEIShellのネットワークを利用してEnSightが自動で起動されます。

SSHを利用したログインの設定

CEIStartプログラムは、EnSightのプログラムを起動する各マシン上で、必要なCEIShellコマンドを実行するために、CEIStartを起動したマシンからその他のマシンにSSHでログインする方法を取っています。CEIStartを起動するマシンから、EnSightのプログラムを起動する各マシンに、「公開鍵認証方式」を利用したSSH接続ができるように設定してください。なお、このSSHを利用したログインでは、パスワードおよびパスフレーズなしでログインできるようにしておく必要があります。

Windows環境から他のマシンにSSHでログインする際には、plinkを使用します。plinkを使用する場合は、予めpageant.exeを実行して、各マシンへのアクセスに必要な秘密鍵を登録しておく必要があります。pageant.exeの設定方法については、「Windows環境でCEIStartを利用する場合の設定」の「pageant.exeの設定」参照してください。

ログイン先のマシンがWindowsの場合は、Windows上でSSHサーバーを起動しておく必要があります。Windows上でのSSHサーバーの起動方法については、「Windows環境でCEIStartを利用する場合の設定」の「SSHサーバーの起動」を参照してください。

Windows環境でCEIStartを利用する場合の設定

Windows環境には、sshコマンドがデフォルトでインストールされていないため、SSHによるログインができません。Windows環境でCEIStartを利用する場合には、sshコマンドの代わりにPuttyの「plink.exe」を使用して他のマシンへログインします。また、Windows環境では、CEIStartの「SSH cmd」で「plink.exe」すると共に、以下の2つの設定が必要になります。ここでは、それらの設定手順について説明します。

1.クライアント・マシンからログインする先のマシンでのSSHサーバーの起動
2.クライアント・マシンでのPageantの起動

SSHサーバーの起動

WindowsマシンへのSSHでログインする場合は、ログイン先のマシンでSSHサーバーが起動されている必要があります。しかし、通常、Windows マシンには、SSH サーバーがインストールされていないため、そのままではWindows マシンへのSSHによるログインができず、CEIStartを利用することができません。別途、SSH サーバーをインストールしておく必要があります。

Windowsマシン上で起動できるSSHサーバーはいくつかありますが、ここでは、freeSSHdを例に、Windowsマシン上でSSHサーバーを起動する手順について説明します。

1. freeSSHdのインストール freeSSHdをダウンロードし、freeSSHdのインストール・ウィザードに従ってインストールしてください。

2. freeSSHdの起動 freeSSHdをインストールすると、Windowsのサービスに「freeSSHDservice」の名前でサービスが登録され、マシン起動時にfreeSSHdが実行されます。

freeSSHdが実行されると、以下の図のように起動されたfreeSSHdがWindowsのタスクトレイに登録されます。(図13)

図13

3. freeSSHdの設定 WindowsのタスクトレイのfreeSSHdのアイコンを右クリックし、表示されたポップアップ・メニューから「Settings」を選択してください。

「freeSSHd Settings」ダイアログが表示されます。(図14)

図14

まず、ログイン可能なユーザーを追加します。
「Users」タブを選択し、「Add」ボタンを押してください。
「User properties」ダイアログが開きます。(図15)
「Login:」にWindowsのユーザーアカウント名を入力し、「User can use:」の欄のオプションは全てチェックしてください。
OKボタンを押すとログイン可能なユーザーがダイアログのリストに追加されます。

図15

次に、アクセスを許可するマシンのIPアドレスを追加します。
「Host restrictions」タブを選択し、「Allow only these IP addresses」をチェックし、下の入力フィールドにアクセスを許可するマシンのIPアドレスを入力してください。(図16)

図16

最後に、SSHサーバーのアドレスを設定します。
「SSH」タブを選択し、「Listen Address」コンボボックスをクリックし、このfreeSSHdをインストールしたマシンのIPアドレスをリストから選択してください。(図17)

図17

4. 公開鍵のインストール freeSSHdをインストールしたフォルダーに、RSAキーの公開鍵のファイルをコピーし、ファイル名を上記の「3. freeSSHdの設定」で追加したログイン名と同じ名前に変更してください。

5. freeSSHdサービスの実行 「freeSSHd settings」ダイアログの「Server Status」タブを選択し、「SSH server」の「Click here to start it」をクリックしてください。
サービスがスタートされると、図18のような表示になります。


図18

以上の操作で、WindowsマシンへSSHによるログインができるようになります。

freeSSHdがWindowsのサービスから起動された場合に、plinkを使ってアクセスできないことがあります。 その場合は、サービスからの起動を無効にして、「freeSSHd.exe」を管理者権限で起動してみてください。

SSHサーバーが起動されたマシンのIPアドレスが変わってしまった場合は、上記の設定が正しく行われていても接続できない場合があります。
原因は、サーバーの鍵がplinkを実行したWindowsマシンのレジストリにキャッシュされているものと一致しないためです。このような場合は、一度、Puttyを実行して、そのマシンにアクセスしてください。「Puttyセキュリティ警告」ダイアログが表示され、キャッシュを更新するかどうか聞かれます。「はい」を選択すると、そのマシンにplinkでアクセスできるようになります。

Pageantの起動

CEIStartを利用して、Windowsのマシンから他のマシンへのログインする時には、「plink.exe」を使って「公開鍵認証方式」でログインしますが、そのためには、「pageant.exe」を予め実行して、アクセス先のマシンにログインする際に必要な秘密鍵を登録しておく必要があります。

ここでは、「pageant.exe」の設定手順について説明します。

1. エクスプローラ、またはコマンド・プロンプトを開いて、pageant.exe を実行してください。 図19のように起動されたpageant がWindows のタスクトレイに登録されます。

※pageant.exeは、EnSightのインストール・フォルダーのensight101\unsupported\plinkフォルダーの中にあります。

図19

2. Windows のタスクトレイに登録されたpageant のアイコンをダブルクリックしてください。 「Pageant Key list」ダイアログが表示されます。

3. 「Pageant Key list」ダイアログの「Add Key」ボタンを押してファイル・ブラウザを開き、RSAキーの秘密鍵のファイルを選択してください。 図20のように読み込まれた秘密鍵がリストに登録されます。

図20

以上の操作で、Pageantに登録された鍵を利用した「plink.exe」によるログインができるようになります。


CEIStartのメニューの削除

CEIStartの「Click a configuration to edit」リストに表示されるメニューは、EnSightのインストール・フォルダーのensight101\site_preferencesフォルダーの中の「cei_server_configs.py」、または、ユーザーのホーム・フォルダーの中の.ensight101フォルダーの中の「user_server_configs.py」ファイルを編集することで、新しい項目の追加、および、既存の項目の削除を行うことができます。

上記の各種操作でサンプルとして用意した「user_server_configs.py」ファイルには、元となったEnSightのインストール・フォルダーのensight101\ceistart_configsフォルダーの中の「site_server_configs.py」ファイルに記述されていた項目がそのまま入っています。そのため、CEIStartを起動すると、「Click a configuration to edit」リストに以下の3つの項目が表示されます。

 ・Remote Rendering
 ・Remote SOS
 ・Remote Server

ここでは、例として、Remote Renderingのメニューを削除する手順を説明します。なお、下記の例では、上記のSOS並列分散処理で使用した「user_server_configs.py」ファイルを使用しています。

1.「user_server_configs.py」ファイルをテキスト・エディタで開き、削除するメニューの項目と実行されるコマンドの名前を検索します。 160行目と162行目に「Remote Rendering」の記述が見つかるはずです。以下のように、160行目の「{ 'server_name':'Remote Rendering',」という記述から、183行目の「},」までが、「Remote Rendering」メニューのための設定項目です。また、実行されるコマンドは、この設定項目の中の「'commands'」の中の「system」の後に記述されている「remoteRenderer」になります。

{ 'server_name':'Remote Rendering',
'gui':[
[['title', ITEM_TEXT, "Remote Rendering", ""], False],
[['remotehost', ITEM_STR, "Remote computer:", "Specify the remote computer.", "localhost"], True],
...
'commands':[
['system', remoteRenderer+' '+str(ver)+' "$sshcmd$" $usetunnel$ $username$ $remotehost$ $nprocs$ $useglsw$ $appbuffering$ $localport$ $remoteport$ $security_option$', True]
],
...
'userr':True,
'connect_url':'connect://localhost?timeout=90'
},

2. 実行コマンドを削除します。 「user_server_configs.py」ファイルの中で、1.で確認した実行コマンド「remoteRenderer」を検索します。以下のように、72行目に「remoteRenderer = "cpython"...」の記述が見つかるはずです。この行を削除します。

remoteRenderer = "cpython"+str(ver)+" \""+os.path.join(ceihome, "bin", "run_ceishell_remote_renderer_fe.py")+"\""

他のメニューでも同じコマンドを使用している可能性があります。他のメニューで使用していないことを確認した後に削除するようにしてください。

3.メニューの項目を削除します。 1.で確認した「Remote Rendering」メニューの設定項目を削除します。

以上の操作で項目の削除は完了です。次回以降、CEIStartの「Click a configuration to edit」リストに上記の操作で削除したメニューは表示されなくなります。