确定集群上批处理作业中的matlab并行池大小

确定集群上批处理作业中的matlab并行池大小,matlab,parallel-processing,cluster-computing,Matlab,Parallel Processing,Cluster Computing,我想验证我的集群配置是否正确,我认为发出下面的命令将运行以下脚本,并将池大小输出到文本文件中,以及屏幕输出的方向(由批处理管理环境)。相反,我只在末尾看到输出,错误文件中也没有任何内容。我该怎么做 命令: matlab -nosplash -nodesktop < test.m (下半场根本不起作用,所以我甚至停止了尝试,因此第一次退出。) 输出: >> >> Starting parallel pool (parpool) using the 'local' p

我想验证我的集群配置是否正确,我认为发出下面的命令将运行以下脚本,并将池大小输出到文本文件中,以及屏幕输出的方向(由批处理管理环境)。相反,我只在末尾看到输出,错误文件中也没有任何内容。我该怎么做

命令:

matlab -nosplash -nodesktop < test.m
(下半场根本不起作用,所以我甚至停止了尝试,因此第一次退出。)

输出:

>> >> Starting parallel pool (parpool) using the 'local' profile ... Warning: Found 1 pre-existing communicating job(s) created by pool that are
running, and 3 communicating job(s) that are pending or queued. You can use
'delete(myCluster.Jobs)' to remove all jobs created with profile local. To
create 'myCluster' use 'myCluster = parcluster('local')'. 

首先,我建议使用MATLAB的
-r
选项来运行脚本,因为在进行管道输入时,有时会出现一些奇怪的情况,例如

matlab -nodisplay -r test
然后,我将第2行更改为state

delete(gcp('nocreate'))
为了确保不创建池,只需将其删除即可。那么,下一位应该是

poolobj = parpool;
poolsize = poolobj.NumWorkers;

你为什么要呼叫退出?这将关闭matlab,使下面的所有内容都无法访问。我正在批量发布此文件,因此作业应该关闭。有趣的是,它从来没有,它总是超时,也许在正文中值得一提。(环境在任何情况下都是不可访问的。)如果您使用
exit
杀死您的工人,难怪您会收到超时。这不是终止工作的正确方式!谢谢,我猜你也测试了这个?谢谢。我注意到:使用parpool时出错(第86行)发现了一个交互式会话。不能同时打开多个交互式会话。要终止现有会话,请使用“删除(gcp)”。BayesBootstrapMaster(第5行)poolobj=parpool中出错;好的,但这意味着你一定已经打开了一个池<代码>删除(gcp('nocreate'))保证在不创建池的情况下,不会打开任何池。如果您只需执行
delete(gcp)
,则可能会打开一个池,然后将其删除(取决于您的并行首选项)。谢谢,只有后者才有效。但我没有开放式游泳池,只是为Matlab注入了新的活力。我不知道发生了什么。你说的“只有后者才有效”是什么意思?你是说'delete(gcp('nocreate'))“不起作用吗?我不知道有哪种方法会失败…(当然前提是它完成时没有错误)。
poolobj = parpool;
poolsize = poolobj.NumWorkers;