查看: 4377|回复: 0

2006 弗兰西斯-艾伦

发表于 2022-4-17 23:03:12 | 显示全部楼层 |阅读模式

马上注册 与译者交流

您需要 登录 才可以下载或查看,没有帐号?立即注册

Frances Allen

August 4, 1932, Peru, New York

August 4, 2020

BA (mathematics, New York State College for Teachers, 1954); summer courses at Columbia University; MA (mathematics, University of Michigan, 1957); six honorary Doctor of Science degrees (University of Alberta, 1991; Pace University, 1999; University of Illinois Champaign-Urbana, 2004; University of Michigan, Ann Arbor, 2008; State University of New York at Albany, 2008; McGill University, 2009); honorary Doctor of Engineering degree (University of Notre Dame, 2008)

High school math teacher for two years; IBM (International Business Machines) Corporation (teaching FORTRAN to company scientists and engineers, 1957-1959; design and management of compiler for Stretch/Harvest computer, 1959-1963; design and development of experimental optimizing compiler for IBM ACS project, 1963-1968; compilers for Future Systems (FS) project, 1970-1973; visiting professor (partly on sabbatical from IBM) at New York University, 1970-1973; initiator and manager of Experimental Compiling Systems project, 1973-1980; development of product compilers, 1980-1985; initiator and manager of Parallel Programming Technology project, 1984-1994; IBM Fellow and President of the IBM Academy of Technology, 1995-1996; IBM Fellow and Senior Technical Advisor, SAS and BlueGene project, 1996-2002; IBM Fellow Emerita, from 2002)

IBM Corporate Award for Algorithms for Optimizing Compilers (1968); Member of the US National Academy of Engineering (1987); IBM Fellow (1989); IEEE Fellow (1991); ACM Fellow (1994); Fellow, American Academy of Arts and Sciences (1994); IEEE Computer Society Charles Babbage Award (1997); Women in Technology International (WITI) Hall of Fame (1997); Fellow, Computer History Museum (2000); Member, American Philosophical Society (2001); Association for Women in Computing Ada Lovelace Award (2002); IEEE Computer Society Computer Pioneer Award (2004); Anita Borg Technical Leadership Award (2004); ACM Turing Award (2006); Member of the US National Academy of Sciences (2010)

United States – 2006
For pioneering contributions to the theory and practice of optimizing compiler techniques that laid the foundation for modern optimizing compilers and automatic parallel execution. press release

Frances Elizabeth ("Fran") Allen was born August 4, 1932. She was the oldest of six children and grew up on a farm in Peru, New York, near Lake Champlain. Her father was a farmer, and her mother an elementary-school teacher.

In high school she was greatly inspired by her math teacher, and set out to become a math teacher herself. She attended the New York State College for Teachers (now the State University of New York at Albany) for four years and earned a BA in mathematics with a minor in physics as well as education credits. She then taught math -- everything from elementary algebra to advanced trigonometry -- for two years at the same high school she had attended.

She realized that she would need a master's degree to be fully certified as a teacher. After taking some summer courses at Columbia University, she enrolled at the University of Michigan at Ann Arbor and earned an MA in mathematics. She also took courses in computing there—some of the first ever offered—and learned how to program an IBM 650 from Bernard Galler, who was a co-developer of the MAD programming language and later President of the ACM and an ACM Fellow. IBM held job interviews on the Michigan campus and offered her a job in research. She accepted with the idea that she would earn enough money to pay off her student debts and then return to teaching. Instead, she stayed at IBM for the next 45 years.

She joined IBM on July 15, 1957, exactly two months after the FORTRAN programming language had been released. Her first assignment was to teach research scientists within IBM how to use this language and indirectly encourage IBM customers to use it. She did what teachers often must: she learned the subject matter just a few days ahead of her students. As part of this process, she read the source code for the FORTRAN compiler that had been developed by John Backus (later a Turing Award winner) and his team. In her words, "It set my interest in compiling, and it also set the way I thought about compilers, because it was organized in a way that has a direct heritage to modern compilers."

Allen discusses her recruitment by IBM in 1955 and first assignment there teaching FORTRAN.       
She spent most of the rest of her career developing cutting-edge programming language compilers for IBM Research. At first she worked on the IBM 704’s Monitored Automatic Debugging operating system (developed by Roy Nutt, who had also implemented the FORMAT statement for the FORTRAN compiler), but her first major project was for the Stretch/Harvest computer.

Allen describes IBM’s STRETCH computer, by far the fastest in the world when the first one was delivered in 1961.       
Stretch was one of the first supercomputers, and Harvest was a coprocessor for Stretch that had been designed for the US National Security Agency (NSA) to do codebreaking of secret messages. Allen and her team designed a single compiler framework to handle three very different programming languages: FORTRAN, Autocoder (a business language similar to COBOL), and the new language Alpha (designed for rapidly detecting patterns in arbitrary text represented in any alphabet). The three language compilers shared a common optimizing back end that could produce code for both the Stretch supercomputer and its Harvest coprocessor. This was an extraordinarily ambitious effort for the time, and they pulled it off. Allen served as the liaison between IBM and NSA, coordinating the design of the Alpha language and its acceptance tests. She spent a year in 1962 at NSA overseeing the installation and testing of the system, which was used for 14 years before being retired in 1976.

Allen discusses her work developing compilers for IBM’s STRETCH computer, its HARVEST application, and its performance challenges.       
At that point she was offered the opportunity to coordinate programming language work for the IBM System/360, but that would have required a lot of traveling. After all the traveling she had done while working on Harvest, she decided to decline that offer and instead return to IBM Research at the new T. J. Watson Research building in Yorktown, New York. She joined Project Y, which allowed her to collaborate once again with John Cocke, another future Turing Award winner who had worked on the hardware for Stretch. Project Y, later called the Advanced Computing Systems project (ACS), included another set of cutting-edge advances in computer system design. The hardware might be described in today's terms as the first "superscalar" processor, where the central processing unit does not execute instructions one at a time as in previous designs, but works on several instructions at once, perhaps even performing instructions "in the wrong order" to get the work done more quickly. The compiler techniques for this project represented equally novel technological improvements, including new "flow analysis" techniques that allowed the compiler to automatically optimize programs for greatly improved performance.

A key advance was to represent programs within the compiler not as a sequence of statements as in the original source code, but as a mathematical graph that could be analyzed to discover hidden properties of the code -- such as that a computed value could be re-used in another region of the code, or that it would definitely not be needed in yet another region of code. The techniques involved two clever tricks: labeling edges of the graph with mathematical sets, and then representing those sets with a very compact data structure that required only a single bit (0 or 1) of storage for each member of the set. That allowed the sets to be processed rapidly. In addition, a mathematical technique for decomposing the graphs into "intervals" allowed the sets attached to the edges to be processed in an order that usually resulted in the greatest efficiency. These techniques developed for the ACS compilers allowed both the compilers themselves and the programs they processed to execute much faster than in previous systems.

Allen was then assigned to work on IBM’s doomed "Future Systems" (FS) project, which aimed to revolutionize the way IBM built computer systems. She thought the machine architecture was technically flawed in ways that would limit performance. She wrote a letter to IBM management saying so, and recalls that it "was kind of put on the shelf for a while." After four years, the project was killed.

She took a sabbatical from IBM to teach graduate courses on compilers at the Courant Institute for Mathematical Sciences at New York University at the invitation of Jacob "Jack" Schwartz, creator of the SETL programming language and the NYU Ultracomputer at the Courant Institute. Schwartz had previously visited IBM to collaborate with her and John Cocke on ACS. Later, she and Schwartz were married.

Her next major project for IBM was the Experimental Compiler Systems project (ECS). This system, like the earlier compiler framework for Stretch/Harvest, was designed to support multiple programming languages. But the primary focus was on a new language called PL/I, which presented much more difficult problems for an optimizing compiler. ECS featured aggressive interprocedural analysis, procedure inlining, an extensive collection of optimizing transformations, and a runtime environment that allowed the free mixing of interpreted code and optimized compiled code.

Allen's last big project for IBM was the Parallel Translator (PTRAN), a system for compiling Fortran programs not specially written with parallelism in mind for execution on parallel computer architectures. For this effort she consulted with David Kuck (later an ACM Fellow) at the University of Illinois, who worked for many years on parallelizing compilers. She eventually hired some of Kuck’s students, including Ron Cytron (later an ACM Fellow). She applied her extensive experience with interprocedural flow analysis to produce new algorithms for extracting parallelism from sequential code. PTRAN introduced the concept of the program dependence graph, a representation now used by many parallelizing compilers.

Allen discusses her work on parallel compilers, in collaboration with academic research teams.       
Allen was named an IBM Fellow in 1989, an IEEE Fellow in 1991, and an ACM Fellow in 1994. She retired from IBM in 2002. As an IBM Fellow Emerita, she has continued to advise IBM on a number of projects including the Blue Gene supercomputer, and has worked to encourage the involvement of other women in computer-related fields.

Allen has traveled internationally not only to give lectures about compilers, but also for athletic pursuits: she is a veteran of many mountain-climbing expeditions in Austria, China, Tibet, and elsewhere.

Fran Allen's focus has not been on inventing new programming languages or language features and then trying to get people to program using them. Rather, she focused on taking programs as programmers like to write them, and made them run efficiently by doing sophisticated analysis and optimization of the code. She didn’t create paper designs, but a series of working systems that run real programs, not just artificial benchmarks, faster. Today's programming language compilers still rely on techniques that she pioneered.

Author: Guy Steele





高中数学教师两年;IBM(国际商业机器)公司(1957-1959年,向公司科学家和工程师教授FORTRAN;1959-1963年,设计和管理Stretch/Harvest计算机的编译器;1963-1968年,为IBM ACS项目设计和开发实验性优化编译器;1970-1973年,为未来系统(FS)项目开发编译器;1970-1973年,纽约大学客座教授(部分是IBM的休假)。1973-1980年,实验编译系统项目的发起人和经理;1980-1985年,产品编译器的开发;1984-1994年,并行编程技术项目的发起人和经理;1995-1996年,IBM研究员和IBM技术研究院院长;1996-2002年,IBM研究员和SAS和BlueGene项目的高级技术顾问;2002年起,IBM荣誉研究员)


美国 - 2006年
对优化编译器技术的理论和实践做出了开创性贡献,为现代优化编译器和自动并行执行奠定了基础。 新闻稿



她意识到,她需要一个硕士学位才能完全获得教师资格。在哥伦比亚大学学习了一些暑期课程后,她进入密歇根大学安阿伯分校学习,获得了数学硕士学位。她还在那里学习了计算机课程--其中一些是有史以来最早开设的课程--并向伯纳德-盖勒学习如何为IBM 650编程,盖勒是MAD编程语言的共同开发者,后来成为ACM主席和ACM研究员。IBM在密歇根校园举行了工作面试,并为她提供了一份研究工作。她接受了这份工作,认为她可以赚到足够的钱来偿还她的学生债务,然后再回到教学岗位。相反,她在接下来的45年里一直在IBM工作。


她在职业生涯的大部分时间里都在为IBM研究院开发最先进的编程语言编译器。起初,她在IBM 704的监控自动调试操作系统上工作(由Roy Nutt开发,他也为FORTRAN编译器实现了FORMAT语句),但她的第一个主要项目是为Stretch/Harvest计算机。


这时,她得到了为IBM System/360协调编程语言工作的机会,但这需要大量的旅行。在她为HARVEST工作时做了那么多旅行之后,她决定拒绝这个机会,而是回到了位于纽约州约克镇的T.J.Watson新研究大楼的IBM研究部门。她加入了Y项目,这使她能够再次与约翰-科克合作,他是另一位未来的图灵奖得主,曾为Stretch的硬件工作。项目Y,后来被称为先进计算系统项目(ACS),包括计算机系统设计的另一组尖端进展。用今天的话来说,该硬件可能被描述为第一个 "超标量 "处理器,中央处理单元不像以前的设计那样一次执行一条指令,而是同时处理几条指令,甚至可能 "以错误的顺序 "执行指令,以更快地完成工作。这个项目的编译器技术代表了同样新颖的技术改进,包括新的 "流程分析 "技术,使编译器能够自动优化程序,从而大大改善性能。

一个关键的进步是在编译器中表示程序,而不是像原始源代码中的语句序列,而是一个数学图,可以通过分析发现代码的隐藏属性--比如一个计算值可以在代码的另一个区域重新使用,或者在另一个代码区域肯定不需要它。这些技术涉及两个巧妙的技巧:用数学集标记图的边缘,然后用一个非常紧凑的数据结构表示这些集,该结构对集的每个成员只需要一个位(0或1)的存储。这使得这些集合能够被快速处理。此外,一种将图形分解为 "区间 "的数学技术允许以通常能带来最大效率的顺序处理与边缘相连的集合。为ACS编译器开发的这些技术使编译器本身和它们处理的程序的执行速度比以前的系统快得多。

随后,艾伦被分配到IBM注定要失败的 "未来系统"(FS)项目工作,该项目旨在彻底改变IBM构建计算机系统的方式。她认为该机器架构在技术上存在缺陷,会限制性能。她给IBM管理层写了一封信说,并回忆说,这个项目 "被搁置了一段时间"。四年后,该项目被终止。



艾伦为IBM做的最后一个大项目是并行翻译器(PTRAN),这是一个编译Fortran程序的系统,在编写时没有特别考虑到并行性,以便在并行计算机结构上执行。为了这项工作,她咨询了伊利诺伊大学的David Kuck(后来成为ACM研究员),后者在编译器的并行化方面工作了很多年。她最终雇用了库克的一些学生,包括罗恩-赛创(后来成为ACM研究员)。她运用她在程序间流程分析方面的丰富经验,产生了从顺序代码中提取并行性的新算法。PTRAN引入了程序依赖图的概念,这种表示方法现在被许多并行编译器使用。




您需要登录后才可以回帖 登录 | 立即注册


QQ|小黑屋|手机版|网站地图|关于我们|ECO中文网 ( 京ICP备06039041号  

GMT+8, 2024-7-23 20:09 , Processed in 0.070160 second(s), 22 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表