1

doParallel複数のWindows PC(ネットワーク上)で使用しようとしています。次のプログラムを使用するように言われました

nodes <- c(rep("localhost",15),rep("node001",16))
cl <- makeCluster(nodes)
registerDoParallel(cl)

「localhost」がプライマリ PC のデフォルトの識別子であることはわかっていますが、「node001」は理解できないものです。ネットワーク上の他のコンピュータを特定するにはどうすればよいですか? IP アドレスを試しましたが、接続されません。

4

1 に答える 1

0

まず、ローカル マシンに「ssh」コマンドがインストールされていますか。また、「localhost」と「node001」で「sshd」が実行されていますか。これらは、複数の Windows マシンで並列パッケージを使用しようとする場合の最大の問題です。プログラムを動作させる前に、少しシステム管理作業を行う必要があるかもしれません。

の最初の引数makeClusterは、ホスト名または IP アドレスを含む数値または文字ベクトルでなければなりません。文字ベクトルが使用される場合、値は、クラスター ワーカーの起動に使用される "ssh" コマンドを作成するために使用されます。不適切なホスト名を指定すると、次のようにエラー メッセージが表示makeClusterされ、ハングすることがあります。

> library(parallel)
> nodes = c("localhost", "node001")
> makeCluster(nodes)
ssh: Could not resolve hostname node001: Name or service not known
^C
> 

R 環境に依存するため、エラー メッセージの表示に依存することはできないことに注意してください。

nslR関数を使用して「node001」を解決できることを確認することをお勧めします。

> nsl("node001")
NULL
Warning message:
In nsl("node001") : nsl() was unable to resolve host 'node001'

これが失敗した場合は、正しいホスト名または IP アドレスを決定する必要があります。makeCluster成功した場合は、問題の本当の原因を探し続ける必要があります。残念ながら、ハングする理由はたくさんあります。

于 2016-01-15T14:13:33.323 に答える