周礼栋:现在是计算机系统和网络研究“最好的时代”
编者按:随时随地使用各种系统和工具,对现代人来说早已是司空见惯的事,但这一切完美工作的技术和服务并不是凭空出现的。正是因为微软亚洲研究院副院长周礼栋博士和他带领的团队这样从事系统和网络研究工作的研发人员在幕后不断的努力和创新,才能保证各种技术无缝、稳定、高效、持续地协同进行。
在本文中,周礼栋博士接受访谈,介绍了在这个系统拥有前所未有的复杂性的时代,如何精进系统与网络的研究工作,解释了像CloudBrain这样的项目针对实时故障排查来解决云规模问题,也探讨了网络相关的“灰色故障”问题,并告诉我们为什么现在是系统和网络研究的“最好的时代”。本文编译自微软研究院播客“The brave new world of cloud-scale systems and networking with Dr. Lidong Zhou”。
作者 | 微软亚洲研究院
转载自微软研究院AI头条(ID: MSRAsia)
主持人:作为微软亚洲研究院的副院长,您领导着计算机系统和网络方面的研究,我知道您自己也从事很多研究。先简单告诉我们您做了些什么,为什么要做这些事情。让您每天起床的动力是什么?
周礼栋:我认为现在是研究系统和网络最激动人心的时刻之一。系统和网络的进步推动了众多技术的发展,比如互联网、网络搜索、大数据、人工智能、云计算等,现在我们每个人都依赖这些服务。反过来,所有的这些技术进展又为系统和网络带来了前所未有的复杂性、规模性、动态性。而系统就是在混乱中带来秩序,把所有那些原本毫无关联的部分整合成一个统一的整体。
近年来,随着系统的发展,一些传统的系统专业知识,比如分布式系统、操作系统或网络,已经不足以解决我们面临的挑战。我们还必须掌握其它领域的知识,比如数据库系统、编程语言、编译器、硬件、人工智能、机器学习和深度学习等。在微软亚洲研究院,我们把一个拥有不同专业知识的团队聚集起来,一起解决那些最具挑战性的问题。
主持人:近20年的职业生涯中,您一直致力于推进分布式系统的理论和实践。请谈谈这些年来您参与的项目,以及您为分布式系统所做的技术贡献。刚刚提到了系统的复杂性,您如何看待这些年的演变呢?
周礼栋:我们正进入分布式系统的时代。作为分布式系统研究人员,我们总是相信,我们在做最重要的部分。微软研究院拥有独特而优越的联系理论和应用的研究和实践环境,让我们有机会了解产品团队面临的的技术挑战。在帮他们解决难题的同时,我们也有足够的灵活性,不局限于解决当前具体的问题,而是从更长远的视角深入思考问题的本质,思考开发什么样的新理论、新方法来应对这些挑战。2000年初,当微软开始做网络搜索时,我和Roy Levin、Leslie Lamport等当时的同事一起和搜索的开发经理开会,了解他们遇到的分布式系统方面的挑战,并分享我们研究的分布式系统协议,它能保证分布式系统在各种故障下持续正常运行,并提供可靠的故障搜索服务。刚开始,开发经理认为他们可以自己实现故障处理和容错。但是几个月之后,面对众多复杂的情况,他开始与我们合作,来支持和实现那些协议。
在开发各种协议时,我们倾向于做一些假设,比如可以容忍的故障数量。当我们做研究时,这些假设是可行的。但在实践中,我们必须考虑假设不成立的极端情况。理论和实践是有区别的。在微软研究院工作的好处是,你可以接触真正的问题,让你了解哪些假设是合理的,哪些假设不合理,然后思考从更广泛的意义上解决这些问题的最好方法,而不只是停留在解决某个特定的问题。
主持人:除了技术难题的研究,您也一直致力于推动系统研究人员的社区发展,能否分享一下您推动亚太地区系统研究人员社区发展的经验?尤其是亚太系统研讨会(APSys)的发展及成果。
周礼栋:一直以来,美国都拥有非常强大的系统社区。最近十几年,我们看到欧洲系统界的成长和壮大,欧洲的系统研讨会开始兴起,并发展成成功的EuroSys会议。健康的学术社区和学术会议可以极大地促进一个区域内的学术研究,吸引更多研究人员的参与。
2010年,我已经在微软亚洲研究院工作,我和同事们想为亚太地区的系统社区贡献一些力量。于是,我们举办了第一个亚太系统研讨会(APSys)。那是一个非常小的开端,但此后它的发展远远超出了我们的预期。今年8月我们将在杭州举办第十届APSys研讨会,来自世界各地的研究人员和专家都在为研讨会的成功做贡献,它的影响力已经远远超出了某个特定的地区。
主持人:您把这归功于什么?
周礼栋:首先这是自然趋势,这些年亚洲出现很多技术进步,研究社区向亚太地区扩展是必然的。另一个原因,是整个社区真正走到了一起。许多顶尖的系统研究人员都来自亚太地区,我们想回馈亚太的愿望非常强烈。
主持人:2017年,在您的争取下,计算机系统领域顶级会议操作系统原理研讨会(SOSP)成功在上海举办,据我所知,竞标的难度堪比承办奥运会!
周礼栋:SOSP是计算机系统界最重要的会议之一,最初一直在美国举行,后来开始在欧洲国家轮流举办。2011年开始,我们和上海交通大学的陈海波教授开始为亚太地区争取SOSP的举办机会,并得到了ACM SIGOPS的两任主席和很多同行的鼎力支持。经过三次努力,SOSP最终在2017年来到上海,吸引了创纪录的800多名参会专家。这次会议对亚太地区的系统研究的意义重大,我们很高兴看到越来越多来自亚太的高质量研究出现在顶级的系统学术会议上。
主持人:让我们谈谈教育。微软亚洲研究院举办的中国计算机系统教学研讨会今年已经是第四届。图灵奖得主John Hopcroft称赞它是“迈向改善教育和培养世界级人才的一步”,请分享您对这个研讨会的看法?
周礼栋:首先,系统教育需要更进一步。对微软亚洲研究院来说,我们非常自豪能通过研讨会将来自世界的系统研究和教育人员联系在一起,促进欧美和亚太地区的的交流。另外,通过研讨会,我们也致力于培养下一代系统科学家和工程师。在这个过程中,我们得到了像Lorenzo Alvisi、Robbert Van Renesse、Geoff Voelker等知名教授和中国系统界一线教授的支持,他们全情投入参与研讨会。相信有这些充满激情的教授,我们将看到中国发展出更强大的新一代系统研究人员。
主持人:您曾经提到,在云计算和人工智能时代,我们设计系统的方式要发生根本性转变。哪些事情发生了变化?如何构建下一代系统?
周礼栋:过去的30年里,计算机系统界致力于系统可靠性的工作,开发了很多相关技术和网络协议,以为它们可以解决所有的问题。这套机制源自上世纪70年代末的飞机可靠性机制研究和设计。我们根据这类系统故障做了一些合理的假设,提出了现在仍然适用的网络协议。
但比起之前的系统,云计算系统要复杂得多,发展也更迅速,过去的很多假设被打破,有时应用了所有的现有方法和理论都无法解决这个僵局。
另一方面,过去的计算系统很容易理解,但现在的复杂性已经超出了我们的理解。但很多新技术能带来更有趣的改变,例如机器学习和深度学习,我们可以将其应用于处理系统的复杂性,这是一个非常有前景的方向。
主持人:让我们聊聊云时代的故障。在不那么复杂的“前云时代”,您如何处理异常和故障,现在又在尝试哪些新方法呢?
周礼栋:过去,我们研究的系统可靠性机制是基于过时的故障假设。但是,随着某些故障假设不再成立,我们定义了一种新的故障类型,“灰色故障”,一个系统组件不再是“非黑即白”,从某种角度看,它的行为是正确的,但在另外一个角度却不是。“灰色故障”是许多云计算系统宕机背后的主要原因。
对我们而言,云计算服务故障每时每刻都在发生,但是很难找出哪些故障更加重要。我们要了解故障,并进一步了解整个系统的运行情况。我们在试图弄清什么时候、何种情况下,灾难性的故障会发生,进而阻止它的发生。
CloudBrain是一个云计算自动故障排除的研究,利用系统规模来帮助我们诊断问题,找出问题所在。它有三个组成部分:一是准实时监控和诊断系统目前的状况,而不是在事后查看和分析系统日志;二是全局视图,不仅是对系统进行单次观察,而是融合对系统的所有观察,理解整个系统如何运行,哪个部分存在问题;三是统计推断:用统计方法真正推断出存在问题的部分。这个项目把大规模数据处理的挑战,转化成了解决系统复杂性的新手段。
主持人:这个灰色故障的研究进展到了哪个阶段?
周礼栋:我们离彻底解决问题还有距离,但是已经可以解决一些特定的问题,如DeepView和CloudBrain两个项目已经整合到Azure来处理与网络有关的问题。我们也在探索其它有趣而实用的想法,比如从思维方式上根本改变程序设计的范式。以前的防御性编程设计强调的是完善的异常处理,但在大型复杂的系统中仅仅处理异常是不够的。因此,在我们最新的研究工作中,我们将异常处理的逻辑改为异常报告和汇总分析。实际上,我们也在构建一个系统,可以自动将传统的处理错误的代码转变成以我们期待的方式进行错误报告的代码,这样开发者不需要重写整个代码库。这为我们解决灰色故障提供了全新的思路和可能。
主持人:您是如何来到微软研究院的?为我们分享一下您的职业发展。
周礼栋:在我博士毕业的时候,导师给了我一个非常简单的建议,就是去那些能找到最好的同事的地方,去和那些可能有图灵奖水准的同事一起工作,所以我最终选择了微软研究院,那时,我们并没有图灵奖得主,十年后我们有两个!我觉得同事很重要,特别是在我职业生涯的早期。从某种意义上我学会了如何做研究,不是发多少论文,而是推动研究的内在激情。我职业生涯的第一阶段更多是个人发展,第二阶段是来到微软亚洲研究院,成为一个研究组的负责人,这不仅关乎个人发展,也关乎着如何组建团队,如何帮助他人成功,为他人的成功产生影响也可以带来极大的成就感。也是在那段时间里,我意识到自己的职责不仅仅是建设亚太地区最好的系统研究团队,还要为社区做出贡献。所以我们启动研讨会,并将会议带入亚太地区,还有人才培养和许多其它事情。在我看来,随着我们的职业发展,这些变得越来越重要。
这就是我职业生涯的三个阶段:始于个人发展、个人学习,爱你所做的,做你所爱的;然后开始不断为他人的成功做出贡献,提高影响他人的能力,并积极地影响他人;最后是思考自己能为整个社区、整个社会做些什么。我很幸运在这个过程中能结识很多优秀的领导和同事,并从他们身上学习到很多。
主持人:我想请您对刚刚涉足系统和网络研究的研究人员提供一些建议,您认为即将出现哪些尚未解决的重大问题?
周礼栋:在这个时代从事计算机系统和网络的青年研究员是很幸运的。Butler Lampson曾说过他自己非常幸运,因为他经历了70年代末、80年代初的计算范式变革。而现在,我们也正处在一个变革时期。上一次的计算范式变革中,施乐帕克研究中心的研究人员定义了以后30年的计算机。即使是现在,我们仍然生活在他们定义的世界里:电脑、手机、鼠标、激光打印机、用户界面。上一次的计算范式变革的原因是计算机变得越来越强大,能把一台巨型计算机的计算能力装进一台个人电脑里。
现在的计算能力达到了另一个里程碑,计算能力将隐形于我们周围,计算支持的智能将无处不在。计算机的虚拟世界和我们的物理世界之间的界限将会消失,这将带来新一次的范式变革,我们的首要任务是要探索在接下来的十年二十年里,计算到底意味着什么。我们必须从一个不同的角度来看待未来世界,而不仅仅是关注系统和网络协议的渐进式改进。未来,我们不会是在电脑前才能进行计算,而是可以利用身边无所不在的计算能力。这一切都亟待我们年轻的研究人员通过研究和创新来实现。
(*本文为 AI科技大本营转载文章,转载请联系原作者)
◆
精彩推荐
◆
“只讲技术,拒绝空谈!”2019 AI开发者大会将于9月6日-7日在北京举行,这一届AI开发者大会有哪些亮点?一线公司的大牛们都在关注什么?AI行业的风向是什么?2019 AI开发者大会,倾听大牛分享,聚焦技术实践,和万千开发者共成长。
目前,大会盲订票限量发售中~扫码购票,领先一步!
推荐阅读
正态分布为何如此重要?
智能文本信息抽取算法的进阶与应
入门必备 | 一文读懂神经架构搜索
爬虫到底违法吗?这位爬虫工程师给出了答案
印度人才出口:一半美国科技企业CEO是印度裔 | 数据分析中印青年
为什么说“大公司的技术顽疾根本挽救不了”
25 年 IT 老兵零基础写小说,作品堪比《三体》| 人物志
中小企业搭建混合云,服务器如何选?
从0到1 | 文本挖掘的传统与深度学习算法
一览微软在机器阅读理解、推荐系统、人机对话等最新研究进展 | ACL 2019
1.2w星!火爆GitHub的Python学习100天刷爆朋友圈!

相关文章:

ChaLearn Gesture Challenge_2:examples体验
前言: 在上一篇博文ChaLearn Gesture Challenge_1:CGD数据库简单介绍中已经简单介绍过CGD2011数据库,了解到该数据库可以作为公开的数据库来测试在深度信息和RGB信息上的手势识别。当然了,也可以通过参加这个挑战赛来对比自己的手…

vs2008 外部调用ActiveX控件接口方法
转自:http://topic.csdn.net/u/20090605/16/018e26e9-06e2-4e0d-8099-bc8eb326afde.html sndaxdrs: 初学activeX ,我写的一个 activeX控件测试程序。 分别调用两个 自定义方法, 分别出现 “找不到成员”,和“非选择性的参数”的提…

设计模式之禅笔记
2019独角兽企业重金招聘Python工程师标准>>> 1.设计原则 1)单一职责原则 There should never be more than one reason for a class to change (就一个类而言,应该只有一个引起它变化的原因) 用于控制类的粒度大小,防止类过于复杂…

vs2008部署问题
转自:http://tangxingqt.blog.163.com/blog/static/2771087220098214755269/ 参考资料 1、VS2005解决"应用程序配置不正确,程序无法启动"问题 2、VS2005安装文件 "由于应用程序配置不正确,应用程序未能启动" 3、Micro…

expdp数据泵导出操作
数据泵需要在本地执行,不可以远程登录操作。 数据泵需要建立目录directory --sys下 create directory su as d:\xs 目录的数据字典是dba_directories SYSncbeta>select owner,directory_name,directory_path from dba_directories; 要求导出scott用户下的emp表…
slf4j 日志监控
问题描述 监控系统 新系统起步,旨在监控原有系统的各种问题。主要的一部分,就是监视原有系统的日志。 日志,是Java企业级应用开发必不可少的一部分,市场上有诸多日志框架。我们选用slf4j。 日志有以下级别: TRACE, DEB…

阿里90后科学家研发,达摩院开源新一代AI算法模型
整理 | 一一出品 | AI科技大本营(ID:rgznai100)AI科技大本营7月5日消息,阿里达摩院宣布开源新一代人机对话模型ESIM。该算法模型提出两年多,已被200多篇论文引用,更曾在国际顶级对话系统评测大赛(DSTC7&…

在vs2008中配置OpenCV2.2
1、下载OpenCV2.2:http://www.opencv.org.cn/index.php/Download 2、下载后解压缩OpenCV-2.2.0-win.zip; 3、下载CMake:http://www.cmake.org/cmake/resources/software.html 4、安装CMake; 5、运行cmake-gui,在wh…

开发者,什么是你真正关心的问题?| AI ProCon 2019
2018 年,上千名开发者与上百名技术专家齐聚一堂,在 CSDN 2018 AI开发者大会上以“AI技术与应用”为核心,深度聚焦人工智能的技术创新与行业应用,真正做到了“只讲技术,拒绝空谈”。今年,在产业智能化的浪潮…

C语言程序的结构
1.一个程序由一个或多个源程序文件组成。 a.预处理指令 b.全局声明 c.函数定义 2.函数是C程序的主要组成部分。 3.一个函数包括两个部分。 a.函数首部 int 函数类型 max 函数名 (int 函数参数类型 x, 函数参数名 int 函数参数类型 y…
flask 核心 之 应用上下文 及 请求上下文
Werkzeugs 是 Flask 的底层WSGI库。什么是WSGI? 一段简单的app: def dispath_request(self, request):return Response(Hello World!)def wsgi_app(self, environ, start_response):request Request(environ)response self.dispath_request(request)re…

vs2008中常见错误解决方法汇总
1、error C2859 vc90.idb is not the idb file that was used when this precompiled header was created。 解决方法:选中工程-->点击右键属性-->Configuration Properties-->C/C-->Output Files-->Program Database File Name中的$(IntDir)/vc90.p…

加速AI应用落地,英特尔AI 2.0的进阶之道
人工智能模型的复杂度不断增加,对内存的需求也越来越大。深度学习的进一步发展需要解决内存限制问题,而当前的解决方案无法利用所有可用计算,业内人士逐渐意识到需要专用芯片来支持深度学习训练和推理。英特尔则在人工智能方面提供优越的硬件…

MySQL基础之 恢复数据和数据库迁移
1、mysql命令或者source命令恢复数据 这两个命令在进行恢复数据的时候要检查是否创建数据库。如果数据库不存在,则恢复失败。 数据库迁移 1、相同版本的mysql数据库之间的迁移。 mysqldump -h host1 -uroot -ppwd --all-databases | mysql -h host2 -uroot -ppw…

.Net 文件流 System.IO之Stream
转自 :http://www.cnblogs.com/yukaizhao/archive/2011/07/28/stream.html Stream在msdn的定义:提供字节序列的一般性视图(provides a generic view of a sequence of bytes)。这个解释太抽象了,不容易理解;…

Hinton等人最新研究:大幅提升模型准确率,标签平滑技术到底怎么用?
作者 | Rafael Mller , Simon Kornblith, Geoffrey Hinton译者 | Rachel责编 | Jane出品 | AI科技大本营(ID: rgznai100)【导读】损失函数对神经网络的训练有显著影响,也有很多学者人一直在探讨并寻找可以和损失函数一样使模型效果更好的函数…

WaitForSingleObject和WaitForMultipleObjects用法
转自:http://www.360doc.com/content/10/0512/09/1072296_27178529.shtml 等待函数可使线程自愿进入等待状态,直到一个特定的内核对象变为已通知状态为止。这些等待函数中最常用的是WaitForSingleObject: DWORD WaitForSingleObject(HANDLE hObject, DW…

【面试必问】支撑百万并发的IO多路复用技术你了解吗?
多路复用其实并不是什么新技术,它的作用是在一个通讯连接的基础上可以同时进行多个请求响应处理。对于网络通讯来其实不存在这一说法,因为网络层面只负责数据传输;由于上层应用协议的制订问题,导致了很多传统服务并不能支持多路复…

DllMain already defined in dllmain.obj错误
错误 uafxcw.lib(dllmodul.obj) : error LNK2005: DllMain already defined in dllmain.obj 修改: 去掉宏定义 _USRDLL 转载于:https://blog.51cto.com/co63oc/1122378

典型的数字水印软件
转自:http://blog.csdn.net/pastora/archive/2005/04/15/348413.aspx ---- 目前,数字水印软件既有商品化产品,也有供研究用的免费软件。 商品化软件 ----提供商品化数字水印软件的公司主要有以下一些: ----1.Digimar…

AI、5G、小程序、AIoT纷纷迎来高峰,下一步开发者们要怎么办?
2018 年,上千名开发者与上百名技术专家齐聚一堂,在 CSDN 2018 AI开发者大会上以“AI技术与应用”为核心,深度聚焦人工智能的技术创新与行业应用,真正做到了“只讲技术,拒绝空谈”。今年,在产业智能化的浪潮…

linux第四课
一、配置软件仓库1.yum简介基于rpm软件包的安装部署机制自动解决软件包的依赖关系需要先配置软件仓库2.配置本地的软件仓库a.放入centos7.iso镜像文件到光驱中,确保电源开启b.命令操作# umount /dev/cdrom# ls /mnt# mount /dev/cdrom /mnt# ls /mnt# mkdir -p /rep…

图像处理和图像识别中常用的CxImage函数
1、Load:reads from disk the image in a specific format; 2、Save:saves to disk the image in a specific format; 3、Filter:2D linear filter(图像锐化,可提高图像清晰度); 4、Copy&…

大战三回合:XGBoost、LightGBM和Catboost一决高低 | 程序员硬核算法评测
作者 | LAVANYA译者 | 陆离责编 | Jane出品 | AI科技大本营(ID: rgznai100)【导读】XGBoost、LightGBM 和 Catboost 是三个基于 GBDT(Gradient Boosting Decision Tree)代表性的算法实现,今天,我们将在三轮…

云计算之Docker介绍
1. 百科简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙…

还在纠结垃圾分类问题?带你用Python感受ImageNet冠军模型SENet的强大
作者 | beyondma转载自CSDN博客本月1日起,上海正式开始了“史上最严“垃圾分类的规定,扔错垃圾最高可罚200元。全国其它46个城市也要陆续步入垃圾分类新时代。各种被垃圾分类逼疯的段子在社交媒体上层出不穷。其实从人工智能的角度看垃圾分类就是图像处理…

软件开发流程包含哪些内容
2019独角兽企业重金招聘Python工程师标准>>> 能否开发出一个好的软件,关键是看软件开发前期所做的工作,重点是这个软件有没有一个好的 软件开发流程,因为一个好的软件开发流程关系到到这个软件的成败和最后能达到一个什么的效果&a…

在对话框中应用CScrollView显示图像
1、用vs2008创建一个基于对话框的工程DialogView; 2、添加一个新类CMyDocument,基类为CDocument; 3、添加一个新类CMyView,基类为CScrollView; 4、修改CMyDocument的头文件: #pragma once // CMyDocument …

如何用纯 CSS 创作一个同心圆弧旋转 loader 特效
效果预览 在线演示 按下右侧的“点击预览”按钮在当前页面预览,点击链接全屏预览。 https://codepen.io/zhang-ou/pen/OZmXQX 可交互视频教程 此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。 请用 chrome, safari, edge 打开观看…

Java长见到的面试题,看你能答出几题,就知道自己有多菜了
作者:Java3y前言只有光头才能变强Redis目前还在看,今天来分享一下我在秋招看过(遇到)的一些面试题(相对比较常见的)0、final关键字简要说一下final关键字,final可以用来修饰什么?这题我是在真实的面试中遇到的,当时答得…