谁能指出我运行matlabpool的开销是多少?
我开始了一个matlabpool:
matlabpool open 132procs 100
Starting matlabpool using the '132procs' configuration ... connected to 100 labs.
然后在节点上按照cpu的用法进行操作:
pdsh -A ps aux |grep dmlworker
当我启动matlabpool时,平均启动时间为池的35%左右,
没有使用它,它会缓慢(在5-7分钟内)平均下降到约2%。
这正常吗?典型的间接费用是多少?如果将matlabpooljob作为“批处理”作业启动,这会改变吗?
最佳答案
这个是正常的。 ps aux
报告自进程启动以来的平均CPU利用率,而不是滚动窗口。这意味着,尽管工作进程初始化相对较快,然后变为空闲状态,但这需要花费更长的时间才能反映在CPU%中。例如,这与Linux top
命令不同,该命令将反映自%CPU上一次屏幕更新以来的利用率。
对于典型的开销,这取决于许多因素:很明显,工作人员的数量,提交的作业的速率和数据大小(以及维护工作人员进程时,在编排输入和输出时会有一些开销,这不是Matlab池是本地的还是附加到作业管理器的,以及“Matlab版本和O / S”。
根据经验,作为现代* nix服务器上的粗略指南,我认为闲置的工作人员在使用完一个单核后不应消耗超过20%的单核(例如,在16核设备上的CPU总利用率不到1%)。初始化,除非存在配置问题。我不希望这受您提交的作业类型的影响(例如,是否使用“createJob”或“batch”或“parfor”):底层的工作人员和通信机制基本相同。