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”!