论文部分内容阅读
现阶段,日益增长的计算需求对并行算法的设计提出更高的要求。Message Passing Interface简称MPI,是一种消息传递接口的标准,用于开发基于消息传递的并行程序。基于MPI的并行程序在多核集群下运行,由于节点内(intra-node)和节点间(inter-node)的通信的差异性,可能面临严重的非平衡进程到达(unbalanced process arrival)的问题,另外,对于分布式存储访问结构系统,数据可能需要通过主节点传输到其他计算节点,这样在数据传输上会占用大量的网络带宽。很多分布式机器学习算法一般情况下可以归结成全局变量一致性优化的问题,如线性回归、Logistic回归、支持向量机等,而这些问题可以有效的通过交替方向乘子法(Alternating Direction Method of Multipliers,ADMM)来解决。ADMM算法是一种解决可分解凸优化问题的简单方法,尤其在解决大规模问题上卓有成效,利用ADMM算法可以将原问题的目标函数等价的分解成若干个可求解的子问题,然后并行求解每一个子问题,最后协调子问题的解得到原问题的全局解。同步分布式ADMM算法在每次迭代过程中需要进行全局数据的交换,这样会带来较大的同步开销以及通信时间,同时算法的可扩展性也受到一定的限制。本文以并行算法性能优化为中心,提出一种分层并行设计模式,用于优化并行算法的通信和减少数据分发的网络带宽,另外提出两种异步分布式ADMM算法,一是基于分层并行设计模式的异步分布式ADMM算法;二是基于SSP(Stale Synchronous Parallel)模型的异步分布式ADMM算法,旨在设计出高效高扩展的分布式ADMM算法。本文的具体工作集中在以下几点:1.提出一种分层并行设计模式,一方面通过多核感知的MPICH中间件去构建层次化通信模型,再利用有效的通信优化策略提高通信效率,另一方面提供数据预处理的方法减少数据分发占用的大量带宽。2.通过矩阵乘法和ELM(极限学习机)两个实例来介绍分层设计模式中层次化通信模型的构建、通信优化策略,以及数据划分以及预处理的方法,并且通过实验验证两种基于分层设计模式的并行算法的高效性与高可扩展性。3.提出了一种动态的层次化通信模型-层次蝶式通信模型应用到异步分布式ADMM。层次蝶式通信模型首先在网络通信上区分了节点内通信和节点间通信,其次节点间通信采用了蝶形通信模型,层次化的通信模型能大大提高并行算法的可扩展性,节点间的蝶形通信模型能够减少全局通信时间,并且在理论上分析了应用层次蝶形通信模型的算法的收敛性。4.提出了一种基于SSP模型的异步分布式ADMM算法,利用开源Petuum框架数据并行的SSP计算模型设计一种异步分布式ADMM算法来减少同步ADMM算法每次迭代中的同步开销,并且给予理论收敛性的证明和实验的验证。本文在上海大学自强4000集群系统上对编程模型和算法进行测试。测试结果体现出分层编程模型的可用性以及分布式ADMM算法的加速效果。