一般有2种并行模式:数据并行(Data parallelism)和模型并行(model parallelism).

 在多节点上运行分布式Intel Caffe

 

在模型并行化( model parallelism )方法里,分布式系统中的不同机器负责单个网络模型的不同部分 —— 例如,神经网络模型的不同网络层被分配到不同的机器。

在数据并行化( data parallelism )方法里,不同的机器有同一个模型的多个副本,每个机器分配到数据的一部分,然后将所有机器的计算结果按照某种方式合并。

 

Intel® Distribution of Caffe*采用的是数据并行即: 各个节点上相同的model,不同的数据分批。

Intel® Distribution of Caffe* 采用 Intel® Machine Learning Scaling Library (MLSL)提供分布式训练,
MLSL构建在MPI之上,包含Intel MLSL Software Development Kit (SDK) and the Intel(R) MPI Library Runtime组件,
其API支持深度学习框架(Caffe*, Theano*, Torch*, etc.)

MLSL提供数据并行和模型并行,支持SGD通信模式和分布式权重更新。

https://github.com/intel/MLSL

带有MLSL的Intel® Distribution of Caffe* 提供2种方式的多节点训练:

  1. 默认方式 – Caffe负责梯度的Allreduce操作,然后每个节点会在本地完成SGD并且随后进行Allgather来完成权重增加。
  2. 分布式权重更新方式 -