MEX文件和并行处理

36意见(过去30天)
玛丽亚
玛丽亚 2021年8月26日
编辑: 沃尔特罗伯森 2021年8月26日
你好,
我有一个使用parfor的函数,我可以在本地群集上成功运行它。运行时,我可以看到本地群集开始并处于活动状态。
从此文件中,我创建了一个mex文件。MEX文件是在我本地计算机(WIN)上创建的,然后我使用本地群集运行它(因此,始终获胜)运行。但是,当MEX正在运行时,不会启动本地群集。当我第一次启动时,它在MEX正在运行时处于空闲模式。所以我假设MEX文件没有并行运行。
MEX文件是为C语言编译的,默认编译器是MINGW64。这不应该是MEX文件的并行计算吗?
>> mex-setup.
梅克斯配置为C语言编译使用“Mingw64编译器(c)”。
2评论
玛丽亚
玛丽亚 2021年8月26日
对不起,我试着更好地解释它。
是的,原始的.m函数正在使用循环循环,因此它自动启动与本地配置文件的并行池。
我将其编译为MEX文件并运行它,但本地池不会启动。如果我手动启动本地池,然后运行MEX,则本地池进入空闲模式。运行需要10/15分钟,所以我应该能够看到池工作。
如果我使用并行化运行MEX文件,我想看看我得到了多少加速,但它看起来像循环通过编译器自动转换为循环。我是否需要积极地告诉编译器使用Parcom循环?或者MingW64编译器不支持并行化吗?万博1manbetx

登录评论。

答案(1)

沃尔特罗伯森
沃尔特罗伯森 2021年8月26日
编辑:沃尔特罗伯森 2021年8月26日
从历史上看,Mingw不支持OpenMP,这是一个Par万博1manbetxcom Compors,如果您要求为Par生成代码。
如果我回忆起来,您需要一个Microsoft编译器 - 但如果我回忆起来,那么自2011年以来的任何社区或快递版本应该工作(但不是SDK 7.1),只要该版本由MATLAB发布支持。万博1manbetx
2评论
沃尔特罗伯森
沃尔特罗伯森 2021年8月26日
......哪个关于使用mingw安装OpenMP的展示。
但是,它不处理正确指出的不兼容问题。

登录评论。