On Windows we start localhost MPI (v5.1) jobs using the following command:
mpiexec.hydra.exe -bootstrap fork -envall -np <Nprocessors> <prog> <args>
If the job is started from a GUI this leads to a pmi_proxy.exe console window popup. Is there any way to get rid of the window? The window serves no purpose in our case because both stderr and stdout are redirected to a file and is very annoying because sometimes multiple jobs are executed one after another. An optional (say via an environment variable) call to FreeConsole() in pmi_proxy would be sufficient for this I believe.
Could you please provide more details how you run mpiexec.hydra.exe from your GUI application (which system calls do you use)? How did you detect that the popup window is from pmi_proxy.exe?
Thank you for the response. The set-up is a bit complicated but it boils down to this: the mpiexec.hydra.exe is executed from a unix shell script which is in turn executed by a background daemon process at user's command. The shell script usually contains multiple commands (for example it may execute the same program without mpiexec) but none of them pops up the console window until mpiexec.hydra.exe -bootstrap fork is executed.
How do I know it's pmi_proxy? Because the console window title shows the full path of the executable and it ends with pmi_proxy.exe. Besides, Process Explorer tells me this window belongs to pmi_proxy.exe, and also in the Process Explorer I see that pmi_proxy.exe spawns a conhost.exe process.
By the way, if I use mpiexec.smpd.exe the window does not pop up but I do not like this setup because it requires the smpd service to be running. The nice thing about hydra with -bootstrap fork is that then we do not need to start a service on the customer's computer and that on our test machines we can run executables built with different IntelMPI versions on the same machine without having to worry about version mismatch between mpiexec and the smpd (or hydra) service.