Computational simulations of physical phenomena have become an important pillar of scientific research. Large and detailed simulations require high performance computing, which means managing computation on supercomputers that contain multiple levels of parallelism and memory hierarchies. Programming for effective parallelism is fraught with difficulties: the obfuscation of algorithms due to implementation details such as communication and synchronization, the need for transparency between language constructs and performance, the difficulty of performing program analysis to enable automatic parallelization techniques, and the existence of important “dusty deck” codes. The U.S. Department of Energy Office of Science (SC) Early Career Award enabled my research group to develop abstractions that enable the orthogonal specification of algorithms and implementation details within the context of existing SC applications. The main idea is to enable the injection of small programming models such as expressions involving transcendental functions, polyhedral iteration spaces with sparse constraints, and task graphs into full programs through the use of pragmas.

These smaller, more restricted programming models enable orthogonal specification of many implementation details such as how to map the computation on to parallel processors, how to schedule the computation, and how to allocate storage for the computation. At the same time, these small programming models enable the expression of the most computationally intense and communication heavy portions in many scientific simulations. The ability to orthogonally manipulate the implementation for such computations can significantly ease performance programming efforts and expose transformation possibilities and parameter to automated approaches such as autotuning.


Michelle Mills Strout is a professor and the acting department head in the Department of Computer Science at the University of Arizona, formerly an assistant professor in the Computer Science Department of Colorado State University.


The Early Career Award program provides financial support that is foundational to young scientists, freeing them to focus on executing their research goals. The development of outstanding scientists early in their careers is of paramount importance to the Department of Energy Office of Science. By investing in the next generation of researchers, the Office of Science champions lifelong careers in discovery science. 

For more information, see the Early Career Research Program page.


Separating Algorithm and Implementation via Programming Model Injection (SAIMI)

The goal of this effort is to improve the programmability of extreme‐scale computing systems, resulting in increased portability and transparency. The research will address the challenges of developing portable, high‐performance scientific software for next‐generation computing systems. These goals will be accomplished by developing a programming model that enables scientists to focus on algorithm development rather than the implementation details. This project will develop high‐level scheduling abstractions, including the mapping of computation to processors; storage mapping abstractions; abstractions for scheduling how computation accesses data; and similar abstractions for programming models such as sparse computations, task graph computations, and look‐up tables.


C. Wilcox, M.M. Strout, and J. Bieman, “An optimization-based approach to lookup table program transformations.” Journal of Software: Evolution and Process, 26, 6 (2013). [DOI: 10.1002/smr.1620]

A. Stone and M.M. Strout, “Programming Abstractions to Separate Concerns in Semi-Regular Grids.”  In Proceedings of the 27th International Conference on Supercomputing (ICS13), (June 2013). [DOI: 10.1145/2464996.2467267]

I.J. Bertolacci, C. Olschanowsky, B. Harshbarger, B. L. Chamberlain, D. G. Wonnacott, and M.M. Strout, “Parameterized Diamond Tiling for Stencil Computations with Chapel parallel iterators.”  In the Proceedings of the 29th International Conference on Supercomputing (ICS15), (Summer 2015). [DOI: 10.1145/2751205.2751226]