Michelle Mills Strout
Research
My research interests include the areas of compilers, scientific computing, computer architecture, and software engineering, with compilers being my main focus. In many application domains, issues such as performance and reliability co-mingle with algorithmic issues resulting in domain-specific libraries and applications that are difficult to understand, reuse, and maintain. In my research, I investigate and develop compiler technology in order to automate domain-specific analyses and transformations that are currently applied by hand or not at all.
My group has a number of active projects attacking the problem of how
to make high performance computing more accessible for scientists
doing computational modeling and data analysis.
Active Research Projects
The Science Up to Par project aims to develop technology that enables scientists to execute their source code (e.g. Python, Perl, Matlab), sample small input files, and then run a larger input file using a specialized and parallelized executable.
The CHiLL-I/E project will result in a comprehensive integration of inspector/executor transformations into the established CHiLL source-to-source compilation framework. See the IEGenLib repository for related software.
For the Loop Chain project, we are developing the loop chain abstraction for providing compilers with sufficient information to automate the parallelism versus data locality tradeoff. The programmer specifies data access patterns for the sequence of loops in the loop chain thus enabling the compiler to group iterations across loops as well as within individual loops to tune the tradeoff between parallelism and locality. See the LoopChainIR repository.
Previous projects
- SAIMI project
(Separating Algorithm and Implementation
via programming Model Injection, funded through a DOE Early Career award)
attacked the obfuscation problem by providing separate interfaces for
the specification of
algorithms and the implementation details such as how to schedule the algorithms
on parallel computer systems. Also resulted in the
MESA tool for look-up table determination in codes.
- PIES project (Parallelization using Inspector/Executor Strategies,
funded through an NSF CAREER grant) was the development of a Sparse Polyhedral
Framework (SPF) for specifying
irregular/sparse computations and enabling runtime reordering transformations
of those computations
through the automatic generation of the appropriate inspectors and executors.
Also resulted in the ParCubed shared-memory parallel graph partitioner.
- Small Angle X-ray Scattering (SAXS), where we contributed
LookUp Table (LUT) optimizations
that resulted in six-fold serial speedup.
- OpenAnalysis
- Institute for Combinatorial Scientific Computing and Petascale Simulations (CSCAPES)