Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Qt中使用MPI可执行文件?_Qt_Mpi_Qthread_Qprocess - Fatal编程技术网

如何在Qt中使用MPI可执行文件?

如何在Qt中使用MPI可执行文件?,qt,mpi,qthread,qprocess,Qt,Mpi,Qthread,Qprocess,我已经开发了一个应用程序,其中包括一个前端Qt GUI和一个解算器EXE。由于这两个模块是独立的,我可以使用如下QProcess在Qt GUI中成功启动EXE: QProcess *myProcess = new QProcess; myProcess->start(exeFilePath, args); 在哪里 从QProcess的信号中,我可以成功地读取输出通道并在QtGUI的QGLWidget中更新进度 随着时间的推移,情况发生了变化。EXE现在是MPI-EXE,一个基于MPI的

我已经开发了一个应用程序,其中包括一个前端Qt GUI和一个解算器EXE。由于这两个模块是独立的,我可以使用如下QProcess在Qt GUI中成功启动EXE:

QProcess *myProcess = new QProcess;
myProcess->start(exeFilePath, args);
在哪里

从QProcess的信号中,我可以成功地读取输出通道并在QtGUI的QGLWidget中更新进度


随着时间的推移,情况发生了变化。EXE现在是MPI-EXE,一个基于MPI的可执行文件,我需要通过QtGUI以实际的方式使用它

我尝试了上述MPI-EXE的QProcess练习,但做了以下更改:

exeFilePath = "mpirun -np 4 MPI-EXE"
执行此操作时,myProcess无法启动,并且在打印错误时,它给出了UnknownError。据我所知,QProcess本身在一个单独的线程中运行,因此我必须启动一个4进程的MPI-EXE,这就造成了问题

我需要以下方面的帮助:

  • 如何在没有Qt GUI冻结的情况下启动MPI-EXE
  • 我如何监控MPI-EXE的进度,因为我必须在QGLWidget中绘制进度
  • 如果您对我的问题有任何评论,我将不胜感激。
    请帮忙。谢谢。

    如果您将参数从
    exeFilePath
    移动到
    args
    的开头,并将参数移动到
    mpirun
    会发生什么?您好,Cairnarvon,感谢您的宝贵意见。这真的很有帮助。直到今天,我的印象是进程->开始(程序,字符串列表)将完成所有事情。但指定了完整命令的程序实现了这一点。我可以成功地启动MPI exe。你太棒了。谢谢
    exeFilePath = "mpirun -np 4 MPI-EXE"