Brandon M. Lucia [My CV]
Asst. Prof. of ECE @ Carnegie Mellon University
Office: CIC 4th Floor, 101A
Robert Mehrabian Collaborative Innovation Center (CIC)
4720 Forbes Avenue
Pittsburgh, PA 15213
Email: blucia [ at ] gmail [ dot ] com
blucia@cmu.edu

science.
music.


Hello!
I am an assistant professor in the department of electrical and computer engineering at Carnegie Mellon University. I do research on the boundary between computer architecture, computer systems, and programming languages.

I lead the abstract research group.

I am looking for graduate students who are excited about computer architecture, systems, and programming research on the hardware/software boundary. Apply to CMU ECE if you are an inspired, curious person and we can work together!

Here are some of my current research interests:

Defining Intermittent Computing We need to make intermittent computing devices that harvest energy from their environment, programmable, reliable, and robust to common-case power failures. These devices are really exciting because they are a great fit for sensing, medical implants, "extreme" scenarios (like outer space!) and lots of other things. Watch this video for a 3 minute overview of our work in this area.

Safe, Simple, & Efficient Future Parallel Computing We need to create better software systems and computer architectures that make parallel computing correct, reliable, and efficient. The problem space is especially interesting now with the end of Moore's Law and Dennard Scaling, and the move to crazy heterogeneous parallel systems, approximate computing, distributed system architectures, and emerging (e.g., non-volatile, biological) technology maturing and becoming useful.

I am blucia0a on GitHub

I made the Chango. Check it out.

I was interviewed by TheSetup.

🍔🍔🍔🍔🍔



News

I am co-organizing the 2016 Workshop on Hilariously Low-Power Computing (w/ ASPLOS 2016). Submit!

I won the 2015 Bell Labs Prize

Double-whammy Best Paper + Best Artifact award for our OOPSLA 2015 Paper

I taught CMU ECE 545 in Fall 2015

My 2015 NSF Grant #1526342 is funded!

I received a 2015 Google Faculty Research Award



Publications
My publications are available on Google Scholar and in the list below.

Refereed Conference Papers

An Energy-interference-free Hardware/Software Debugger for Intermittent Energy-harvesting Systems
Alexei Colin, Graham Harvey, Brandon Lucia, Alanson Sample
ASPLOS 2016 [paper][press: Eurekalert, phys.org, Wireless Design Mag, Weekly Hot News]

Production-guided Concurrency Debugging
Nuno Machado, Luis Rodrigues, Brandon Lucia
PPoPP 2016 [paper]

Valor: Efficient, Software-Only Region Conflict Exceptions
Swarnendu Biswas, Minjia Zhang, Michael D. Bond, Brandon Lucia
OOPSLA 2015[paper][Try Valor!][ECE News][Lazowska-Net]
Awarded the OOPSLA'15 Distinguished Paper Award
Awarded the OOPSLA'15 Distinguished Artifact Award

A Simpler, Safer Programming and Execution Model for Intermittent Systems
Brandon Lucia, Benjamin Ransford
PLDI 2015[paper][Try DINO!][video abstract]

Concurrency Debugging with Differential Schedule Projections
Nuno Machado, Luis Rodrigues, Brandon Lucia
PLDI 2015[paper][Try Symbiosis!]

Data Provenance Tracking for Concurrent Programs
Brandon Lucia, Luis Ceze
CGO 2015[paper][Try LWS!][talk]

Cooperative Empirical Failure Avoidance for Multithreaded Programs
Brandon Lucia, Luis Ceze
ASPLOS 2013[paper][Try Aviso!]

IFRit: Interference-Free Regions for Dynamic Data-Race Detection
Laura Effinger-Dean, Brandon Lucia, Luis Ceze, Dan Grossman, Hans-J. Boehm
OOPSLA 2012[paper]

Isolating and Understanding Concurrency Errors Using Reconstructed Execution Fragments
Brandon Lucia, Benjamin P. Wood, Luis Ceze
PLDI 2011[paper][Try Recon!]
Acknowledgements to undergrads Julian Knutsen and Zach Rait for their early contributions to this project.

ColorSafe: Architectural Support for Debugging and Dynamically Avoiding Multi-variable Atomicity Violations
Brandon Lucia, Luis Ceze, Karin Strauss
ISCA 2010[paper]

Conflict Exceptions: Providing Simple Parallel Language Semantics with Precise Hardware Exceptions
Brandon Lucia, Luis Ceze, Karin Strauss, Shaz Qadeer, Hans Boehm
ISCA 2010[paper]

Finding Concurrency Bugs with Context-Aware Communication Graphs
Brandon Lucia, Luis Ceze
MICRO 2009[paper]

DMP: Deterministic shared-memory MultiProcessing
Joseph Devietti, Brandon Lucia, Mark Oskin, Luis Ceze
ASPLOS 2009 [paper]
Selected for IEEE Micro Top Picks '10

Atom-Aid: Surviving and Detecting Atomicity Violations
Brandon Lucia, Joseph Devietti, Karin Strauss, Luis Ceze
ISCA 2008 [paper][slides(.key),(.ppt)]
Selected for IEEE Micro Top Picks '09

Slide decks for talks I've given about these papers are available on SpeakerDeck.

Audio of gibberish produced by Mumbley based on a phoneme model of my papers.

Journal Papers

LazyPIM: An Efficient Cache Coherence Mechanism for Processing-in-Memory Amirali Boroumand, Saugata Ghose, Minesh Patel, Hasan Hassan, Kevin Hsieh, Brandon Lucia, Krishna Malladi, Hongzhong Zheng, and Onur Mutlu
Computer Architecture Letters, (Issue TBD).

Concurrency Debugging with Differential Schedule Projections
Nuno Machado, Daniel Quinta, Brandon Lucia, Luis Rodrigues
Transactions on Software Engineering and Methodology, Volume 25 Issue 2, April 2016, Article No. 14 [paper]

Workshop Papers

Non-volatile Memory is a Broken Time-machine
Benjamin Ransford and Brandon Lucia
Workshop on Memory Systems Performance and Correctness 2014 (co-located with PLDI 2014)[paper]

Systems Should Automatically Specialize Code and Data
Brandon Lucia and Todd Mytkowicz
Workshop on Probabilistic and Approximate Computing 2014 (co-located with PLDI) [paper]

Playing Cupid: The IDE as a Matchmaker for Plug-Ins
Todd Schiller and Brandon Lucia
Workshop on Developing Tools as Plug-ins 2012 (co-located with ICSE) [paper]

Automatic Empirical Failure Avoidance Support for Concurrent Software
Brandon Lucia Luis Ceze
Workshop on Determinism and Correctness in Parallel Programming (WoDET) 2012 (co-located with ASPLOS) [paper]

Greedy Coherence
Emily Fortuna, Brandon Lucia, Adrian Sampson, Benjamin P. Wood, Luis Ceze
Workshop on Hardware Support for Parallel Performance and Correctness 2011 (co-located with MICRO)[paper]

Hardware Watchmachines
Nicholas Hunt, Brandon Lucia, Luis Ceze
PLDI FIT 2011[paper]

Lock Prediction
Brandon Lucia, Joseph Devietti, Tom Bergan, Luis Ceze, Dan Grossman
Usenix HotPar 2010[paper]

The Case for System Support for Concurrency Exceptions
Luis Ceze, Joseph Devietti, Brandon Lucia, Shaz Qadeer
USENIX HotPar 2009[paper]

Explicitly Parallel Programming with Shared-Memory is Insane: At Least Make it Deterministic!
Joe Devietti, Brandon Lucia, Luis Ceze and Mark Oskin
Workshop on Software and Hardware Challenges of Manycore Platforms '08 [paper ]

PoCSci (Potentially Computer Science...)

The Barnyard of Pig Data Research: A View from UW CSA
Benjamin P. Wood, Brandon Lucia, Tom Bergan, Jacob Nelson, Adrian Sampson
UW PoCSci 2013 [paper]

Dissertation

I got my Ph.D. in Computer Science and Engineering from the University of Washington in 2013. I was advised by Luis Ceze. My Ph.D. dissertation is available here.



Teaching Stuff
Here (PDF) are some slides that I use in an advanced undergrad architecture course to teach the concept of memory consistency. Feel free to use them. If you think there is any way I could improve them, let me know!


Program Committees

Technical Program Committees

PPoPP 2016, PLDI 2016, IPDPS 2016 & 2015, IISWC 2015

Organization

Co-organizer HLPC 2016, Co-organizer & Co-Program Chair WoDet 2014, Co-organizer 2014 MSR Workshop on Ultra-low Power Computing

Things I Have Built

The best place to follow stuff I've built is on GitHub

Useful for Doing Computer Science Research

Recon: A Tool for Finding and Understanding Concurrency Errors.

Legerdemain (LDM): A program instrumentation and debugging tool for Linux.

DRProbe: A library for accessing the debug/watchpoint/breakpoint registers on x86/x86-64.Written with Nick HuntDRProbe is part of the Looking Within Project

MultiCacheSim: A really simple multiprocessor cache simulator based on the SESC cache model.

Concurrency Bug Benchmarks: A set of kernel microbenchmarks and full application benchmarks that I (and others) have used for doing concurrency bug research.

Miscellaneous Computer Science Related

Tips for building mspdebug with the tilib FET430 driver on OSX

Tips for building LLVM passes that work on old broken software. I want Google to index this so others can find it.

A plot characterizing the performance of the GCC-4.7 TM implementation(benchmark)

CList: A pure C implementation of a templated list class

Mon: A curses based POSIX Memory Anomaly Monitor

Music Related

Mahalo: A hardware abstract layer for mac to make it easy to make creative audio programming projects

PlayData - Chromatically and rhythmically interpret any file on your file system (try for i in $(HOME); do ./PlayData $i; done).

AndroChango - An Android app version of the PhotoChango.

PhotoChango - A computer vision based tool to audiolyze video in realtime.

Mumbley: A stupid program that generates semi-convincing gibberish using a Markov model of syllables based on wikipedia text.   Also: Mumbley-made gibberish derived from a phoneme model built from the contents of all my research papers.

Chango: A musical instrument.

Audiolyzer: A tool I wrote that generates music from concurrent programs, and a composition (program) intended to be played that way.

StreamThru: A script I wrote to listen to records in a different room. Streams audio-in over the network.

Carillon: An MP3 player for Windows.

ServeMp3: A cross-platform playlist based streaming MP3 server written in Perl.

Miscellaneous

Tupac your Stocks(Tony Fader made this, not me)

Acronymizer: A tool to make your paper shorter

ParticleSystem: A physics-ish based particle system

CheezePad: A Lightweight Formattable Text Editor