Mike Rainey

me@mike-rainey.site

http://mike-rainey.site

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

2019 Research Scientist at Carnegie Mellon University SCS (to present)
2018 Research Associate at Indiana University SICE
2014 Researcher at INRIA Rocquencourt in Gallium / DeepSea
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

Journals

2016 Oracle-Guided Scheduling for Controlling Granularity in
Implicitly Parallel Languages
JFP (Umut A Acar, Charguéraud, and Rainey 2016a).
2011 Lazy Tree Splitting
JFP (Bergstrom et al. 2012)
2010 Implicitly threaded parallelism in Manticore
JFP (Fluet et al. 2010)

Conferences

2019 LoCal: A Language for Programs Operating on Serialized Data
(Vollmer et al. 2019)
Provably and Practically Efficient Granularity Control
(Acar et al. 2019)
2018 Heartbeat Scheduling: Provable Efficiency for Nested
Parallelism (Acar et al. 2018)
2017 Contention in Structured Concurrency: Provably Efficient
Dynamic NonZero Indicators for Nested Parallel Computation
PPoPP (Umut A Acar, Ben-David, and Rainey 2017)
2016 Dag-Calculus: A Calculus for Parallel Computation
ICFP (Umut A Acar et al. 2016)
2015 A Work-efficient Algorithm for Parallel Unordered Depth-first
Search
Supercomputing (Acar, Charguéraud, and Rainey 2015)
2014 Theory and Practice of Chunked Sequences
ESA (Acar, Charguéraud, and Rainey 2014)
2013 Scheduling Parallel Programs by Work Stealing with Private
Deques
PPoPP (Acar, Charguéraud, and Rainey 2013)
Data-only Flattening for Nested Data Parallelism
PPoPP (Bergstrom et al. 2013)
2011 Oracle Scheduling: Controlling Granularity in Implicitly
Parallel Languages
OOPSLA (Acar, Charguéraud, and Rainey 2011)
2010 Lazy Tree Splitting
ICFP (Bergstrom et al. 2010)
2008 A Scheduling Framework for General-purpose Parallel Languages
ICFP (Fluet, Rainey, and Reppy 2008)
Implicitly-threaded Parallelism in Manticore
ICFP (Fluet et al. 2008)
2005 A Paradigm for Parallel Matrix Algorithms: Scalable Cholesky
EuroPar (Wise et al. 2005)

Workshops

2012 Efficient Primitives for Creating and Scheduling Parallel
Computations
DAMP (Acar, Charguéraud, and Rainey 2012)
2008 Calling Variadic Functions from a Strongly-typed Language
ML Workshop (Blume, Rainey, and Reppy 2008)
Scheduling_framework_08
2007 Manticore: A Heterogeneous Parallel Language
DAMP (Fluet et al. 2007)

Books

2016 An Introduction to Parallel Computing in C++
Online course materials (Umut A Acar, Charguéraud, and Rainey 2016b)
2010 Effective Scheduling Techniques for High-Level Parallel
Programming Languages
PhD Disertation (Rainey 2010)
2009 Semantics Engineering with PLT Redex
Contributed chapter (Felleisen, Findler, and Flatt 2009, chap. 25)

Not published

2017 Parallel Work Inflation, Memory Effects, and their Empirical Analysis
arXiv (Umut A. Acar, Charguéraud, and Rainey 2017)

Software artifacts

Professional service

Program committee member

2019 ICFP
ACM SIGPLAN International Conference on Functional
Programming
2018 FHCP (co-chair)
ACM SIGPLAN Workshop on Functional High-Performance
Computing
2018 IPDPS International Parallel and Distributed Processing
Symposium
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 (Umut A 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.1 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.2

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, Umut A., Vitaly Aksenov, Arthur Charguéraud, and Mike Rainey. 2019. “Provably and Practically Efficient Granularity Control.” In Proceedings of the 24th Symposium on Principles and Practice of Parallel Programming, 214–28. PPoPP ’19. New York, NY, USA: ACM. http://mike-rainey.site/papers/oracle-ppop19-long.pdf.

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://mike-rainey.site/papers/dynsnzi.pdf.

Acar, Umut A, Arthur Charguéraud, Adrien and Guatto, Mike Rainey, and Filip Sieczkowski. 2018. “Heartbeat Scheduling: Provable Efficiency for Nested Parallelism.” ACM. http://mike-rainey.site/papers/heartbeat.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://mike-rainey.site/papers/oracle_scheduling.pdf.

———. 2012. “Efficient Primitives for Creating and Scheduling Parallel Computations.” In Declarative Aspects of Multicore Programming. http://mike-rainey.site/papers/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://mike-rainey.site/papers/full.pdf.

———. 2014. “Theory and Practice of Chunked Sequences.” In The 22nd Annual European Symposium on Algorithms, 25–36. Springer. http://mike-rainey.site/papers/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. http://mike-rainey.site/papers/pdfs_sc15.pdf.

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

———. 2016b. An Introduction to Parallel Computing in C++.

Acar, Umut A., Arthur Charguéraud, and Mike Rainey. 2017. “Parallel Work Inflation, Memory Effects, and Their Empirical Analysis.” CoRR abs/1709.03767. http://arxiv.org/abs/1709.03767.

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://mike-rainey.site/papers/dag-calculus.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://mike-rainey.site/papers/ppopp13-flat.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://mike-rainey.site/papers/jfp-lts-submitted.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://mike-rainey.site/papers/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://mike-rainey.site/papers/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://mike-rainey.site/papers/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://mike-rainey.site/papers/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://mike-rainey.site/papers/rainey-phd.pdf.

Vollmer, Michael, Chaitanya Koparkar, Mike Rainey, Laith Sakka, Milind Kulkarni, and Ryan R. Newton. 2019. “LoCal: A Language for Programs Operating on Serialized Data.” ACM. http://mike-rainey.site/papers/lo-cal19.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.


  1. https://sites.google.com/site/paslpr14/home↩︎

  2. http://www.cs.cmu.edu/~15210/pasl.html↩︎