SlideShare a Scribd company logo
1 of 8
Program Analysis @ Google
                              Robert Hundt, Platforms
                               rhundt@google.com




Open64 Workshop, CGO, 3/11/2007
Challenges

 Google Applications                                              Typical Profile

                                             6
 • Large and complicated
                                             5
 • Distributed and irregular
                                             4

 • Max out gcc FE space                     %3                                                % execution


 • Well tuned, manually                      2


                                             1

 Machines                                    0
                                                 1    2   3   4    5   6     7   8   9   10

 • Fast evolving                                                  Function




 Program Analysis
 • Many dimensions

 • Compiler is an important one

 • Phase 1: Single machine performance, correctness

                                                                                                    2/32
 Open64 Tutorial,
(My) Background

 Manual Performance Tuning
 Only vague idea of how compilers work - experimental.


 Work in Performance Tools
 Runtime analysis/measurements - no insight into application


 Work in Compiler
 Strong static analysis - no runtime information

 PBO (FDO) improves the situation

 Many optimizations fail

 (Almost) no information to the user
                                                               3/32
 Open64 Tutorial,
Approach

 Combine
 • Static Inter-Procedural Analysis 

 • Runtime Information


 Create
 • Advanced Analysis Tools

 • Performance Tools (Raman, CGO 2007)

 • Correctness Tools (Engler, Stanford)

 • High Performance Compiler

 “Use the compiler as an awkward, but powerful performance analysis tool”

                                                                       4/32
 Open64 Tutorial,
Strategy

 Infrastructure: Open64
 • Mature, scalable, strong IR, strong research community

 • LLVM is an option


 Leverage external
 • Work with Universities ($)

 • Leverage cutting edge developments

 • Push Google specific research

 • Data Layout Analysis, GVL (Jianian Yan, Paul Yuan)


 Leverage internal, 20%
 • Dynamic memory analysis (PIN + static analysis)

 • Interns (correctness tools)

                                                            5/32
 Open64 Tutorial,
Risks

 Robustness = Critical
 • Small staff - can’t be eaten by bugs

 • FE: gcc community

 • Middle-end: Universities, Osprey, HP, Google

 • x86 back-end: PathScale, Google

 • Community effort (!)

 • Suggestions WELCOME!


 gcc vs. Open64 vs. LLVM
 • Clash of civilizations…



                                                  6/32
 Open64 Tutorial,
Future

 A lot of fun !
 • Exploring cutting edge developments

 • Google specific optimizations

 • Benchmarks soon to be released, please sign up!

 • Phase 2: Tiered applications

 • Wild ideas…




  We are hiring !!!


                                                     7/32
 Open64 Tutorial,
Thank You

 Q/A




                    8/8 - just kidding
 Open64 Tutorial,

More Related Content

Similar to Open64 cgo07-google 01

Tooling for the JavaScript Era
Tooling for the JavaScript EraTooling for the JavaScript Era
Tooling for the JavaScript Era
martinlippert
 
Fixing the program my computer learned: End-user debugging of machine-learned...
Fixing the program my computer learned: End-user debugging of machine-learned...Fixing the program my computer learned: End-user debugging of machine-learned...
Fixing the program my computer learned: End-user debugging of machine-learned...
City University London
 
Open.source.innovation.20070624
Open.source.innovation.20070624Open.source.innovation.20070624
Open.source.innovation.20070624
Vu Hung Nguyen
 
Agile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptAgile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_ppt
Hitesh Kumar
 

Similar to Open64 cgo07-google 01 (20)

Tooling for the JavaScript Era
Tooling for the JavaScript EraTooling for the JavaScript Era
Tooling for the JavaScript Era
 
Enabling open and reproducible computer systems research: the good, the bad a...
Enabling open and reproducible computer systems research: the good, the bad a...Enabling open and reproducible computer systems research: the good, the bad a...
Enabling open and reproducible computer systems research: the good, the bad a...
 
Chatting with your programs to find vulnerabilities
Chatting with your programs to find vulnerabilitiesChatting with your programs to find vulnerabilities
Chatting with your programs to find vulnerabilities
 
Introduction to the intermediate Python - v1.1
Introduction to the intermediate Python - v1.1Introduction to the intermediate Python - v1.1
Introduction to the intermediate Python - v1.1
 
How static analysis supports quality over 50 million lines of C++ code
How static analysis supports quality over 50 million lines of C++ codeHow static analysis supports quality over 50 million lines of C++ code
How static analysis supports quality over 50 million lines of C++ code
 
Reproducibility and automation of machine learning process
Reproducibility and automation of machine learning processReproducibility and automation of machine learning process
Reproducibility and automation of machine learning process
 
Teaching Open Source In The University
Teaching Open Source In The UniversityTeaching Open Source In The University
Teaching Open Source In The University
 
Random thoughts and dev practices / advices to build a great product
Random thoughts and dev practices / advices to build a great productRandom thoughts and dev practices / advices to build a great product
Random thoughts and dev practices / advices to build a great product
 
Fixing the program my computer learned: End-user debugging of machine-learned...
Fixing the program my computer learned: End-user debugging of machine-learned...Fixing the program my computer learned: End-user debugging of machine-learned...
Fixing the program my computer learned: End-user debugging of machine-learned...
 
Open.source.innovation.20070624
Open.source.innovation.20070624Open.source.innovation.20070624
Open.source.innovation.20070624
 
Agile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptAgile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_ppt
 
OpenVINO introduction
OpenVINO introductionOpenVINO introduction
OpenVINO introduction
 
What is (not) Pharo 8?
What is (not) Pharo 8?What is (not) Pharo 8?
What is (not) Pharo 8?
 
Avogadro, Open Chemistry and Semantics
Avogadro, Open Chemistry and SemanticsAvogadro, Open Chemistry and Semantics
Avogadro, Open Chemistry and Semantics
 
Leveraging your hadoop cluster better - running performant code at scale
Leveraging your hadoop cluster better - running performant code at scaleLeveraging your hadoop cluster better - running performant code at scale
Leveraging your hadoop cluster better - running performant code at scale
 
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
 
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
10 clues showing that you are doing OSGi in the wrong manner - Jerome Moliere
 
Improve performance of developer - Khodak
Improve performance of developer  - KhodakImprove performance of developer  - Khodak
Improve performance of developer - Khodak
 
OpenSubmit - How to grade 1200 code submissions
OpenSubmit - How to grade 1200 code submissionsOpenSubmit - How to grade 1200 code submissions
OpenSubmit - How to grade 1200 code submissions
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance Tuning
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Open64 cgo07-google 01

  • 1. Program Analysis @ Google Robert Hundt, Platforms rhundt@google.com Open64 Workshop, CGO, 3/11/2007
  • 2. Challenges Google Applications Typical Profile 6 • Large and complicated 5 • Distributed and irregular 4 • Max out gcc FE space %3 % execution • Well tuned, manually 2 1 Machines 0 1 2 3 4 5 6 7 8 9 10 • Fast evolving Function Program Analysis • Many dimensions • Compiler is an important one • Phase 1: Single machine performance, correctness 2/32 Open64 Tutorial,
  • 3. (My) Background Manual Performance Tuning Only vague idea of how compilers work - experimental. Work in Performance Tools Runtime analysis/measurements - no insight into application Work in Compiler Strong static analysis - no runtime information PBO (FDO) improves the situation Many optimizations fail (Almost) no information to the user 3/32 Open64 Tutorial,
  • 4. Approach Combine • Static Inter-Procedural Analysis  • Runtime Information Create • Advanced Analysis Tools • Performance Tools (Raman, CGO 2007) • Correctness Tools (Engler, Stanford) • High Performance Compiler “Use the compiler as an awkward, but powerful performance analysis tool” 4/32 Open64 Tutorial,
  • 5. Strategy Infrastructure: Open64 • Mature, scalable, strong IR, strong research community • LLVM is an option Leverage external • Work with Universities ($) • Leverage cutting edge developments • Push Google specific research • Data Layout Analysis, GVL (Jianian Yan, Paul Yuan) Leverage internal, 20% • Dynamic memory analysis (PIN + static analysis) • Interns (correctness tools) 5/32 Open64 Tutorial,
  • 6. Risks Robustness = Critical • Small staff - can’t be eaten by bugs • FE: gcc community • Middle-end: Universities, Osprey, HP, Google • x86 back-end: PathScale, Google • Community effort (!) • Suggestions WELCOME! gcc vs. Open64 vs. LLVM • Clash of civilizations… 6/32 Open64 Tutorial,
  • 7. Future A lot of fun ! • Exploring cutting edge developments • Google specific optimizations • Benchmarks soon to be released, please sign up! • Phase 2: Tiered applications • Wild ideas… We are hiring !!! 7/32 Open64 Tutorial,
  • 8. Thank You Q/A 8/8 - just kidding Open64 Tutorial,