1 / 11

Hot Topics and Future Directions in Programming Languages

This article discusses the factors that make a programming language topic hot, including new architectures, trends in processors, new applications and requirements, and new programming models and features. It also explores the challenges and opportunities in exploiting architectural features and discusses the importance of performance tuning and application mapping and optimization. The article concludes with the key themes in programming language research and the constant evolution of architectures, applications, and languages.

Télécharger la présentation

Hot Topics and Future Directions in Programming Languages

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hot Topics and Future Directions in Programming Languages Mary Hall May 9, 2007

  2. My Background • PhD 1991, Rice University • Ken Kennedy and Keith Cooper student • Kathryn McKinley’s office mate • Career • 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!

  3. What makes for a hot topic in programming languages? Four forces create hot PL topics • New architectures or architectural features • Trends in general-purpose processors: multithreading, many-core, heterogeneous • Special-purpose processors: graphics and games processors, network processors, FPGAs • New applications and application requirements • Intel’s “Recognition, Mining and Synthesis” applications for many-core • New programming models and new features of programming languages • 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

  4. Data Sharing Communication/ Computation Overlap Synchronization DataPartitioning/ Locality Ease of Use! VS Exploit the computation power! Parallelism: What’s the big deal? Correctness Performance

  5. Managing data movement and synchronization Heterogeneity: Additional Complexity Other: • Utilizing highly tuned libraries • Differences in programming models (GPP +FPGA is extreme example) Staging Data to/from global memory Memory Device Type 1 Device Type 2 Device Type 3 Device Type 4 Partitioning: Where to execute?

  6. 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

  7. Exploiting Architectural Features • Consider something as standard as Matrix Multiply • There are myriad different ways to implement it • The choice depends on the architecture • Issues • 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

  8. Compiler Support: Architecture-Specific 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

  9. Search in Application Mapping and Optimization • Conclusion from previous slides: • Application mapping and optimization is becoming increasingly complex • Can we use systematic search techniques from AI or OR or domain knowledge? • Promising strategies • 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

  10. Key Themes in our Research • Performance tuning tools • Use vast resources of today’s systems • Enumerate options, try, measure, record • Optimizing compilers built from modular, understandable chunks • Easier to bring up on new platforms • Facilitates collaboration • Signal processing optimization • 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!

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

More Related