Transcript Mary Hall

Hot Topics and Future Directions in
Programming Languages
Mary Hall
May 9, 2007
My Background

PhD 1991, Rice University
—
—

Career
—
—
—
—
—

Ken Kennedy and Keith Cooper student
Kathryn McKinley’s office mate
Research scientist at Rice and Stanford
Visiting professor at Caltech
Research professor and project leader at USC since 1996
Proudest achievement: Graduated 5 PhD students
Favorite technical thing: a clever algorithm or
abstraction
Family
—
—
Married another grad student 19 years ago
Two daughters, 10 and 6, both like math!
What makes for a hot topic in
programming languages?
Four forces create hot PL topics

New architectures or architectural features
—
—

New applications and application requirements
—

Intel’s “Recognition, Mining and Synthesis” applications for many-core
New programming models and new features of programming
languages
—
—

Trends in general-purpose processors: multithreading, many-core,
heterogeneous
Special-purpose processors: graphics and games processors, network
processors, FPGAs
Explicitly parallel languages: transactional memory, data-parallel
languages, locality-aware languages
Domain-specific tools
New technologies that show promise
—
—
—
Web technologies
Dynamic optimization
Search techniques in optimization
Parallelism:
What’s the big deal?
Correctness
Performance
Data
Sharing
Communication/
Computation
Overlap
Synchronization
Data Partitioning/
Locality
Ease of Use!
VS
Exploit the computation power!
Heterogeneity:
Additional Complexity
Other:
• Utilizing highly
tuned libraries
• Differences in
programming models
(GPP +FPGA is
extreme example)
Device
Type 1
Memory
Staging
Data to/from
global
memory
Managing data
movement and
synchronization
Device
Type 2
Device
Type 3
Partitioning:
Where to execute?
Device
Type 4
Other architectural issues

SIMD engines

Software-managed “cache” (e.g., IBM Cell)

Complex processor hierarchies
—

E.g., GPU, Cell
Complex memory hierarchies
—
—
Private caches -> coherence
Shared caches -> exploit sharing patterns, thrashing
Exploiting Architectural
Features

Consider something as standard as Matrix
Multiply
—
—

Issues
—
—

There are myriad different ways to implement it
The choice depends on the architecture
Code portability?
Tool portability?
Interesting approach: Try out a set of
alternatives and see which one works best
—
—
Mimics what programmers do
Tools can do this more efficiently
Compiler Support: ArchitectureSpecific Performance Tuning

Completely automatic performance tuning:
Loop-based computation on arrays
—
—
—
—
—

Completely automatic performance tuning
Not just for scientific computing
Communication kernels (I-Q Imbalance, FFT, decimation filtering)
Cognitive algorithms (knowledge discovery, social networks)
Graphics and games
Application-directed performance tuning:
General application code
—
—
Support savvy programmer’s performance tuning process
Examples include application-level parameters, known or expected
constraints on problem size, user-directed optimization
Search in Application
Mapping and Optimization

Conclusion from previous slides:
—
—

Promising strategies
—
—

Application mapping and optimization is becoming increasingly
complex
Can we use systematic search techniques from AI or OR or
domain knowledge?
Offline learning via classification; online mapping from
features to classification
Offline “any-time” or quick online algorithms
Examples
—
Optimization order, optimization flags, optimization
parameters, instruction scheduling algorithm
Key Themes in our Research

Performance tuning tools
—
—

Optimizing compilers built from modular, understandable
chunks
—
—

Easier to bring up on new platforms
Facilitates collaboration
Signal processing optimization
—

Use vast resources of today’s systems
Enumerate options, try, measure, record
Joint optimization of mathematical transforms and implementation
Workflow and component optimization
—
—
Towards community-based development, incorporate external IP
Support multiple types of users/developers
A Systematic, Principled Approach!
Summary

PL research driven by four forces
—

Architecture, applications, languages and new
technologies
Architectures and applications are a constantly
moving target

Languages must respond

New technologies provide new opportunities
Guarantees PL research will always be “hot”!