不仅支持传统数组类型的 Collective 通信,而且还支持 Java Map 数据类型,使用 Map 数据类型,用户可以实现非常复杂的通信操作 (例如:集合求交、求并,链表的连接等操作) 支持数据压缩传输,在网络资源很紧张的情况下,可以节约大量的带宽 纯 Java 代码实现,可以无缝集成到 Hadoop, Spark 等分布式计算平台,构建自己的分布式机器学习系统 使用 Java 的 SDP(Sockets Direct Protocol) 可以实现高效的 RDMA(Remote Direct Memory Access)
allreduce 操作是分布式机器学习中使用最多的通信操作,它对机群中所有的节点对应的数据进行归约操作,然后再分发给各个节点。下面给出了 ytk-mp4j 在多进程、多进程、数组,Map 下的 allreduce (归约操作为求和) 示意图:
性能测试 表 2 给出了 ytk-mp4j 实现的 Collective 操作时间复杂度,其中是网络连接延迟,是传输 1 个字节需要的时间,是需要传输的字节数量,是进行 1 字节数据归约 (reduction) 操作需要的时间。可以看出,随着机器数量的增加,所有操作数据传输的时间是几乎不会增加的,只有连接和归约操作的时间会随机器数量增加,但在大数据通信时,连接和归约的时间占比很小。这个时间复杂度特性非常重要,它使得在特征维度、样本数量超过一定阈值的分布式机器学习训练任务中,训练加速比与机器数量接近线性关系。
表 2 ytk-mp4j 实现的 Collective 操作时间复杂度 下图是测试在 1Gigabit Ethernet 网络下,10 亿维 double 数组,各种 Collective 通信操作在不同的机器数量下的通信性能 (时间单位: ms),从图中可以看出 ytk-mp4j 中的 7 种 Collective 操作的通信时间与机器数量的关系与理论值完全符合。
详细细节请参考:https://github.com/yuantiku/ytk-mp4j 参考文献 1.Thakur, Rajeev, Rolf Rabenseifner, and William Gropp. "Optimization of collective communication operations in MPICH." The International Journal of High Performance Computing Applications 19.1 (2005): 49-66. 2.Faraj, Ahmad, Pitch Patarasuk, and Xin Yuan. "Bandwidth efficient all-to-all broadcast on switched clusters." Cluster Computing, 2005. IEEE International. IEEE, 2005. 公司简介 猿辅导公司是中国领先的移动在线教育机构,拥有中国最多的中学生移动用户以及国内最⼤的中学生练习行为数据库,旗下有猿题库、小猿搜题、猿辅导三款移动教育 APP。今年 6 月猿辅导获得由华平投资集团领投、腾讯跟投的 1.2 亿美元 E 轮融资,估值超过 10 亿美元,成为国内 K-12 在线教育领域首个独角兽公司。猿辅导研究团队成立于 2014 年年中,致力于在线教育领域的机器学习(尤其是深度学习)相关应用,主要工作包括拍照搜题、手写识别、语音识别、英语作文批改、数据挖掘、自适应学习等。 本文为机器之心编译,转载请联系本公众号获得授权。 ✄------------------------------------------------ 加入机器之心(全职记者/实习生):[email protected] 投稿或寻求报道:[email protected] 广告&商务合作:[email protected] (责任编辑:本港台直播) |