【IT168 资讯】腾讯开源再次迎来重磅项目,14日,腾讯正式宣布开源高性能图计算框架Plato,这是在短短一周之内,开源的第五个重大项目。
相对于目前全球范围内其它的图计算框架,Plato可满足十亿级节点的超大规模图计算需求,将算法计算时间从天级缩短到分钟级,性能全面领先领先于其它主流分布式图计算框架,并且打破了原本动辄需要数百台服务器的资源瓶颈,现在,最少只需要十台服务器即可完成计算。
腾讯Plato团队负责人于东海表示:“Plato已经支持腾讯内部包括微信在内的众多核心业务,尤其是为腾讯超大规模社交网络图数据的各类计算提供支撑,解决了现有其他计算框架无法在有限资源和有限时间内完成计算的难点。Plato不仅为腾讯创造了巨大的业务价值,开源后还将持续推动图计算技术和行业的协同发展,加速创新。”
实际上,图计算的“图”并不是指普通的图像和照片,而是用于表示对象之间关联关系的一种抽象数据结构,图计算就是以图作为数据模型来表达问题并予以解决的过程。图计算可以将不同来源、不同类型的数据融合到同一个图里进行分析,得到原本独立分析难以发现的结果,因此成为社交网络、推荐系统、网络安全、文本检索和生物医疗等领域至关重要的数据分析和挖掘工具。
Plato是腾讯内部图计算TGraph团队整合内部资源自主研发的一款高性能图计算框架,取名Plato是为了致敬伟大的数学家柏拉图,目前腾讯云大数据团队正在封装Plato,即将对所有开发者开放使用。
据了解,Plato的计算性能方面极其强悍,比目前市场上最为领先的图计算框架Spark GraphX还高出1-2个数量级,它将算法计算时间从天级缩短到分钟级,性能提升数十倍,也标志着图计算全面进入分钟级时代;另外一个巨大优势是,Plato在内存消耗方面远小于主流的图计算框架,比Spark GraphX减少1-2个数量级,仅需10台服务器左右的中小规模集群,即可完成超大规模图计算,相比此前动辄需要数百台服务器的限制,资源压力和计算成本都得到了极大降低。
目前,Plato主要提供两大核心能力:腾讯数据量级下的离线图计算和腾讯数据量级下的图表示学习。同时Plato天然适配Kubernetes、YARN等资源调度平台,并提供支持主流文件系统的多种接口,能为开发者提供更友好的运行环境。
架构设计上,Plato框架的核心是自适应图计算引擎,它能够根据不同类型的图算法,提供多种计算模式供开发者灵活选择,包括自适应计算模式、共享内存计算模式和流水线计算模式等。另外,还设计了良好的接口支持接入新的计算通信模式。
Plato整体架构图
在计算引擎之上,Plato为算法设计者或具体的业务提供多层次接口:从底层的API,到图算法库,再到为具体业务量身打造的“解决方案”——图工具集。通过这些应用层的接口和工具,Plato还可以把离线计算结果与其他机器学习算法相结合,共同支撑顶层的不同业务。
值得一提的是,目前Plato的算法库中的图特征、节点中心性指标、连通图和社团识别等多种算法都已经开源,未来还将进一步开源更多的算法。
Plato高性能、可扩展、易插拔的特性在社交网络、推荐系统、生物医疗等领域应用前景广阔,例如定期对网页进行影响力排序以提升用户的搜索体验、分析庞大的社交网络结构以便精准地为用户推荐服务、通过子图匹配等方式了解蛋白质间的相互作用从而研制更有效的临床医药等。
自去年930架构调整以来,开源协同成为腾讯技术发展的重要战略之一,并带动了重磅项目密集对外开源。就在上周的Techo开发者大会上,腾讯正式宣布TubeMQ、Tencent Kona JDK、TBase、TKEStack四大重点项目开源。随着Plato的开源,腾讯在开源领域又添大动作。据悉,腾讯已经在Github上已经开源了89个项目,超过1000个贡献者参与了开源贡献,拥有超过26万个Star数,在Github全球公司贡献榜上居于前列。
Plato开源地址:https://github.com/tencent/plato