Parallel Telent V1.11


テルネットによる分散処理・マルチマシン並列コンピューティング

Parallel Telent (パラレルテルネット) は、複数のパソコンを同時に使って複数のコマンドを並列実行するためのソフトウェアです。時間のかかるコマンド処理が多数ある場合に、それらを複数のマシンで分散処理できます。単なるテルネット クライアントとしても使用できます。

多数のコマンドを複数のマシンで実行する場合、通常なら、複数のバッチ ファイルを作成して、各マシンで実行することになるでしょう。しかし、この方法では、負荷を均等に配分するのが困難で、多くのマシンが処理を終えたのに一部のマシンだけいつまでも実行を終えないようなことになりがちです。バッチ ファイルの実行を開始した後で、未実行のコマンドを追加・削除・変更するのが難しく、コマンド間に依存関係がある場合 (マシン A で処理したデータをマシン B でさらに処理するといった場合) も対応が困難です。こうした問題を Parallel Telnet は解決します。

Parallel Telnet 概念図 [※イラスト部品は来夢来人の提供です]

Parallel Telnet における分散処理の単位は、「アトム」と呼ぶコマンド グループです。それぞれのアトムには複数のコマンド (コマンドラインで実行できるコマンド) を登録できます。Parallel Telent 上で複数のアトムを定義し、複数のリモート サーバーに接続すると、各アトムが順次空いているサーバー接続で実行されます。

それぞれのアトムについて、別の特定のアトムが終わってからのみ実行するとか、特定の接続でのみ実行できるといった条件を指定することもできます。

簡単な使い方

  1. 1 台以上のマシンでテルネット サーバーを起動しておきます。Windows 用のテルネット サーバーとしては当社の PC Telnetd があります※1。Linux 等の Windows 以外のマシンもサーバーとして使用できます※2
  2. Parallel Telent をインストールしたマシンでコマンドプロンプトを起動し、paratel を実行します。
  3. !open 制御コマンドでリモートのテルネット サーバーに接続します。パラメータとして IP アドレス (同一ネットワーク上の Windows マシンなら Windows マシン名でも可) を指定します。たとえば !open 192.168.1.10 などとなります。リモート マシンの IP アドレスは、そのマシン上で ipconfig を実行することで確認できます。
  4. 複数の !open コマンドを使用して、複数のリモート マシンに接続できます。最初の接続には C1、次の接続には C2 というように接続名が付けられます。
  5. dir などの任意のコマンドを入力すると、最後に接続したリモート マシンでそのコマンドが実行されます。!cc <接続名> 制御コマンドを使ってコマンド送信先のリモート マシンを変更することもできます。
  6. !atom 制御コマンドを実行すると、アトムの定義が開始され、以降のコマンド入力はそのアトムの内容として登録されます。最後に !end-atom 制御コマンドを実行して、アトムを完成させます。最初のアトムには A1、次のアトムには A2 というようにアトム名が付けられます。
  7. 繰り返し !atom!end-atom を入力して、複数のアトムを登録できます。!list-atom でアトムを一覧表示できます。
  8. 完成したアトムは、空いている(レディ状態の)サーバー接続で実行されます。レディ状態の接続がないときは、そのような接続が出現するまで待機します。
  9. アトム実行中の接続は占有状態となり、他のアトムを受け付けなくなります。サーバー接続から文字列 #END# を返信すると、アトムはレディ状態に戻り、再び他のアトムを受け付けるようになります。アトム完了指標文字列 #END# は、!atom-end-marker 制御コマンドまたは !atomuntil パラメータで変更できます。
  10. 時間のかかるコマンドをそれぞれ別個のアトムに登録し、複数のサーバー接続を確立すると、各アトムが各接続で分散実行されます。
  11. コマンドを 1 つずつ入力する代わりに、コマンド ファイルに記述しておいたコマンドを !read-command-file で読み込むこともできます。
  12. !help または !h で制御コマンドを一覧表示できます。
  13. 最後に !quit または !q で Parallel Telnet を終了します。

※1 また、Windows 2000 以上の Professional 版には、テルネット サーバーが付属しています。

※2 文字セットなどの通信プロトコルに互換性がある場合。

時間のかかる test 1test 2test 3 という 3 つのコマンドを、192.168.1.11192.168.1.12 で稼働している 2 つのテルネット サーバーで分散処理することを考えます。まず次のように Parallel Telnet に入力します。

!atom
test 1
echo #END#
!end-atom

!atom
test 2
echo #END#
!end-atom

!atom
test 3
echo #END#
!end-atom

これで A1A2A3 の 3 つのアトムが登録されます。ここで次のように入力します。

!open 192.168.1.11
!open 192.168.1.12

これにより、C1C2 の 2 つの接続が開かれます。開かれた直後の接続はレディ状態になります。

まず最初のアトム A1 が最初の接続 C1 に割り当てられ、test_1 コマンドの実行が始まります。直後に 2 番目のアトム A2 が 2 番目の接続 C2 に割り当てられ、test_2 コマンドの実行も始まります。3 番目のアトム A3 は、レディ状態の接続がもうないため、すぐには実行されず待機します。

しばらくして test_1 の実行が終了すると、echo #END# が実行されて Parallel Telenet がアトム完了指標文字列 #END# を受信することになります。この結果、アトム A1 は完了し、A1 を実行していた接続 C1 はレディ状態に戻ります。

待機していたアトム A3 が、レディ状態になった接続 C1 に割り当てられ、実行を開始します。C1 は再び占有状態になります。

このような形で、存在する接続をフルに活用しながら、複数のコマンドを同時に分散処理することができます。

上記コードの実行結果例

上記コードの実行結果例

(※最初に !system-msg-color 0 とし、接続先として localhost を使用)

Parallel Telent の仕様

ローカルエコー あり
送信単位 行単位
文字コード Shift JIS

よくある質問 (FAQ)

入力が二重に表示される
テルネット サーバー側でのエコーが「あり」に設定されている場合は、「なし」に変更してください。

改版履歴

1.0   2010/08/10
初版
1.01   2010/08/12
!open-log-file に接続名を指定しないとログが何も記録されない問題を修正
1.10   2010/09/09
サーバー側から切断されたり、exit でサーバー側プロセスを終了することによって切断すると、接続管理情報が合わなくなり、!lc で不正な情報が表示されるなどの問題を修正
!open コマンドに color <c> パラメータを追加
!list-atom コマンドに d パラメータを追加
!list-macro コマンドに d パラメータを追加
!set-connection コマンドを追加して !current-connection コマンドを吸収
!set-atom コマンドを追加
タイミングによってアプリケーションエラーが発生する障害を修正
使いやすくするために各種の細かい調整を実施
1.11   2010/09/14
1 つの接続に対して複数のログファイルを開けるように改版
!open-log-filecnsysxsxr オプションを追加
!delete-completed-atom コマンドを追加

リファレンス

Parallel Telent リファレンス マニュアル

ダウンロード

Parallel Telnet V1.01 のダウンロード

ダウンロードされた ParallelTelnet.zip を展開して、中身を任意のフォルダに置いてください。Personal 版として使用できます。

Parallel Telnet には無料の Personal 版と有料の Professional 版があります。Personal 版では最大 2 つのサーバーにしか接続できませんが、Professional 版では任意の数のサーバーに接続できます。

Professional 版を購入するには、ここをクリックしてください。

開発・提供

多摩ソフトウエア有限会社   info@tamasoft.co.jp
〒120-0034 東京都足立区千住3-6 ツォード千住 壱番館801

※ご要望、ご質問などありましたら、お気軽にお寄せください。


Last updated at