本文转载自 雷锋网 原文链接

阿里云如何“计算”地震?

我们的祖先凝望星河闪耀,却花费万年时间才摸索出天体运行规律。我们的前辈坐看潮涌潮平,却历经千秋万代才能航行到大洋彼岸。而我们自己,在这片土地上繁衍至今,却仍旧对脚下的大地懵然无知。从观察记录到规律预测,几乎是人类科学史的全部逻辑。但每次我们拼尽全力记下的数据,都只是抬高知识瀚海的涓涓细流。当我们提笔开始繁复演算的时候,期待的是阿基米德跳出浴缸、牛顿举起苹果的那一刻。王伟涛博士正是这样计算的执笔人,他来自中国地震局。他想知道的,是我们脚下大地的每个细节。

【王伟涛】

浩如烟海的计算

我们经历的每一次地震,都在提醒自己预测和预警这种灾害的迫切性。但是,我们距离这个目标还很远。为更好的认识地震这一物理现象,需要极其的详细的地壳结构影像,而为了绘制这张地下地图,又需要详尽的数据计算。目前为止人类打到地下最深的井是前苏联钻探的科拉超深井,约12.2公里,但是地震的震源深度往往在地下十几到几十公里,当前的科技根本无法在震源深度开展直接观测。所以我们需要依靠分布在全国的数千个地震台来对地震波进行探测,震波在地下的传播特性,受到地质结构的影响,这也是地震波可以用来绘制地底图像的原理。这些地震台可以感知地震的“大震波”,也同样可以捕捉日常的“大地噪声”,例如海潮拍击大陆的震动。王伟涛说。

【根据地震波进行地底成像的原理/图片由王伟涛博士提供】

王伟涛说,像他这样的地球物理科学家几乎都是半个程序员。因为从地震波到地底成像,中间要经过超越一般人想象的大规模程序计算。他的计算模型是这样的:每一次震动都会由近至远依次传递到各个地震台,所以理论上来说,每个地震台都会对同一次震动做出自己的记录,这些数据既有差异有又联系。利用这些数据,可以计算出一些“虚拟地震”。用每两个地震台之间进行数据互相关对比计算,就可以获取研究中国地下的总体结构所需要的宝贵数据。

【虚拟地震可以模拟出和真实地震一样的数据,所以可以用于本来没有发生地震的地区的地底成像】

每个地震波数据都有  E,N,Z(东西,南北,垂直)三个向度的分量,全国2000多个永久和临时地震台就是 6000 个分量,每年的数据量大概是 30TB,而我们的总数据量已经到了 PB 级别。由于我们要相互对比每一个地震台每个时间点的每个分量数据,这些计算量是呈指数级增长的。王伟涛的智慧和经验,恰恰表现在他所设计的程序和算法之上。但耗费很大心力完成这个算法的王伟涛博士发现,他才踏上了万里长征的第一步,还有一个巨大的困难横亘在面前。

【图中每两个地震台之间的连线(灰色)都是需要计算的数据,总计算量极其庞大图片由王伟涛博士提供】

如果使用单机对这些数据进行计算,大概需要七年时间。按照一个人的职业生涯二十年计算的话,我在退休前只能完成三次计算。在这种情况下,大规模分布式的云计算似乎成为了唯一的选择。然而,云计算的机理绝不像听起来这么轻盈。阿里云是中国地震局的合作伙伴,在这些童鞋们看来,云计算和科学研究一样,集合了人类最顶尖的智慧。

【所需存储空间、计算量和预计单机计算所需的时间/数据由王伟涛博士提供】

分布式存储:有关农场的游戏

“云存储就像一个大的农场,每个服务器就像一个工人,而你的数据就是羊。”阿里云存储高级专家承宗说。看来他是个牧场达人。“分布式存储”,可以看作分布式计算的基础条件。也就是说,你的羊要先放进阿里云的“农场”,它的工人才会帮你照料、喂养、剪毛、纺线。对于王伟涛博士的数据来说,仅仅是存储在云端,就需要无数“黑科技”。

在将要进行的计算中,计算系统会对存储系统进行大规模的访问。而这些访问必须要平均地打到服务器上,绝不能存在热点。而这还不够,由于服务器的硬件故障在大规模集群中会变成一个常态事件,所以必须做好资源的实时调度和提供故障容忍能力。例如保证在摘掉一块硬盘的时候,其余的硬盘要迅速用备份数据把存储追齐。承宗举了以上两个例子。这两个例子换成农场的比喻,大概是如下表述:农场对于工人的工作量要平均分配,绝不能出现“对着一个羊薅羊毛”的情况发生。另外,农场每天都有工人病倒、请假,要在最短的时间把他的工作合理分配给很多人,这样别的工人也不至于负荷过大。

整个阿里云的分布式文件系统,被命名为盘古。在承宗心里,盘古还有很多智能化的“黑科技”。他举例了一个例子:我们人类看到的磁盘都一样,但是盘古看到的磁盘各不相同。它会根据历史访问数据的积累,例如写入的速度和效率,对每一块磁盘的健康度进行打分。对于健康状况不好的磁盘,就相应减轻一些工作分配。这些底层的技术,都可以为王伟涛博士下一步真正的计算做准备。

承宗说,在分布式计算中,数据带宽成为了一个重要的参数。从王伟涛博士的角度来看,如果把数据存储在自己的服务器上,仅仅利用阿里云的计算能力进行结果输出,是不能实现的。原理很简单,分布式计算的所有服务器都向一个存储单位发送数据读取请求,带宽会被瞬间堵死,再强大的算力都无法发挥。至于具体数据,百兆光纤的带宽一般是 100Mb/s,而硬盘的带宽最高可达几Gb/s,而阿里云存储内网访问带宽(云计算系统内部)可以高达Tb/s级别。

批量计算:建造一座金字塔

接下来,王伟涛博士的数据就会进入最终计算的环节。我熟悉了自己习惯的 Linux 系统,所有的计算代码都是在这个环境中完成的,如何让我的代码在云计算的环境中发挥作用,是一个很重要的问题,王伟涛说。

【王伟涛博士地底成像数据的计算流程】

在地震科学研究方面,阿里云显然没办法提出算法建议,所以他们需要做的是,提供一个通用的接口,让王伟涛可以使用自己机房中的电脑、界面和Linux 系统,来对云上的计算进行控制。阿里云提供的兼容和适配能力,是阿里计算专家林河山颇为骄傲的地方。王博士在此之前没有使用过分布式集群,也没有使用过“超算”,所以直接跨越到云上,从操作和控制层面来说,对他来说会是个挑战。我们提供的计算接口可以让单机程序不做修改就高效执行在云环境下。用户通过几句简单的命令就能在云上调动大规模的计算资源进行分析,而不需要学习复杂的分布式计算知识。其实很多从其他地方过渡到云计算的人都会有这样的问题,所以不仅是王博士,很多其他用户也会用到我们的通用计算接口,他说。这个时候,大规模计算的障碍基本被扫清了。不过,云计算真正的核心技术,还在于批量计算的算力调度之上。

【大规模计算的加速流程和模式】

计算规模扩大之后,就会造成对存储资源的访问非常频繁,这时,对于访问的并发量的控制就要非常“小心”了。王博士的应用有非常多的小I/O请求,如果每一次I/O请求都直接访问云存储,由此带来的延时会对计算效率造成影响。为了进一步优化计算性能,批量计算采取了“分布式缓存”的策略,把有可能会用到的数据,提前缓存到计算节点周围。这样,就可以让计算能力不受集群规模的限制,林河山说。

而即使是这样,还远远不够,对于数据访问究竟采取多大“粒度”,是考验系统智能的重要时刻。如果一次读取过多,可能造成带宽拥堵,如果一次读取过少,又会造成频繁访问。而针对不同类型的数据,都要做出合理的预判,自动地读取,是一项艰巨的任务。打个比方:这如同建造一座金字塔,数万名“奴隶”要分工合作。工程师要决定:是牺牲速度一次性运输多个石块到现场,还是牺牲数量,一次快速运输一块石头到现场。同样,面对浩瀚的金字塔工程,每时每刻要分配多少奴隶来搅拌砂浆,分配多少奴隶来搬运石块,分别分配多少奴隶来负责建造各个区块,这个即使是工程师都需要仔细考量才能完成的任务,都要交给系统自动完成,难度可想而知。

当然,如此繁复的计算过程,出错是经常会发生的。林河山举了一个例子:在渲染追光动画的动画片《小门神》时,阿里云的容错机制就发挥了作用。(当时在峰值有 2000台服务器参与了大规模批量计算。)一般情况下, 对于视频的渲染工作是一个连续的长流程。如果某一帧渲染中哪怕只有一个节点出问题,都会造成访问的大规模延时,造成逻辑上的拥堵,产生“热点”。林河山说:“阿里云的做法是,在计算出错之后,在最短的时间内重跑,如果在跑的过程中确认节点存在问题,还会自动调度到另一个地方,这些对于用户来说都是没有感知的,但是在背后,我们必须做出大量的努力。

绘制地下的世界

原本需要一年计算时间的整个中国数千个地震台两两之间的五年数据的计算任务,在云计算中狂飙,48小时之内就计算完成了。

【地球内部成像,恰似人体的B超】

这在云计算时代来临以前是无法想象的。从科学研究的角度来看,这些数据是原始的地震观测数据的数据产品,同时也是后续科学研究所依赖的重要数据,可以很好地支撑王伟涛进行接下来的研究。从外界看来计算过程非常顺利,而刚才我们所感受的一切艰辛,都只发生在背后的代码世界。

【各个步骤耗时统计/图片由王伟涛博士提供】

借用阿里云产品总监李津的话:当计算结果输出的时候,我们所有的技术人员都沉默了。我们多么渴望这样的数据早几十年被计算出来,这样我们就能为人类认识地震这一自然灾害争取宝贵的时间。抛开商业的云雾,可以看到云计算真正的的锋利所在。王伟涛的研究并没有停止,他说:目前为止,我只做了2011年到2015年的一个向度上的数据分析,未来还会继续把更多向度和频率上的数据进行计算。科学研究的精确度是可以一直提高的。越来越精确的地底数据,会为矿产勘探、防震减灾和地震科学研究提供非常强的支持。

科学的有趣之处,正是在于不断地尝试。有可能一觉醒来想到新的方法,就要重新改写公式和代码,通过计算进行验证。也许有一天,属于王伟涛的那只苹果会悄然落下。那一刻,是王伟涛的胜利,也同样是人类计算力的胜利。我们倾尽全力提高算力,把数据的涓涓细流汇聚成洪荒之力,只是因为我们不愿对脚下的大地懵然无知。


感谢 雷锋网 对2016杭州云栖大会的精彩分享!

【云栖大会】阿里云如何“计算”地震?相关推荐

  1. 【全记录】2017杭州·云栖大会阿里云服务专场

    ​​作为年度科技盛会,2017杭州·云栖大会盛大空前,消息占据了各大媒体核心版面,世界的目光再一次聚集在阿里云身上.目前阿里云已跻身全球公共云市场三甲,付费用户超100万.在这场轰轰烈烈的" ...

  2. 2022云栖大会|阿里云授予数据宝年度产品生态伙伴大奖

    11月5日,由浙江省人民政府指导,杭州市人民政府.浙江省经济和信息化厅.阿里巴巴集团共同主办的2022云栖大会隆重闭幕.云栖大会以引领计算技术创新为宗旨,承载着计算技术的新思想.新实践.新突破.本届大 ...

  3. 杭州云栖大会阿里云放大招,8K远程医疗会诊引关注

    大家每天都会照镜子,镜子里的一切都清清楚楚,足可乱真,可是你想过有一天看视频直播就像照镜子么? 这不,在云栖大会的C馆里,8K超高清直播体验馆前异常火爆,在这里,很多参会者都围着有110寸的屏幕,想要 ...

  4. 2020年云栖大会阿里云线上直播地址

    最新消息,阿里云在官微上宣布"2020云栖大会"即将于9月17日-18日开幕,大会由阿里巴巴集团主办,是面向政府.产业.开发者的世界级.现象级科技大会. 云栖大会的前身可追溯到20 ...

  5. 2017北京云栖大会:云效企业级协同研发专场议题揭秘!

    为什么80%的码农都做不了架构师?>>>    摘要: 阿里巴巴原汁原味的研发协同平台是如何支撑双十一1682亿背后的研发协同?大中型企业如何完成公有云/专有云/混合云转型升级,实现 ...

  6. 【云栖大会】云栖大会盛大召开 已成全球一流科技盛会

    [提醒]本文为"云栖大会"演讲的简要总结,会议全程直播仍在进行中,更多精彩请点击直播页==>https://yunqi.aliyun.com 10月13日,2016·杭州云栖 ...

  7. 阿里古谦:阿里互联网架构的6大最佳实践-博客-云栖社区-阿里云

    阿里古谦:阿里互联网架构的6大最佳实践-博客-云栖社区-阿里云

  8. 2021云栖大会 | 谐云携手阿里云共拓云原生“应用定义”最佳实践

    2021杭州云栖大会于10月19日-22日在杭州云栖小镇举办.谐云作为阿里云的核心合作伙伴,受邀并亮相21日的云原生峰会,谐云CEO王翱宇在现场进行了"深耕云原生技术:Kubernetes应 ...

  9. 新闻 | 聚焦技术领域现状与发展阿里巴巴知识图谱专场亮相云栖大会 阿里知识图谱亮相云栖大会产学深度交流推进业务创新

    14日,阿里巴巴知识图谱正式亮相云栖大会,本次活动邀请到诸多阿里技术专家与学界领军人物参会,一同探讨知识图谱领域的现状与远景,推动产业界与学术界深度交流. 知识图谱将信息表达成更接近人类认知世界的形式 ...

  10. 云栖大会——阿里聚安全亮出创新技术 颠覆APP传统安全加固

    2016年10月17日 17:32  2175 10月13日,杭州 · 云栖大会如期召开,亮点之一就是将会有众多"黑科技"汇聚,其中由阿里聚安全带来的"全量混淆" ...

最新文章

  1. CSS样式学习-CSS 背景
  2. BugkuCTF-Misc:爆照(08067CTF)
  3. Web前端技术分享:什么是块元素?什么是行内元素?
  4. python识别图片指定位置文字_python批量识别图片指定区域文字内容
  5. 计算机网格和云计算区别,什么是云计算,什么是网格计算,他们之间有什么区别...
  6. 实践 | 图片文本爬虫与数据分析
  7. USB协议 - UVC标准协议规范(二)
  8. 软考高项论文怎么写?——软考高项笔记9
  9. codeblocks下载安装教程(完整详细)
  10. 《自学SpringCloud微服务架构》之第 10 篇 —— API 网关服务 SpringCloud Zuul
  11. java字符串长度_Java字符串长
  12. Ubuntu临时修改ip地址
  13. 数学公式神器【MathPix Snip】,截屏公式转为LaTeX代码
  14. shawn0102_播客:留下每年35万美元的工作以学习编码-Shawn Wang访谈
  15. 考题篇(5.2) 19. 数据防泄漏 ❀ FortiGate ❀ Fortinet 网络安全专家 NSE 4
  16. 北航os实验lab2笔记
  17. 做实验好比开车,危险一直都在,为啥出事的就是你?
  18. 【文字识别】OCR截图文字识别提取(无需安装)拖拽图片,打开图片,图片PDF转文字的好帮手
  19. lua -- class
  20. 云南大学研究生院c语言真题,云南大学地图学与地理信息系统研究生考试科目和考研参考书目...

热门文章

  1. QQ:一个服务器,无数个客户端-中心化结构。新技术:去中心化-分布式
  2. 视力减退,3招改善你的”马虎眼“
  3. 熟悉面试中常见的的 web 安全问题
  4. VSCODE 全局搜索无效的问题
  5. 四六级、考研英语准备经验
  6. 云存储服务是什么意思?
  7. c语言链表编程,C语言 实现链表
  8. POJ 2111 Millenium Leapcow(记忆化搜索+dfs记录路径)
  9. jQuery操作css方法
  10. 微信小程序项目实例SSM项目家政预约系统