2017-03-03 3 views
1

私はHPCでdoMPIを実行しており、ワーカーから出力をログに記録したいと思います。 doParallelを使用して、私はmakeCluster(outfile='myfile.log')を使用することができました。 doMPIでは、いずれのメソッドにもoutfile引数がないようです。私はsinkWorkerOutput()を使ってみました。これは機能しますが、ワーカーの1人だけのログが書き込まれます。私は各労働者がもう一方の労働者を上書きしていると思う。 doMPI用のoutfileのアナログはありますか?doMPIを使用してログに書き込む

関連する質問 - ワーカーの中で、ワーカー番号を見つけることはできますか?

編集:ここOUTFILEを使用する方法を議論の答えへのリンクです:How can I print when using %dopar%

doMPIパッケージ内のファイルへの労働者の出力を送信するには

+0

関数内に 'sink'や' cat'を置くのはどうですか? – Jav

答えて

0

ベン、あなたの助けをありがとう、startMPIcluster "冗長" オプションがTRUEに設定:

cl <- startMPIcluster(verbose=TRUE) 

これは、1つのファイルpを作成し、 "MPI_1_steve_41747.log"の形式の名前を持つ作業者を探します。 MPIランク、ユーザー名、およびプロセスIDは、ファイル名を一意にするために使用されます。 "logdir"オプションでログディレクトリを指定することもできます。

ワーカー番号を取得するには、単にmpi.comm.rank関数を呼び出すことができます。

関連する問題