Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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”!