I know this may be more of an mpi question but i'm wondering if this type of behaviour has been seen anywhere else. mpiexec.exe launches several child processes and monitors them. Once the child processes all finish, normal behaviour for mpiexec is to finish and exit.
If i use a QProcess to start mpiexec.exe in attached mode (QProcess->start()), mpiexec.exe will never finish and stays in my task manager evern after all of it's child processes have completed and exited properly. The QProcess state goes into Qprocess::Running and stays there. The Qprocess emits the started and stateChanged signals (and all of the read signals) but never emits the finished signal.
So essentially everything goes properly except that mpiexec.exe will not actually 'finish' and close.
If i launch mpiexec.exe in detached mode (QProcess->startDetached()) or if i run mpiexec from the command line it will finish and exit properly.
Does anyone have any ideas on this? I need to monitor when the process finishes (either by the finsihed slot or peridically calling state) so i need to use the attached start() mode.
EDIT: I should mention that starting, stopping, reading from, writing to, and everything else to do with QProcesses works for me as long as i'm not launching mpiexec.exe. Any other 'normal' executable works fine. I know this is MPI related but i was hoping someone has seen this behaviour and has an idea.
Using Windows. QT 4.3
Bookmarks