本文章直接主要针对MATLAB+C混合编程的实现,并行编程直接采用C+OPENMP实现,MATLAB调用mex文件即可实现混编,Python+C+OPENMP混合思路类似,不多叙述。 题主推荐直接采用code::blocks进行C编程,vs的对OPENMP支持不完善。 注意确认自己的MATLAB版本兼容的编译器,手动配置的肯定要考虑版本问题,如果是自动配置就不需要管那么多啦。 2018后的MATLAB支持快速下载配置mingw,在主页-附加功能-获取附加功能中搜索mingw然后点击上图所示的安装,登录mathworks账号即可,MATLAB将自动完成所有配置工作,非常方便。 完成配置后,还需要确认mingw的安装路径,为后续库文件调用做好准备,一般来说,采用附加功能安装的mingw路径都在C盘 题主的安装路径如下 C:\ProgramData\MATLAB\SupportPackages\R2020b\3P.instrset\mingw_w64.instrset\lib\gcc\x86_64-w64-mingw32\6.3.0 很多人会纠结mex文件的编译命令,题主这里给出OPENMP的编译指令 mex C:\ProgramData\MATLAB\SupportPackages\R2020b\3P.instrset\mingw_w64.instrset\lib\gcc\x86_64-w64-mingw32\6.3.0\libgomp.a CXXFLAGS="$CXXFLAGS -std=c++11 -fopenmp" main.cpp 这里题主的电脑是win10,其他操作系统还请在mathworks上自己搜索相关的教程 在编写MATLAB+C/C++项目上,还是推荐先编写纯C/C++项目,测试运行无误后再引入mex.h头文件编写接口参数的相关代码,下一节题主将用一个简单的案例示例MATLAB+C+OPENMP的实现思路。
|