Mark Rogers Tuttle

Intel Corporation 8 Melanie Lane 77 Reed Road Arlington, MA 02474-2619 Hudson, MA 01749 (781) 648-1106 (978) 553-3305 [email protected] [email protected] www.markrtuttle.com

Research Interests Distributed computation (design, analysis, and verification of distributed algorithms; mod- els and semantics of distributed computation; formal methods for specification and verifi- cation of algorithms), sequential and parallel algorithms, general theory of computation.

Education MASSACHUSETTS INSTITUTEOF TECHNOLOGY Cambridge, MA Ph.D. in Computer Science, September 1989. Thesis Title: Knowledge and Distributed Computation. Thesis Advisor: Nancy A. Lynch. First place on computer algorithms Ph.D. qualifying exam; letter of commendation for exceptional performance in Computer System Architecture under Professor Arvind; IBM Graduate Fellowship; GTE Graduate Fellowship; Mortar Board National Foundation Fellowship; NSF Graduate Fellowship Competition, honorable mention; member, Sigma Xi.

MASSACHUSETTS INSTITUTEOF TECHNOLOGY Cambridge, MA M.S. in Computer Science, May 1987. Thesis Title: Hierarchical Correctness Proofs for Distributed Algorithms. Thesis Advisor: Nancy A. Lynch.

UNIVERSITYOF NEBRASKA–LINCOLN Lincoln, NE B.S. in Mathematics and Computer Science, June 1984. With highest distinction. Ranked first in graduating class; member Phi Beta Kappa and Mortar Board; designated “No- table Person of the University,” Chancellor’s Scholar, Regents’ Scholar, and Joel Stebbins Scholar.

Recognition Best paper award at Formal Methods in Computer-Aided Design (FMCAD), 2008.

Danny Dolev (Hebrew University) recognized two papers as among the most highly cited papers ever published in the ACM conference Principles of Distributed Computing in his keynote talk at PODC’s 25th Anniversary Celebration, 2006.

Young Alumni Achievement Award, University of Nebraska–Lincoln, May 1997

Certificate of Recognition, Digital Equipment Corporation, Wildfire Verification Project, April 1998

National champion, ACM National Scholastic Programming Competition, University of Nebraska-Lincoln team, 1983

Employment INTEL CORPORATION (2006–PRESENT) Hudson, MA Principal Engineer (2006–present)

Protocol verification focusing on tools and methodologies for modeling, specifying, and proving the correctness of concurrent protocols. Examples include a tool for extracting a formal model from informal protocol design documents, a method of extracting testing tools from formal architectural models, and verification of transactional memory imple- mentations, thread synchronization mechanisms, cache coherence protocols, and system- on-a-chip communication fabrics.

HEWLETT PACKARD COMPANY (2002–2005) Cambridge, MA COMPAQ COMPUTER CORPORATION (1998–2002) Cambridge, MA DIGITAL EQUIPMENT CORPORATION (1989–1998) Cambridge, MA Principal Member of Technical Staff/Master Technologist (1999–2005) Senior Member of Technical Staff/Consulting Engineer (1996–1999) Member of Technical Staff (1989–1996)

My research at the Cambridge Research Lab focused on fault-tolerant distributed and par- allel algorithms and their correctness. Work included formal methods for specification and verification of hardware and software, and promotion of these methods within the com- pany; electronic commerce and web search; database systems; concurrent data structures; processor synchronization; real-time systems; security; models of computation; program correctness; complexity of algorithms; and computational biology.

MASSACHUSETTS INSTITUTEOF TECHNOLOGY (1984–1989) Cambridge, MA Member of the Theory of Distributed Systems research group at the Laboratory for Com- puter Science under Professor Nancy A. Lynch. Ph.D. thesis research studied the role of reasoning about processors’ states of knowledge in the design and analysis of distributed algorithms. M.S. thesis research studied models of distributed computation and the design of hierarchical proof techniques for distributed algorithm verification.

IBMALMADEN RESEARCH CENTER (SUMMER, 1988) San Jose, CA Member of the Systems Fundamentals Department under Dr. Joseph Halpern. Worked with Joe Halpern on definitions of probabilistic knowledge, Danny Dolev on algorithms for processor renaming in asynchronous distributed systems, and Flaviu Cristian on the effects of network partitions on the consistency of replicated data.

IBMALMADEN RESEARCH CENTER (AUGUST, 1987) San Jose, CA Vistor in the theory group. Worked with Joe Halpern and on the analysis of interactive and zero-knowledge proof systems in terms of a formal notion of knowledge.

Teaching Experience MASSACHUSETTS INSTITUTEOF TECHNOLOGY (SPRING 1985, FALL 1987) Cambridge, MA Teaching assistant for an undergraduate course on computer architecture. Duties included tutoring and grading papers for a recitation of 25 students, and helping students in the lab construct a small computer. Supervisor: Professor Steve Ward.

UNIVERSITYOF NEBRASKA–LINCOLN (FALL 1982, SPRING 1983, SPRING 1984) Lincoln, NE Teaching assistant for a second semester calculus course. Duties included teaching two recitations of second semester calculus (about 30 students each); responsible for recitation lectures, homework, grading, and exams. Supervisors: Professors David Skoug and David Logan. UNIVERSITYOF NEBRASKA–LINCOLN (FALL 1983) Lincoln, NE Instructor for a precalculus course. Duties included teaching two sections of about 40 students each; responsible for lectures, homework, grading, and exams. Supervisor: Pro- fessor David Logan.

Publications

Conferences 1. , Yoram Moses, and Mark R. Tuttle. Transforming worst-case op- timal solutions for simultaneous tasks into all-case optimal solutions. In Proceed- ings of the 30th Annual ACM Symposium on Principles of Distributed Computing (PODC), pages 231–238, June 2011. 2. John O’Leary, Murali Talupur, and Mark R. Tuttle. Protocol verification using flows: An industrial experience. In Proceedings of the 9th International Conference on Formal Methods in Computer-Aided Design (FMCAD), pages 172–179, November 2009. 3. John O’Leary, Bratin Saha, and Mark R. Tuttle. Model checking transactional mem- ory with Spin. In Proceedings of the 29th International Conference on Distributed Computing Systems (ICDCS), pages 335–342, June 2009. 4. Murali Talupur and Mark Tuttle. Going with the flow: Parameterized verification using message flows. In Proceedings of the 8th International Conference on Formal Methods in Computer-Aided Design (FMCAD), pages 69–76, November 2008. 5. John O’Leary, Bratin Saha, and Mark R. Tuttle. Brief announcement: Model check- ing transactional memory with Spin. In Proceedings of the 27th Annual ACM Sym- posium on Principles of Distributed Computing (PODC), page 424, August 2008. 6. David James, Tim Leonard, John O’Leary, Murali Talupur, and Mark R. Tuttle. Brief announcement: Extracting models from design documents with Mapster. In Pro- ceedings of the 27th Annual ACM Symposium on Principles of Distributed Comput- ing (PODC), page 456, August 2008. 7. , Chen Avin, Michal Koucky,´ Gady Kozma, Zvi Lotker, and Mark R. Tuttle. Many random walks are faster than one. In Proceedings of the 20th Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA), pages 119–128, June 2008. 8. John O’Leary, Bratin Saha, and Mark R. Tuttle. Model checking transactional mem- ory. In ETAPS Workshop on Designing Correct Circuits (DCC), April 2008. 9. Murali Talupur, Sava Krstic, John O’Leary, and Mark R. Tuttle. Parametric veri- fication of industrial cache protocols. In ETAPS Workshop on Designing Correct Circuits (DCC), April 2008. 10. Ariel Cohen, John W. O’Leary, Amir Pnueli, Mark R. Tuttle, and Lenore D. Zuck. Verifying correctness of transactional memories. In Proceedings of the 7th Interna- tional Conference on Formal Methods in Computer-Aided Design (FMCAD), pages 37–44, November 2007. 11. Zvi Lotker, Boaz Patt-Shamir, and Mark R. Tuttle. Publish and perish: Definition and analysis of an n-person publication impact game. In Proceedings of the 18th Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA), pages 11–18, August 2006. 12. Zvi Lotker, Boaz Patt-Shamir, and Mark Tuttle. Brief Announcement: Timing games and shared memory. In Proceedings of the 19th International Symposium on Dis- tributed Computing (DISC), September 2005. 13. Baruch Awerbuch, Yossi Azar, Zvi Lotker, Boaz Patt-Shamir, and Mark Tuttle. Col- laborate with strangers to find own preferences. In Proceedings of the 17th Annual ACM Symposium on Parallel Algorithms and Architectures, pages 263–269, July 2005. 14. Baruch Awerbuch, Boaz Patt-Shamir, David Peleg, and Mark Tuttle. Adaptive col- labortion in peer-to-peer systems. In Proceedings of the 25th IEEE International Conference on Distributed Computing Systems (ICDCS), pages 71–80, June 2005. 15. Baruch Awerbuch, Boaz Patt-Shamir, David Peleg, and Mark Tuttle. Improved rec- ommendation systems. In Proceedings of the 16th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 1174–1183, January 2005. 16. Maurice Herlihy, Sergio Rajsbaum, and Mark Tuttle. An axiomatic approach to com- puting the connectivity of synchronous and asynchronous systems. In Proceedings of the Sixth Workshop on Geometric and Topological Methods in Concurrency and Distributed Computing (GETCO), Electronic Notes in Theoretical Computer Sci- ence. Elsevier, October 2004. 17. Baruch Awerbuch, Boaz Patt-Shamir, David Peleg, and Mark Tuttle. Collabora- tion of untrusting peers with changing interests. In Proceedings of the 5th ACM Conference on Electronic Commerce (EC), pages 112–119, May 2004. 18. Sandip Ray, John Matthews, and Mark Tuttle. Certifying compositional model checking algorithms in ACL2. In Proceedings of the 4th International Workshop on the ACL2 Theorem Prover and Its Applications (ACL2), July 2003. 19. David Lomet and Mark Tuttle. A theory of redo recovery. In Proceedings of the ACM SIGMOD International Conference on Management of Data, pages 397–406. ACM, June 2003. 20. Leslie Lamport, John Matthews, Mark Tuttle, and Yuan Yu. Specifying and verifying systems with TLA+. In Proceedings of the Tenth ACM SIGOPS European Workshop: Can we really depend on an OS?, pages 45–48, September 2002. 21. Maurice Herlihy, Sergio Rajsbaum, and Mark Tuttle. A new synchronous lower bound for set agreement. In Proceedings of the 15th International Conference on Distributed Computing (DISC), volume 2180 of Lecture Notes in Computer Science, pages 136–150. Springer-Verlag, October 2001. 22. Maurice Herlihy, Sergio Rajsbaum, and Mark Tuttle. An overview of synchronous message-passing and topology. In Proceedings of the Workshop on Geometry and Topology in Concurrency Theory (GETCO), volume NS-00-3 of Basic Research in Computer Science Notes Series. Department of Computer Science, University of Aarhus, August 2000. 23. Homayoon Akhiani, Damien Doligez, Paul Harter, Leslie Lamport, Joshua Scheid, Mark Tuttle, and Yuan Yu. Cache coherence verification with TLA+. In Proceedings of the World Congress On Formal Methods In The Development Of Computing Sys- tems, FM’99, Industrial Panel, volume 1709 of Lecture Notes in Computer Science, page 1871, September 1999. 24. David B. Lomet and Mark R. Tuttle. Logical logging to extend recovery to new domains. In Alex Delis, Christos Faloutsos, and Shahram Ghandeharizadeh, edi- tors, Proceedings of the ACM SIGMOD International Conference on Management of Data, pages 73–84. ACM, June 1999. 25. Maurice Herlihy, Sergio Rajsbaum, and Mark R. Tuttle. Unifying synchronous and asynchronous message-passing models. In Proceedings of the 17th Annual ACM Symposium on Principles of Distributed Computing, pages 133–142. ACM, June 1998. 26. David Lomet and Mark R. Tuttle. Redo recovery after system crashes. In Umesh Dayal, Peter Gray, and Shojiro Nishio, editors, Proceedings of the 21st International Conference on Very Large Data Bases, pages 457–468, Zurich, September 1995. Morgan Kaufmann Publishers. 27. Soma Chaudhuri and Mark R. Tuttle. Fast increment registers. In Gerard Tel and Paul Vitanyi,´ editors, Proceedings of the 8th International Workshop on Distributed Algorithms, volume 857 of Lecture Notes in Computer Science, pages 74–88. Springer- Verlag, Berlin, October 1994. 28. Soma Chaudhuri, Maurice Herlihy, Nancy Lynch, and Mark R. Tuttle. A tight lower bound for k-set agreement. In Proceedings of the 34th IEEE Symposium on Founda- tions of Computer Science, pages 206–215, November 1993. 29. Soma Chaudhuri, Maurice Herlihy, Nancy Lynch, and Mark R. Tuttle. A tight lower bound for processor coordination. In Third International Workshop on Responsive Computer Systems, pages 4–15, September 1993. 30. Mart´ın Abadi and Mark R. Tuttle. A semantics for a logic of authentication. In Proceedings of the 10th Annual ACM Symposium on Principles of Distributed Com- puting, pages 201–216. ACM, August 1991. 31. Michael Merritt, Francesmary Modugno, and Mark R. Tuttle. Time-constrained au- tomata. In J. C. M. Baeten and J. F. Groote, editors, Proceedings of the Second International Conference on Concurrency Theory (Concur’91), volume 527 of Lec- ture Notes in Computer Science, pages 408–423. Springer-Verlag, Berlin, August 1991. 32. Gil Neiger and Mark R. Tuttle. Common knowledge and consistent simultaneous coordination. In J. van Leeuwen and N. Santoro, editors, Proceedings of the 4th International Workshop on Distributed Algorithms, volume 486 of Lecture Notes in Computer Science, pages 334–352. Springer-Verlag, September 1990. 33. Maurice P. Herlihy and Mark R. Tuttle. Wait-free computation in message-passing systems. In Proceedings of the 9th Annual ACM Symposium on Principles of Dis- tributed Computing, pages 347–362. ACM, August 1990. 34. Joseph Y. Halpern and Mark R. Tuttle. Knowledge, probability, and adversaries. In Proceedings of the 8th Annual ACM Symposium on Principles of Distributed Com- puting, pages 103–118. ACM, August 1989. 35. Joseph Y. Halpern, Yoram Moses, and Mark R. Tuttle. A knowledge-based analy- sis of zero knowledge. In Proceedings of the 20th ACM Symposium on Theory of Computing, pages 132–147, May 1988. 36. Nancy A. Lynch and Mark R. Tuttle. Hierarchical correctness proofs for distributed algorithms. In Proceedings of the 6th Annual ACM Symposium on Principles of Distributed Computing, pages 137–151. ACM, August 1987. 37. Yoram Moses and Mark R. Tuttle. Programming simultaneous actions using com- mon knowledge. In Proceedings of the 27th IEEE Symposium on Foundations of Computer Science, pages 208–221. IEEE, October 1986.

Journals 1. Noga Alon, Chen Avin, Michal Koucky,´ Gady Kozma, Zvi Lotker, and Mark R. Tuttle. Many random walks are faster than one. Combinatorics, Probability and Computing, 20(4):481–502, July 2011. 2. Maurice Herlihy, Sergio Rajsbaum, and Mark R. Tuttle. An axiomatic approach to computing the connectivity of synchronous and asynchronous systems. Electronic Notes in Theoretical Computer Science, 230:79–102, March 2009. 3. Zvi Lotker, Boaz Patt-Shamir, and Mark R. Tuttle. A game of timing and visibility. Games and Economic Behavior, 62(22):643–660, March 2008. 4. Baruch Awerbuch, Yossi Azar, Zvi Lotker, Boaz Patt-Shamir, and Mark Tuttle. Col- laborate with strangers to find own preferences. Theory of Computing Systems, 42(1):27–41, January 2008. 5. Rajeev Joshi, Leslie Lamport, John Matthews, Serdar Tasiran, Mark Tuttle, and Yuan Yu. Checking cache-coherence protocols with TLA+. Formal Methods in System Design: Special Issue on Industrial Applications, 22(2):125–131, March 2003. 6. Maurice Herlihy, Sergio Rajsbaum, and Mark R. Tuttle. An overview of synchronous message-passing and topology. Electronic Notes in Theoretical Computer Science, 39(2):1–17, 2001. 7. Soma Chaudhuri, Maurice Herlihy, Nancy Lynch, and Mark R. Tuttle. Tight bounds for k-set agreement. Journal of the ACM, 47(5):912–943, September 2000. 8. Soma Chaudhuri, Maurice Herlihy, and Mark R. Tuttle. Wait-free implementations in message-passing systems. Theoretical Computer Science, 220(1):211–245, June 1999. 9. Joseph Y. Halpern and Mark R. Tuttle. Knowledge, probability, and adversaries. Journal of the ACM, 40(4):917–962, September 1993. 10. Gil Neiger and Mark R. Tuttle. Common knowledge and consistent simultaneous coordination. Distributed Computing, 6(3):181–192, 1993. 11. Nancy A. Lynch and Mark R. Tuttle. An introduction to input/output automata. CWI Quarterly, 2(3):219–246, September 1989. 12. Yoram Moses and Mark R. Tuttle. Programming simultaneous actions using com- mon knowledge. Algorithmica, 3(1):121–169, 1988.

Book chapters 1. David Lomet and Mark R. Tuttle. Redo recovery after system crashes. In Vijay Kumar and Meichun Hsu, editors, Recovery Mechanisms in Database Systems, pages 101–124. Prentice Hall, Upper Saddle River, New Jersey, 1999.

Reports 1. Soma Chaudhuri, Maurice Herlihy, Nancy Lynch, and Mark R. Tuttle. Tight bounds for k-set agreement. Technical Report 98/4, DEC Cambridge Research Lab, May 1998. 2. Soma Chaudhuri, Maurice Herlihy, and Mark R. Tuttle. Wait-free implementations in message-passing systems. Technical Report 98/5, DEC Cambridge Research Lab, May 1998. 3. Mark R. Tuttle. Knowledge and distributed computation. Technical Report MIT/LCS/TR- 477, Massachusetts Institute of Technology, Laboratory for Computer Science, May 1990. 4. Nancy A. Lynch and Mark R. Tuttle. Hierarchical correctness proofs for distributed algorithms. Technical Report MIT/LCS/TR-387, MIT Laboratory for Computer Sci- ence, April 1987.

Other 1. Leslie Lamport, Mark Tuttle, and Yuan Yu. The wildfire verification challenge prob- lem. See http://research.microsoft.com/users/lamport/tla/wildfire-challenge.html, July 2000. 2. Homayoon Akhiani, Damien Doligez, Paul Harter, Leslie Lamport, Joshua Scheid, Mark Tuttle, and Yuan Yu. TLA+ verification of cache coherence protocols. Unpub- lished manuscript, February 1999. 3. Hagit Attiya and Mark R. Tuttle. Bounds for slotted `-exclusion. Technical memo, MIT, February 1989. 4. Mark R. Tuttle. A game-theoretic characterization of eventual common knowledge. Technical memo, MIT, October 1988.

Patents 1. Baruch Awerbuch, Boaz Patt-Shamir, David Peleg, Mark Tuttle. Improved recom- mendation systems. Application pending, December 2004. 2. Eytan Adar, Boaz Patt-Shamir, Mark Tuttle. Collaborative web searches. Applica- tion pending, December 2004. 3. David B. Lomet and Mark R. Tuttle. Database Computer System Using Logical Logging to Extend Recovery. Application pending, April 1999.

Invited Talks 1. Reasoning about distributed computation. Computer Science and Engineering 40th Anniversary Distinguished Alumni Talks, University of Nebraska - Lincoln, Septem- ber 2008. 2. Analyzing Cache Coherence with TLA+. Workshop on Formal Specification and Verification Methods for Shared Memory Systems at International Conference on Formal Methods in Computer-Aided Design (FMCAD), October 2000. 3. Using TLA+ at COMPAQ. TLA+ User Group Meeting at World Congress On Formal Methods In The Development Of Computing Systems (FM), September, 1999. 4. Unifying synchronous and asynchronous message-passing models. Computer Sci- ence Colloquium series, Brown University, March 1999. 5. Lower bounds for agreement. Mathematics and Statistics Colloquium series, Uni- versity of Nebraska–Lincoln, May 1997. 6. A tight lower bound for k-set agreement. Computer Science Colloquium series, Dart- mouth University, January 1995. 7. Build models, not logics. Panel, Computer Security Foundations Workshop, June 1993. 8. How fast are wait-free concurrent objects? POCS Seminar Series, MIT Laboratory for Computer Science, April 1993. Theses 1. Costas Busch, A Study on Distributed Structures, Brown University, 2000, thesis committee member. 2. George Varghese, Self-Stabilization by Local Checking and Correction, MIT, 1992, thesis committee member.

Conferences 1. Program committees: • PODC: ACM Symposium on Principles of Distributed Computing, 1994, 1996, 2001, 2004, 2011 • DISC: EATCS International Symposium on Distributed Computing, 2000, 2008, 2009 • SSS: International Symposium on Stabilization, Safety, and Security of Dis- tributed Systems, 2011 • NAC: IEEE Symposium on Network Computing and Applications, 2008, 2009, 2010, 2011 • ICDCS: International Conference on Distributed Computing Systems, 2007 • ICDCN: International Conference on Distributed Computing and Networking, 2006, 2010, 2011 • OPODIS: International Conference On Principles Of Distributed Systems, 2006 • TARK: Theoretical Aspects of Reasoning about Knowledge, 1994 2. Local arrangements: • PODC: ACM Symposium on Principles of Distributed Computing, 2005, 2007 • TARK: Theoretical Aspects of Reasoning about Knowledge, 1994 3. Steering Committee Chair, ACM Principles of Distributed Computing, 2003-2006. 4. Founder and Treasurer, Theoretical Aspects of Reasoning about Knowledge, a non- profit corporation to run a biannual scientific conference by the same name, 1991- present.

Service 1. International Math Olympiad, US Team training center staff member (summer 1984). 2. Computer Science and Engineering Industrial Advisory Panel, University of Nebraska– Lincoln, (1997-2000). 3. Journal referee • Journal of the ACM (JACM) • ACM Transactions on Computer Systems (TOCS) • ACM Transactions on Database Systems (TODS) • ACM Transactions on Programming Languages and Systems (TOPLAS) • Distributed Computing • IEEE Transactions on Computers • IEEE Transactions on Parallel and Distributed Systems • IEEE Transactions on Software Engineering (TSE) • Formal Methods in System Design (FMSD) • Information and Compuation • Information and Communication • Information Processing Letters (IPL) • International Journal of Parallel Processing (IJPP) • Theoretical Computer Science (TCS) • Theory of Computer Systems • Journal on Software and System Modeling • SIAM Journal of Computation. 4. Conference referee • ACM Principles of Distributed Computing (PODC) • ACM Symposium on Operating System Principles (SOSP) • ACM Symposium on the Theory of Computing (STOC) • IEEE Symposium on Foundations of Computer Science (FOCS) • Theoretical Aspects of Reasoning about Knowledge (TARK) • Computer Aided Verification (CAV) • Design Automation Conference (DAC) • European Symposium on Algorithms (ESA) • IEEE Conference on Communications Software (Tricomm) 5. Grant reviews for National Science Foundation. 6. Member of Association for Computing Machinery, Sigma Xi.

Last updated: September 2011