Font Size: a A A

Synthetic programming: User-directed run-time code synthesis for high performance computing

Posted on:2008-10-08Degree:Ph.DType:Thesis
University:Indiana UniversityCandidate:Mueller, Christopher EFull Text:PDF
GTID:2448390005952963Subject:Computer Science
Abstract/Summary:
Scripting and interpreted languages are important tools for software engineering and are often used in place of compiled languages for application development. While they enable a high level of developer productivity, their run-time environments limit the overall performance attainable with any given application. To develop performance-critical applications, developers continue to rely on compiled languages. However, tuning applications in compiled languages is a time consuming process that affects the overall productivity of development teams. Additionally, recent changes in microprocessor design have begun to push the limits of compiled languages, making it difficult for developers to fully utilize the available hardware resources.;This thesis presents Synthetic Programming, a new approach to generating high-performance code and developing parallel applications from scripting languages. Synthetic programming is based on the synthetic programming environment, a collection of libraries that provide direct access to low-level processing resources from the Python programming language. Using the synthetic programming environment, developer's can create applications using machine-level instructions directly from Python, enabling a number of optimization strategies not readily available when using compiled languages.;In this thesis, synthetic programming is evaluated for feasibility and applicability. To demonstrate the feasibility of synthetic programming, the synthetic programming environment was developed for three complete instruction sets (PowerPC, AltiVec/VMX, Cell BE SPU) and two operating systems (OS X and Linux). Using the synthetic programming environment on G5 and Cell Broadband Engine-based systems, synthetic programming is demonstrated to be applicable for a broad range of common high-performance problems from SIMD programming to automated loop optimization and multi-core application development.
Keywords/Search Tags:Programming, Compiled languages
Related items