I have a master process which spawns a number of workers of which i'd
like to save the output in separate files.
Usually i use the '-output-filename' option in such a situation.
However, if i do
mpirun -np 1 -output-filename work_out master arg1 arg2
all the files work_out.1, work_out.2, ... are ok,
but work_out.0 contains both outputs of the master process(process 0
in COMM_WORLD) and
of the first worker (process 0 in the communicator of the spawned processes).
I also tried the '-tag-output' option, but this involves several
because i have to separate the combined outputs
mpirun -np 1 -tag-output master arg1 arg2 > total.out
grep "\[1,0\]" total.out | sed 's/\[1,0\]<stdout>://' > master.out
grep "\[2,0\]" outA | sed 's/\[2,0\]<stdout>://' > worker_0.out
grep "\[2,1\]" outA | sed 's/\[2,1\]<stdout>://' > worker_1.out
Of course, this could be wrapped in a script, but it is a bit cumbersome
(and i am not sure if the job-ids are always "1" and "2") ...
Is there some simpler way to separate the output of the two streams?
If not, would it be possible to extend the -output-filename option i
such a way that it
would also combine job-id and rank withe the output file:
for the master's output, and
for the worker's output?