Parallelization and the Application Programmer: Random Self-Oscillation or Old Faithful?
Celina Gibbs, Yvonne Coady · 2010
The typical application programmer is about to be swamped with a deluge of options for programming languages, libraries, frameworks and abstractions all designed to assist the inevitable need to parallelize new and existing codebases. Regardless of approach or level of abstraction provided, these programmers currently lack structured workflows to assist the development of parallel code. Workflows within Software Development Life Cycle (SDLC) models, such as the Unified Process Model, have arguably structured modern practice. Though parallelism manifests itself as a seemingly innocuous non-functional requirement associated with performance, the ramifications of evolving an existing codebase often requires changes to mutiple workflows, spanning design, implementation, testing and maintenance. In this paper we identify the need for an extension to traditional SDLC models to include systematic workflows structured around key causal relationships associated with parallelization. This feedback model, we call Geyser, is designed to link changes in design, platform, source, configuration, profiling and workload to corresponding impact on dynamic characteristics of the system. A rudimentary prototype tool demonstrates the possibility of leveraging this approach to infer the impact of change sets on performance. parallel, workflow, software development life-