Clear Filters
Clear Filters

How can I force Matlab system command to use a different mpiexec than its own?

19 views (last 30 days)
I have to run another program from Matlab, which however has a parallel environment and thus uses the mpiexec. However, even though I installed Microsoft Open MPI, when I check which mpiexec will be used when running my program with the Matlab system command I get this:
[~,cmd] = system('where mpiexec')
cmd =
C:\Program Files\MATLAB\R2016b\bin\win64\mpiexec.exe
C:\Program Files\Microsoft MPI\Bin\mpiexec.exe
which means Matlab prioritizes its own mpiexec over Microsoft's. However I get errors with the one from Matlab, so I need the other one. I see when I check the path variable with getenv('PATH') there is no Matlab in the path variable, however using
[~,cmd] = system('echo %PATH%')
cmd =
C:\Program Files\MATLAB\R2016b\bin\win64;C:\Program Files\Microsoft MPI\Bin\;.....
clearly shows that Matlab adds itself to the path once it is opening the shell... So how can I force Matlab system command to not add itself or at least to use the other mpiexec?
Thanks!
  1 Comment
Andrea Michelotti
Andrea Michelotti on 27 Sep 2021
Hi,
I had the same issue and I tried many cmd lines trying to execute mpiexec in the right way.
At the end, I just copied mpiexec.exe from Microsoft MPI folder into my MATLAB one and it worked fine.

Sign in to comment.

Answers (1)

Marcel Beining
Marcel Beining on 27 Oct 2017
Well, I found some workaround myself (searching for the mpi software on the path and temporarily putting it in front of Matlab, see below), but if there is a more elegant solution than this, please report it to me, thanks!
[~,pth] = system('echo %PATH%');
pth = strsplit(pth,';');
mpisoftw = cellfun(@(x) ~isempty(strfind(x,'mpi'))|~isempty(strfind(x,'MPI')),pth);
[~,cmd] = system(sprintf('set PATH=%s;%%PATH%%& where mpiexec',pth{find(mpisoftw,1,'first')}))
cmd =
C:\Program Files\Microsoft MPI\Bin\mpiexec.exe
C:\Program Files\MATLAB\R2016b\bin\win64\mpiexec.exe

Categories

Find more on Downloads in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!