华莱士·埃克特


Original Essay: http://www.columbia.edu/cu/computinghistory/eckert.html


我记得Eckert博士曾经对我说过:“有一天,每个人的桌上都会有一台电脑。”这句话让我眼前一亮。当时还是50年代初期,他却预见到了。

—Eleanor Krawitz Kolchin,2013年2月,自《赫芬顿邮报》




Wallace John Eckert (1902-1971),于哥伦比亚的芝加哥大学毕业,后在耶鲁大学Ernest William Brown (1866-1938)教授的带领下取得博士学位,后者致力于开发月球运动理论。Eckert从1926年至1970年,于哥伦比亚大学担任天文学(Columbia University Astronomy)教授,其最出名的贡献为其对月球轨道的计算,使阿波罗号成功登月,他还担任Thomas J. Watson天文计算局(Thomas J. Watson Astronomical Computing Bureau)的创始人和主管(1937-40年间),美国海军天文台航海局主管(US Naval Observatory Nautical Almanac Office)(1940-1966年间)以及哥伦比亚大学沃森科学计算实验室(Watson Scientific Computing Laboratory)的创始人兼主管(1945-66年间)。首先,作为天文学家的Eckert驱领并负责日渐强大的计算机建设,以解决天体力学中的问题,尤其是验证、扩展和改进布朗理论(Brown's theory)。他是最早使用穿孔卡片机解决复杂科学问题的人之一。也许更为重要的是,当他在1933-34年间,将各种IBM计算机和制表器和他自己设计的控制电路和设备相互连接,用以解决微积分方程时,他成为了第一个将该过程自动化的人,而这些方法之后也被改编并扩展到IBM的"Aberdeen" 可插拔序列继电器计算器(Pluggable Sequence Relay Calculator)、电子计算打孔器(Electronic Calculating Punch)、卡编程计算器(Card Programmed Calculator)和SSEC中。作为Watson Lab和IBM纯科学部门主管,他负责SSEC(可以说是第一台真正的计算机)和NORC(据说是第一台超级计算机),二者为当时最强大的计算机。他还负责了 IBM 610, 即为世界上第一台“个人计算机”。 1946年,他在哥伦比亚安装了第一代的计算机,并用以研究和教学使用,与此同时,他还首先开展了第一个计算机科学教程,其中包含他自己的课程 - 《天文学111-112》: 科学计算方法,以及同年由Watson Lab科学家Grosch 和Thomas教授的其他课程。

Eckert对天文学的兴趣不止于月球。他还制作了五个外行星的星历,并致力于研究轨道理论和测量技术。在当时没有任何国家机构可以及时响应的时候[59], 他利用Watson Lab Aberdeens技术的出现,计算年度小行星Kleine Planeten的星历表,弥补了战后的差距。

Eckert投入大量精力使其计算自动化,但并没有盲目地将全部所见都自动化。在1941年1月11日,他给给IBM的D.W. Rubidge写了一封有关WPA数字表计算项目(WPA Project for the Computation of Mathematical Tables)的信,信中写道:“在讨论大型图表制作项目时,人们必须考虑到此工作是为了减少工作还是创造工作。您的机器不太适合后者,因此不建议将其作为解决大萧条期间失业问题的方法。”

1948年,Eckert因其出色的天文研究,获得了国家科学院詹姆斯·克雷格·沃森奖章(National Academy of Sciences James Craig Watson Medal)。 经他改良的月球星历成功完成了阿波罗任务[92]; 他还在去世前参与了阿波罗14号的发射。Eckert的作品《科学计算中的打卡方法》(Punched Card Methods in Scientific Computation )一书,作为第一本计算机有关书籍,影响了许多其他计算先驱,例如Presper Eckert(二者并非亲属关系!),Howard Aiken,和Vannever Bush [90]。而从某种意义上来说,第一版由“计算机”排版的书籍(first "computer"-driven typesetting)(1945)也受益于他。Eckert将计算技术带入哥伦比亚大学,并在将该技术推向全世界方面了关键作用。

月球共和国(The Lunar Republic)中解释了Eckert火山口一名的起源(北纬17.3度;东经58.3度):

Eckert, Wallace John (1902-1971), 为美国天文学家;也是使用计算机将天文数据制成表格的先驱。在第二次世界大战期间,其担任国家航海历局主管。在职期间,他开始使用机器进行计算和打印表格,并在1940年开始出版《空中年鉴》(Air Almanac)。他指导创建了许多用于天文计算的新型计算机,其中包括选择性序列电子计算机(Selective Sequence Electronic Calculator)(SSEC, 1949)和海军军械研究计算机( Naval Ordnance Research Calculator )(NORC, 1954),这两种计算机多年以来一直是世界上功能领先的计算机。Eckert对月球轨道计算的准确性极高,以至于在1965年,能够准确像世人展示月球表面附近存在的大量物质。在1967年,他得出的数据结论也改进了布朗月球理论(Brown's theory of the Moon)。


在1966年的《Eckert-Smith航海年鉴》(Eckert-Smith Nautical Almanac)中提到了一个具有演说性的言论(未注明):“在上世纪30年代,W.J. Eckert和E.W. Brown合作研究后者的理论。在50年代,随着计算机的发展,计算工作变得更加容易管理(他本人也对此起到了很大的有益影响),他将注意力重新放回了研究月球理论。但不幸的是,在完成手稿的最后一部分不久他就去世了。”之后他的作品由Martin Gutzwiller(物理学家兼Eckert在Watson-Lab的同事)和Dieter S. Schmidt(现任职于辛辛那提大学EE&EC部)完成,并在以下Martin Gutzwiller的文中发表。

Martin Gutzwiller说道:“尽管他曾取得惊人的成就,但他丝毫不会掩饰。他的想法总是很明确,判断总是以事实为根据,并且表达直接。”[90] 认识他的人都表示他很安静,与人相处很愉快,并在犯错时十分谦逊。

Herb Grosch 对他的评价是:“如果他放弃天文学投身计算机,我想他的知名度一定更高。他对计算机行业的贡献巨大,但只是为了能够更好地研究天文学”(于1982年10月22日,计算机博物馆演讲)。另外还说道,“如果在天文学界有诺贝尔奖,他和耶鲁大学的同事Dirk Brouwer以及海军天文台的Gerald Clemence都应该为其通过SSEC和之后的IBM设备使用而对了解月球和其他行星运动作出的杰出贡献而获奖。”[57,p.118].

开放性问题:

  • • Eckert在现代计算机发展中的作用被很大程度的忽略,我认为这是对他的低估。他最主要的贡献是实现了自动排序,首次是在1933-34年其卢瑟福天文仪器(Rutherford Observatory apparatus)中实现,之后是在1942-46年间,在海军天文台(Naval Observatory )中得以部分实现(在他设计的卡台式打印机中(card-operated table printer)),再之后在哥伦比亚的战后Watson Lab里,先是用于实验中继电器计算器Nancy和Virginia, 接着是 SSEC和 NORC。 IMB的Aberdeen继电器计算机( Aberdeen Relay Calculators)(1944年)里运用了一种自动排序的形式,John McPherson 谈及和Eckert在战时前去导弹研究实验室(the Ballistics Research Lab [74]),因在海军天文台“指定”这些机器,Eckert被至少提名(没有署名)一次(以下为Campbell-Kelly的参考资料),Herb Grosch说道:

    有关Aberdeen系列,我和你的想法一样:我忍不住相信[Eckert]为此做出了贡献。但似乎一点证据都没有。比如,他是如何“订购”WSCL的计算机的呢?这是他在1945年初录用过程的一部分吗?IBM在“老头”的控制下发展地如此快速 – 将生产运行由三级(两次升级和一次Dahlgren)升级至五级,这原本轻而易举,无需费心。但这说明Wallace还在海军天文台的时候就知道升级的事情了!我敢打赌,Cunningham和他在1944年尾声跟他在电话上聊过了,也可能反复说过这件事,但我们永远不得而知了。

    算了! 2010年7月Allan Olley报道了1967年IBM的口述历史专访,谜团得以揭开:

    S: 您是否有参与过继电器计算之类的工作,例如Aberdeen系列,并进行评估以用于工作?

    E: 没有。这些在二战晚期就出现了,那时候我正准备离开海军天文台…

    Nancy和Virginia由IBM的Pete Luhn建造,并在1946年交付给Watson Lab;Eckert在设计和生产中充当了什么样的角色?那IBM的卡片编程计算机(Card Programmed Calculator)(1949)呢?后者通常可追溯到1948年诺斯罗普飞机公司生产的原型(prototype at Northrop Aircraft ),该原型在1948年使用一台IBM 603乘法器和一台405会计计算机制成,但我特别怀疑Northrop公司是从Eckert 1946年和/或 1947 IBM的论坛演讲或论文集中获得的灵感,其中Eckert介绍了Nancy和Virginia,尽管没有提及二者的名字,而是将其称为由卡编程的“婴儿序列计算器” [89,105]。 Brennan [9]写道:

    …几种类型的机电乘法器(拥有类似Nancy和Virginia一样的代码名)。有趣的是,Eckert在一台快速算数处理器的实验模型上加了一台会计计算机。机器由卡片上的编码打孔机进行控制,而非由控制面板上的接线进行编程。该举的结果是产生了早期的序列计算机,也影响了IBM注明的卡片编程计算机(Card Programmed Calculator)。

  • Eckert位于Pupin Hall 的天文计算机实验室(Astronomical Computing Lab)在早期的曼哈顿项目中起到了什么样作用?要知道在1930年晚期,Fermi、Szilard、 Rabi、 Urey和很多其他杰出科学家都在同一栋楼里工作。考虑到新一代的核科学家对收集和分析大量数据的痴迷,很难相信他们不想使用这些机器。但根据Herb Grosch的说法,事情并非如此:

    在看到von Neumann 和Feynman用了那些机器后(例如在1944年),那些研究核能的科学家也迫不及待想用上。不早前Urey和Rabi就知道任职于MFCCU(哥伦比亚男子教师部,Columbia Men's Faculty Club),也是一名天文学家,但正如我在第30页(p.30 )所说,毫无疑问,没有人真正使用计算机。在解决PDE所做的工作很少是通过松弛技巧来完成,大多数时候而是由例如Southwell的工程师操作,而非Courants类技术。之前有个叫Ritz的人有过一个技术… 之前的技术并没有在“打孔机”上很好的利好,早期的大型计算机也是如此。天文学家耗其一生刻苦钻研,但在30年代并不能将其知识在“物理界”加以利用。而他们改为建造了回旋加速期!

    无论如何,事实就是曼哈顿项目的洛斯阿拉莫斯科学实验室(Los Alamos Scientific Laboratory)以及美国陆军的阿伯丁试验场(US Army's Aberdeen Proving Ground)的计算设施都是基于Eckert的哥伦比亚实验室(Columbia Lab)。

  • Wallace Eckert和Presper Eckert与John Mauchly之间存在什么联系?哥伦比亚实验室(Columbia Lab)对ENIAC存在了何种影响?但由于ENIAC项目在一般意义上都是机密,因此就算存在了某种影响,我们也无从得知。Eckert的论文中没有提及对应的关系,但这其中不包括他现已丢失的海军天文台论文。Allan Olley在2006年7月25日的报道中写道:

    我最近发现Henry Tropp(曾在Eckert上著写DSB条目)曾撰写一篇IEES Spectrum的文章,其中饮用了他在1940年的著作。文章题为“潮气蓬勃的那些年:回顾”( IEEE Spectrum,第11卷,第2卷,第70-79页,1974年)。其中主要讨论了George Stibitz, Howard Aiken 和John Mauchly。 在第74页中提到Wallace Eckert谈论了John Mauchly:

    在Ursinus(始于1933年)期间,他(指Mauchly)偶然阅读了一篇哥伦比亚大学计算机实验室Wallace J. Eckert撰写的有关使用打孔机进行计算的出版物… 那时候,Mauchly才知道自己对统计知识的了解甚少,并开始研究这类主题。在1936年,他在卡内基学会(Carnegie Institution)其父负责的部门得到了一份暑期工,于是他开始将自己所学的统计知识应用到天气数据统计中…”

    不幸的是,这篇文章中的引用不够谨慎(除了Eckert的书刊以外,他在本节中并未引用任何其他内容)。如果我的理解正确,他的消息来源可能是当时Tropp正在负责的史密森计算机历史项目(Smithsonian Computer History Project),因此可能是一封信、一篇未公开的描述文章或访谈)。

    我想Mauchly自己的回忆录是这篇文章的依据。假设时间正确,是1933年-1936年间,Eckert在此期间发表的唯一有关打孔卡计算的论文便是他在天文学协会(1934年)的演讲摘要,在AJ中有关小星星数值积分的文章以及在Baehne book中的文章。考虑到阅读激发了对统计学的兴趣,Baehne book似乎更可能是摘要的依据来源(因为我也认为这里面提及的内容更多)。

  • Eckert的海军天文台打印机(Table Printer)也是卡片编程的第一次实际使用吗?细节不太可靠,但我找不到更早的应用。如果真是这样,这件事的历史意义重大。从部分卡片中而非全部来执行程序是谁的想法?但Eckert在海军天文台工作的论文也不见了。(Herb Grosch说“卡片操作”和“卡片编程”并不相同;数据卡和主卡似乎是分开的,二者之间的切换需要人工完成,但Eckert在卢瑟福实验室(Rutherford Lab)的开关箱却正相反,其正如Herb所说,“‘切换时’不需停止机器,这样的操作方法完全不同,且更新颖。”)

  • Eckert有直接联系美国国家航空航天局(NASA)吗?因为他在阿波罗号准备期间,重新开展了月球轨道工作,您可能会认为二者之间有着某种联系,但我并没有找到任何证据。(所有的报道都指出,尽管他1949年的改进月球星历表(Improved Lunar Ephemeris)“很好”,但宇航局并不想引进新的表格或方法使事情复杂化。)但无论如何,Eckert的工作成果的确引导了阿波罗号的成功升天。并且,很有可能“成功背后的人”Katherine Johnson(Hidden Figure Katherine Johnson )(和其他人)的工作基于Eckert的作品展开。我想知道他们是否曾经交流或见面过。