Skip to main content

MPICH2 on Windows XP: Launch Failed "error 2 - The system cannot find the file specified"

I had a problem executing a parallel program built with MPICH2 from Argonne National Laboratory. I had been able to use "mpiexec" to execute example codes and my test codes but the followings happened yesterday when I tried to run my "Practice.exe" parallel Hello World code:

The current directory is "t:\", which is a subst drive that maps to "c:\Briefcase\Tmp".
$mpiexec -np 4 "Practice.exe"
launch failed: CreateProcess(Practice.exe) on 'tvs-laptop' failed, error 2 - The system cannot find the file specified.

launch failed: CreateProcess(Practice.exe) on 'tvs-laptop' failed, error 2 - The system cannot find the file specified.

launch failed: CreateProcess(Practice.exe) on 'tvs-laptop' failed, error 2 - The system cannot find the file specified.

launch failed: CreateProcess(Practice.exe) on 'tvs-laptop' failed, error 2 - The system cannot find the file specified.

I spent many hours yesterday trying to find what went wrong but got no luck. This morning, by accident and perhaps serendipity, I tried to execute the code with an absolute (non-subst) path. It works!! Here is the output:
$mpiexec -np 4 c:\Briefcase\Tmp\Practice.exe
[2 of 4] Hello from tvs-laptop
[0 of 4] Hello from tvs-laptop
[3 of 4] Hello from tvs-laptop
[1 of 4] Hello from tvs-laptop

MPI executes parallel codes by making multiple Remote Procedure Calls (RPCs). My guess is that subst drives are created on a per-user session basis and is not accessible when an RPC call is made. That's why using mpiexec when the present working directory is a subst drive doesn't work.

Keywords: , , , ,

Comments

Anonymous said…
Thanks for the tip. I was getting the same error, and found that mpiexec was pointing to the wrong location. Without your tip, I would have spent many more hours staring at the screen.