acm-header
登录

ACM通信

面试

弗朗西斯·e·艾伦访谈


IBM荣誉院士Frances E. Allen

弗兰·艾伦评价CS:“这是一个如此神奇的领域,它改变了世界,而我们才刚刚开始改变。”

图片来源:Frank Becerra, Jr. / The Journal News

美国计算机学会会员Frances E. Allen, 2006年美国计算机学会A.M.在50年的职业生涯中,他对程序优化和编译器构建的理论和实践做出了根本性的贡献。她的贡献还极大地扩展了早期在自动程序并行化方面的工作,使程序能够同时使用多个处理器以获得更快的结果。这些技术使得用适合于应用程序的语言对计算机进行编程时能够实现高性能。她于1957年加入IBM,并参与了一系列创新项目,包括IBM 7030 (Stretch)及其解码协处理器Harvest、IBM高级计算系统和PTRAN(并行翻译)项目。她是IEEE院士、计算机历史博物馆院士、美国艺术与科学学院院士和美国国家工程学院院士。

2008年,ACM研究员Guy L. Steele Jr.访问了艾伦在IBM T.J.沃森研究中心的办公室,进行了一次延长的口头采访。这次采访的完整文本可在ACM数字图书馆中找到;这里展示的是一个浓缩版,突出了艾伦的技术成就,并提供了一些关于她的同事的轶事。

您的第一个编译器工作是为IBM Stretch。一个

是的。1955年,IBM意识到要比当时现有或计划中的任何机器快100倍,需要克服的主要性能问题是内存延迟。他们投入到Stretch中的先进理念和技术就是为了解决这个问题。六个指令可以同时执行。内部存储器是交错的,数据不按顺序到达,数据和指令都存储在这个存储器中。他们建立了一个非常复杂的缓冲系统和前瞻性。约翰·科克(John Cocke)在1956年来到这里时,被任命为负责未来指示的负责人。它还被设计成具有精确的中断。所以前瞻装置是一件了不起的硬件。

制造了多少个Stretch的副本?

八个或九个。最初是为洛斯阿拉莫斯建造的,发货晚了。然后他们发现它的性能只有预期的一半。

但是,50次……

与此同时,底层技术已经发生了变化。沃森在春季联合计算机大会上宣布他们将不再生产拉伸机,并为我们的失败向全世界道歉。但后来人们认识到,在制造Stretch过程中开发的技术对后来的机器产生了巨大的影响,尤其是360。很多人从Stretch转向了360,包括弗雷德·布鲁克斯。

你和Stretch有什么关系?

我的角色是编译器。1957年我加入IBM时,我在密歇根大学(University of Michigan)获得了数学硕士学位,并获得了高中数学教师资格证书。但是我曾经在IBM 650上工作过,所以我被IBM研究院聘为程序员。我的第一个任务是教授FORTRAN语言,这是在那年春天出版的。

你已经知道FORTRAN了吗,还是像教授们经常做的那样提前一周学习?

是的,提前一周(笑)。如果他们想说服客户,就必须让他们的科学家和研究人员使用它。我有一个非常不开心的班级,因为他们知道他们可以比任何高级语言做得更好。


后来人们认识到,在制造Stretch过程中开发的技术对后来的机器产生了巨大的影响。


你说服他们了吗?

是的,而且赢得了我的心。领导FORTRAN项目的John Backus从一开始就设定了两个目标:程序员生产力和应用程序性能。在教授这门课程的过程中,我学到了所有关于编译器的知识。

你自己做过那个编译器吗?

我读代码是为了做训练。它设定了我思考编译器的方式。它有一个解析器,然后是一个优化器,然后是一个寄存器分配器。优化器识别循环,并构建控制流程图。

Stretch小组认识到编译器将成为该系统的重要组成部分。我们一群研究人员被征召去研究它。美国国家安全局(NSA)与IBM签订了一份合同,为Stretch开发一个附加组件,用于密码破解。Stretch将承载密码破译组件,还有一个大型磁带设备——牵引磁带,用于保存大量数据。

这就是弹力丰收吗?

是的。Stretch Harvest将会有一个编译器,它可以使用FORTRAN,我和NSA一起研究的编码破解语言叫做Alpha,还有Autocoder,它类似于COBOL。

一个包含所有三种语言的单一编译器框架?

是的,三个解析器将转到高级中间语言,然后是一个优化器,然后是寄存器分配器。在当时,它是一个非常雄心勃勃的编译器,甚至连哈希表都还没有被很好地理解。一个编译器,三种源语言,针对两台机器,Stretch和Harvest。除了管理优化器组,我还负责与NSA一起设计Alpha。我是国安局团队之间的桥梁,他们知道问题所在……

从来不想告诉你到底是什么问题。

他们告诉我一点也不介意,但没关系。我对下面的一切都一无所知,而且是故意的。“国安局”这个词并不为人所知。我在做这个项目的时候,有两个人去了莫斯科,刚走,就撞上了纽约时报那时我才知道这是怎么回事。这是一项非常谨慎的活动。问题基本上是在大量的数据流中寻找标识符寻找关系,识别k-图表和做统计分析。任何一条Harvest指令都可以运行好几天,并且可以自我修改。

这台机器最神奇的地方在于它是同步的。数据从这个磁带系统通过内存,通过流单元,到Harvest单元,流单元,返回到内存,然后返回到数据存储库,并且在时钟级别进行同步。

这些数据来自冷战期间世界各地的监听站。我花了一年时间在国安局安装系统;在那一年,猪湾事件和古巴导弹危机发生了,所以那是一个非常紧张的时期。我猜大部分数据都是西里尔文的。但是Alpha可以处理任何被编码成字节的数据。

我为编译器和语言编写了最终的验收测试。我写了最后的报告给了他们,再也没见过,这让我很后悔。

接下来你做了什么?

约翰·科克痴迷于制造世界上最快的机器,而Stretch已经被公开宣告失败。当我完成《Harvest》时,《Stretch》也已经完成了。我本可以去做360的。我并不是特别想那样做;这是一个遍布世界各地的庞大工程。约翰想再一次尝试构建世界上最快的机器,所以我加入了他的一个名为System y的项目。这次首先构建了编译器。Dick Goldberg是管理器,负责解析器,我负责优化器,Jim Beatty负责寄存器分配器。我们有一个非常棒的循环级别计时模拟器。我们建立了所谓的实验编译系统。

Y系统变成了什么?

它变成了ACS(高级计算系统),最终在1969年被阿蒙克总部取消了,我们应该知道会发生这种事,因为它不是360。但我们开发的东西后来对公司产生了很大影响。我们在分支预测(包括硬件和软件)、缓存以及与机器无关的、与语言无关的优化器方面做了很多工作。约翰对不能造出世界上最快的机器感到非常失望,他决定造出性价比最高的机器。这就是801项目中PowerPC的由来。

在ACS之后,我从编译器的工作中走了一条不愉快的题外话。我被分配到FS, IBM著名的“未来系统”。它的表现太差了,我写了一封信。FS需要两次往返访问内存来获取任何数据项,因为它有一个非常高级的中间形式作为机器的体系结构形式。

是不是该让我想起为艾达设计的英特尔432处理器?它有一个非常高级的架构,结果是受内存限制的,因为它不断地从内存中获取描述符。

是的。我们不善于传递我们学到的教训,我们不善于记录我们的失败。

失败的作品比成功的作品更难出版。

但其中也有很多教训。在对FS愤怒了几个月后,我给上级写了一封信,说:“这行不通”,以及为什么,那是错误的。所以我被搁置了一段时间。但后来我用IBM分包给Intermetrics的PL/I编译器做了很多工作。

你工作的编译器,比如ACS编译器和PL/I编译器在20世纪70年代,它们是用什么语言实现的?

其中一些是用FORTRAN实现的,一些是用PL/I实现的,还有一些是用汇编语言实现的。

α怎么样?

那是用Stretch的汇编语言写的。


任何一条Harvest指令都可以运行好几天,并且可以自我修改。


你的1976通信John Cocke的论文包含了一些实际的PL/I代码,将集合表示为位向量,并围绕程序控制流图传播集合。集合的交集和并集只是PL/I &和|操作符,这使得代码简洁易读。您说过PL/I是一种复杂的编译语言,但它似乎具有表达能力。

是的,它对于编写优化器和编译器非常有用。数据流的工作来自早期的FORTRAN和他们对控制流图的使用。在Y项目中,我们构建了控制流图,并开发了一种关于图上连接点的语言,将DO循环抽象为更通用的东西,然后基于这些图的层次结构进行优化,假设它们代表程序中最频繁执行的部分。

你第一次使用位向量表示是什么时候?

就在ACS项目开始的时候。“图区间”是约翰提出的一个术语,但后来我写了论文,把这个想法进一步发扬光大。然后迈克·哈里森来了,我们正在努力解决一个问题,我们没有办法在这样一个图中限制信息流的计算。

在您的一些论文中,您谈到了早期的单调松弛技术,但它们有很大的理论界限。

是的,但我并不太担心,因为我知道真正的程序没有这些,迈克也同意了。Jeff Ullman对程序做了一些分析。这确实得到了一个更好的边界,但那个分析并没有产生一个可以进行转换的结构。

图区间分解通过引导顺序改进了算法的理论代价边界但如果我没听错的话,区间结构在引导变换方面和做分析一样重要,也许更重要?

是的。我认为,那些专注于理论界限的人,忽略了留下一个可以进行转换的框架的重要性。然而,令人兴奋的事情发生了。Knuth的一个学生,[Robert] Tarjan,开发了一种将这个问题映射到生成树的方法。

节点图可以分解为生成树加后边。

是的!这是惊人的。回想起来,伟大的事情有时看起来很简单,但这解决了构建后续算法分析和转换边界的那部分问题。

所以塔扬的工作与此有关?

是的,我认为他不知道,但他一发表那篇文章,很明显我们应该放弃图区间,去那里。

你能谈谈杰克·施瓦茨吗?

杰克在ACS呆了一个夏天,影响很大。他写了很多关于优化变换的精彩论文,其中一篇是《强度折减,即巴贝奇的现代服饰差分机》Jack有一个强度缩减应用程序列表,我们编译器从来没有利用过它。他和约翰写了一本大书,从未出版,但广泛流传,关于这方面的很多工作。我在库兰学院待了一年,教研究生编译。杰克和我结婚好几年了。所以我们的关系很好。

你对SETL(一种由Schwartz开发的编程语言)有什么看法?

这在当时并不是一件正确的事情,但它可能是一种有趣的语言,可以回头看看,现在我们陷入了过度指定的泥潭。

Gregory Chaitin的经典PLDI论文“通过图形着色的寄存器分配和溢出”包含了大量的SETL代码,长达4页半,实现了该算法。

我喜欢SETL,并且很惊讶他们用它开发了一些很好的编译应用程序。在多核环境下以及我们所面临的所有新挑战中,我非常喜欢它——这是在如此高的水平上指定问题的一个实例,有很好的可能性能够针对多台机器,并从易于编写的程序中获得高性能。

我有一个关于寄存器分配的故事。FORTRAN早在20世纪50年代就有了寄存器分配理论的开端,尽管在目标机器上只有三个寄存器。很久以后,John Backus开始对将图着色应用于分配寄存器感兴趣;他在这个问题上研究了大约10年,但就是解决不了。在很长一段时间里,我认为这是优化编译器中最大的突出问题。优化转换将产生带有符号寄存器的代码;接下来的问题是将符号寄存器映射到真实的机器寄存器,而真实的机器寄存器是有限的。在高性能计算中,寄存器分配经常与指令调度发生冲突。在柴丁算法之前没有一个好的算法。Chaitin致力于801系统的PL.8编译器。 Ashok Chandra, another student of Knuth's, joined the department and told about how he had worked on the graph coloring problem, which Knuth had given out in class, and had solved itnot by solving the coloring problem directly, but in terms of what is the minimal number of colors needed to color the graph. Greg immediately recognized that he could apply this solution to the register allocator issue. It was a wonderful kind of serendipity.


拉伸前瞻性设计在酒吧的餐巾纸上,尤其是在波基普西的老布劳豪斯。


关于约翰·科克还有什么我们需要知道的吗?

他对每个人都有重大影响。让我谈谈他的工作风格。他不写任何东西,做演讲对他来说是极其罕见和痛苦的。他会在大楼里转来转去,同时做多件事,并通过与人交谈来深化他的想法。他从来没有坐在他的办公室,他丢了他的网球拍一次,几个月,最后在他的桌子上找到了它。如果他来到你的办公室,他会开始画画,然后继续两周前和你结束的对话!

所以他非常擅长协同编程!

是的,他可以看着一个人,记得他对那个人说的最后一句话。人们还会保存他的酒吧餐巾纸。他花了很多时间在酒吧里;他喜欢啤酒。他会在餐巾纸上画出复杂的图案,人们会在晚上结束时把餐巾纸拿走。拉伸前瞻性设计在酒吧的餐巾纸上,尤其是在波基普西的老布劳豪斯。

你还认识安德烈·厄肖夫。

他在苏联做了一些了不起的工作。Beta是他的编译器,一个非常棒的优化编译器。他曾是ALGOL委员会的成员。

他有一个早期的项目叫做Alpha,不要和你为Stretch做的Alpha语言混淆,对吧?

不,这完全无关。但后来我们读了他的论文。1972年,他不能旅行,因为他不是党员,所以他在新西伯利亚开了一个研讨会,邀请了很多人。它比编译器更广泛,但对编译器有很大的关注,我们从他的工作中学到了一些东西。

埃尔肖夫还与中国人一起工作。当苏联和中国之间的帷幕落下时,中国的团体没有接触到厄尔绍夫的作品。1973年,我和杰克应邀到中国演讲。毛还活着,很多学院和大学几乎都关闭了。在北京和上海都有一个科学研究所,我们在那里做了关于编译器的讲座,我们看了那里的机器,它们真的很原始。他们在北京的机器上运行的编译器是纸带的。我看了一下代码,发现它本质上是厄肖夫的编译器。所以中国人非常担心自己被排除在计算机发展之外。这是我最近才想到的一个猜想,为什么我们,尤其是美国人被邀请来:这是通过三个群体共享的技术连接起来的。我们和厄绍夫和他的团队关系密切。 He and his family wanted to leave the Soviet Union, and they lived with us in our home for about a year.

你们实际上有两个项目叫做“实验性编译系统”。第二个是什么样子的?

它的总体目标是接受我们在代码分析和转换方面的工作,并将这些知识嵌入到将推进编译的模式中。我真希望我们在帕斯卡身上做过。

PL/我的语言有那么难吗?

是的,是指针和条件处理——那些是大问题。这是另一个大胆的项目,我的兴趣主要是对过程间分析的一般化解决方案,但也把我们知道的东西放到一个环境中,使编写编译器更容易和更正式,为编译器的开发提供更多的结构。我们已经有很多很棒的算法可以打包,但这是建立一个编译器框架我们现有的方法可以更灵活地使用。

从这个项目中学到的经验教训是否应用到你的PTRAN工作中?

程序间的工作确实做到了,在某种程度上也做到了绑定工作。这听起来微不足道,但是不断的传播,正确地进行,并且能够使用您所知道的并改进程序,而不必抛弃一些东西并重新开始。

让我们谈谈PTRAN。1988年发表了两篇论文:您的《PTRAN分析系统概述》和《IBM并行FORTRAN》。区分这两个项目很重要。IBM Parallel FORTRAN是一种产品,一种增强了诸如Parallel LOOP、Parallel CASE和ORIGINATE TASK等结构的FORTRAN。所以FORTRAN的产品是带有各种额外语句的FORTRAN,而在PTRAN中,您使用原始的FORTRAN并进行分析以获得并行性。

正确的。

这两个项目之间的关系是什么?IBM Parallel FORTRAN论文引用了你们小组提供的一些讨论。

PTRAN小组成立于20世纪80年代早期,首先着眼于自动向量化。IBM很晚才开始研究并行。机器具有并发性,但要进入显式并行化,第一步是程序向量化。我被要求组建一个编译器小组来做并行工作,我知道David Kuck的工作,这始于20世纪60年代末伊利诺伊大学ILLIAC项目。我拜访了Kuck并雇佣了他的一些学生。多年来,我和Kuck的关系非常好。他成立了自己的kai公司。

Kuck和联合公司

正确的。IBM后来一度将他们分包给他们去做一些并行工作。他们对自己的技术非常开放,只有一个例外,他们是早期的领导者。他们有一个叫做Parafrase的系统,这个系统可以让学生们用FORTRAN输入尝试各种并行代码,然后连接到一个计时模拟器后端。这样他们就能得到一组变换的实际效果。学习如何并行处理,什么可行,什么不可行,这是非常棒的,一大批优秀的学生都从那个项目中出来了。在建立我的团队时,我主要从伊利诺斯州和纽约大学招聘。纽约大学的人参与了超级计算机的研究,我们这里有一个它的变体,一个叫做RP3的项目,研究并行处理器原型,这是他们超级计算机的一个实例。


我认为另一件非常重要的事情是,不仅要识别并行,还要识别有用的并行。


超级计算机可能是第一个支持“获取-添加”作为同步原语的计算机。

是的。讲一点历史:超级计算机有256个处理器,共享分布式内存,通过一个复杂的交换系统访问。从内存中获取数据是昂贵的,所以他们有一个组合开关,这是纽约大学的人开发的一项重大发明。获取并添加原语可以在开关本身中完成。

在开关中进行“获取-添加”操作有助于避免多个处理器使用单个共享计数器的热点问题。非常聪明的主意。

非常,非常聪明。所以IBM和纽约大学是合作伙伴,并得到了DARPA的支持来建造一个更小的机器。处理器的数量被削减到64个,不再需要组合开关,项目有点拖沓。但是我的团队提供了编译器。这个项目最终被取消了。

这就是IBM研究中心和库兰特研究所的背景。但是主要的服务器线,370,3090,将会有向量处理器。

多个向量处理器和多个标量处理器。

是的。我们最初研究的是一个六向向量处理器。我们成立了一个平行翻译小组,PTRAN。Jean Ferrante扮演了关键角色。迈克尔·伯克也参与其中;纽约大学的家伙。Ron Cytron是伊利诺斯州的人。Wilson Hsieh是一名合作教育学生。Vivek Sarkar来自斯坦福,Dave Shields和Philippe Charles来自纽约大学。所有这些人都有了非常棒的职业生涯。 Mark Wegman and Kenny Zadeck were not in the PTRAN group but were doing related work. We focused on taking dusty decks and producing good parallel code for the machinescontinuing the theme of language-independent, machine-independent, and do it automatically.

“Dusty deck”指的是在Hollerith纸牌上穿孔的旧程序。现在我们有些学生从来没见过打孔卡片。

在与产品团队的合作中,我们也取得了长足的进步。有一个了不起的、非常有洞察力的程序员,Randy Scarborough,他当时在我们的帕洛阿尔托实验室工作。他能够利用现有的FORTRAN编译器,并在优化器中添加一点或一部分,它可以做我们能做的几乎所有事情。它并没有像我们希望的那样为扩展工作建立一个基础并将其应用到其他情况中,但它确实以非常低的成本很好地解决了眼前的问题。这确实帮助IBM通过客户熟悉的并行系统迅速进入市场,并解决了问题。我们很失望,但这是正确的事情。

PTRAN在这款产品推出后幸存下来了吗?

是的,它活了下来。这个产品进行了自动向量化。我们所关注的是更多的并行性。

在PTRAN中,有一件特别的事情是研究数据分布问题,因为,正如您在论文中提到的,改善顺序执行的数据布局实际上会损害并行执行,因为您会遇到缓存冲突和类似的事情。

是的。

“IBM Parallel FORTRAN”论文似乎完全没有提及这一点。你在PTRAN做什么分析?你在研究什么问题?

关于这个项目有两件事。我们在工作这两个理论和抽象,建立可分析和可推理的方法,而且实现它们。我坚持在这个项目中,如果有人在系统端给我看一段代码,我会说:“你能在论文中描述一下吗?”其他人是怎么知道的?”如果他们是理论方面的,我会说:“你能实现吗?让我看看它的实现。”

把一个程序变成函数式程序的想法是我一直在努力推行的。我们可以做更好的分析,即使只是简单的优化,如果我们可以命名值,但不负担它的位置,应用函数范式。

我们可以将这个想法追溯到您早期关于强度折减的工作,当时您正在为中间值创建散列名称。

是的。该值对答案有贡献,但该值位于何处应该与程序的编写者无关。

显然,让早期的程序员相信这一点是你早期的成功之一。FORTRAN已经足够好了;您不需要自己跟踪每一台注册的机器。

这是正确的。所以我在那里遇到了挑战。我们需要试着重铸程序,尽可能接近功能。

另一件我认为非常重要的事情是不仅仅是识别并行性,而是识别有用的并行性。


这是我们早期努力解决的问题:如何避免重做分析?


另一个问题:假设优化之一是不断传播。对于代码中的某些变量,有一个您已经识别的常量可以替代该变量的使用。然后你就知道,比如说,一个分支会往哪个方向走。你已经建立了这个分析的基础设施,你已经准备好进行转换,但接着分析的结果就过时了,所以你必须重新开始。这是我们早期努力解决的问题:如何避免重做分析?程序间活动尤其糟糕。

是否有一些简单的见解或全面的想法,可以帮助您避免完全重做计算?

Vivek Sarkar是其中的关键人物之一,但Dave Kuckthis也是KAI工作的核心。该组织称其为“神谕”。你给每个指令分配成本,你可以用分层的形式来做,这个块得到这个成本,这个块得到那个成本,然后做一个成本分析。这是我们需要的时间。然后是并行的开销成本。

之前你说过,库克对他所做的一切都很开放,只有一个例外

甲骨文!“你那玩意儿里装的是什么?”(笑)“我们不会告诉你的!”所以我们制造了自己的版本,这是一个非常强大的技术。

我们还应该提到什么?

我们谈到了国安局没有公布的工作。对我来说,这改变了我的想法,使我对特定于领域的语言产生了强烈的感觉。

你是支持他们还是反对他们?

为他们!

哦,好的。让我们清楚!(笑)

好!(笑)

我要做一个非常愚蠢的尝试:用一段话总结你的职业生涯,然后让你来评论它。

你职业生涯的一个主要关注点是,你不是发明新的编程语言或语言特性,并试图让人们用它们来编程,而是专注于按照编写的程序,或按照程序员喜欢的方式编写程序,并使它们在目标机器上真正有效地运行。其中一种非常重要的方法是,在不运行程序的情况下,对代码进行各种复杂的分析和优化,并尽可能多地了解程序的特性。所以这些都是静态的,非常复杂的技术。虽然您已经使用并率先使用了相当多的方法,但其中一些最有趣的方法涉及到使用图形作为程序的表示媒介,以及使用围绕图形传播信息的策略。因为程序可以用不止一种方式表示为图,所以传播该信息的方式也不止一种。特别是在某些算法中,在图中传播的信息是以集合的形式例如,变量名的集合。为了使这些算法足够高效,我们将集合表示为位向量,并使用区间分析对图进行分解,以便提供处理节点的有效顺序。在这样做的过程中,你已经建立了大量的工作系统序列;这些不仅仅是纸上设计。你建立了一个伟大的系统,然后你继续建立下一个系统,以此类推。 These all actually work on code and take real programs that aren't artificial benchmarks and make them run.

真是太好了。有一件事:我所有工作的总体目标一直是FORTRAN的目标,John Backus的目标:用户生产力,应用程序性能。

现在,三个愚蠢的问题。你最喜欢编译的语言是什么?

FORTRAN,当然!

你最喜欢的编程语言是什么?

我想应该是FORTRAN。

好了,现在,如果你要构建一个能在并行机器上运行的编译器,你会用什么语言来写那个编译器呢?

可能是类似于SETL或函数式语言的东西。我对ZPL非常感兴趣。我真的很喜欢那种语言。

对未来有什么建议吗?

是的,我确实有一样东西。没有学生加入我们的领域,计算机科学,我不知道为什么。这是一个如此神奇的领域,它改变了世界,而我们正处于改变的开始。我们必须找到一种方法,让我们的兴奋情绪更能被公众看到。它令人兴奋的是,在我参与的50年里,变化是惊人的。

回到顶部

推荐阅读

布赫兹,W。
规划计算机系统:项目延伸。麦格劳-希尔,1962;http://edthelen.org/comp-hist/IBM-7030-Planning-McJones.pdf

艾伦,F.E.和科克,J。
优化转换的目录。在R. Rustin, Ed。编译器的设计与优化。普伦蒂斯·霍尔出版社,1972年,130年。

艾伦,远东
过程间数据流分析。在信息处理学报74。联合会。爱思唯尔/北荷兰,1974年,398402年。

艾伦,F.E.和科克,J。
一个数据流分析程序。Commun。ACM 193(1976年3月),137147;http://doi.acm.org/10.1145/360018.360025

艾伦,F.E.等人。
实验编译系统。IBM J. Res. Dev. 24, 6(1980年11月),695715。

艾伦,远东
IBM语言处理器技术的历史。IBM J. Res. Dev. 255(1981年9月),535548。

艾伦,F.E.等人。
多处理PTRAN分析系统概述。在第一届超级计算国际会议论文集(希腊雅典,1988),Springer-Verlag, 194211。《J. Par. Dist compp . 5》(文献出版社,1988),617640。

回到顶部

推荐观看

艾伦,远东
Stretch Harvest编译器。计算机历史博物馆,2000年11月8日。视频中,泰爱泰党01:12:17;http://www.computerhistory.org/collections/accession/102621818

IBM ACS系统:20世纪60年代的一个开创性的超级计算机项目。发言人:Russ Robelen, Bill Moone, John Zasio, Fran Allen, Lynn Conway, Brian Randell。计算机历史博物馆,2010年2月18日;视频中,泰爱泰党1:33:35;http://www.youtube.com/watch?v=pod53_F6urQ

回到顶部

脚注

a.见2010年12月通信历史展望专栏“IBM的单处理器超级计算机的努力”,了解更多关于IBM Stretch超级计算机的讨论。

DOI: http://doi.acm.org/10.1145/1866739.1866752

回到顶部

数据

UF1数字弗兰·艾伦评价CS:“这是一个如此神奇的领域,它改变了世界,而我们才刚刚开始……”

回到顶部


版权归作者所有。

数字图书馆是由计算机协会出版的。版权所有©2011 ACM, Inc.


没有发现记录

登录为完全访问
»忘记密码? »创建ACM Web帐号
文章内容:
Baidu
map