Turing Award Winner: Frances Elizabeth Allen V. Krishna Nandivada - - PowerPoint PPT Presentation

turing award winner frances elizabeth allen
SMART_READER_LITE
LIVE PREVIEW

Turing Award Winner: Frances Elizabeth Allen V. Krishna Nandivada - - PowerPoint PPT Presentation

Turing Award Winner: Frances Elizabeth Allen V. Krishna Nandivada PACE Lab IIT Madras 05-Jan-2018 If writing programs is an art, then what about efficient programs? Sources ACM DL 1 An interview with Frances E. Allen (by Guy Steele,


slide-1
SLIDE 1

Turing Award Winner: Frances Elizabeth Allen

  • V. Krishna Nandivada

PACE Lab

IIT Madras 05-Jan-2018

“If writing programs is an art, then what about efficient programs?”

slide-2
SLIDE 2

Sources

1

ACM DL

2

An interview with Frances E. Allen (by Guy Steele, CACM 2011)

3

DBLP

4

Wikipedia

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 2 / 23

slide-3
SLIDE 3

Education

Formal education can only take you so far. After that you are on your own.

BA (mathematics, New York State College for Teachers, 1954); MA (mathematics, University of Michigan, 1957);

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 3 / 23

slide-4
SLIDE 4

Awards

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); First woman recipient Member of the US National Academy of Sciences (2010)

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 4 / 23

slide-5
SLIDE 5

Publications till Turing Award

Do the bean counting at your own peril.

(As per DBLP)

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 5 / 23

slide-6
SLIDE 6

Publications till Turing Award

Do the bean counting at your own peril.

(As per DBLP) Seven conference papers Seven journal articles

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 5 / 23

slide-7
SLIDE 7

Contributions of Fran Allen. Zoom level = 0

Hired by IBM to teach FORTRAN to IBMers.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 6 / 23

slide-8
SLIDE 8

Contributions of Fran Allen. Zoom level = 0

Hired by IBM to teach FORTRAN to IBMers. The class was unhappy.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 6 / 23

slide-9
SLIDE 9

Contributions of Fran Allen. Zoom level = 0

Hired by IBM to teach FORTRAN to IBMers. The class was unhappy.

the coders in the class could get more performance (manually) than the programs in high-level language!

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 6 / 23

slide-10
SLIDE 10

Contributions of Fran Allen. Zoom level = 0

Hired by IBM to teach FORTRAN to IBMers. The class was unhappy.

the coders in the class could get more performance (manually) than the programs in high-level language!

John Backus (led the FORTRAN project) - had two goals:

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 6 / 23

slide-11
SLIDE 11

Contributions of Fran Allen. Zoom level = 0

Hired by IBM to teach FORTRAN to IBMers. The class was unhappy.

the coders in the class could get more performance (manually) than the programs in high-level language!

John Backus (led the FORTRAN project) - had two goals:

1

programmer productivity.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 6 / 23

slide-12
SLIDE 12

Contributions of Fran Allen. Zoom level = 0

Hired by IBM to teach FORTRAN to IBMers. The class was unhappy.

the coders in the class could get more performance (manually) than the programs in high-level language!

John Backus (led the FORTRAN project) - had two goals:

1

programmer productivity.

2

application performance.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 6 / 23

slide-13
SLIDE 13

Contributions of Fran Allen. Zoom level = 0

Hired by IBM to teach FORTRAN to IBMers. The class was unhappy.

the coders in the class could get more performance (manually) than the programs in high-level language!

John Backus (led the FORTRAN project) - had two goals:

1

programmer productivity.

2

application performance.

Fran Allen achieved the second goal with distinction.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 6 / 23

slide-14
SLIDE 14

Contributions of Fran Allen. Zoom level = 0

Hired by IBM to teach FORTRAN to IBMers. The class was unhappy.

the coders in the class could get more performance (manually) than the programs in high-level language!

John Backus (led the FORTRAN project) - had two goals:

1

programmer productivity.

2

application performance.

Fran Allen achieved the second goal with distinction. Her contributions form the basis of most modern compilers.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 6 / 23

slide-15
SLIDE 15

Contributions of Fran Allen. Zoom level = 1

Optimizing Compilers

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 7 / 23

slide-16
SLIDE 16

Contributions of Fran Allen. Zoom level = 1

Optimizing Compilers Programming set the tone for her to understand compiling.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 7 / 23

slide-17
SLIDE 17

Contributions of Fran Allen. Zoom level = 1

Optimizing Compilers Programming set the tone for her to understand compiling. Identify structure in the programs. Design/implement algorithms to understand programs and their behavior. Rewrite the programs to more efficient ones.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 7 / 23

slide-18
SLIDE 18
  • Contributions. Zoom level = 2

Stretch/Harvest computer.

Stretch: one of the first supercomputers.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 8 / 23

slide-19
SLIDE 19
  • Contributions. Zoom level = 2

Stretch/Harvest computer.

Stretch: one of the first supercomputers. Harvest: A coprocessor for Stretch - for breaking codes.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 8 / 23

slide-20
SLIDE 20
  • Contributions. Zoom level = 2

Stretch/Harvest computer.

Stretch: one of the first supercomputers. Harvest: A coprocessor for Stretch - for breaking codes. Built a single compiler framework to handle three languages and two hardware

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 8 / 23

slide-21
SLIDE 21
  • Contributions. Zoom level = 2

Stretch/Harvest computer.

Stretch: one of the first supercomputers. Harvest: A coprocessor for Stretch - for breaking codes. Built a single compiler framework to handle three languages and two hardware

1

FORTRAN,

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 8 / 23

slide-22
SLIDE 22
  • Contributions. Zoom level = 2

Stretch/Harvest computer.

Stretch: one of the first supercomputers. Harvest: A coprocessor for Stretch - for breaking codes. Built a single compiler framework to handle three languages and two hardware

1

FORTRAN,

2

Autocoder (similar to COBOL), and

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 8 / 23

slide-23
SLIDE 23
  • Contributions. Zoom level = 2

Stretch/Harvest computer.

Stretch: one of the first supercomputers. Harvest: A coprocessor for Stretch - for breaking codes. Built a single compiler framework to handle three languages and two hardware

1

FORTRAN,

2

Autocoder (similar to COBOL), and

3

Alpha (a language for breaking codes).

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 8 / 23

slide-24
SLIDE 24

A quick digression: Stretch/Harvest

Any single Harvest instruction could run for days. The instructions could be self-modifying. The memory (in 1959) steps were synchronized at clock level (?) Total 8/9 systems!

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 9 / 23

slide-25
SLIDE 25

Contributions (contd).

[1966]: ”Program Optimization”: conceptual basis for systematic analysis and transformation of computer programs.

“introduced the use of graph-theoretic structures to encode program content in order to automatically and efficiently derive relationships and identify opportunities for optimization.”

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 10 / 23

slide-26
SLIDE 26

Contributions (contd).

[1970/71] ”Control Flow Analysis” and ”A Basis for Program Optimization”.

established ”intervals” as the context for efficient and effective data flow analysis and optimization.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 11 / 23

slide-27
SLIDE 27

Contributions (contd).

[1971] ”A Catalog of Optimizing Transformations”.

provided the first description and systematization of optimizing transformations.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 12 / 23

slide-28
SLIDE 28

Contributions (contd).

[1973/74] papers on interprocedural data flow analysis

extended the analysis to whole programs.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 13 / 23

slide-29
SLIDE 29

Contributions (contd).

[1980s] PTRAN project: automatic parallel execution of FORTRAN programs.

new parallelism detection schemes. program dependence graph - omni-present in most parallelizing compilers.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 14 / 23

slide-30
SLIDE 30

Contributions (contd).

System Y: instead of building the system first and then the compiler, here it was done the other way around. Contributions: branch prediction (h/w+s/w), caching, machine independent and dependent optimizations. Pre-cursor to the PowerPC system.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 15 / 23

slide-31
SLIDE 31

Contributions (contd).

Convincing programmers to use variables for intermediate computations and reuse the same.

Making the programmer not worry about where the value is stored.

Strength reduction; remembering computed values.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 16 / 23

slide-32
SLIDE 32

Contributions (contd).

Representing sets as bit-vectors. Representing the program as control-flow-graph and propagating sets around the CFG. [internal analysis] Identifying loops from the input programs. Optimizations on hierarchy of the (control) graphs.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 17 / 23

slide-33
SLIDE 33

Contributions (contd).

For the PL/I language compiler. PL/I has procedures to handle. Interprocedural analysis Remembering the context. How to reuse analysis - say for constant propagation?

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 18 / 23

slide-34
SLIDE 34

PTRAN project

Goal: improve automatic vectorization. Program dependence graphs. Identifying useful parallelism - by using a cost model.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 19 / 23

slide-35
SLIDE 35

Summary I

How do you summarize an elephant? – Focus just on the trunk.

Did NOT invent new programming languages or language features Focus: take programs as they are written, or as programmers like to write them, and making them run really effectively on target machines.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 20 / 23

slide-36
SLIDE 36

Summary II

How do you summarize an elephant? – or, Focus just on the legs.

Do many kinds of sophisticated analysis and optimization of the code and to find out as much as you can about the characteristics

  • f the program without actually running it.

Static techniques - could be complex + powerful.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 21 / 23

slide-37
SLIDE 37

Summary III

How do you summarize an elephant? – or, Focus just on the body.

Using graphs as a representation medium for the program and using a strategy of propagating information around the graph.

more than one way exists. make it efficient by using bit-vectors interval analysis provides a mechanism to get an effective order to process the graph nodes.

Proposed approaches actually work on code and take real programs that aren’t artificial benchmarks and make them run.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 22 / 23

slide-38
SLIDE 38

Summary (summary)

How do you summarize an elephant?

Two words summary: Fundamental+Impactful.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 23 / 23

slide-39
SLIDE 39

Summary (summary)

How do you summarize an elephant? – or, just say “elephant”.

Two words summary: Fundamental+Impactful.

  • V. Krishna Nandivada (PACE Lab@IITM)

Fran Allen. . . 05-Jan-2018 23 / 23