Education

2010 Ph.D. Computer Science University of Chicago, USA
2007 M.S. Computer Science University of Chicago, USA
2004 B.S. Computer Science Indiana University, USA
2004 B.S. Cognitive Science Indiana University, USA

Employment

2014 Researcher at INRIA Rocquencourt in Gallium / DeepSea (to present)
2010 Postdoctoral researcher at Max Planck Institute for Software
Systems
2007 Summer internship with Anwar Gluloum at Intel Corp.
2006 Programming project. Extended the MLRISC code generator to
support the AMD64. Supported by NSF Grant CRI: Standard ML
Software Infrastructure. Principle investigators: David
MacQueen and John H. Reppy.
2003 Research assistant at Indiana University with David S. Wise.
Designed and evaluated performance of cache-aware and
multiprocessor matrix-factoring algorithms.Supported by
NSF Grant CRI: A Paradigm of Parallel Programming for Morton
Ordered Matrices.

Publications

Conferences, Journals & Workshops

Books

Not reviewed, arXiv

Software artifacts

Professional service

Program committee member

2016 FHCP
ACM SIGPLAN Workshop on Functional High-Performance
Computing
2015 ICFP
ACM SIGPLAN International Conference on Functional
Programming
2014 ECOOP
European Conference on Object-Oriented Programming Artifact
Evaluation Committee
2013 FHCP
ACM SIGPLAN Workshop on Functional High-Performance
Computing

Reviewer for

Teaching

Course materials

In 2014, Umut Acar and I authored course materials on multicore computing. We were motivated by a gap between the teaching of theory and practice of parallel computing that we believe existed in the undergraduate algorithms course at Carnegie Mellon University, where Acar teaches. We were also movitivated by the desire to hone an automatic granularity-control technique that we developed as part of our research collaboration (Acar, Charguéraud, and Rainey 2016a, Acar, Charguéraud, and Rainey (2011)).

In 2014, we used the course materials to teach a two-week, NSF-funded, undergraduate course at the University of Puerto Rico PASL Workshop. Later, in 2014, we introduced updated materials into the undergraduate algorithms course at Carnegie Mellon University. I served as guest lecturer in 2014 and 2015, and since then, this material has become a permanent component of the course. The course materials are available on the course website.

Teaching assistantships

2009 Teaching Assistant, Implementation of Computer
Languages - II, University of Chicago, Spring
2007 Teaching Assistant, CSPP Networks, University
of Chicago, Winter
2006 Teaching Assistant, Introduction to Computer
Systems, University of Chicago, Spring
Teaching Assistant, CSPP Unix Systems
Programming, University of Chicago, Fall

Selected talks

All publications with links

Acar, U. A., A. Charguéraud, and M. Rainey. 2017. “Parallel Work Inflation, Memory Effects, and their Empirical Analysis.” ArXiv E-Prints, September. http://arxiv.org/abs/1709.03767.

Acar, Umut A, Naama Ben-David, and Mike Rainey. 2017. “Contention in Structured Concurrency: Provably Efficient Dynamic Nonzero Indicators for Nested Parallel Computation.” ACM. http://gallium.inria.fr/~rainey/dynsnzi.pdf.

Acar, Umut A, Arthur Charguéraud, and Mike Rainey. 2011. “Oracle Scheduling: Controlling Granularity in Implicitly Parallel Languages.” In Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, 46:499–518. 10. ACM. http://gallium.inria.fr/~rainey/oracle_scheduling.pdf.

———. 2012. “Efficient Primitives for Creating and Scheduling Parallel Computations.” In Declarative Aspects of Multicore Programming. http://gallium.inria.fr/~rainey/damp2012_primitives.pdf.

———. 2013. “Scheduling Parallel Programs by Work Stealing with Private Deques.” In 18th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 48:219–28. 8. ACM. http://gallium.inria.fr/~rainey/full.pdf.

———. 2014. “Theory and Practice of Chunked Sequences.” In The 22nd Annual European Symposium on Algorithms, 25–36. Springer. http://gallium.inria.fr/~rainey/chunked_seq.pdf.

———. 2015. “A Work-Efficient Algorithm for Parallel Unordered Depth-First Search.” In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, 67:1–67:12. ACM. pdfs_sc15.pdf.

———. 2016a. “Oracle-Guided Scheduling for Controlling Granularity in Implicitly Parallel Languages.” Journal of Functional Programming. Cambridge University Press. http://gallium.inria.fr/~rainey/jfp-oracle-guided.pdf.

———. 2016b. An Introduction to Parallel Computing in C++. http://www.cs.cmu.edu/~15210/pasl.html.

Acar, Umut A, Arthur Charguéraud, Mike Rainey, and Filip Sieczkowski. 2016. “Dag-Calculus: A Calculus for Parallel Computation.” In The 26th ACM SIGPLAN International Conference on Functional Programming. ACM. http://gallium.inria.fr/~rainey/dag-calculus.pdf.

Bergstrom, Lars, Matthew Fluet, Mike Rainey, John Reppy, and Adam Shaw. 2012. “Lazy Tree Splitting.” Journal of Functional Programming 22 (4-5). Cambridge University Press: 382–438. http://gallium.inria.fr/~rainey/jfp-lts-submitted.pdf.

Bergstrom, Lars, Matthew Fluet, Mike Rainey, John Reppy, Stephen Rosen, and Adam Shaw. 2013. “Data-Only Flattening for Nested Data Parallelism.” In 18th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 48:81–92. 8. ACM. http://gallium.inria.fr/~rainey/ppopp13-flat.pdf.

Bergstrom, Lars, Mike Rainey, John Reppy, Adam Shaw, and Matthew Fluet. 2010. “Lazy Tree Splitting.” In The 20th ACM SIGPLAN International Conference on Functional Programming, 45:93–104. 9. ACM. http://gallium.inria.fr/~rainey/icfp10-lts.pdf.

Blume, Matthias, Michael Rainey, and John Reppy. 2008. “Calling Variadic Functions from a Strongly-Typed Language.” In Proceedings of the 2008 ACM SIGPLAN Workshop on Ml, 47–58. ACM. http://gallium.inria.fr/~rainey/ml-varargs.pdf.

Felleisen, Matthias, Robert Bruce Findler, and Matthew Flatt. 2009. Semantics Engineering with Plt Redex. The MIT Press.

Fluet, Matthew, Mike Rainey, and John Reppy. 2008. “A Scheduling Framework for General-Purpose Parallel Languages.” In The 13th ACM SIGPLAN International Conference on Functional Programming, 43:241–52. 9. ACM. http://gallium.inria.fr/~rainey/icfp08-sched.pdf.

Fluet, Matthew, Mike Rainey, John Reppy, and Adam Shaw. 2008. “Implicitly-Threaded Parallelism in Manticore.” In The 13th ACM SIGPLAN International Conference on Functional Programming, 43:119–30. 9. ACM. http://gallium.inria.fr/~rainey/icfp08-implicit.pdf.

———. 2010. “Implicitly Threaded Parallelism in Manticore.” Journal of Functional Programming 20 (5-6). Cambridge University Press: 537–76.

Fluet, Matthew, Mike Rainey, John Reppy, Adam Shaw, and Yingqi Xiao. 2007. “Manticore: A Heterogeneous Parallel Language.” In Proceedings of the 2007 Workshop on Declarative Aspects of Multicore Programming, 37–44. ACM.

Rainey, Mike. 2010. “Effective Scheduling Techniques for High-Level Parallel Programming Languages.” PhD thesis, University of Chicago. http://gallium.inria.fr/~rainey/rainey-phd.pdf.

Wise, David S., Craig Citro, Joshua Hursey, Fang Liu, and Michael Rainey. 2005. “A Paradigm for Parallel Matrix Algorithms: Scalable Cholesky.” In In Euro-Par 2005 – Parallel Processing. http://dx.doi.org/10.1007/11549468_76.