My goal is to aid developers in understanding the complex behavior of their software. To that end, I build analyses that mine software for interesting behavior and I create tools/optimizations that take advantage of that interesting behavior. My old webpage at CU is here and lists my prior publications.
[May '25] Giving a talk at SIAM DS11 on computer systems as dynamical systems.
[Feb '01] Giving a talk at Bytecode on RiSE tools for bytecode manipulation.
[Jan '11] On the PC for MSPC 2011.
[Oct '10] Moved to Ballard, WA and started at MSR.
Dynamic instrumentation tools such as valgrind allow programmers to gather interesting and useful information about the behavior of their software. Gillopy is a C# framework akin to valgrid but allows for both instrumentation and optimization of MSIL. Gillopy is based on CCI and will investigate the efficacy of novel compiler optimizations that employ aggressive restructuring of object oriented code.
- Optimizing tree computations:
Computations over trees are ubiquitous in many areas of computer science (e.g. minimax search in AI, abstract syntax trees in PL, Cascading Style Sheets for the web, etc.). Writing those computations to take advantage of modern hardware features, like SIMD units, is difficult. This project will develop a map/reduce like computational model for tree based structures that gives programmers tree like semantics but at the same time allows a runtime system to take advantage of features found in modern hardware.
- James Bornolt, Todd Mytkowicz, and Kathryn S. McKinley, Uncertain<T>: A First-Order Type for Uncertain Data, Architectural Support for Programming Languages and Operating Systems (ASPLOS), March 2014
- Todd Mytkowicz, Madanlal Musuvathi, and Wolfram Schulte, Data-Parallel Finite-State Machines, Architectural Support for Programming Languages and Operating Systems (ASPLOS), March 2014
- James Bornholt, Todd Mytkowicz, and Kathryn S. McKinley, Uncertain⟨T⟩: A First-Order Type for Uncertain Data , Architectural Support for Programming Languages and Operating Systems (ASPLOS), March 2014
- Saeed Maleki, Madanlal Musuvathi, and Todd Mytkowicz, Parallelizing Dynamic Programming Through Rank Convergence, ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), February 2014
- Benjamin Livshits and Todd Mytkowicz, InterPoll: Crowd-Sourced Internet Polls (Done Right), no. MSR-TR-2014-3, 7 January 2014
- Aman Kansal, Scott Saponas, AJ Brush, Kathryn McKinley, Todd Mytkowicz, and Ryder Ziola, The Latency, Accuracy, and Battery (LAB) Abstraction: Programmer Productivity and Energy Efficiency for Continuous Mobile Context Sensing, in OOPSLA, ACM, 31 October 2013
- Bin Ren, Gagan Agrawal, James R. Larus, Todd Mytkowicz, Tomi Poutanen, and Wolfram Schulte, SIMD parallelization of applications that traverse irregular data structures, in Proceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), vol. 0, pp. 1-10, IEEE Computer Society, Los Alamitos, CA, USA, 2013
- James Bornholt, Todd Mytkowicz, and Kathryn S. McKinley, The Model is Not Enough-Understanding Energy Consumption in Mobile Devices, Hot Chips, August 2012
- Margus Veanes, David Molnar, Todd Mytkowicz, and Benjamin Livshits, Data-Parallel String-Manipulating Programs, no. MSR-TR-2012-72, July 2012
- Todd Mytkowicz and Wolfram Schulte, Waiting for Godot: The Right Language Abstractions for Parallel Programming Should be Here Soon, no. MSR-TR-2012-63, July 2012
- Todd Mytkowicz and Wolfram Schulte, Maine: A Library for Data Parallel Finite Automata, no. MSR-TR-2012-62, July 2012
- Todd Mytkowicz and Mark Marron, Single-Core Performance is Still Relevant in the Multi-Core Era, in PLDI FIT, ACM, June 2011
- Leo A. Meyerovich, Todd Mytkowicz, and Wolfram Schulte, Data Parallel Programming for Irregular Tree Computations, in HotPAR, USENIX, May 2011