Pal Soumitra, Xu Tingyang, Yang Tianbao, Rajasekaran Sanguthevar, Bi Jinbo
National Center for Biotechnology Information, National Library of Medicine, National Institutes of Health, Bethesda, MD 20894, USA.
Tencent AI Lab, Shenzhen, Guangzhou, 518000, China.
J Parallel Distrib Comput. 2020 Sep;143:47-66. doi: 10.1016/j.jpdc.2020.04.002. Epub 2020 Apr 13.
In prior works, stochastic dual coordinate ascent (SDCA) has been parallelized in a multi-core environment where the cores communicate through shared memory, or in a multi-processor distributed memory environment where the processors communicate through message passing. In this paper, we propose a hybrid SDCA framework for multi-core clusters, the most common high performance computing environment that consists of multiple nodes each having multiple cores and its own shared memory. We distribute data across nodes where each node solves a local problem in an asynchronous parallel fashion on its cores, and then the local updates are aggregated via an asynchronous across-node update scheme. The proposed double asynchronous method converges to a global solution for -Lipschitz continuous loss functions, and at a linear convergence rate if a smooth convex loss function is used. Extensive empirical comparison has shown that our algorithm scales better than the best known shared-memory methods and runs faster than previous distributed-memory methods. Big datasets, such as one of 280 GB from the LIBSVM repository, cannot be accommodated on a single node and hence cannot be solved by a parallel algorithm. For such a dataset, our hybrid algorithm takes less than 30 seconds to achieve a duality gap of 10 on 16 nodes each using 12 cores, which is significantly faster than the best known distributed algorithms, such as CoCoA+, that take more than 160 seconds on 16 nodes.
在先前的工作中,随机对偶坐标上升法(SDCA)已在多核环境中并行化,其中各核心通过共享内存进行通信,或者在多处理器分布式内存环境中并行化,其中各处理器通过消息传递进行通信。在本文中,我们针对多核集群提出了一种混合SDCA框架,多核集群是最常见的高性能计算环境,由多个节点组成,每个节点都有多个核心及其自己的共享内存。我们将数据分布在各个节点上,每个节点在其核心上以异步并行方式解决一个局部问题,然后通过异步跨节点更新方案聚合局部更新。所提出的双重异步方法对于-Lipschitz连续损失函数收敛到全局解,并且如果使用平滑凸损失函数,则以线性收敛速率收敛。大量的实证比较表明,我们的算法比最知名的共享内存方法扩展性更好,并且比以前的分布式内存方法运行得更快。像LIBSVM存储库中280GB的数据集之一这样的大数据集无法容纳在单个节点上,因此无法通过并行算法解决。对于这样的数据集,我们的混合算法在每个使用12个核心的16个节点上实现对偶间隙为10所需的时间不到30秒,这比最知名的分布式算法(如CoCoA+)快得多,CoCoA+在16个节点上需要超过160秒。