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

PPT
Open64 compiler
PDF
HH QUALCOMM using qualcomm® snapdragon™ llvm compiler to optimize apps for 32...
PPTX
Go Native : Squeeze the juice out of your 64-bit processor using C++
PDF
Retrospective: Seven VM Engineering Years
PDF
Self-awareness and Adaptive Technologies: the Future of Operating Systems?
PDF
Cray XT Porting, Scaling, and Optimization Best Practices
PDF
May2010 hex-core-opt
PDF
OpenCL Programming 101
Open64 compiler
HH QUALCOMM using qualcomm® snapdragon™ llvm compiler to optimize apps for 32...
Go Native : Squeeze the juice out of your 64-bit processor using C++
Retrospective: Seven VM Engineering Years
Self-awareness and Adaptive Technologies: the Future of Operating Systems?
Cray XT Porting, Scaling, and Optimization Best Practices
May2010 hex-core-opt
OpenCL Programming 101

Similar to Open64 cgo07-google 01 (20)

PPT
Ch04
PDF
Polyglot Architecture: A Rational Approach to Software Design
PDF
64-bit
PDF
XT Best Practices
PDF
TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...
PDF
Three Optimization Tips for C++
PDF
Three Optimization Tips for C++
PDF
GoLightly: Building VM-based language runtimes in Go
ODP
CompilersAndLibraries
PDF
64 bits for developers
PDF
PL-4048, Adapting languages for parallel processing on GPUs, by Neil Henning
PDF
Cag Corporate Dossier May 2012
PDF
Cag corporate dossier may 2012
PPTX
Putting Compilers to Work
PDF
Callgraph analysis
PDF
Peddle the Pedal to the Metal
PDF
Optimization of 64-bit programs
PDF
The Impact of Compiler Auto-Optimisation on Arm-based HPC Microarchitectures
PDF
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
PPTX
Intel JIT Talk
Ch04
Polyglot Architecture: A Rational Approach to Software Design
64-bit
XT Best Practices
TRACK F: OpenCL for ALTERA FPGAs, Accelerating performance and design product...
Three Optimization Tips for C++
Three Optimization Tips for C++
GoLightly: Building VM-based language runtimes in Go
CompilersAndLibraries
64 bits for developers
PL-4048, Adapting languages for parallel processing on GPUs, by Neil Henning
Cag Corporate Dossier May 2012
Cag corporate dossier may 2012
Putting Compilers to Work
Callgraph analysis
Peddle the Pedal to the Metal
Optimization of 64-bit programs
The Impact of Compiler Auto-Optimisation on Arm-based HPC Microarchitectures
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
Intel JIT Talk
Ad

Recently uploaded (20)

PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPTX
Modernising the Digital Integration Hub
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
Unlock new opportunities with location data.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
DOCX
search engine optimization ppt fir known well about this
PPTX
Tartificialntelligence_presentation.pptx
PDF
Hybrid model detection and classification of lung cancer
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
August Patch Tuesday
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PPT
What is a Computer? Input Devices /output devices
PPT
Geologic Time for studying geology for geologist
PDF
Enhancing emotion recognition model for a student engagement use case through...
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Modernising the Digital Integration Hub
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
Unlock new opportunities with location data.pdf
A comparative study of natural language inference in Swahili using monolingua...
search engine optimization ppt fir known well about this
Tartificialntelligence_presentation.pptx
Hybrid model detection and classification of lung cancer
O2C Customer Invoices to Receipt V15A.pptx
Zenith AI: Advanced Artificial Intelligence
NewMind AI Weekly Chronicles – August ’25 Week III
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
sustainability-14-14877-v2.pddhzftheheeeee
A contest of sentiment analysis: k-nearest neighbor versus neural network
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
August Patch Tuesday
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
What is a Computer? Input Devices /output devices
Geologic Time for studying geology for geologist
Enhancing emotion recognition model for a student engagement use case through...
Ad

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,