我目前正在用MATLAB编写一些代码,这些代码使用parfor循环来加速一些繁琐的计算。
我的问题是,代码将在远程集群上运行,并且可以在4核、8核或12核机器上运行(我不知道提前知道哪一个)……
我基本上需要一个代码片段,它将允许MATLAB确定可以在matlabpool中使用的核心的最大数量。如果我们将这个变量称为maxcores,那么我就可以继续使用
matlabpool('open',maxcores)。
这样我就可以确保我使用了所有可用的内核。
发布于 2012-11-04 11:37:19
您可以通过feature('numCores')获得机器上的内核数量,这是没有文档记录的,但似乎不太可能崩溃。(source)
有人声称,从R2007a开始,getNumberOfComputationalThreads也可以工作,但它不适用于我的R2012a。
发布于 2013-09-03 00:04:56
除了杜格尔的响应,我发现getenv('NUMBER_OF_PROCESSORS')会返回我的Windows系统上的线程数。
https://stackoverflow.com/questions/13215812
复制相似问题