@@ -191,14 +191,14 @@ function Distributed.launch(mgr::MPIManager, params::Dict,
191191end
192192
193193# Entry point for MPI worker processes for MPI_ON_WORKERS and TCP_TRANSPORT_ALL
194- setup_worker (host, port) = setup_worker (host, port, nothing )
195- function setup_worker (host, port, cookie)
194+ setup_worker (host, port; kwargs ... ) = setup_worker (host, port, nothing ; kwargs ... )
195+ function setup_worker (host, port, cookie; stdout_to_master = true , stderr_to_master = true )
196196 ! MPI. Initialized () && MPI. Init ()
197197 # Connect to the manager
198198 io = connect (IPv4 (host), port)
199199 wait_connected (io)
200- redirect_stdout (io)
201- redirect_stderr (io)
200+ stdout_to_master && redirect_stdout (io)
201+ stderr_to_master && redirect_stderr (io)
202202
203203 # Send our MPI rank to the manager
204204 rank = MPI. Comm_rank (MPI. COMM_WORLD)
326326
327327# Enter the MPI cluster manager's main loop (does not return on the workers)
328328function start_main_loop (mode:: TransportMode = TCP_TRANSPORT_ALL;
329- comm:: MPI.Comm = MPI. COMM_WORLD)
329+ comm:: MPI.Comm = MPI. COMM_WORLD,
330+ stdout_to_master= true ,
331+ stderr_to_master= true )
330332 ! MPI. Initialized () && MPI. Init ()
331333 @assert MPI. Initialized () && ! MPI. Finalized ()
332334 if mode == TCP_TRANSPORT_ALL
@@ -359,7 +361,7 @@ function start_main_loop(mode::TransportMode=TCP_TRANSPORT_ALL;
359361 (obj, status) = MPI. recv (0 , 0 , comm)
360362 (host, port, cookie) = obj
361363 # Call the regular worker entry point
362- setup_worker (host, port, cookie) # does not return
364+ setup_worker (host, port, cookie, stdout_to_master = stdout_to_master, stderr_to_master = stderr_to_master ) # does not return
363365 end
364366 elseif mode == MPI_TRANSPORT_ALL
365367 comm = MPI. Comm_dup (comm)
0 commit comments