software and high performance computing: challenges for research the implications of pitac

139
Software and High Performance Computing: Challenges for Research The Implications of PITAC Ken Kennedy Center for High Performance Software Rice University http://www.cs.rice.edu/~ken/Presentations/ IBMAustinChallenges.pdf Center for High Performance Software

Upload: jerold

Post on 19-Mar-2016

25 views

Category:

Documents


0 download

DESCRIPTION

Software and High Performance Computing: Challenges for Research The Implications of PITAC Ken Kennedy Center for High Performance Software Rice University http://www.cs.rice.edu/~ken/Presentations/IBMAustinChallenges.pdf. Center for High Performance Software. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Software and High Performance Computing: Challenges for Research

The Implications of PITAC

Ken KennedyCenter for High Performance Software

Rice University

http://www.cs.rice.edu/~ken/Presentations/IBMAustinChallenges.pdf

Center for High Performance Software

Page 2: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Part I: The Role of the Federal Government in Information Technology

The PITAC Experience

Center for High Performance Software

Page 3: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Question

• Should the Federal Government Have Any Role?—Other than ensuring that commerce flows freely

Page 4: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Question

• Should the Federal Government Have Any Role?—Other than ensuring that commerce flows freely

• Answer:—The Federal Government is the only effective source of

funding for long-term fundamental research in high-technology areas.

—Federal government must also fund research in short-term applied research in areas of importance to the government but marginal commercial value

Page 5: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Question

• Should the Federal Government Have Any Role?—Other than ensuring that commerce flows freely

• Answer:—The Federal Government is the only effective source of

funding for long-term fundamental research in high-technology areas.

—Federal government must also fund research in short-term applied research in areas of importance to the government but marginal commercial value

• Is the Federal Government Doing This Well?

Page 6: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Question

• Should the Federal Government Have Any Role?—Other than ensuring that commerce flows freely

• Answer:—The Federal Government is the only effective source of

funding for long-term fundamental research in high-technology areas.

—Federal government must also fund research in short-term applied research in areas of importance to the government but marginal commercial value

• Is the Federal Government Doing This Well?—This is the question that the President’s Information

Technology Advisory Committee (PITAC) was asked to address.

Page 7: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

PITAC Charter• The Committee shall provide an independent

assessment of:—Progress made in implementing the High-Performance

Computing and Communications (HPCC) Program;—Progress in designing and implementing the Next

Generation Internet initiative;—The need to revise the HPCC Program;—Balance among components of the HPCC Program;—Whether the research and development undertaken

pursuant to the HPCC Program is helping to maintain United States leadership in advanced computing and communications technologies and their applications;

—Other issues as specified by the Director of the Office of Science and Technology.– Review of the entire IT investment strategy — is it

meeting the nation’s needs

Page 8: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

PITAC Membership 97-99

• Co-Chairs:—Bill Joy, Sun Microsystems — Ken Kennedy, Rice

• Members:—Eric Benhamou, 3Com — Vinton Cerf, MCI —Ching-chih Chen, Simmons — David Cooper, LLNL—Steve Dorfman, Hughes — David Dorman, AT&T—Bob Ewald, SGI — David Farber, Penn—Sherri Fuller, U of Washington — Hector Garcia-Molina, Stanford—Susan Graham, UC Berkeley — Jim Gray, Microsoft—Danny Hillis, Disney, Inc — Robert Kahn, CNRI— John Miller, Montana State — David Nagel, AT&T —Raj Reddy, Carnegie Mellon — Ted Shortliffe, Columbia

—Larry Smarr, UIUC — Joe Thompson, Miss. State

—Les Vadasz, Intel — Andy Viterbi, Qualcomm—Steve Wallach, Centerpoint — Irving Wladawsky-

Berger, IBM

Page 9: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Methodology• Evaluation of Federal Research Investment Portfolio

—Plans reviewed for each of the major areas:– High End Computing and Computation– Large Scale Networking– Human Centered Computer Systems– High Confidence Systems– Education, Training, and Human Resources

• Review of Balance in Federal Research Portfolio—Fundamental versus Applied

– Based on our own definition of these terms—High-Risk versus Low-Risk—Long-Term versus Short-Term

Page 10: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Principal Finding• Drift Away from Long-Term Fundamental Research

Page 11: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Principal Finding• Drift Away from Long-Term Fundamental Research

—Agencies pressed by the growth of IT needs– IT R&D budgets have grown steadily but not

dramatically– IT industry has accounted for over 30 percent of the

real GDP growth over the past five years, but gets only 1 out of 75 Federal R&D dollars

– Problems solved by IT are critical to the nation—engineering design, health and medicine, defense

Page 12: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Principal Finding• Drift Away from Long-Term Fundamental Research

—Agencies pressed by the growth of IT needs– IT R&D budgets have grown steadily but not

dramatically– IT industry has accounted for over 30 percent of the

real GDP growth over the past five years, but gets only 1 out of 75 Federal R&D dollars

– Problems solved by IT are critical to the nation—engineering design, health and medicine, defense

—Most IT R&D agencies are mission-oriented– Natural and correct to favor the short-term needs of

the mission

Page 13: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Principal Finding• Drift Away from Long-Term Fundamental Research

—Agencies pressed by the growth of IT needs– IT R&D budgets have grown steadily but not

dramatically– IT industry has accounted for over 30 percent of the

real GDP growth over the past five years, but gets only 1 out of 75 Federal R&D dollars

– Problems solved by IT are critical to the nation—engineering design, health and medicine, defense

—Most IT R&D agencies are mission-oriented– Natural and correct to favor the short-term needs of

the mission• This Trend Must Be Reversed

—Continue the flow of ideas to fuel the information economy and society

Page 14: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Remedy• Increase the Federal IT R&D Investment by 1.4 billion

dollars per year—Ramp up over five years—Focus on increasing fundamental research

Page 15: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Remedy• Increase the Federal IT R&D Investment by 1.4 billion

dollars per year—Ramp up over five years—Focus on increasing fundamental research

• Invest in Key Areas Needing Attention—Software—Scalable Information Infrastructure—High-End Computing—Social, Economic, and Workforce Issues

Page 16: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Remedy• Increase the Federal IT R&D Investment by 1.4 billion

dollars per year—Ramp up over five years—Focus on increasing fundamental research

• Invest in Key Areas Needing Attention—Software—Scalable Information Infrastructure—High-End Computing—Social, Economic, and Workforce Issues

• Develop a Coherent Management Strategy—Establish clear organizational responsibilities—Diversify modes of support

Page 17: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Software

• Recommendations—Make fundamental software research an absolute priority—Invest in key area needing attention

– Improving programmer productivity Ameliorate the shortage of IT professionals

– Improving reliability and robustness of software– Improving usability through human interface

innovations– Improving capabilities for information management

—Make software research a substantive component of every major information technology research initiative.

Page 18: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Scalable Information Infrastructure

• Research Needed:—Understanding the behavior of the global-scale network.—Physics of the network, including optical and wireless

technologies such as satellites, and bandwidth issues.—Scalability of the Internet.—Information management, Information and services

survivability—Large-scale applications and the scalable services they

require.– National digital library, Next-generation world-wide

web—Fund a balanced set of testbeds that serve the needs of

networking research, research in enabling information technologies and advanced applications, and Internet research.

Page 19: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

High-End Computing• Findings:

—High-end computing is essential for science and engineering research

—High-end computing is an enabling element of the United States national security program

—New applications of high-end computing are ripe for exploration

—Suppliers of high-end systems suffer from difficult market pressures– High-end market not large

—Advances in high-end computing eventually find their way to desktop

• Recommendation—Fund high-end computing research (architecture, software,

and applications, and testbeds) because it is important to the government and the health, welfare, and security of the population

Page 20: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Social, Economic, Workforce Issues

• Invest in Four Areas:—IT-literate population—IT workforce

– More workers, more underrepresented groups—Use of IT in education—Understanding economic and policy implications of

technology• An Observation on IT Workforce

—Research investment in universities is critical– Without it, faculty leave– Without it, grad students do not go —> no new faculty– Without faculty, we cannot produce more BS graduates

Page 21: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Good News• Administration Budget

—Proposed additional $366 million in FY 2000– Appropriated: $226 million

—Proposed $605 million increase for FY 2001—Successive years unclear

• Congress—Sensenbrenner NITR&D Act from House Science Committee

– 5 years of funding at PITAC-recommended levels– Permanent R&D investment tax credit– Passed with near-unanimous support– Only partially reflected in the Senate authorization bills

—Appropriations are year-to-year

Page 22: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Questions

• Can we increase long-term research by rebudgeting?

Page 23: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Questions

• Can we increase long-term research by rebudgeting?—No, because the short-term work addresses essential

problems

Page 24: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Questions

• Can we increase long-term research by rebudgeting?—No, because the short-term work addresses essential

problems• Why doesn’t industry fund this?

Page 25: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Questions

• Can we increase long-term research by rebudgeting?—No, because the short-term work addresses essential

problems• Why doesn’t industry fund this?

—Industry research focused on product development– Enormously expensive

Page 26: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Questions

• Can we increase long-term research by rebudgeting?—No, because the short-term work addresses essential

problems• Why doesn’t industry fund this?

—Industry research focused on product development– Enormously expensive

—Thurow:– Private rate of return on research — 24%– Societal rate of return on research — 66%

Page 27: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Questions

• Can we increase long-term research by rebudgeting?—No, because the short-term work addresses essential

problems• Why doesn’t industry fund this?

—Industry research focused on product development– Enormously expensive

—Thurow:– Private rate of return on research — 24%– Societal rate of return on research — 66%

—Industry is not good at funding and developing disruptive technologies

—Federal Government funding creates fuel for the venture capital system

Page 28: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

IT Grand Challenges

Page 29: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

IT Grand Challenges• Software Reliability

—Who will pay for bug free, feature-poor software?

Page 30: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

IT Grand Challenges• Software Reliability

—Who will pay for bug free, feature-poor software?• Internet Scalability and Security

—What happens when we have 2 billion internet connections at DSL speed?

Page 31: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

IT Grand Challenges• Software Reliability

—Who will pay for bug free, feature-poor software?• Internet Scalability and Security

—What happens when we have 2 billion internet connections at DSL speed?

• Realistic Videoconferencing—Can we put airlines out of business?

Page 32: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

IT Grand Challenges• Software Reliability

—Who will pay for bug free, feature-poor software?• Internet Scalability and Security

—What happens when we have 2 billion internet connections at DSL speed?

• Realistic Videoconferencing—Can we put airlines out of business?

• The Internet as Problem-Solving Engine*—GrADS Project

Page 33: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

IT Grand Challenges• Software Reliability

—Who will pay for bug free, feature-poor software?• Internet Scalability and Security

—What happens when we have 2 billion internet connections at DSL speed?

• Realistic Videoconferencing—Can we put airlines out of business?

• The Internet as Problem-Solving Engine*—GrADS Project

• Software Productivity*—Workforce shortage—Idea: make it possible for end users to be application

developers

Page 34: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Conclusions• U. S. leadership in Information Technology research

provides an essential foundation for commerce, education, health care, environmental stewardship, and national security in the 21st century.—Dramatically transform the way we communicate, learn,

deal with information and conduct research—Transform the nature of work, nature of commerce,

product design cycle, practice of health care, and the government itself

Page 35: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Conclusions• U. S. leadership in Information Technology research

provides an essential foundation for commerce, education, health care, environmental stewardship, and national security in the 21st century.—Dramatically transform the way we communicate, learn,

deal with information and conduct research—Transform the nature of work, nature of commerce,

product design cycle, practice of health care, and the government itself

• Increased investment in long-term research is needed to continue the flow of ideas and people from universities into the the IT industry. —Revitalize university research (and education) in IT

Page 36: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Conclusions• U. S. leadership in Information Technology research

provides an essential foundation for commerce, education, health care, environmental stewardship, and national security in the 21st century.—Dramatically transform the way we communicate, learn,

deal with information and conduct research—Transform the nature of work, nature of commerce,

product design cycle, practice of health care, and the government itself

• Increased investment in long-term research is needed to continue the flow of ideas and people from universities into the the IT industry. —Revitalize university research (and education) in IT

• This is a unique responsibility of the Federal Government—Companies must focus on short term product development

Page 37: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Part II: Compiler Technology for Problem

Solving on Computational Grids

The GrADS Project:Toward the Internet as a Problem-

Solving System

Center for High Performance Software

Page 38: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

National Distributed Computing

Page 39: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

National Distributed Computing

Page 40: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

National Distributed Computing

Supercomputer

Page 41: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

National Distributed Computing

SupercomputerDatabase

Page 42: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

National Distributed Computing

Supercomputer

SupercomputerDatabase

Page 43: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

National Distributed Computing

Database

Supercomputer

SupercomputerDatabase

Page 44: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

What Is a Grid?• Collection of computing resources

—Varying in power or architecture—Potentially dynamically varying in load

– Unreliable?—No hardware shared memory

• Interconnected by network—Links may vary in bandwidth—Load may vary dynamically

• Distribution—Across room, campus, state, nation, globe

• Inclusiveness—Distributed-memory parallel computer is a degenerate

case

Page 45: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

A Software Grand Challenge• Application Development and Performance

Management for Grids—Problems:

– Reliable performance on heterogeneous platforms– Varying load

On computation nodes and on communications links• Challenges:

—Presenting a high-level programming interface– If programming is hard, its useless

—Designing applications for adaptability—Mapping applications to dynamically changing

architectures—Determining when to interrupt execution and remap

– Application monitors– Performance estimators

Page 46: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Globus• Developed by Ian Foster and Carl Kesselman

—Originally to support the I-Way (SC-96)• Basic Services for distributed computing

—Accounting—Resource directory—User authentication—Job initiation—Communication services (Nexus and MPI)

• Applications are programmed by hand—User responsible for resource mapping and all

communication—Many applications, most developed with Globus team

– Even Globus developers acknowledge how hard this is

Page 47: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

What is Needed• Compiler and language support for reliable performance

—dynamic reconfiguration, optimization for distributed targets

• Development of abstract Grid programming models—design of an implementation strategy for those models

• Development of easy-to-use programming interfaces—problem-solving environments

• Robust reliable numerical and data-structure libraries—predictability and robustness of accuracy and performance—reproducibility, fault tolerance, and auditability

• Performance monitoring and control strategies—deep integration across compilers, tools, and runtime

systems—performance contracts and dynamic reconfiguration

Page 48: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Programming Models• Distributed Collection of Objects (for serious experts)

—message passing for communiction• Problem-Solving Environment (for non-experts)

—packaged components—graphical or scripting language for glue

• Distribution of Shared-Memory Programs (for experts)—language-based decomposition specification from

programmer—parametrizable for reconfiguration

– example: reconfigurable distributed arrays (DAGH)—implemented as distributed object collection—implicit or explicit communications

Page 49: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Whole-ProgramCompiler

LibrariesDynamicOptimizer

Real-timePerformance

MonitorPerformance

Problem

ServiceNegotiator

Scheduler

GridRuntimeSystem

SourceAppli-cation

Config-urableObject

Program

SoftwareComponents

Performance Feedback

Negotiation

GrADS Project (NSF NGS): Berman, Chien, Cooper, Dongarra, Foster, Gannon, Johnsson, Kennedy, Kesselman, Reed, Torczon, Wolski

Grid Compilation Architecture• Goal: reliable performance under varying load

Page 50: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Grid Compilation Architecture

Whole-ProgramCompiler

LibrariesDynamicOptimizer

Real-timePerformance

MonitorPerformance

Problem

ServiceNegotiator

Scheduler

GridRuntimeSystem

SourceAppli-cation

Config-urableObject

Program

SoftwareComponents

Performance Feedback

Negotiation

Execution Environment

Page 51: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Performance Contracts• At the Heart of the GrADS Model

—Fundamental mechanism for managing mapping and execution

• What are they?—Mappings from resources to performance —Mechanisms for determining when to interrupt and

reschedule• Abstract Definition

—Random Variable: (A,I,C,t0) with a probability distribution– A = app, I = input, C = configuration, t0 = time of

initiation– Important statistics: lower and upper bounds (95%

confidence)—Issue:

– Is a derivative at t0? (Wolski)

Page 52: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Grid Compilation Architecture

Whole-ProgramCompiler

LibrariesDynamicOptimizer

Real-timePerformance

MonitorPerformance

Problem

ServiceNegotiator

Scheduler

GridRuntimeSystem

SourceAppli-cation

Config-urableObject

Program

SoftwareComponents

Performance Feedback

Negotiation

Program Preparation System Execution Environment

Page 53: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Configurable Object Program• Representation of the Application

—Supporting dynamic reconfiguration and optimization for distributed targets

—Includes– Program intermediate code– Annotations from the compiler

Reconfiguration strategy– Historical information (run profile to now)

• Reconfiguration strategies—Aggregation of data regions (submeshes)—Aggregation of tasks—Definition of parameters

– Used for algorithm selection

Page 54: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Testbeds• MicroGrid (Andrew Chien)

—Cluster of Intel PCs—Runs standard Grid software (Globus, Nexus)—Permits simulation of varying loads

– Network and processor—Extensive performance modeling

• MacroGrid (Carl Kesselman)—Collection of processors running Globus—At all 8 GrADS sites—Permits experimentation with real applications

– Cactus (Ed Seidel)

Page 55: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Research Strategy• Begin Modestly

—application experience to identify opportunities—prototype reconfiguration system

– with performance monitoring, without dynamic optimization

—prototype reconfigurable library• Move from Simple to Complex Systems

—begin with heterogeneous clusters—refinements of reconfiguration system and performance

contract mechanism—use an artificial testbed to test performance under varying

conditions • Experiment with Real Applications

—someone cares about the answers

Page 56: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Summary• The scalable infrastructure should be a scalable

problem-solver—Access to information is not enough—Linked computation is not enough

• Infrastructure is complex—Seamless integration of access to remote resources in

response to need• Execution of applications must be adaptive

—In response to changing loads and resources• Programming support is hard

—Must manage execution to reliable completion—Must prepare a program for execution—Ideally, should support high-level domain-specific

programming– Telescoping languages

Page 57: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Part III: Compiler Architecture for

High-Performance Problem Solving

A Quest for High-Level Programming Systems

Center for High Performance Software

Page 58: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Context• Explosive Growth of Information Technology

—Now represents 20 percent of economy, 35 percent of GDP growth

—Essential to operation of most organizations, especially government

Page 59: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Context• Explosive Growth of Information Technology

—Now represents 20 percent of economy, 35 percent of GDP growth

—Essential to operation of most organizations, especially government

• Enormous Demand for Software• Shortage of IT Professionals

—Challenge: double the number of CS graduates

Page 60: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Context• Explosive Growth of Information Technology

—Now represents 20 percent of economy, 35 percent of GDP growth

—Essential to operation of most organizations, especially government

• Enormous Demand for Software• Shortage of IT Professionals

—Challenge: double the number of CS graduates• Complex Computer Architectures

—Deep memory hierarchies, high degrees of parallelism—Heterogeneous, geographically distributed platforms

– Changes in performance of nodes and links during execution

Page 61: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Context• Explosive Growth of Information Technology

—Now represents 20 percent of economy, 35 percent of GDP growth

—Essential to operation of most organizations, especially government

• Enormous Demand for Software• Shortage of IT Professionals

—Challenge: double the number of CS graduates• Complex Computer Architectures

—Deep memory hierarchies, high degrees of parallelism—Heterogeneous, geographically distributed platforms

– Changes in performance of nodes and links during execution

• Complex Applications—Many diverse components, dynamic, adaptive, unstructured

Page 62: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Philosophy• Compiler Technology = Off-Line Processing

—Goals: improved performance and language usability– Making it practical to use the full power of the

language

Page 63: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Philosophy• Compiler Technology = Off-Line Processing

—Goals: improved performance and language usability– Making it practical to use the full power of the

language—Trade-off: preprocessing time versus execution time—Rule: performance of both compiler and application must

be acceptable to the end user

Page 64: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Philosophy• Compiler Technology = Off-Line Processing

—Goals: improved performance and language usability– Making it practical to use the full power of the

language—Trade-off: preprocessing time versus execution time—Rule: performance of both compiler and application must

be acceptable to the end user• Examples

—Macro expansion– PL/I macro facility — 10x improvement with compilation

Page 65: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Philosophy• Compiler Technology = Off-Line Processing

—Goals: improved performance and language usability– Making it practical to use the full power of the

language—Trade-off: preprocessing time versus execution time—Rule: performance of both compiler and application must

be acceptable to the end user• Examples

—Macro expansion– PL/I macro facility — 10x improvement with compilation

—Database query optimization

Page 66: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Philosophy• Compiler Technology = Off-Line Processing

—Goals: improved performance and language usability– Making it practical to use the full power of the

language—Trade-off: preprocessing time versus execution time—Rule: performance of both compiler and application must

be acceptable to the end user• Examples

—Macro expansion– PL/I macro facility — 10x improvement with compilation

—Database query optimization—Emulation acceleration

– TransMeta “code morphing”

Page 67: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Philosophy• Compiler Technology = Off-Line Processing

—Goals: improved performance and language usability– Making it practical to use the full power of the

language—Trade-off: preprocessing time versus execution time—Rule: performance of both compiler and application must

be acceptable to the end user• Examples

—Macro expansion– PL/I macro facility — 10x improvement with compilation

—Database query optimization—Emulation acceleration

– TransMeta “code morphing”—Communication planning in dynamic applications

(Inspector/Executor)

Page 68: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Making Languages Usable

It was our belief that if FORTRAN, during its first months, were to translate any reasonable “scientific” source program into an object program only half as fast as its hand-coded counterpart, then acceptance of our system would be in serious danger... I believe that had we failed to produce efficient programs, the widespread use of languages like FORTRAN would have been seriously delayed.

— John Backus

Page 69: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

A Java Experiment• Scientific Programming In Java

—Goal: make it possible to use the full object-oriented power for scientific applications– Many scientific implementations mimic Fortran style

Page 70: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

A Java Experiment• Scientific Programming In Java

—Goal: make it possible to use the full object-oriented power for scientific applications– Many scientific implementations mimic Fortran style

• OwlPack Benchmark Suite—Three versions of LinPACK in Java

– Fortran style– Lite object-oriented style– Full polymorphism

No differences for type

Page 71: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

A Java Experiment• Scientific Programming In Java

—Goal: make it possible to use the full object-oriented power for scientific applications– Many scientific implementations mimic Fortran style

• OwlPack Benchmark Suite—Three versions of LinPACK in Java

– Fortran style– Lite object-oriented style– Full polymorphism

No differences for type• Experiment

—Compare running times for different styles on same Java VM

—Evaluate potential for compiler optimization

Page 72: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Performance Results

05

10152025

3035

Run Time

inSecs

dgefa dgesl dgedi

Fortran StyleLite OO StyleOO StyleOptimized OONative F90

Results Using JDK 1.2JIT on SUN Ultra 5

Page 73: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Preliminary Conclusions• Definition of Application Will Become Fuzzy

—Knowledge of the computation will be revealed in stages—Examples:

– Compilation with input data, – Compiler-generated run-time preprocessing– Optimization with late binding of target platform– Compilation based on predefined component libraries

Page 74: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Preliminary Conclusions• Definition of Application Will Become Fuzzy

—Knowledge of the computation will be revealed in stages—Examples:

– Compilation with input data, – Compiler-generated run-time preprocessing– Optimization with late binding of target platform– Compilation based on predefined component libraries

• Performance Will Be More Elusive—Even reliable performance will be hard to achieve—Compiler will need to be even more heroic,

– Yet programmer will continue to want control

Page 75: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Preliminary Conclusions• Definition of Application Will Become Fuzzy

—Knowledge of the computation will be revealed in stages—Examples:

– Compilation with input data, – Compiler-generated run-time preprocessing– Optimization with late binding of target platform– Compilation based on predefined component libraries

• Performance Will Be More Elusive—Even reliable performance will be hard to achieve—Compiler will need to be even more heroic,

– Yet programmer will continue to want control• Compilers Structure Will Be More Flexible

—Compilation will be carried out in stages

Page 76: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Compiling with Data

Compiler

Application

Program

Page 77: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Compiling with Data

Compiler

Reduced Application

Program

Slowly-Changing Data

Page 78: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Compiling with Data

Compiler

Reduced Application

Program

Rapidly-Changing Data

Slowly-Changing Data

Answers

Page 79: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Run-Time Compilation

Compiler

Application

Program

Page 80: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Run-Time Compilation

Compiler

Application

Program

Slowly-Changing Data Pre-Optimizer

Page 81: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Run-Time Compilation

Compiler

Application

Program

Rapidly-Changing Data

Slowly-Changing Data

Answers

Pre-Optimizer

Page 82: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Bandwidth as Limiting Factor• Program and Machine Balance

—Program Balance: Average number of bytes that must be transferred in memory per floating point operation

—Machine Balance: Average number of bytes the machine can transfer from memory per floating point operation

Page 83: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Bandwidth as Limiting Factor• Program and Machine Balance

—Program Balance: Average number of bytes that must be transferred in memory per floating point operation

—Machine Balance: Average number of bytes the machine can transfer from memory per floating point operation

Applications Flops L1–Reg L2–L1 Mem–L2Convolution 1 6.4 5.1 5.2Dmxpy 1 8.3 8.3 8.4Mmjki (o2) 1 24.0 8.2 5.9FFT 1 8.3 3.0 2.7SP 1 10.8 6.4 4.9Sweep3D 1 15.0 9.1 7.8SGI Origin 1 4 4 0.8

Page 84: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Cache and Bandwidth

Page 85: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Cache and Bandwidth

Memory

L2 Cache 128 Bytes6.25 % Utilization

Page 86: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Cache and Bandwidth

Memory

L1 Cache 32 Bytes

25 % Utilization

L2 Cache 128 Bytes6.25 % Utilization

Page 87: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Cache and Bandwidth

Memory

L1 Cache 32 Bytes

25 % Utilization

L2 Cache 128 Bytes6.25 % Utilization

Register 8 Bytes

100 % Utilization

Page 88: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Dynamic Data Packing

• Suppose the Calculation is Irregular—Example: Molecular Dynamics

– Force calculations (pairs of forces)– Updating locations (single force per update)

Page 89: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Dynamic Data Packing

• Suppose the Calculation is Irregular—Example: Molecular Dynamics

– Force calculations (pairs of forces)– Updating locations (single force per update)

• Strategy—Dynamically reorganize data

– So locations used together are updated together—Dynamically reorganize interactions

– So indirect accesses are not needed—Example: “first touch”

– Assign elements to cache lines in order of first touch by pairs calculation

Page 90: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

First-Touch Ordering

P1 P2P3P4P5

Original Ordering

Page 91: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

First-Touch Ordering

P1 P1

P2

P1

P3 P4

P2 P2

P3 P5

Interaction Pairs

P1 P2P3P4P5

Original Ordering

Page 92: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

First-Touch Ordering

P1 P2P3P4P5

Original Ordering

P1 P1

P2

P1

P3 P4

P2 P2

P3 P5

Interaction Pairs

P1 P2 P3 P4 P5

First-Touch Ordering

Page 93: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Performance Results 1

00.10.20.30.40.50.60.70.80.9

1

Exe. time L1 misses L2 misses TLB misses

Moldynoriginal data regroupingbase packing opt packing

Page 94: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Performance Results 2

00.10.20.30.40.50.60.70.80.9

1

Exe. time L1 misses L2 misses TLB misses

Magioriginal data regroupingbase packing opt packing

Page 95: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Dynamic Optimization

Compiler

Application

Program

Page 96: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Dynamic Optimization

Compiler

Application

Program

ConfigurationAnd Data

Dynamic Optimizer(Optimizing Loader)

Page 97: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Dynamic Optimization

Compiler

Application

Program

Rapidly-Changing Data

ConfigurationAnd Data

Answers

Dynamic Optimizer(Optimizing Loader)

Page 98: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Grid Compilation Architecture• Goal: reliable performance under varying load

Whole-ProgramCompiler

LibrariesDynamicOptimizer

Real-timePerformance

MonitorPerformance

Problem

ServiceNegotiator

Scheduler

GridRuntimeSystem

SourceAppli-cation

Config-urableObject

Program

SoftwareComponents

Performance Feedback

Negotiation

GrADS Project: Berman, Chien, Cooper, Dongarra, Foster, Gannon, Johnsson, Kennedy, Kesselman, Reed, Torczon, Wolski

Page 99: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Grid Compilation Architecture• Goal: reliable performance under varying load

Whole-ProgramCompiler

LibrariesDynamicOptimizer

Real-timePerformance

MonitorPerformance

Problem

ServiceNegotiator

Scheduler

GridRuntimeSystem

SourceAppli-cation

Config-urableObject

Program

SoftwareComponents

Performance Feedback

Negotiation

GrADS Project: Berman, Chien, Cooper, Dongarra, Foster, Gannon, Johnsson, Kennedy, Kesselman, Reed, Torczon, Wolski

Execution Environment

Page 100: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Programming Productivity• Challenges

—programming is hard—professional programmers are in short supply—high performance will continue to be important

Page 101: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Programming Productivity• Challenges

—programming is hard—professional programmers are in short supply—high performance will continue to be important

• One Strategy: Make the End User a Programmer—professional programmers develop components—users integrate components using:

– problem-solving environments (PSEs)– scripting languages (possibly graphical)

examples: Visual Basic, Tcl/Tk, AVS, Khoros

Page 102: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Programming Productivity• Challenges

—programming is hard—professional programmers are in short supply—high performance will continue to be important

• One Strategy: Make the End User a Programmer—professional programmers develop components—users integrate components using:

– problem-solving environments (PSEs)– scripting languages (possibly graphical)

examples: Visual Basic, Tcl/Tk, AVS, Khoros• Compilation for High Performance

—translate scripts and components to common intermediate language

—optimize the resulting program using interprocedural methods

Page 103: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Script-Based Programming

Component Library

User Library

Script

Page 104: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Script-Based Programming

Component Library

User Library

Script

IntermediateCodeTranslator

Page 105: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Script-Based Programming

Component Library

User Library

Script

IntermediateCode

GlobalOptimizer

Translator

Page 106: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Code Generator

Script-Based Programming

Component Library

User Library

Script

IntermediateCode

GlobalOptimizer

Translator

Page 107: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Code Generator

Script-Based Programming

Component Library

User Library

Script

IntermediateCode

GlobalOptimizer

Translator

Problem: long compilation times, even for short scripts!

Page 108: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Telescoping Languages

L1 ClassLibrary

Page 109: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Telescoping Languages

L1 ClassLibrary

CompilerGenerator

L1 Compiler

Could run for hours

Page 110: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Telescoping Languages

L1 ClassLibrary

Script

CompilerGenerator

L1 CompilerScriptTranslator

OptimizedApplication

VendorCompiler

Could run for hours

understandslibrary callsas primitives

Page 111: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Telescoping Languages: Advantages

• Compile times can be reasonable—More compilation time can be spent on libraries

– Amortized over many uses—Script compilations can be fast

– Components reused from scripts may be included in libraries

Page 112: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Telescoping Languages: Advantages

• Compile times can be reasonable—More compilation time can be spent on libraries

– Amortized over many uses—Script compilations can be fast

– Components reused from scripts may be included in libraries

• High-level optimizations can be included—Based on specifications of the library designer

– Properties often cannot be determined by compilers– Properties may be hidden after low-level code

generation

Page 113: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Telescoping Languages: Advantages

• Compile times can be reasonable—More compilation time can be spent on libraries

– Amortized over many uses—Script compilations can be fast

– Components reused from scripts may be included in libraries

• High-level optimizations can be included—Based on specifications of the library designer

– Properties often cannot be determined by compilers– Properties may be hidden after low-level code

generation• User retains substantive control over language

performance—Mature code can be built into a library and incorporated

into language

Page 114: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Applications• Matlab Compiler

—Automatically generated from LAPACK or ScaLAPACK – With help via annotations from the designer

• Flexible Data Distributions—Failing of HPF: inflexible distributions—Data distribution == collection of interfaces that meet

specs—Compiler applies standard transformations

• Automatic Generation of POOMA—Data structure library implemented via template expansion

in C++—Long compile times, missed optimizations

• Generator for Grid Computations—GrADS: automatic generation of NetSolve

Page 115: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Requirements of Script Compilation

• Scripts must generate efficient programs—Comparable to those generated from standard

interprocedural methods—Avoid need to recode in standard language

Page 116: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Requirements of Script Compilation

• Scripts must generate efficient programs—Comparable to those generated from standard

interprocedural methods—Avoid need to recode in standard language

• Script compile times should be proportional to length of script—Not a function of the complexity of the library—Principle of “least astonishment”

Page 117: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Telescoping Languages

Script L1 CompilerScriptTranslator

OptimizedApplication

VendorCompiler

understandslibrary callsas primitives

Page 118: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Script Compilation Algorithm• Propagate variable property information throughout

the program—Use jump functions to propagate through calls to library

Page 119: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Script Compilation Algorithm• Propagate variable property information throughout the

program—Use jump functions to propagate through calls to library

• Apply high-level transformations—Driven by information about properties—Ensure that process applies to expanded code

Page 120: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Script Compilation Algorithm• Propagate variable property information throughout

the program—Use jump functions to propagate through calls to library

• Apply high-level transformations—Driven by information about properties—Ensure that process applies to expanded code

• Perform low-level code specialization—At each call site, determine the best estimate to parameter

properties that is reflected by a specialized fragment in the code database– Use a method similar to “unification”

—Substitute fragment from database for call– This could contain a call to a lower-level library routine.

Page 121: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Telescoping Languages

L1 ClassLibrary

CompilerGenerator

L1 Compiler

Could run for hours

Page 122: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Library Analysis and Preparation

• Discovery of and Propagation Critical Properties

• Analysis of Transformation Specifications

• Code specialization for different sets of parameter properties

Page 123: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Library Analysis and Preparation

• Discovery and Propagation of Critical Properties—Which properties of parameters affect optimization

– Examples: value, type, rank and size of matrix

Page 124: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Discovery of Critical Properties

• From specifications by the library designer—If the matrix is triangular, then…

• From examining the code itself—Look at a promising optimization point—Determine conditions under which we can make significant

optimizations—See if any of these conditions can be mapped back to

parameter properties• From sample calling programs provided by the

designer call average(shift(A,-1), shift(A,+1))

– Can save on memory accesses

Page 125: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Examining the Code

• Example from LAPACK

subroutine VMP(C, A, B, m, n, s) integer m,n,s; real A(n), B(n), C(m) i = 1 do j = 1, n C(i) = C(i) + A(j)*B(j) i = i + s enddoend VMP

Vectorizable if s != 0

Page 126: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Library Analysis and Preparation

• Discovery and Propagation of Critical Properties—Which properties of parameters affect optimization

– Examples: value, type, rank and size of matrix—Construction of jump functions for the library calls

– With respect to critical properties

Page 127: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Propagation of Properties

• Jump Functions (Transfer Functions)—Tell the effect on properties of a call to a library routine

– Whether it preserves the property or changes it—Computed during library preparation (compiler

generation) phase– Can use lots of time

—Can be designed to be fast– Tradeoff between accuracy and performance

• Advantage of Jump Functions—Avoid necessity for analysis of library source

– Prevent blowup of compilation times

Page 128: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Library Analysis and Preparation

• Discovery and Propagation of Critical Properties—Which properties of parameters affect optimization

– Examples: value, type, rank and size of matrix—Construction of jump functions for the library calls

– With respect to critical properties• Analysis of Transformation Specifications

—Construction of a specification-driven translator for use in compiling scripts

Page 129: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

High-level Identities

• Often library developer knows high-level identities—Difficult for the compiler to discern—Optimization should be performed on sequences of calls

rather than code remaining after expansion• Example: Push and Pop

—Designer Push(x) followed by y = Pop() becomes y = x– Ignore possibility of overflow in Push

• Example: Trigonometric Functions—Sin and Cos used in same loop—both computed using

expensive calls to the trig library—Recognize that cos(x) and sin(x) can be computed by a

single call to sincos(x,s,c) in a little more than the time required for sin(x).

Page 130: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Contextual Expansions• Out of Core Arrays

—Operatons Get(I,J) and GetRow(I,Lo,N)• Get in a loop

Do I Do J … Get(I,J) Enddo Enddo

• When can we vectorize?—Turn into GetRow—Answer: if Get is not involved in a recurrence.

– How can we know?

Page 131: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Library Analysis and Preparation

• Discovery and Propagation of Critical Properties—Which properties of parameters affect optimization

– Examples: value, type, rank and size of matrix—Construction of jump functions for the library calls

– With respect to critical properties• Analysis of Transformation Specifications

—Construction of a specification-driven translator for use in compiling scripts

• Code specialization for different sets of parameter properties—For each set, assume and optimize to produce specialized

code

Page 132: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Code Selection Example• Library compiler develops inlining tables

subroutine VMP(C, A, B, m, n, s) integer m,n,s; real A(n), B(n), C(m) i = 1 do j = 1, n C(i) = C(i) + A(j)*B(j) i = i + s enddoend VMP

case on s: ==0: C(1) = C(1) + sum(A(1:n)*B(1:n)) !=0: C(1:n:s) = C(1:n:s) + A(1:n)*B(1:n)default: call VMP(C,A,B,m,n,s)

Inlining Table

vector

Page 133: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Flexible Compiler Architecture• Flexible Definition of Computation

—Parameters– program scheme– base library sequence (l1, l2, …, lp)– subprogram source files (s1, s2, ..., sn)– run history (r1, r2, ..., rk)– data sets (d1, d2, ..., dm) – target configuration

Page 134: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Flexible Compiler Architecture• Flexible Definition of Computation

—Parameters– program scheme– base library sequence (l1, l2, …, lp)– subprogram source files (s1, s2, ..., sn)– run history (r1, r2, ..., rk)– data sets (d1, d2, ..., dm) – target configuration

• Compilation = Partial Evaluation—several compilation steps as information becomes

available

Page 135: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Flexible Compiler Architecture• Flexible Definition of Computation

—Parameters– program scheme– base library sequence (l1, l2, …, lp)– subprogram source files (s1, s2, ..., sn)– run history (r1, r2, ..., rk)– data sets (d1, d2, ..., dm) – target configuration

• Compilation = Partial Evaluation—several compilation steps as information becomes

available• Program Management

—When to back out of previous compilation decisions due to change

—When to invalidate certain inputs– Examples: change in library or run history

Page 136: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Summary• Optimization Enables Language Power

—Principle: encourage rather than discourage use of powerful features– Good programming practice should be rewarded

http://www.cs.rice.edu/~ken/Presentations/CompilerArchitecture.pdf

Page 137: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Summary• Optimization Enables Language Power

—Principle: encourage rather than discourage use of powerful features– Good programming practice should be rewarded

• Target Platforms, Languages, and Apps Becoming More Complex—Platforms: Parallel, heterogeneous, deep memory

hierarchies—Applications: dynamic, irregular, extensive use of domain

libraries

http://www.cs.rice.edu/~ken/Presentations/CompilerArchitecture.pdf

Page 138: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Summary• Optimization Enables Language Power

—Principle: encourage rather than discourage use of powerful features– Good programming practice should be rewarded

• Target Platforms, Languages, and Apps Becoming More Complex—Platforms: Parallel, heterogeneous, deep memory

hierarchies—Applications: dynamic, irregular, extensive use of domain

libraries• Programming support is hard

—Ideally, should support high-level domain-specific programming– Telescoping languages

http://www.cs.rice.edu/~ken/Presentations/CompilerArchitecture.pdf

Page 139: Software and High Performance Computing: Challenges for Research The Implications of PITAC

Center for High Performance Software

Summary• Optimization Enables Language Power

—Principle: encourage rather than discourage use of powerful features– Good programming practice should be rewarded

• Target Platforms, Languages, and Apps Becoming More Complex—Platforms: Parallel, heterogeneous, deep memory

hierarchies—Applications: dynamic, irregular, extensive use of domain

libraries• Programming support is hard

—Ideally, should support high-level domain-specific programming– Telescoping languages

• Compiler Structure Will Be Correspondingly Complex—Partial evaluation in stages with incremental informationhttp://www.cs.rice.edu/~ken/Presentations/IBMAustinChallenges.pdf