2

PVM 3.4.5-12 (apt-get を使用する場合の PVM パッケージ) を使用する Ubuntu 9.10 では、ホストの追加後にプログラムが終了します。

laptop> pvm
pvm> add bowtie-slave
add bowtie-slave
terminated
laptop>

現在の構成のみ $PVM_RSH = bin/usr/ssh
パスワードなしでスレーブに完全に ssh 接続し、コマンドを実行できます。

何か案は?
前もって感謝します!

サンプル ログは次のとおりです。

ノートパソコンのログ

[t80040000] 02/11 10:23:32 ラップトップ (127.0.1.1:xxxxx) LINUX 3.4.5
[t80040000] 02/11 10:23:32 準備完了 Thu Feb 11 10:23:32 2010
[t80040000] 02/11 10:23:32 netoutput() sendto: errno=22
[t80040000] 02/11 10:23:32 em=0x2c24f0
[t80040000] 02/11 10:23:32 [49/à][6e/à][76 /à][61/à][6c/à][69/à][64/à][20/à][61/à][72/à]
[t80040000] 02/11 10:23:32 netoutput () sendto: 無効な引数
[t80040000] 02/11 10:23:32 pvmbailout(0)

ボウタイログ

[t80080000] 02/11 10:23:25 ボウタイスレーブ (xxx.xxxxx:xxxxx) LINUX64 3.4.5
[t80080000] 02/11 10:23:25 準備完了 Thu Feb 11 10:23:25 2010
[t80080000] 02 /11 10:28:26 work() run = STARTUP、マスターの待機中にタイムアウトしました
[t80080000] 02/11 10:28:26 pvmbailout(0)

4

3 に答える 3

2

私もこの問題に苦労してきました。私にとって失敗していたことがいくつか見つかりました。

まず、マスター ホストが、スレーブ ホストによって認識されないノード名で開始されていました。つまり、それは自分自身を「foobar」と呼んでいましたが、実際には「foobar.example.com」であるべきだったので、スレーブはそれと話す方法を知っていました。これを指定するには、次のようにマスター コンソールを起動します。

pvm -nfoobar.example.com

スレーブのフルネームも指定しました。したがって、コンソールで:

add baz.mumble.example.com

次に、スレーブを追加するとコンソールがハングするという問題が発生しました。ねえ、少なくともそれはただ止まるだけではありません!これはスレーブホストのファイアウォールが原因であることがわかりました---通信がドロップされていました(pvmdはセットアップ後にssh経由で通信せず、通信する別のポートを持っています)。残念ながら、ファイアウォールなしで実行することは、そのホストのオプションではありません。デフォルトでは、pvmd はランダムなポート番号を選択しますが、これは私が望んでいるものではありません。どうやら、PVMNETSOCKPORT使用するポートを制御する、文書化されていない環境変数 があるようです。現在、ファイアウォールに正しい穴を開けることができるように、正しく設定することに取り組んでいます。

幸運を!さらに進んだら、この回答を更新しようとします。

于 2010-02-22T16:11:46.517 に答える
1

ああ... PVM を起動する喜び! 外部ライブラリInterCommを介して PVM を使用しています。PVM をどのプラットフォームでも問題なく開始できるようにすることは、常に楽しい作業です。あなたが試すことができるいくつかのことはここにあります:

rsh計算ノードに接続できる場合は、 を設定し$PVM_RSH=/path/to/rshます。それ以外の場合は、次の方法で構成しますssh

パスワードなしの SSHをセットアップし、それが機能することを手動で確認します。

次に、$PVM_ROOT/ssh次のようなものを含む を作成します。

#!/bin/sh

host=$1
shift
/usr/bin/ssh $host ". ~/.pvmprofile; $@"

それが処理されたら:

いくつかの環境変数を設定します (これはマシンに依存します):

setenv PVM_ARCH LINUX64
setenv PVM_ROOT /users/ps14/opt-intel/pvm3
setenv PVM_BIN ${PVM_ROOT}/bin

# Set the following accordingly:    
setenv PVM_RSH ${PVM_ROOT}/ssh
#setenv PVM_RSH rsh

ここで、次の変数を含む「.pvmprofile」ファイルを作成します。

rm -f ~/.pvmprofile
env | grep PVM_ > ~/.pvmprofile

一意のホスト名を含むホストファイルを作成します。

sort -k 1,1 -u ${PBS_NODEFILE} >!  pvm_hostfile

次に、PVM を起動してノードを追加します。私はワンライナーとしてこれを行うのが好きです:

printf "%s\n%s\n" conf quit|${PVM_ROOT}/lib/pvm pvm_hostfile
于 2010-02-17T23:33:37.597 に答える
1

今まで自分の質問に答えられるとは思っていませんでした。失敗した理由は、/etc/hosts 内のホスト ファイルが原因でした。

Ubuntu では localhost が 127.0.0.1 localhost に設定されていますが、PVM を使用する場合は実際の IP アドレスを使用する必要があります。したがって、実際の IP アドレスに続いてマシン名を localhost の上に配置し、PVM が最初にその行を読み取るようにしました。その後、すべてが機能していました。ただし、ループバック エラー メッセージが表示されなかった理由はわかりません。

rescdsk もコメントしているように、マスター コンソールを起動するためにどちらを使用するかを指定することもできますが、私は怠け者になり、pvm と入力するだけで機能するようにしたかったのです。

私はまだセキュリティの問題に対処していません... おそらく、rescdsk または Pete がセキュリティ ホールについていくつかの良い提案をしてくれるでしょう。ただし、私のホスト/クラスターはインターネットに接続されません。懸念事項はありますか?

于 2010-02-23T16:30:00.427 に答える