Skip to content

Commit 6f01691

Browse files
committed
add mpiflags and support exeflags
1 parent 28d9968 commit 6f01691

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/mpimanager.jl

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,12 @@ function Base.show(io::IO, mgr::MPIManager)
121121
print(io, "MPI.MPIManager(np=$(mgr.np),launched=$(mgr.launched),mode=$(mgr.mode))")
122122
end
123123

124+
Distributed.default_addprocs_params(::MPIManager) =
125+
merge(Distributed.default_addprocs_params(),
126+
Dict{Symbol,Any}(
127+
:mpiexec => nothing,
128+
:mpiflags => ``,
129+
))
124130
################################################################################
125131
# Cluster Manager functionality required by Base, mostly targeting the
126132
# MPI_ON_WORKERS case
@@ -138,8 +144,9 @@ function Distributed.launch(mgr::MPIManager, params::Dict,
138144
end
139145
cookie = string(":cookie_",Distributed.cluster_cookie())
140146
setup_cmds = `import MPIClusterManagers\;MPIClusterManagers.setup_worker'('$(mgr.ip),$(mgr.port),$cookie')'`
141-
MPI.mpiexec() do mpiexec_cmd
142-
mpi_cmd = `$mpiexec_cmd -n $(mgr.np) $(params[:exename]) -e $(Base.shell_escape(setup_cmds))`
147+
MPI.mpiexec() do mpiexec
148+
mpiexec = something(params[:mpiexec], mpiexec)
149+
mpi_cmd = `$mpiexec $(params[:mpiflags]) -n $(mgr.np) $(params[:exename]) $(params[:exeflags]) -e $(Base.shell_escape(setup_cmds))`
143150
open(detach(mpi_cmd))
144151
end
145152
mgr.launched = true

0 commit comments

Comments
 (0)