2011-07-21 9 views
14

Evaluation> Parallel Kernel Configurationでmathematicaでリモートカーネルを設定しようとすると、 "Remote Kernels"に行き、ホストを追加します。その後、私は遠隔地のカーネルを起動しようとし、そのうちのいくつかだけが起動する(それらの数は異なる)。そして、私は次のようなmsgを得る。Mathematicaで並列リモートカーネルを設定するには?

KernelObject :: rdead:リモート[nodo2]で接続されたサブカーネルが表示されない が表示されます。 >> LinkConnect :: linkc: LinkObject [36154 @ 192.168.1.104,49648 @ 192.168.1.104,38,12]に接続できません。 >> General :: stop:この計算中に、LinkConnect :: linkcのさらなる出力が抑制されます。 >>

これを取得する方法はありますか?

リモートカーネルの一部がロードされることもありますが、すべてがロードされないこともあります。前もって感謝します。


それはカーネルのすべてをロードしましたが、それは一般的に1つか2つのリモートカーネル、ないたらこれは$ConfiguredKernels // InputForm

{SubKernels`LocalKernels`LocalMachine[4], 
SubKernels`RemoteKernels`RemoteMachine["nodo2", 2], 
SubKernels`RemoteKernels`RemoteMachine["nodo1", 2], 
SubKernels`RemoteKernels`RemoteMachine["nodo3", 2], 
SubKernels`RemoteKernels`RemoteMachine["nodo4", 2], 
SubKernels`RemoteKernels`RemoteMachine["nodo5", 2]} 

のための私の出力に含まです。

+0

ところで、これはMathematicaの7で動作するように使用のMathematica 8、で発生 – Ivan

+0

誰かがこの問題を確認したか、または複製しましたか? –

+0

これは動作しないことが確認できます。 Mathematica 8.0.1でリモートカーネルインターフェースを使って自分のローカルカーネルに接続しようとしたところ、同じエラーメッセージで失敗した。 –

答えて

10

情報はほとんどありません。したがって、この回答は100%役に立たないかもしれません。

常に考慮する最初の問題は、リモートマシンのライセンスです。いくつかのカーネルが起動しても、起動していないカーネルがあれば、そのマシンのカーネルのライセンスを使い果たした可能性があります。この記事の残りの部分では、ライセンスは問題ではないと見なされます。

接続方法

デフォルトでMathematicaのでのリモートカーネルインターフェースはRSHは非常にセキュアなプロトコルではないため、多くの環境のための正しい選択ではないRSHプロトコルを、前提としています。

他のオプションは、はるかに広くサポートされているsshです。 sshクライアントが多数ありますが、Mathematicaに含まれるクライアント、つまりWolframSSH.jarに焦点を当てます。このクライアントはJavaベースで、Mathematica(Mac、Window、Linux)でサポートされているすべてのプラットフォームで同じように動作するという利点があります。

カーネル接続ごとにパスワードを入力する必要がないように、秘密鍵と公開鍵のペアを作成すると便利です。秘密鍵はコンピュータに残り、公開鍵はリモートコンピュータ(通常はリモートホームディレクトリの.sshフォルダ)に配置する必要があります。

あなたがそうのように、WolframSSHKeyGen.jarファイルを使用することができ、公開鍵/秘密鍵のペアを生成するには:

java -jar c:\path\to\mathematica\SystemFiles\Java\WolframSSHKeyGen.jar 

と出てくるダイアログの指示に従います。完了したら、公開鍵をにコピーしてください。リモートマシン上のsshフォルダ 。私の場合、私はkernel_keykernel_key.pubという名前のキーを自動的にその方法で指定しました。

あなたは今(リモートマシン上lsコマンドを使用して)そのように、コマンドラインからの接続をテストすることができます。

java -jar c:\path\to\mathematica\SystemFiles\Java\WolframSSH.jar --keyfile kernel_key [email protected] ls 

これが動作する場合、あなたはのMathematicaの側に仕上げることができるはずですもの。

次の設定を必要とする接続を行うためにリモートカーネル接続

、リモートマシンの名前:

machine = "machine.example.com"; 

ログイン名、通常は$ユーザー名:

user = $UserName; 

sshバイナリの場所:

ssh = FileNameJoin[{$InstallationDirectory, "SystemFiles", "Java", "WolframSSH.jar"}]; 

前述したように、秘密鍵:

privatekey = "c:\\users\\arnoudb\\kernel_key"; 

起動コマンドカーネル用:一緒にすべてを入れて

math = "math -mathlink -linkmode Connect `4` -linkname `2` -subkernel -noinit >& /dev/null &"; 

設定機能:

ConfigureKernel[machine_, user_, ssh_, privatekey_, math_, number_] := 
SubKernels`RemoteKernels`RemoteMachine[ 
    machine, 
    "java -jar \"" <> ssh <> "\" --keyfile \"" <> privatekey <> "\" " <> user <> "@" <> machine <> " \"" <> math <> "\"", number] 

これは使用しています4つのリモートカーネルを使用するように定義しています。

remote = ConfigureKernel[machine, user, ssh, privatekey, math, 4] 

これはカーネルを起動する:

LaunchKernels[remote] 

カーネルは、すべての接続とリモートされている場合、このコマンドは確認する:

ParallelEvaluate[$MachineName] 
+0

編集した質問を参照してください。 – Ivan

関連する問題