2017-03-03 3 views
1

Ich verwende dMPI auf einem HPC und möchte die Ausgabe von Arbeitern protokollieren. Mit doParallel konnte ich makeCluster(outfile='myfile.log') verwenden. Mit doMPI scheint es kein outfile Argument in irgendeiner der Methoden zu geben. Ich habe versucht, sinkWorkerOutput() zu verwenden. Das funktioniert, aber schrieb nur das Protokoll für einen der Arbeiter. Ich vermute, dass jeder Arbeiter den anderen überschreibt. Gibt es ein Analog für outfile für doMPI?Mit doMPI in die Protokolldatei schreiben

Eine verwandte Frage - innerhalb eines Arbeiters, kann ich die Arbeiternummer finden?

EDIT: Hier ist ein Link zu einer Antwort zu diskutieren, wie outfile verwenden: How can I print when using %dopar%

Vielen Dank für Ihre Hilfe,

Ben

+0

Was ist mit "Sinken" oder "Katze" in Ihrer Funktion? – Jav

Antwort

0

Um Arbeiter Ausgabe in eine Datei im doMPI Paket zu senden gesetzt, die startMPIcluster "ausführliche" Option TRUE:

cl <- startMPIcluster(verbose=TRUE) 

Dies erzeugt eine Datei p er Arbeiter mit Namen der Form "MPI_1_steve_41747.log". Der MPI-Rang, der Benutzername und die Prozess-ID werden verwendet, um die Dateinamen eindeutig zu machen. Sie können das Protokollverzeichnis auch über die Option "logdir" angeben.

Um eine Werkernummer zu erhalten, rufen Sie einfach die mpi.comm.rank Funktion auf.

Verwandte Themen