Skip to main content

地震学中十七年超级计算机的运用与其他问题

Original Essay:http://sepwww.stanford.edu/sep/jon/nrc.html

 

作者:斯坦福大学,Jon Claerbout

 

国家研究委员会就地震学中高性能计算机开展会议

 

1994102日,晚餐后小聊


 

  • 我的出身
  • 开始工作
  • 技术传递和研究可重复性
  • 万维网、MosaicHTML
  • 地球物理反演理论
  • C++电脑语言
  • 结论

我的出身

我于1960年开始从事地震学核探测工作。那时候与麻省的Wiener和Levinson,以及Cooley-Turkey FFT一起进行信号分析和信息论,算是相当辉煌的时光了,我得以使用世界一流的主机,还拥有着年轻的活力,以及非常可观的预算。但问题是,这个理论在远震上确实没有起到很大的作用。

 

也许你对物理学的信息远超过对信息论的信心。当学生们来看我,对S波激动不已的时候,我必须告诉他们,出于某种原因,我们在反射地震学中无法观察到S波。我有1000盘磁带可以搜索。所以物理学似乎也让我们失望了。

 

还有一些学生找我讨论各向异性。简单来说,很难根据地标地震数据进行任何令人信服的各向异性测量。

 

在今晚晚些时候,我可能还会告诉你倒置装置也不起作用。我并不是说行不通,而是当你费尽心机让某个设备起作用,但结果却不尽人意,而且一路上总是失望。你通常便会说“它不适用于这类质量的数据”。

 

回到1-赫兹远震信号分析的辉煌岁月,我发现了一个惊人的定理。即需要分层介质和陡峭入射的标量波。该定理表示“地震图自相关的一侧是反射地震图。这是一条迷人的定论,因为从理论上讲,可以通过预测和消除所有多次反射将其转换为反射系数。

 

但这条定论也在现实中无法实现。我认为其失败的原因在于,地球通常不是1赫兹以上频率的分层介质。

 

我放弃了地震学,后来获得了麻省理工大气重力波电磁效应的博士学位。

 

让我重新回到地震学领域的是在雪佛龙咨询并学习地震图偏移。非常,非常惊人。你能看到向斜、背斜、尖灭和断层,那些滑动长度非常明显的美丽断层。后来我们拥有了3D地震学技术,原来我们看到的噪音并不是噪音,而是埋在地下的河道。那些河道是如此的美,没有人质疑他们展现的状态。有时候捕捉到的照片甚至和医学图像一样清晰。差强人意的核爆炸地震图与让人惊喜的勘探地震图间的差异似乎是由震源和接收器的数量与位置造成的。

 

1967年,即使每桶油价在3-4美金,出于我对勘探地震学的钟爱程度,我还是决定再次成为一名地震学家。我全身心投入,直到几年后,我成功得出一个单项波动方程和一个有限差分偏移成像方法,并被许多地球物理承包公司开发并销售。我从中得到了什么吗?当然有,我获得了名为斯坦福勘探计划(即SEP)工业财团的支持,而如今它为我的15名博士学生支付学费,而且我自从1973年以后就没有写过另一份提案。多年来,我指导了大约40名博士,其中大多数也进入了工业界。

 

如今我们大部分的日常工作都是在工作站上完成的。在此之前我们有一台VAX,我在1976年也第一次购买了一台PDP-11计算机,为此我们还在斯坦福校园获得了第一个UNIX许可证。我的第一台超级计算机是FPS- AP-120B,一直保存了7年,即1977-1985年。我们第一年使用AP的效果不理想。我其实一直知道硬件和软件的缺陷,那一年,我们尝试将那台机器连接到UNIX时,我真正了解到了文档的缺陷。后来我们与学生们一起度过了很多美好的时光,他们对研究微代码和向量函数链接器充满了热情,我们也做了许多优秀的地球成像工作。最后的几年,我想把AP当成废品回收,但所有的学生都不同意。去年夏天,也就是AP-120B停止运行后的第十年,我找到一名以前的学生并问他,“我对于AP的做法是对的吗,还是学生对?”他告诉我我是对的。他说“那时候我们都特别喜欢,我们很忙,但感觉在完成一些了不起的事情。”当然,现在所有的这些代码都是毫无价值的。

 

我的第二台超级计算机是一台Convex,也使用了7年。和上一台AP一样,我们很早就得到了这台机器。我们的机器是石油行业里的第一个,在国家安全局购买了大概10台超级计算机的时候,我们差点卖了这第一台。当时我们在购买这台非常早期的模型时,没想到这家不知名的Convex公司实际是一场豪赌,因为那时候我们大约有7个非常令人信服的基准。它的表现超出了VAX约12倍,我们也确信这家公司会在业内运营很长时间。另一件好事是,除了运行着布满灰尘的机器外,Convex还有供应商维护UNIX。哎呀!忘记自行维护UNIX肯定是件非常棒的事。

 

如今我们拥有了一台Thinking Machine CM-5.如果我们愿意让程序员进行消息传递,那我们本可以拥有一台来自不同供应商的免费超级计算机。但我们当时认为消息传递会延缓我们大部分的研究。另一方面,我们也喜欢并行Fortran编码这样的概念。我有超过一半的学生自愿学习并使用这种方法。一位高压下的供应商从我们这里得到了一个简单的Fortran 77基准程序,通过显示有限差分在均匀介质中标量波。一两周后,他的公司以创纪录的速度运行了这个程序,但他们没有得到正确的答案。如今有一个大型SEG-DOG计划,据我所知,四台不同的超级计算机在前四个月的努力中给出了四个不同的答案。他们的测试基本是简单明了的3D程序但速度可变。传递信息的超级计算机不适合我们这些努力创新的人。这些超级计算机更适用于高度专业的专业,以便他们可以专注于一项他们坚持多年不变的任务。

开始工作

既然你们都对我的经历和偏见有所了解,那么让我开始谈谈本次会议的一些目标。

我认为并行计算机会已自身的节奏发展,我们地震学家不需要对此做出任何干预。当其发展就绪后,我们便会加以运用。现在有更大的问题我想和你们谈谈,关于我们可以做且一起做的事情。那么主要的问题是我们希望如果彼此合作呢?

 

四五年前,我接到过张三教授的一通电话,他对李四教授则是进行了大量的抨击。他说李四教授的工作,看似非常具有吸引力,因为不仅充满了地球学的意思,还有巨额资助以及毕业后很好的工作机会。但唯一的问题是,即使经过多年的尝试,李四教授(及其所在的整个机构)都无法复制张三教授的工作。“这难道不是个天大的丑闻吗?”有人这么问我。我考虑了一会儿说道:“是,但我身边还有更大的丑闻。多年来我每年都让两名博士生毕业,而他们所研究出的成果中的大部分,也是我自己无法复制的。”有的人可能会说“你啊,你这个白发秃头的老山羊,自然是不能复制他们的研究成果了”,但我的回答是,就算是同学间也无法做到,甚至是一年后,他们自己也往往无法再复制他们自己的作品。

 

我们在SEP的时候工作进展非常好,我经常会问赞助商们,“你们尝试过我们最新最好的某流程吗?”他们的回复往往是“我们认为至少需要3-4个月才能赶到你停下来的地方,我们没有这样的时间和人力。

 

所有的这些经历让我明白,研究的可重复性是一个深层次的人类问题,我从没想过会有任何简单的技术解决方案。对于经常带毕业生的我来说,这种重复性其实是一个非常令人讨厌的问题。通常要下一名学生接手前一名学生留下的研究,往往需要一年以上的时间。研究的可重复性也给我编写包含理论、代码、数据和结果的优秀教科书带来了困难。

让我自己感到惊讶的是,在那几个月后我便解决了这个问题。那大概是三年前的事了。我们确确实实解决了这个难题,接下来我会告诉诸位这是如何实现的。解决方案灵感来自于我为实现技术转让努力研究的过程中。

技术传递和研究可重复性

研究可重复性的基本思想是,对于打印文档中的每个图形标题,我们都必须附加一个指向创建该图形的命令脚本和计算机目录的指针。而重复性无法实现的一个原因在于,位置常常丢失。我们将其付诸实践的方法是在目录结构和文档之间建立映射。每个图形都有命名。作者制作的目录结构包括该图形名称的makrfile目标。作者还需使用文件命名规则,以便通过makefile规则轻松识别和删除最终绘图文件和所有的临时文件。清理结束后只会留下原始程序、参数文件和数据。构建后我们则会看到临时文件和绘图文件。

 

工程学中,发表的论文则是给奖学金打的广告,而电子文档则相当于是奖学金本身。四十年前,记录数据还是采用“铅笔和纸张”,理论则是一些希腊符号。那时候纸张文件便已足够,无需再多。但现在我们需要电子文件。

 

不同人的做法不同,很多操作细节可以体现。例如,在SEP,我们能在屏幕上看到打印文档,每个图形标题都有一个菜单来刻录并重建该图形等。我们发现这样的规则对研究人员来说是个额外的小负担,但在其理解以后,他们中的大多数人都喜欢已这样的方式维护日常工作。这比学习像LaTeX这样的东西要容易得多。

 

经过进一步的发展,现在的很多文件都被刻录到了光盘上。本周我们将制作第9张光盘的发行,从而将报告交给赞助商,书籍和其他则是面向广大群众。一张光盘能容纳600兆字节,而我的教学书大约有1兆的文本,每张光盘的制造成本为一美金,几乎可以容纳你一生中在键盘上输出的所有文本内容。我认为光盘非常成功,可以帮助新生快速上手。但其作为UNIX计算机发布的媒介却令人有些失望。首先,对论文和研究报告的需求从来不是很大。其次,制造商也没有向我们提供Macintosh为其开发人员提供的基本工具。使用时无法通过将其放入UNIX机器中点击某个图标来开始运行。你得成为超级用户,这意味着你得对链接树进行一些繁琐的操作。UNIX最终放弃了光盘,因此我认为学术出版的真正未来在于网络。但不幸的是,目前在几乎任何网络上传输600Mb的内容都需要很长时间。

 

那么,我们现在谈谈使用互联网进行合作。大多数人都知道电子邮件和FTP(即文件传输协议)吧。

万维网、MosaicHTML

你听说过CERN(即欧洲物理中心)和NCSA(即伊利诺伊州超级计算机中心)开发的万维网、Mosaic和HTML(即超文本标记语言)吗?我来描述一下,虽然我还是个初学者,但我看到很多团队已经取得了非常明显的进步。想象一下每个人的主目录都有一页用此类特殊标记语言编写的文本。只要一些简单的说明,你便可以使用任何文本编辑器进行修改。使用Mosaic程序,你可以在屏幕上查看该文档。可以将单词高亮标记或增加下划线。也可以直接点击。通过点击可以跳转至你文档中的其他位置,或者跳转到自己或其他人计算机中的另一个文档。也可以在文档中制作一个按钮以跳转至其他文档,例如斯坦福大学或GSA(即美国地质会)的主页,只要有这些网址就行。从这些文档中,你可以访问世界各地无数条此类型的超文本文档(并随时填写您的地址簿)。如果将地址给了其他人,则他们也可以访问你的主页。现在很多人都在制作这些HTML文件。必须承认的是,GSA领先于AGU和SEG。海洋学具有完善的HTML,地震学则似乎杂乱无章。我忘了说这些HTML文档可以包含彩色图片,很多的文档中也已经包含了彩色图片。许多机构的首页都非常吸引人。Hewlett-Packard给用户提供了其产品的良好指南。如果你还没有开始在网上冲浪,在你面前的是精彩无比的另一个网络世界。我们的团队也在刚刚起步。你可以放大并随意阅读我们的传记,按下按钮便可以查看我们的肖像图片。我们也有计划在线上加入课程大纲。大家都见过大学的目录吧,教授需要将他们的课程描述以一小段文本展示。但随着HTML的出现,这样糟糕的过去很快就会过去了。以后的学生可能会抱怨我们主页缺失详细的信息。我有两本已经绝版的教科书。出版商说“我们一年只卖50本,现在库存售罄,我们也不会再继续印刷。这对作者来说无疑是个个人悲剧。”我计划【10月12日完成】将我的绝版教科书免费发布到网络上,并通过万维网做广告。HTML文档可以成为你向全世界发布的个人广告,无需支付任何费用,其详细程度也是随你心意。人们可以比在电话薄中更轻松地查找。我确信这种媒体会流行起来。

 

不难想象,我们最终会能够使用网络来分发重复性的研究。换句话说,只要你按下电脑上的一个按键,就能从我的电脑上抓取一个图形制作目录。我们对此的渴望程度,足以支持我们对其开始研究吗?如果是这样,我们应该为可复制的文档定义一个标准。而斯坦福的定义只是一个开始。在其他团体没有说明自身冲突的需求和想法前,SEP也无法制定相应的标准。我的梦想是成为NSF的主要负责人,并且我会要求公共资助的研究以这样的方式再现。

 

我没有提到数据库。数据库对网络传输来说太大了,但可以用HTML宣传其存在,并从中分发样本。

地球物理反演理论

反演是另一个领域,容许我们以比现有方式更理想的方式进行合作。我之前可能说过反演不起作用。我其实的意思是,当进行此类活动时,我们一定会从中体会许多失望。教科书(包括我自己的作品)中高质量实例的数量实在是少之又少。

 

二十年前我开始从事地震成像工作,大约在十年前我开始了解工业地震成像与地球物理反演理论的关系。我长话短说解释下这一点。一张地震图大约有一百万像素,尺寸约为一千乘一千。模型空间有一百万个参数。工业标准数据处理可以被视为是通过伴随矩阵转置来逼近逆算子。有了这样的认知,你可以想到我们中的许多人可能会因此发了大财,即通过引入反演彻底改变地震成像行业。至今为止这件事还未发生,我也没法轻易相处哪怕是适度的改进。研究人员可以诱使精心设计的反演程序取得明显的成功,但将此过程传递给消费者却不是一件易事。

 

反演的一些困难是其本身固有的,例如在被除数为零的情况下,或是提出某种模型协方差和可靠的非线性迭代方案。尽管如此,我认为我们可以通过更有效的方式共同努力来克服一些困难,我会尝试着去解释我们该如何做到这一点。

C++电脑语言

Fortran的一个问题是:似乎要求从业者即是地震学专家又是优化理论专家才能熟练操作。这样的组合对几乎每个人来说都太难了。一些人通过使用Mathematica和Matlab得以适当处理该问题。我对此非常赞赏,但我认为我们需要在地震学和非线性优化方法之间建立起更灵活的联系。我们需要的是一种能让地震学家与其他数值专家一起工作的方式,而不需要互相了解对方的工作。FFT程序上的调用序列是数值专家和地震学家间连接的一个例子,他们彼此间不需要互相了解。反演借口比简单的Fortran调用序列复杂得多了。

 

这正是现代面向对象语言(如C++)所解决的问题。他们将其称之为“信息隐藏”。地震学家应该做的是形成算子的所有原子部分,并指出是如何构建为原子部分链或将其区分。

C++库基础结构应该做的是通过反转链、将列运算符转换为行运算符来提供伴随运算符。Numerical Specialist应该做的事,在某些信息隐藏语言(例如C++)中提供优化方案。我的团队为此苦苦奋斗了2-3年,最近我们开始与莱斯大学的Bill Symes团队合作。万事开头难,但我们对这个方向深信不疑。

 

我对未来的看法是,对于那些进行正演建模和通过相当标准化的方法处理数据的人来说,并行Fortran似乎会更好,但对于努力进行算法开发和反演的人来说,类似C++类的方法似乎更好,但前提是必须先开发基本框架。有人想帮忙吗?

结论

总之,我认为我们地震学家应该讨论与网络相关的重复性研究的概念。我们的社区应该开始为可重复的文档制定一个标准。斯坦福SEP的定义仅仅只是一个开始。

最后,我在此感谢组织者将我们聚在一起,我希望我们将来能更加紧密地合作。