An optimizing compiler for parallel chemistry simulations
Well designed domain specific languages have three important benefits: (1) the easy expression of problems, (2) the application of domain specific optimizations, and (3) dramatic improvements in productivity for their users. In this thesis we describe a compiler and parallel runtime system for modeling the complex kinetics of rubber vulcanization and olefin polymerization that achieves all of these goals. The compiler allows the development of a system of ordinary differential equations describing a complex vulcanization reaction or single-site olefin polymerization reaction - a task that used to require months - to be done in hours. A specialized common subexpression elimination and other algebraic optimizations simplifies the complex machine generated code sufficiently to allow it to be compiled - eliminating all but 8.0% of the operations in our largest program and providing 62 times faster performance on our largest benchmark codes. The parallel runtime and dynamic load balancing scheme enables fast simulations of the model.^
Samuel Midkiff, Purdue University, James Caruthers, Purdue University.
Engineering, Computer|Chemistry, Polymer