|
Michelle Mills
Strout, Ph.D.
|
I am an Associate Professor in the
Parallel
Computing and Distributed Systems research area
at the
Computer Science Department
at Colorado State University.
I am currently recruiting Ph.D. students to start research or
teaching assistantships in Fall of 2015 (August). If you are
interested please fully read a message for prospective students before sending me email.
I earned my Ph.D. in
Computer Science
and Engineering at UCSD in 2003.
My Ph.D. thesis advisors at UCSD were
Larry Carter
and
Jeanne Ferrante. For
more information, see my bio.
Argonne National
Laboratory and as a Research Associate
in the Department of Computer Science at
the University of
Chicago. I joined the faculty at Colorado State University
in Fort Collins in August of 2005, and I am having a blast!
From July 2013 through part of June 2014, I am on sabbatical at
Australia National University.
-->
|
|
|
[Prospective Students]
[CV]
[Calendar]
[Publications]
[Students]
[Research]
[Teaching]
[Software]
[Recent Program Committees]
[Miscellaneous]
[Bio]
|
Students
|
Current Students
Looking to hire students excited about scientific computing,
parallel computation, and compiler's research.
Previous Students
Chris Krieger
(Ph.D. in 2013. Employed somewhere that requires a security
clearance and does not like to be listed on websites.)
Andrew Stone
(Ph.D. in 2013. Working at Mathworks.)
Chris Wilcox,
co-advised with Jim Bieman
(Ph.D. in 2012. Currently a lecturer in our department
who is revitalizing our CS1 course.)
Brendan Sheridan (2011 undergraduate research assistant, became a graduate
student at Georgetown)
Stephanie Dinkins (Masters Spring 2012, now works with Northrop Grumman)
Amanreet Bajwa (Summer DREU student 2011, currently at Colorado School of Mines)
Shinjini Kar (Summer DREU student 2010, currently at College of Saint Scholastica in Duluth, Minnesota)
Samantha Wood (Summer DREU student 2010 and summer research student 2011, currently a Ph.D. student at the University of
California, San Diego
Ryan Moore (undergraduate honors thesis, graduated in Fall 2010, currently at
HP in Fort Collins)
Jonathon Roelofs (Undergraduate
research assistant, tiling visualizer, graduated with BS in Spring 2011,
now at Apolent)
Christie Williams (Undergraduate honors thesis student and summer research student, graduated with MCS in Spring 2011)
Alan LaMielle (Graduated with a
Masters in Spring 2010, currently at VMWare)
Ryan Vail (Undergraduate research assistant, graduated Spring 2010)
Kate Ericson
(Undergraduate summer research student 2008, currently a graduate student at
CSU working with Shrideep Pallickara)
Jeshua Bratman (Undergraduate research assistant at CSU, graduated May 2009 with BS, currently a graduate student at University of Michigan)
Nissa Osheim and Dave Rostron, developed the idea of smashing
semi-regular grids to create uniform data dependencies (see
"smashing" paper at www.cs.colostate.edu/~mstrout/Papers/pubs-main.php).
Kiley Graim (Undergraduate Research Assistant, graduated May 2008 with BS, currently a graduate student at CSU)
Jessa Rothenberg, CRAW DMP student Summer 2007
|
|
Research
|
Any students interested in participating in our research group should visit the Prospective Graduate
Student website for my group and then send me email at mstrout@cs.colostate.edu.
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.
I have a number of active projects attacking the problem of how
to make high performance computing more accessible for scientists
doing computational modeling.
The SAIMI project
(Separating Algorithm and Implementation
via programming Model Injection, funded through a DOE Early Career award)
will attack 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. We propose to inject programming
models into existing host languages and provide high-level implementation abstractions to prevent algorithm
obfuscation due to performance tuning. The definition of an injectable programming model is still evolving, but an initial definition is
a programming abstraction like the polyhedral model
or task graphs. These programming abstractions can be injected using pragmas
and are constrained enough to enable the orthogonal specification of implementation details.
The main goal of the PIES project (Parallelization using Inspector/Executor Strategies, funded
through an NSF CAREER grant) is 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. We plan to incorporate the
SPF as an injectable programming model.
We are also applying the SPF to communication avoiding algorithms that are the focus of
the Algorithms and Software for Communication Avoidance and
Communication Hiding at the Extreme Scale
(CACHE Institute), an interdisciplinary project funded by the DOE from Spring 2010 through
Spring 2013.
Our research group is also involved in a multi-disciplinary effort at Colorado State University to develop
data analysis software for Small Angle X-ray Scattering (SAXS). One goal is to develop software design
patterns and/or code generation techniques that enable iterative model development while maintaining computational
efficiency. We have already contributed LookUp Table (LUT) optimizations
for this effort that resulted in six fold serial speedup.
Previous projects include:
- OpenAnalysis
- Institute
for Combinatorial Scientific Computing and Petascale Simulations (CSCAPES)
OpenAnalysis project has resulted in alias analysis, control-flow analysis, and
data-flow analysis implementations that are intermediate representation independent. We created analysis
specific interfaces that are then implemented them the ROSE compiler, the Open64 compiler,
and one exists for various assembly languages and is used in the HPCtoolkit.
In addition to the DOE-funded OpenAnalysis project, we have a subcontract as part of the Institute
for Combinatorial Scientific Computing and Petascale Simulations (CSCAPES), which is funded through
SciDAC. Our responsibilities under this contract include researching run-time reordering transformations
for mesh computations using heuristics we have developed in concert with hypergraph partitioning
techniques developed by other researchers involved in the grant.
-->
I also collaborate on research involving the polyhedral model.
Here is a list of papers related to storage
mapping and parameterized code generation in the polyhedral model.
|
|
Teaching
|
CS/ECE 560: Foundations of Fine-Grained Parallelism
CS 453: Introduction to Compiler Construction
(Spring 2011),
(Spring 2010),
(Spring 2009),
(Spring 2008),
(Spring 2007)
CS 553: Compiler Construction (Fall 2014)
(Fall 2009),
(Fall 2007),
(Fall 2006),
(Fall 2005)
CS 270: Computer Organization (Fall 2012), (Fall 2008)
CS 653: Static and Dynamic Program Analysis
(Fall 2010),
(Spring 2008),
(Spring 2007),
(Spring 2006)
-->
CSE 30: Computer Organization and Systems Programming
(Summer 2001 at University of California, San Diego)
Rick Ord
who developed the course.
I created different second and third programming assignments (PA2 and PA3)
and the pre-programming assignments.
-->
Beginning Web Programming Course
(Spring 2000 at University High School in San Diego)
|
Software
|
IEGenLib
A library for manipulating sets and relations with uninterpreted constraints
as well as affine constraints.
mjsim
Simulator for AVR assembly code and emulator for the MeggyJr.
Tiling Visualizer
Command-line and GUI tool that enables visualization of 2D loop tilings.
OpenAnalysis
Representation-independent program analysis.
Data_N_Comp_Reorder
Package for reordering data and computation in sparse matrix
computations.
SPIM 7.2.1 with keepstats
Modified version of the SPIM simulator for counting
the number of dynamic instructions, reads, writes, and branches.
Convolve Demo
I used this little demo program at an Upward Bound
Saturday session to teach junior high and high school
students about convolution.
Graphite: Python graphing package
Joe Strout and I developed Graphite for a Software Engineering course.
I later made Graphite available on
SourceForge.
Handy Python Scripts
Some Python scripts I wrote for
running experiments, gathering data, and doing data analysis.
|
|
Recent Program Committees
|
Program committee member for PLDI 2015
Program committee member for PPoPP 2015
Publicity co-chair for Rocky Mountain Celebration of Women in Computing (RMCWiC)
Program committee member for Supercomputing 2014, technical program and BOFs.
Program committee member for Supercomputing 2014.
Program co-chair for The 15th
IEEE International Workshop on Parallel and Distributed Scientific and
Engineering Computing (PDSCE 2014).
Program committee member for IMPACT 2013.
Program committee member for Supercomputing 2012.
Co-chair for Rocky Mountain Celebration of Women in Computing (RMCWIC), November 1-2 2012.
Program committee for PPOPP 2012, 17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming.
Co-organizer for AD 2012.
Program committee for PASTE 2011 10th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering.
Program committee for Memory Systems Performance and Correctness
ACM SIGPLAN Workshop 2011.
Programming Language Design and Implementation, PLDI 2011, Program Committee.
Co-organizer for Languages and Compilers for Parallel Computing (LCPC) 2011.
Scholarship Committee for Grace Hopper Celebration of Women in Computing, GHC 2008, 2009, 2010, 2011.
Organizing committee and program committee for The First Workshop on
Advances in Message Passing
( co-located with PLDI 2010 ).
Computing Frontiers 2010.
IPDPS, IEEE International Parallel and Distributed Processing Symposium 2010.
|
|
Miscellaneous
|
Some
CVS Notes I developed.
Outline for Numerical Analysis Course
I developed this course as a class project for the
University Teaching and Learning in Engineering course taught by
Noah Finkelstein at
UCSD.
The project writeup points to some useful resources for
Numerical Analysis instructors.
Disclaimer: I have not taught a Numerical Analysis course yet!
CSE Grad Enrichment
- Demo
and slides
for Grad Enrichment talk I did on CVS, autoconf, and doxygen
(2002)
-
Mathematica Talk I did for Graduate Enrichment Series (1999)
|
Bio
|
Michelle is an associate professor in the computer science
department at Colorado State University. Dr. Strout's main research
area is high performance computing and her research interests include
compilers and run-time systems, scientific computing, and software
engineering. She earned her Ph.D. at the University of California,
San Diego in 2003, was an Enrico Fermi Postdoctoral Scholar at
Argonne National Laboratory and a Research Associate at the
University of Chicago for two years, and started as an assistant
professor at CSU in 2005. In 2008, Michelle received a CAREER Award
from the National Science Foundation for her research in
parallelization techniques for irregular applications, such as
molecular dynamics simulations. In 2010, she received a DOE Early
Career award to fund her research in separating the specification of
scientific computing applications from the specification of
implementation details such as how to parallelize such computations.
Michelle lives with her partner and two boys ages 10 and 14 in
beautiful Fort Collins, Colorado.
|
|
|
|
|
|
Contact Information
mstrout@cs.colostate.edu
Mailing Address:
Computer Science Department
1873 Campus Delivery
Fort Collins, CO 80523-1873
Phone: (970) 491-4193
Fax: (970) 491-2466
Office: 244 Computer Science Building
Office hours for Spring 2015: Tuesday 9-10am and Friday 3-4pm.
|
|