请问在使用批组件的时候,我在代码开始指定了批处理组件的并行数量为8,在对OneHotTrainBatchOp()实例化时numThreads的默认值为1,我没有修改组件的numThreads值,那么在OneHotTrainBatchOp()处理数据的时候的线程数是多少呢?parallelism参数的设置和numThreads都是指的线程数嘛?
如下 请问机器学习PAI的这些问题怎么解决?[阿里云机器学习PAI]
「点点赞赏,手留余香」
还没有人赞赏,快来当第一个赞赏的人吧!
请问在使用批组件的时候,我在代码开始指定了批处理组件的并行数量为8,在对OneHotTrainBatchOp()实例化时numThreads的默认值为1,我没有修改组件的numThreads值,那么在OneHotTrainBatchOp()处理数据的时候的线程数是多少呢?parallelism参数的设置和numThreads都是指的线程数嘛?
parallelism是线程数,训练的Op一般没有numThreads
parallelism是并发度,numThreads是每个mapper里的并发—此回答来自钉群“Alink开源–用户群”
首先,让我们澄清一下几个概念。
针对问题一,如果您在代码中指定了批处理组件的并行数量为 8,而没有修改 OneHotTrainBatchOp 实例的 numThreads 参数,则默认情况下 OneHotTrainBatchOp 实例内部会启动 1 个工作线程进行计算。这是因为 numThreads 参数默认值为 1。在这种情况下,尽管 job 的并行度为 8,但由于 numThreads 参数限制,实际上只有 1 个工作线程进行计算。
针对问题二,StandardScalerPredictBatchOp 是用于进行特征缩放预测的批处理算子。在这个场景下,建议您将 numThreads 参数设置为 job 的并行度,这样可以在不同的 slot 中并行地执行预测任务,从而充分利用集群资源并提高性能。不过,需要注意的是,随着 numThreads 参数增大,可能会带来更多的通信开销,因此需要权衡两者之间的利弊。