小编Jim*_*Jim的帖子

使用MATLAB'dos'命令调用并行化可执行文件的行为与独立可执行文件不同

当我尝试使用MATLAB的dos()命令调用并行化的可执行文件时,它将不会运行可执行文件并返回错误.

就其本身而言,这个简单的C++程序完全按照您的预期运行:

/* Serial.exe */

#include <iostream>

int main(void) {

    std::cout << "Apple!\n";
    std::cout << "Banana!\n";

    return 0;

}
Run Code Online (Sandbox Code Playgroud)

结果:

Apple!
Banana!
Run Code Online (Sandbox Code Playgroud)

这个是这样的:

/* Parallel */

#include <iostream>
#include <omp.h>

int main(void) {
    std::cout << "Apple!\n";

    #pragma omp parallel num_threads(8)
    {
        std::cout << "Banana!\n";
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

结果:

Apple!
Banana!
Banana!
Banana!
Banana!
Banana!
Banana!
Banana!
Banana!
Run Code Online (Sandbox Code Playgroud)

现在,我尝试使用以下MATLAB脚本调用这两个程序:

%%  MATLAB call script

exe_path_1 = 'C:\\Users\\Jim\\Documents\\MATLAB\\Serial.exe';
exe_path_2 = 'C:\\Users\\Jim\\Documents\\MATLAB\\Parallel.exe';

rtn_1 = dos(exe_path_1)
rtn_2 = dos(exe_path_2)
Run Code Online (Sandbox Code Playgroud)

结果:

Apple!
Banana! …
Run Code Online (Sandbox Code Playgroud)

c++ parallel-processing matlab

5
推荐指数
1
解决办法
136
查看次数

标签 统计

c++ ×1

matlab ×1

parallel-processing ×1