我正在使用 Matlab 运行 Fortran 可执行文件,使用 system() 命令。
通常我会使用可执行文件运行很多次。
有没有办法在指定的核心中运行 8 次可执行文件?
甚至在 Matlab 中同时运行实例?即它相当于打开了许多 cmd 窗口。
非常感谢。
我正在使用 Matlab 运行 Fortran 可执行文件,使用 system() 命令。
通常我会使用可执行文件运行很多次。
有没有办法在指定的核心中运行 8 次可执行文件?
甚至在 Matlab 中同时运行实例?即它相当于打开了许多 cmd 窗口。
非常感谢。
在 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 ...
改用
假设您在 Windows 上,您可以坚持system()
并适当地修改您的系统调用,如下所述: