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?