Matlab 2011a使用64位Linux上的所有内核?

嗨,我在网上看了,但我似乎无法find答案是否需要做任何事情,使matlab使用所有内核? 据我所知,自2007年以来,multithreading已得到支持。在我的机器上,matlab仅使用一个@ 100%的内核,其余的占用2%。 我正在使用64位Linux(Mint 12)。 在我的另一台只有2个核心,32位的计算机似乎正在利用两个核@ 100%。 不是所有的时间,但在足够的情况下。 在64位,4核心电脑这从来没有发生。

我必须在64位做任何事情,让Matlab尽可能使用所有的核心? 在安装之后,我不得不做一些自定义链接,因为Matlab没有find库(例如libc.so.6),因为它没有在正确的位置查找。

按照标准,自从最新版本以来,您可以使用Parallel Computing Toolbox使用12个内核。 如果没有这个工具箱,我想你倒霉了。 任何额外的内核都可以通过MATLAB分布式计算服务器来访问,实际上每个工作线程支付数量。

要使matlab使用你的多核心,你必须做的

matlabpool open 

当然,如果你真的有多线程的代码(比如使用spmd函数或者spmd循环)

更多信息在Matlab主页

MATLAB只有一个用于计算的单个线程。

也就是说,为某些使用下面使用的BLAS库的多线程功能的函数将创建多个线程。

因此,如果您调用使用这些多线程bla函数库的函数,您将只能获得“多线程”优势。

这个链接有关于多线程函数列表的信息。

现在要使用你的内核,这取决于你的操作系统。 我相信操作系统将不得不负载平衡你的线程在所有内核上使用。 一个不能设置MATLAB的线程的亲和力。 然而,人们可以设置工作人员MATLAB进程,以便在“并行计算”工具箱中对内核具有亲和力。

但是,您可以随时尝试通过以下针对Linux的链接提供的详细信息,手动为您的所有处理器设置MATLAB进程的关联性

Windows用户可以简单地右键单击任务管理器中的进程并设置关联。

我的理解是,这只是对操作系统的请求,并不是操作系统必须遵守的硬约束规则。