フロントエンド Qt-GUI とソルバー EXE で構成されるアプリケーションを開発しました。これら 2 つは独立したモジュールであるため、以下のような QProcess を使用して、Qt-GUI で EXE を正常に起動できました。
QProcess *myProcess = new QProcess;
myProcess->start(exeFilePath, args);
どこ
exeFilePath = "EXE"
args = "input1 -option1 name1 -option2 name2"
QProcess のシグナルから、出力チャネルから正常に読み取り、Qt-GUI の QGLWidget で進行状況を更新することができました。
物事は時間とともに変化しました。EXE は現在、MPI ベースの実行可能ファイルである MPI-EXE であり、実用的な方法で Qt-GUI を介して使用する必要があります。
上記の MPI-EXE の QProcess 演習を次のように変更してみました。
exeFilePath = "mpirun -np 4 MPI-EXE"
これを行うと、myProcess を開始できず、エラーが出力されたときに UnknownError が返されました。私が理解しているように、QProcess 自体は別のスレッドで実行され、これから問題を引き起こす 4 プロセスの MPI-EXE を起動する必要があります。
で助けが必要です:
- Qt-GUI がフリーズせずに MPI-EXE を起動するにはどうすればよいですか?
- QGLWidget で進行状況をプロットする必要があるため、MPI-EXE の進行状況を監視するにはどうすればよいですか?
私の質問に対するコメントをお待ちしております。助けてください。ありがとう。