分配"系统"命令到Matlab中的特定处理器

时间:2013-09-20 16:43:11

标签: matlab parallel-processing

我正在使用Matlab运行Fortran可执行文件,使用system()命令。

通常,我使用可执行文件运行多次运行。

有没有办法在指定的核心中运行8个可执行文件?

甚至在Matlab中运行同步实例?即这相当于打开了许多cmd窗口。

非常感谢。

2 个答案:

答案 0 :(得分:0)

猜测你是在Windows上,你可以坚持system()并适当修改你的系统调用,如下所述:

https://stackoverflow.com/a/832614/2319400

答案 1 :(得分:0)

在Microsoft Windows上,您可以使用start命令以所需的处理器亲和性运行程序(这些是逻辑内核,因此在我的具有超线程的四核机器上,我看到8个CPU)。这被指定为十六进制表示法的二进制掩码。例子:

>> system('start /affinity 1 notepad')    % (0001) CPU0
>> system('start /affinity 2 notepad')    % (0010) CPU1
>> system('start /affinity 4 notepad')    % (0100) CPU2
>> system('start /affinity 7 notepad')    % (0111) CPU0+CPU1+CPU2

请注意,默认情况下,start将运行程序并立即返回。如果您希望它在完成之前一直闲逛,您可以使用start /wait ...代替