明天考试正好也刚看完……首答的答主咱们是校友吗?
简而言之核心思想是当单机性能瓶颈的时候通过多台机器来分担工作量(也就是现在云计算平台的思路了)
Model Parallelism:
当模型巨大,单机内存不足的时候,将计算工作 partiton,同一个大模型的不同部分交给不同机器负责(比如多层网络的各个节点),这样就会有很大的通信开销。(通常 Model parallelism 的定义不包括 data partition 但实际上很多框架都同时也有 data parallelism 的思想)
Data Parallelism:
当数据巨大的时候,通过网络来回搬运全部数据到多台机上工作是不现实的,因此我们可以将数据分片,让不同的机器运算不同的数据分片,然后对所求目标进行收集处理,这就需要一个 sever 来完成这步工作。这种 parameter server 可以是 average 也可以是 update-based 的。