确定可用于 matlabpool (MATLAB 并行工具箱)的最大处理器数



我目前正在用 MATLAB 编写一些代码,它使用parfor循环来加速一些繁琐的计算。

我的问题是代码将在远程集群上运行,并且可以在 4 核、8 核或 12 核机器上运行(我事先不知道是哪一台)......

我基本上需要一个代码片段,允许 MATLAB 确定可以在 matlabpool 中使用的最大内核数。如果我们调用这个变量maxcores,那么我可以继续使用

matlabpool('open',maxcores).

这样我就可以确保我正在使用所有可用的内核。

您可以通过feature('numCores')获取机器上的内核数,这没有记录,但似乎不太可能中断。(来源)

有人声称getNumberOfComputationalThreads自 R2007a 以来也有效,但它在我的 R2012a 上不起作用。

除了Dougal的响应之外,我发现getenv('NUMBER_OF_PROCESSORS')返回了Windows系统上的线程数。

最新更新