70 likes | 90 Views
This presentation by Jennifer Grau focuses on customizing software libraries to improve performance portability using Broadway Compiler and dynamic feedback. The goal is to reduce performance penalties caused by generalized libraries, enhancing optimization capabilities. The use of dynamic feedback and specializations allows for better adaptation to different scenarios, optimizing performance. Through annotations and view objects, the Broadway Compiler enhances parallel computation and dynamic selection of optimizations for improved efficiency.
E N D
Customizing Software Libraries for Performance Portability Emergy Berger, Calvin Lin, Samuel Z. Guyer CSE 231 Presentation by Jennifer Grau
The Problem • Software libraries typically designed to be generalized for reuse in many situations • Why a problem? • This generality represents a performance penalty • Goal: to improve performance portability via specialization and dynamic feedback
The Broadway Compiler • Uses annotations to describe the library but not the application • Handles existing libraries by separating the library source from the annotations • Using PLAPACK parallel dense linear algebra library • 1st algorithm: 10% for large to 180% for small • 2nd algorithm: 36% for large to 662% for small
What’s Going On? • Annotations provide mechanism for describing library-specific analysis & abstractions • PLAPACK manipulates matrices via view objects • Annotations declare matrices to be general, local, or empty • Broadway performs dataflow analysis
Extending Broadway for Performance Portability • Broadway doesn’t support optimizations which depend on interactions between the application and target machine • May require run-time information • The tradeoff between sequential and parallel computation may change dynamically as the amount of work often varies as the algorithm progresses
Proposed Solution • Dynamic Feedback • Wish to use dynamic sampling to determine which optimization is the best • Modify annotation language to support keyword select to indicate there are multiple optimizations possible • Provides information to limit when select is run select every 20 { /* list of possible optimizations */ }
Discussion • How might the overhead of dynamic sampling affect the actual benefit of the optimization? • Will they need to limit how many possible optimizations that may be listed in a given select? • What might be some other disadvantages of dynamic sampling?