Stefan Muller

Post-Doctoral Fellow

9004 Gates-Hillman Center
Computer Science Department
Carnegie Mellon University
5000 Forbes Avenue
Pittsburgh, PA 15232

Stefan Muller

About     Research     Publications     Teaching     CV


I'm a postdoc working with Jan Hoffmann in the Computer Science Department at Carnegie Mellon. My research broadly aims to use programming language techniques to make it easier to write correct and efficient software in many application domains, especially parallel computing. While the techniques I use to solve these problems are primarily drawn from PL, my interests have touched on algorithm design and computer systems as well. My interest in application domains spans from AI to computer science education.

In September 2018, I completed my PhD (also at Carnegie Mellon), supervised by Umut Acar. My thesis focused on language design for parallel programs, including type systems, cost semantics and scheduling algorithms.

Research

Responsive Parallel Computation

Elegant theoretical models and efficient schedulers exist for cooperatively parallel languages, in which threads share a single computational goal and do not compete for different resources. In this project, we extend these models to account for important features of interactive programs such as responsiveness and priority. We developed PriML, an extension of Standard ML, which can express and efficiently run parallel interactive programs.

Cost Analysis of CUDA Kernels

We are developing an automated static analysis to predict the resource usage of CUDA code. So far, we have developed an analysis that predicts the impact of three important classes of CUDA performance bugs (divergent warps, uncoalesced memory accesses, and shared bank conflicts).

Combining High- and Low-level Resource Bounds

Static resource analyses that operate on source code can leverage type information to precisely bound the number of loop iterations and function invocations, while low-level Worst Case Execution Time analysis tools can derive cycle-accurate bounds for simple programs. By combining the two, we can leverage the best of both worlds.

Publications

Fairness in Responsive Parallelism
ACM International Conference on Functional Programming (ICFP 2019)
Stefan K. Muller, Sam Westrick and Umut A. Acar

Responsive Parallel Computation
PhD Thesis, Carnegie Mellon University
Also available as Technical Report CMU-CS-18-120

Competitive Parallelism: Getting Your Priorities Right
ACM International Conference on Functional Programming (ICFP 2018)
Stefan K. Muller, Umut A. Acar and Robert Harper
Full version on ArXiv

Responsive Parallel Computation: Bridging Competitive and Cooperative Threading
ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2017)
Stefan K. Muller, Umut A. Acar, Robert Harper

Hierarchical Memory Management for Parallel Programs
ACM International Conference on Functional Programming (ICFP 2016)
Ram Raghunathan, Stefan K. Muller, Umut A. Acar and Guy Blelloch

Latency-Hiding Work Stealing
ACM Symposium on Parallelism in Algorithms and Architectures (SPAA 2016)
Also available as Technical Report CMU-CS-16-112
Stefan K. Muller and Umut A. Acar

Practical and Safe Abstractions for Interactive Computation via Linearity
Technical Report CMU-CS-15-130
Stefan K. Muller, William A. Duff, Umut A. Acar

Practical Abstractions for Concurrent Interactive Programs
Technical Report CMU-CS-15-131
Stefan K. Muller, William A. Duff, Umut A. Acar

Bridging Theory and Practice in Interaction
Summit on Advances in Programming Languages (SNAPL 2015)
Stefan K. Muller and Umut A. Acar

Coupling Memory and Computation for Locality Management
Summit on Advances in Programming Languages (SNAPL 2015)
Umut A. Acar, Guy Blelloch, Matthew Fluet, Stefan K. Muller, Ram Raghunathan

Atomic Read-Modify-Write Operations are Unnecessary for Shared-Memory Work Stealing
Inria Technical Report hal-00910130
Umut Acar, Arthur Charguéraud, Stefan Muller, Mike Rainey

Towards a Practical Secure Concurrent Language.
Conference on Object-Oriented Programming Languages, Systems, Languages, and Applications (OOPSLA 2012)
Stefan Muller and Stephen Chong

Teaching

At Carnegie Mellon

  • Fall 2013: 15-210. Parallel and Sequential Algorithms and Data Structures
  • Fall 2014: 15-814. Types and Programming Languages
  • Spring 2016: 15-897. Parallel Computing: Theory and Practice
  • Summer 2018: 15-150. Principles of Functional Programming. Lead Instructor

At Harvard

  • Spring 2012: CS51. Introduction to Computer Science II
  • Fall 2011: CS61. Systems Programming and Machine Organization
  • Spring 2011: CS51. Introduction to Computer Science II
  • Fall 2010: CS61. Systems Programming and Machine Organization
  • Spring 2010: CS51. Introduction to Computer Science II