BEGIN:VCALENDAR PRODID:-//Microsoft Corporation//Outlook MIMEDIR//EN VERSION:1.0 BEGIN:VEVENT DTSTART:20151116T143000Z DTEND:20151116T180000Z LOCATION:17A DESCRIPTION;ENCODING=QUOTED-PRINTABLE:ABSTRACT: High-performance software is stretched between three ‘tent poles’: high-performance, parallel implementation, asymptotically optimal algorithms, and often highly technical application domains. This tension contributes considerably to making HPC software difficult to write and hard to maintain.=0A=0ABuilding abstractions and tools to help maintain separation of concerns through domain-specific mini-languages (‘DSLs’), code generators, and tools is a proven, though difficult, way to help manage the complexity. This tutorial presents a set of tools rooted in the Python language that help with all parts of this process: First, with the design and implementation of DSLs, second, with transformation and rewriting of DSLs into various intermediate representations, third, with the transformation of DSL code into high-performance parallel code on GPUs and heterogeneous architectures, and fourth, with the creation and management of a runtime system for such code. The tutorial includes a brief introduction to Python for those unfamiliar, and it is centered around frequent, short, and interactive practice problems. SUMMARY:From Description to Code Generation: Building High-Performance Tools in Python PRIORITY:3 END:VEVENT END:VCALENDAR