(Chip) Charles E. Killian, Jr.
Assistant Professor
Department of Computer Science
Purdue University
Office: LWSN 1187
Phone: 765–807–7996
ckillian@cs.purdue.edu
About Me
I am a recipient of a 2011 NSF CAREER award, supporting my research in debugging and understanding developed distributed systems. I was also awarded a 2011 HP Open Innovation Grant, and a 2011 Purdue Research Foundation student support grant to support my continued research in distributed systems infrastructure development. I am also thankful for past equipment support from Intel Corporation, and services support from Amazon Web Services. While I focus on distributed system building issues most relevent to the operating systems and network systems communities, my research bridges these topics with those of security, programming languages, and software engineering. I have recent papers in NSDI (Networked Systems Design and Implementation), NDSS (Network and Distributed System Security), HPDC (High Performance Distributed Computing), FSE (Foundations of Software Engineering), COMSNETS (Communication Systems and Networks), and NSS (Network and System Security). My 2007 NSDI paper on the Mace model checker won the best paper award.
I grew up in the mountains of NC, in Asheville. In 1998 I graduated from the North Carolina School of Science and Mathematics, in Durham, NC. I then did my undergraduate work at NC State University, where I received Bachelors of Science in Computer Science and Applied Math working under Dr. Carla Savage, and a Minor in Music with an emphasis in Vocal Performance. In May of 2004 I completed a Master of Science in Computer Science at Duke University with Dr. Amin Vahdat. I continued my PhD work with Dr. Amin Vahdat at the University of California, San Diego, Department of Computer Science, in Systems and Networking, and completed my PhD in 2008. When I’m not working on research, I sing in local groups and spend time with my wife Kristina and son David. I began my new position as Assistant Professor in the Computer Science department at Purdue University in the Fall of 2008.
Research
MaceSystems: My present research is to make it simpler and easier to build, debug, analyze, understand, and harden distributed systems, by leveraging a modest amount of structure that the developer provides about their system. As a PhD student, I developed the Mace toolkit, including a C++ language extension for building distributed systems, and a model checker to test liveness properties of deployable-systems built in Mace, effective because of the Mace structured programming environment. Mace has been used to develop a wide range of systems from DHTs to file transfer protocols and consensus protocols, and has been used at research labs and universities ranging from Cornell University to Microsoft Research.
The fundamental advance made in the MaceSystems project is the recognition that with a modest amount of structure, we can build a wide variety of tools that make the developer more effective. We have often focused on the event-driven component structure commonly used in distributed system design, where components process events, and explicitly update state and send messages. This small amount of structure makes state-space exploration much more efficient that an OS-level exploration, as the component state is explicitly known and the messaging protocols explicitly exposed.
Which this structure, the MaceSystems project has expanded, focusing in several areas:
- We have further enhanced the event-processing engine, supporting controlled and safe parallelism without disrupting the analysis techniques that leverage event atomicity.
- We have built analysis tools that can automatically detect and diagnose performance problems in systems implementations.
- We are building tools that automatically discover insider attacks on distributed systems implementations.
- We are enhancing the runtime infrastructure to optionally and transparently provide greater robustness to distributed protocols.
While we continue to support the highly-tuned and efficient Mace development toolkit, the MaceSystems project has grown beyond this limited environment. Our recent work has involved the development of tools that process logs from arbitrary systems, given only a parsing script provided by the developer. We also are focusing on the expansion of our protocol implementation exploration techniques to support arbitrary systems running in controlled environments, aided by developer guidance on the structure of the messaging protocol.
Students
- PhD
- MS
- Anurag Singh (Awarded 2010)
Teaching
- Fall 2011: CS 59100-DSN: Distributed Systems and Networking Reading Seminar
- Fall 2011: CS 536: Data communications and Computer Networks
- Spring 2011: CS 50300: Operating Systems Note: this webpage updates for future semesters
- Fall 2010: CS 35400: Operating Systems Note: this webpage updates for future semesters
- Spring 2010: CS 50500: Distributed Systems
- Fall 2009: Systems and Networking Reading Seminar
- Fall 2009: CS 536: Data communications and Computer Networks
- Spring 2009: CS 536: Data communications and Computer Networks
- Fall 2008: CS 590N: Data Center Architecture
Other Notables
Prior to my work in distributed systems, I did work in the areas of Gray codes and Venn diagrams. Together with Dr. Carla Savage, I proved the existance of symmetric Venn diagrams for all prime numbers of curves. The basis of the proof is a necklace approach to constructing an embedding of the boolean lattice, and then taking its dual. The work appeared in the Electronic Journal of Combinatorics, and was featured in the December 2006 issue of the Notices of the AMS.
Publications
Program Committees
- HPDC 2012 Program Committee
- HPDC 2011 Program Committee
- ICDCN 2011 Program Committee
- NSDI 2010 Program Committee and Poster Chair
- ICDCS 2009 Program Committee, Operating Systems and Middleware



