确定matlabpool可用的最大处理器数量(MATLAB Parallel Toolbox)

时间:2012-11-04 03:31:19

标签: matlab parallel-processing

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

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

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

matlabpool('open',maxcores)

这样我就可以确保我使用了所有可用的核心。

2 个答案:

答案 0 :(得分:9)

您可以通过feature('numCores')获取计算机上的核心数,这些核心未记录但似乎不太可能破解。 (source

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

答案 1 :(得分:2)

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