中美贸易战愈演愈烈,归根结底是美国对我们遏制和我们谋求持续发展之战。美国几次三番针对我国的科技公司,为我们敲响了警钟,科技自强是硬道理。

我国虽然鲜有顶尖级的系统软件商业公司,但我们在科技领域并不缺少世界顶尖人才和成果。以清华大学朱晓伟博士为例,他在读期间专注于图计算领域,研发的Gemini分布式图计算系统,处理速度超出学术界最快系统10倍(通常性能超出40%~50%已经是很好的优化,超出2倍就很夸张了,超出10倍,可想而知学术界的震惊情况),朱晓伟博士在2016年投稿USENIX ATC会议时,因其中一位评审专家不相信能达到这样的性能而被拒绝入选,用该专家话说,“too good to be true”。无奈,朱晓伟博士只得补充了一些其他系统性能不足的原因分析,并附上源码接受挑战,因祸得福,论文最终入选USENIX主办的OSDI(Operating Systems Design and Implementation,OS领域最好的会议之一),这也是我国第一次有高校主导的学术研究入选OSDI,如今该论文已经作为图数据领域的标杆被引用多达上百次。

系统软件的成熟需要长期的投入和积累,很难像互联网产业那样从一个商业模式快速迭代成一个TOP级的商业公司。一款成熟的系统软件需要两个必要的条件:优秀的人才和持续的积累。这些人才和积累,就是商业公司的壁垒。人才方面,顶尖的系统软件人才,在实习期,甚至在优秀论文发表进入学术界视野的时候,往往就已经被国外的技术公司“盯上了”;即便是留在国内公司,也会很分散的进入BAT(百度阿里腾讯)、TMD(头条美团滴滴)等企业作为项目负责人率队解决实用的难题或者去复刻国外系统,很难集中一批优秀的人才专注在某一领域持续创新研究。毕竟把几个顶尖人才放在一个项目里是极其奢侈的,从人力成本的角度考虑,即便大厂也不愿意做。人才的分散,使得技术积累变得更加困难,而高校积累的、曾经闪闪发光的那些研究成果,随着学生毕业进入工作环境,也会因为缺少精力维护而搁浅,被埋没或遗忘。

朱晓伟博士在毕业前同样面临着同样的困惑:Gemini系统即将被束之高阁么?这么多年的学习和研究,很可能就要作为基石,被其他国家的科学家进一步研发、商用、构建新的壁垒。“不甘心”这几个字在他心里生根发芽。

清华顶尖博士团队 变革系统软件的科技格局

图数据很多人不太了解,这里简单的普及一下。图是将信息中的实体,以及实体之间的关系,分别抽象表达成为顶点以及顶点间的边这样的结构数据。图计算系统就是针对图数据处理的系统,它在图结构的数据上进行针对性优化的高效计算,尤其适合大规模的关联关系分析。相比传统的关系型数据(以Oracle为代表),图的逻辑可以很好的解决目前遇到的关联数据分析问题,如绘制用户社交关系图谱做社交影响力排名、好友推荐;通过绘制资金交易图谱做大数据征信、反欺诈等应用;构建设备关系网络图谱实现物联网建模分析、供电网络建模分析等等。

该领域,国内最先进的团队是由陈文光教授带领的清华团队,他们十年前就关注到了图数据技术,历任学子均参与过图数据的研究,并在OSDI、EuroSys、ATC等顶级会议中发表了多篇相关论文,他们编写的图计算系统比学术界最快水平快了10多倍,比常见工具快了100多倍。

作为我国计算机领域“产”、“学”、“研”、“用”的第一人,陈老师自然是敏锐的捕捉到了图数据的大有可为:随着AI如火如荼的发展,图数据作为底层数据存储分析技术,可以帮助机器学习领域获取更多维度的信息,在打破性能的约束后,可以说图计算是下一代AI发展的推速器。既然已经有了超前的学术成果,为什么我们不将其落地,进入寻常企业中?陈老师的提议很快得到了一众博士学霸们的响应,做商用系统软件很苦,但是很值得,为的是让性能瓶颈不在成为分析的障碍,也为了中国系统软件扬眉吐气的机会。

组件团队时,陈教授第一个想到的门生,是已经博士毕业多年,编写了世界上第一个开源分布式C++图计算系统,在微软亚洲研究院负责微软下一代大数据系统平台和分布式机器学习平台的洪春涛博士,MXNET早期原型设计正是在洪春涛博士的帮助下完成的。在微软研究院率队研发的经历,使得洪春涛博士既有成熟商业软件开发的经验,同时具备协作管理的阅历和协同开发的节奏把控力。加之对图计算的敏锐度,是担纲团队领袖的最佳人选。而洪春涛博士也早有做一番事业的想法,可以说是一拍即合。

朱晓伟博士自不必说,一路顶着保送清华、硕博连读、国家级奖学金、西贝尔学者、被国际一流期刊重点关注、斩获AMC一等奖等众多科技奖项的学者,比起去大厂带团队拿高薪,能让研究成果学以致用比什么都重要。

除了晓伟博士这样的“性能怪兽”,另一位“重量级”选手——应该是重“量级”选手——林恒博士的加入,更让陈老师觉得“稳了”。林恒博士是“神威·太湖之光”Graph500作者。“太湖之光”是我国连续两年四届取得Top500排名世界第一的高性能计算机,也是唯一一台采用自主研发的国产处理器的TOP ONE系统。林恒博士主导了该系统Graph500评选并获得世界排名第二,填补了国产高性能系统在数据分析领域奖项的空白。同时基于“太湖之光”研发的“神图”系统是世界上规模最大的图计算系统,入选了2018年“戈登·贝尔”奖决赛,也是中国唯一入围该奖项的项目。

速度、体量兼有之,陈老师觉得还不够,因此又挖来了GPU加速、机器学习领域专家李恺威博士,也是团队的另一位西贝尔学者、奥赛金牌获得者,曾率队连获世界三大超级计算机比赛(ASC、SC、ISC)的总冠军,在清华计算机系素有“小神童”之称。

至此,由冠军们组成的团队就成型了,几位创始人每个都是以一敌百,技术公司抢破头的精英,放弃了高薪、大厂、带团队的机会,被陈老师“一锅端”了,这样的顶尖阵容,放眼世界也找不到第二个。 “下一代的AI可能就踩在我们的肩上了”怀揣着改变科技格局的梦想,着手图数据落地的项目启动了。

快如电光的“费马”

说是项目启动,其实几位创始成员延续着此前在组里的默契和协作,跟博士在读期间的工作没有太大的区别。唯一的不同,就是商业应用不同于实验室中固定的环境和场景测试,需要顾及系统的方方面面,为了系统的高可用性、易用性、可移植性等应用场景中必不可少的部分,团队重构了图数据系统,优化了系统可用性,内置了大量的算法,封装接口等等,支持丰富的接口和调用语言,并提供数据快速导入导出、可视化等外围工具,便于管理和使用,使其更适应商业应用场景。

把世界上TOP级的聪明人聚在一起,自然效率奇高。系统重构仅用了三个月的时间,还是在洪春涛博士的严格要求下所用的时间。学霸之所以是学霸,不仅是靠天分,同时也靠好习惯。一直以来,洪春涛博士的每段代码,都会写两遍,第一遍目的是实现功能、跑通程序,第二遍是更合理更简洁更完美的实现,“对于程序员来说,2.0版本总是最好的,所以我会一次就做2.0”。作为团队核心,洪春涛博士即是CEO也是大家的学长,这一习惯被他带到了团队里,后面无论项目多紧张,这一习惯也不会打破。因此,在微软6年率队开发大规模复杂系统经验的加持下,洪春涛博士带领团队高质量的完成了系统重构。

产品成熟了,随之而来终于迎来了一个大家有分歧的问题:起名字。

起名这件事,可能比代码重构更烧脑,为此团队展开了激烈的讨论,最终学霸们为项目起了个速度为王的名字:F=ma(费马)。F=ma是牛顿第二定律,意为“加速”;同时FMA也是计算机的乘加指令(比快更快),中文名字致敬了数学家皮埃尔.德.费马。从此快如电光的LightGraph和PandaGraph有了更快的名字“费马”。

性能快百倍,内存消耗少十倍的 “闪电计算”

图数据的数据逻辑维度要远高于关系型数据,以社交场景为例,以往我们分析微博大V的权重,通常会按其粉丝数量来排名;而图数据不仅关注粉丝数量,同时关注粉丝质量,大V的粉丝是僵尸粉还是活跃粉,是小白还是同为大V,互动是否频繁等等维度数据在图数据中年清晰可寻。因此,图数据分析远超出二维的分析维度,每增加一层,分析的难度就高了百倍,分析的难度差距是巨大的。数据分析维度和数据量的增长对系统性能提出了更高的要求,如果性能不足,想要的分析也是难以实现的。

不同于以往科技公司“复刻”国外成熟产品和模式的套路,费马冠军团队只做性能最佳。那么对比国外成熟的图数据平台,费马凭什么能性能快百倍,内存消耗少十倍?

费马CEO洪春涛博士直言是“同类产品太差了”,在客户的实际业务环境中,经常会有上千倍的差距。

除了出自最严谨代码作者这一重要因素以外,从架构层到功能层,费马图数据平台进行了层层优化。在架构层,费马团队选择了更适合底层数据交互的C++语言,而不是主流的Java语言,虽然编写的复杂度高一些,但在应用时能够更灵活。举个例子,当图数据库从外存中读取数据时,有时需要利用操作系统的MMAP功能,而操作系统默认会进行预读取。操作系统假设我们是连续读取数据的,所以当我们读取一块数据时,它会帮我们把后面的数据也预先读取进来。但是在数据库中,我们经常是随机访问的,因此这个预读取功能会浪费时间读取没有用的数据。对于C++来说,我们可以通过系统调用来关闭这一功能,而Java则没有对应的功能。类似的操作还有很多,C++语言对底层数据处理更友好。在费马团队看来,选择什么语言来编写取决于实用性而非编写者的偏好。

功能上,在存储方面,费马支持多版本并发,将读写操作分开,写操作不影响读操作的性能,不会因为频繁的读写而降低性能;支持事务内并行,多个线程可以在同一快照上执行操作,从而加速长事务分布式处理;采用无锁数据结构,数据读取操作不需要任何锁操作,带来极高的吞吐率;前缀压缩,将相关数据存储在连续的空间中,从而提高遍历操作的效率,减少重复检索操作等等。

在分析方面,费马支持分布式扩展,能够线性扩展到分布式环境,正如闪电一样延伸再延伸;双模式驱动,图数据访问支持推送和拉取两种模式,并在运行中自动选择更优的模式,提高数据访问效率;采用连续数据块划分,在数据划分时,利用真实数据内在的关联性,将有关联的数据划分在一起,高质量的划分方法在分析时大有裨益;细粒度调度,将图数据任务动态映射到设备的CPU、核、线程等多个层级,满负荷利用计算资源。

种种优化带来了费马100倍性能增长的“闪电计算”,计算力可以无限延伸,处理万亿级的数据毫不费力,用户只需要基于费马平台,构建应用场景即可,处理速度电光即达。

目前,费马科技已为工商银行、京东金融、民生银行、搜狗搜索等大型金融、互联网企业及政府、军工类项目提供高性能可扩展的图数据平台,为企业存储和分析大规模图数据提供强有力的支持,同时费马团队在客户实践中经常会帮助客户额外优化场景和算法,致力于最佳实践。相信我国的顶尖级系统软件商业公司正奔跑在路上,“科技是没有疆界的,但是科学家有”,而费马科技目前要做的事情,就是突破封锁,尽快成长为Oracle级别的系统软件公司。我们也期待着更多顶尖成果落地商用,构筑起我们科技的长城。

100倍分析性能提升 清华冠军团队用图数据震惊世界相关推荐

  1. 千百倍的性能提升-Andrew大师谈数据库性能优化

    在今年3月份RWP中国之旅技术分享活动期间Andrew大师和AWR之父Graham接受了记者采访,首次对外讲述自己的职业生涯和心路历程,分享了他们在中国的感受和期待,并就当前IT系统现状做了深入分析, ...

  2. 比Tiny YOLOv3小8倍,性能提升11个点,4MB的网络也能做目标检测

    在本文中,来自滑铁卢大学与 Darwin AI 的研究者提出了名为 YOLO Nano 的网络,他们通过人与机器协同设计模型架构大大提升了性能.YOLO Nano 大小只有 4.0MB 左右,比 Ti ...

  3. lua jit java jit_Lua JIT 2.0 发布了,一百五十倍的性能提升!

    jzhang 2014-4-7 15:44:00 阅读(2432) 评论(2) 先把官方主页摆出来: 外链网址已屏蔽luajit.org/luajit.html Lua JIT 1.0早就有了,但是性 ...

  4. kettle性能及效率提升_开发人员掌握了这个技术,SQL效率会有几百倍的性能提升...

    完成相同业务逻辑的SQL,写法不同,执行效率可能会有几百上千倍的差距,今天我们通过几个案例来说明一下: case1 : 原sql代码如下(执行时间1.2分钟): with holder_clear_t ...

  5. Kunpeng BoostKit 使能套件:大数据场景如何实现“大鹏一日同风起”倍级性能提升?

    文章目录 前言 一.开源大数据与鲲鹏多核结构渊源 1.1.海量数据处理的难题 1.2.大数据并行计算特点天然匹配鲲鹏多核架构 二.开源大数据整体与组件介绍 2.1.大数据组件:Hadoop-HDFS ...

  6. 加速100倍,性能媲美SOTA!浙大提出无数据知识蒸馏新方法FastDFKD

    来源:机器之心 本文共2400字,建议阅读5分钟 本文为你介绍知识蒸馏的新方法. 在无法获取到原始训练数据的情况下,你可以尝试一下这种新型蒸馏算法 FastDFKD,数据合成与现有的生成方法相比,可以 ...

  7. 加速100倍,性能媲美SOTA,浙大知识蒸馏新方法FastDFKD

    来源:机器之心 在无法获取到原始训练数据的情况下,你可以尝试一下这种新型蒸馏算法 FastDFKD,数据合成与现有的生成方法相比,可以实现 10 倍的加速,与非生成方法相比,甚至可以达到 100 倍以 ...

  8. 137% YOLOv3加速、10倍搜索性能提升!百度飞桨推出模型压缩神器

    深度学习模型压缩,又有利器问世. 最新消息,历经一年四个版本打磨之后,百度推出最新深度学习模型压缩工具PaddleSlim1.0. 不仅囊括了深度学习模型压缩中常用的量化.剪裁.蒸馏.模型结构搜索.模 ...

  9. 137% YOLOv3加速、10倍搜索性能提升!这样的惊喜,最新版PaddleSlim有10个

    允中 发自 凹非寺  量子位 编辑 | 公众号 QbitAI 深度学习模型压缩,又有利器问世. 最新消息,历经一年四个版本打磨之后,百度推出最新深度学习模型压缩工具PaddleSlim1.0. 不仅囊 ...

最新文章

  1. 转:从零开始开发一款Android App (from 简书)
  2. Spring MVC,Thymeleaf,Spring Security应用程序中的CSRF保护
  3. Ubuntu14.04 VSCode工程在root下无运行,在非root无法修改配置文件
  4. 创业编程七个错误认识
  5. ASP.NET企业开发框架IsLine FrameWork系列之五--DataProvider 数据访问(中)
  6. docker for windows pull镜像文件的安装位置改变方法
  7. 没学好 Netty ,要凉?
  8. UNIX和LINUX系统下载中心
  9. java文件转码工具-native2ascii.exe命令简介
  10. python合并单元格出现:‘MergedCell‘ object attribute ‘value‘ is read-only 如何处理
  11. 计算机快捷键英语,输入法电脑中英文切换快捷键
  12. 一看就会 PicGo+gitee+Tyora个人图库搭建
  13. Python爬虫(四)——小说下载器
  14. 计算机设备管理器怎么看主板,电脑主板型号信息查看方法
  15. 玉米社:SEM竞价推广转化成本高?做好细节转化率蹭蹭往上涨
  16. Ceph 问题记录:MDSs report oversized cache / clients failing to respond to cache pressure
  17. 程序员成长笔记(二):SVN,Git,Mercurial
  18. JFIF-JPEG文件
  19. 千手观音背后:最残酷的残疾经历
  20. pb数据窗口显示图片_王者荣耀背后的腾讯自研数据库TcaplusDB实践

热门文章

  1. 皇太极有多宠爱宸妃海兰珠,从这三件事可以看出
  2. 科技型中小企业研发费用加计扣除问题解答
  3. 基于Python的飞机票销售系统的设计和实现
  4. PGO 是啥,咋就让 Go 更快更猛了?
  5. 方格网的填方和挖方计算
  6. web性能测试的关注点
  7. 输出电阻与反馈网络的关系以及计算
  8. 机房温度远程监控方案
  9. Redis订阅与发布原理
  10. 用什么方法可以将Word转换成PDF文档?