Matlab并行计算工具箱是否只为一个核心分配一个工作进程?

7 浏览
0 Comments

Matlab并行计算工具箱是否只为一个核心分配一个工作进程?

我正在使用MATLAB并行计算工具箱进行并行计算。我的笔记本电脑有2个核心和4个线程,所以我认为任务可以连接到4个工作。然而,当我输入命令“matlabpool open”时,只有2个工作连接上了。有人能告诉我如何指定连接的工作数量,以便我可以将任务分配给多于核心数量的工作,以提高计算效率吗?谢谢!

0
0 Comments

Matlab并行计算工具箱是否只为每个核心分配一个工作进程?

问题的原因:

Matlab的并行计算工具箱在调用matlabpool函数时,根据默认的集群配置文件来启动工作进程池。集群配置文件中设置了工作进程的数量,大多数集群都有一个最大进程数的限制。根据集群配置文件的设置,可能无法使用更多的工作进程。

解决方法:

根据Matlab的帮助文档,可以通过指定工作进程的数量来启动工作进程池。但是需要注意,大多数集群有一个最大进程数的限制。以下是一些解决方法的示例代码:

1. 使用默认的集群配置文件启动工作进程池:

matlabpool

2. 使用本地配置文件启动工作进程池,并指定工作进程的数量:

matlabpool local 2

3. 自定义集群配置文件,允许更多的工作进程:

mycluster=parcluster('local');
mycluster.NumWorkers=48;
matlabpool(mycluster,48);
...
matlabpool close;

根据实际情况,可能无法使用超过12个工作进程,具体取决于Matlab的版本。如果出现了上述第二个错误,可以重新定义集群配置文件以允许更多的核心。通过复制本地配置文件并设置NumWorkers属性来实现:

mycluster=parcluster('local');
mycluster.NumWorkers=48;
matlabpool(mycluster,48);
...
matlabpool close;

Matlab并行计算工具箱在启动工作进程池时,根据集群配置文件来确定工作进程的数量。大多数集群都有一个最大进程数的限制。根据Matlab的版本不同,可能无法使用超过最大进程数的工作进程。如果需要使用更多的工作进程,可以通过自定义集群配置文件并设置NumWorkers属性来实现。

0