Curriculum Vitae - Mihai Budiu

Personal Information

Personal information
Last nameBudiu
First nameMihai
Cellphone(412) 216-8430
E-mailmbudiu (-at-) gmail
URLbudiu.info/work
Summary

Between 2004 and 2014 I have been a researcher at the wonderful Microsoft Research Silicon Valley Lab. In 2003 I have obtained a Ph.D. in computer science from Carnegie Mellon University. I have an M.S. from Politehnica University of Bucharest.

I have participated in the design and construction of several complex software artifacts. My favorite approach is to build end-to-end systems (i.e., spanning from Remote Method Invocation up to graphical user interfaces) based on strong theoretical fundamentals.

My research has spanned several broad areas of computer science:

  • Cloud computing infrastructure: distributed computation platforms, monitoring, debugging, and performance analysis of large scale clusters
  • Big data analysis and visualization
  • Large scale machine learning
  • Computer security
  • Computer architecture
  • Compiler design and implementation
  • Reconfigurable hardware and hardware synthesis

Projects

Here are some sample projects that I have worked on:

Education

Education
Postdoc
Fall 2003-Summer 2004, Carnegie Mellon University, Computer Science Department, professor Seth Goldstein, Phoenix Project.
Graduate Student (Ph.D. program)
Fall 1997-Summer 2003, Carnegie Mellon University, Computer Science Department, Pittsburgh, PA. Thesis defended in December 2003.
Master of Science
December 2000, Carnegie Mellon University, Computer Science Department.
Graduate Student
Fall 1996-Spring 1997, enrolled in the Ph.D. program of the Computer Science Department, Cornell University, Ithaca, NY.
Master of Science
Fall 1995-Spring 1996, ``Politehnica'' University of Bucharest, Romania; Department of Engineering Sciences.
Summer school
Summer 1993, International Summer Institute for Parallel Computer Architectures, Languages and Algorithms, Prague, Czechoslovakia.
Bachelor of Science
Fall 1990-Spring 1995, ``Politehnica'' University of Bucharest, Romania, major in Computer Science; Department of Engineering Sciences.
Military Service
Fall 1989-Spring 1990.
High-school diploma
(Baccalaureate) Fall 1989, Liceul de Informatica, Bucharest, Romania.

Publications

Refereed conferences and workshops
FESTSCHRIFT 14
bibtex
Multilinear Programming with Big Data
Mihai Budiu and Gordon Plotkin
Festschrift for Luca Cardelli, September, 2014
ESOP 13
bibtex
The Compiler Forest
Mihai Budiu, Joel Galenson, and Gordon Plotkin
European Symposium on Programming (ESOP), Rome, Italy, March 16-24, 2013, 20 pages
BIGLEARN 11
bibtex
Parallelizing the Training of the Kinect Body Parts Labeling Algorithm
Mihai Budiu, Jamie Shotton, Derek G. Murray, and Mark Finocchio
Big Learning: Algorithms, Systems and Tools for Learning at Scale, Sierra Nevada, Spain, December 16-17, 2011
SOSP 11
bibtex
Fay: Extensible Distributed Tracing from Kernels to Clusters
Úlfar Erlingsson, Marcus Peinado, Simon Peter, and Mihai Budiu
ACM Symposium on Operating Systems Principles (SOSP), Cascais, Portugal, October 23-26, 2011
MAPREDUCE 11
slides
bibtex
Parallelizing large-scale data processing applications with data skew: a case study in product-offer matching
Ekaterina Gonina, Anitha Kannan, John Shafer, and Mihai Budiu
International Workshop on MapReduce and its Applications (MAPREDUCE), San Jose, CA, June 8, 2011
HIPS 11
slides
bibtex
Monitoring and Debugging DryadLINQ Applications with Daphne
Vilas Jagannath, Zuoning Yin, and Mihai Budiu
International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS), Anchorage, AK, May 20, 2011
IPDPS 11
slides
bibtex
DryadOpt: Branch-and-Bound on Distributed Data-Parallel Execution Engines
Mihai Budiu, Daniel Delling, and Renato Werneck
IEEE International Parallel and Distributed Processing Symposium (IPDPS), Anchorage, AK, May 16-20, 2011
LADIS 09
slides
bibtex
Towards Automatic Policy Refinement in Repair Services for Large Distributed Systems
Moises Goldszmidt, Mihai Budiu, Yue zhang, and Michael Pechuk
Large Scale Distributed Systems and Middleware (LADIS), Big Sky Resort, Big Sky, Montana, October 10-11, 2009, 5 pages
Also published in ACM SIGOPS Operating Systems Review vol 44 no 2, 2010, pp 47-51.
SOCC 09
slides
bibtex
Tuning SoCs using the Dynamic Critical Path
Hari Kannan, Mihai Budiu, John D. Davis, and Girish Venkataramani
IEEE International SOC Conference, Belfast, Northern Ireland, September 9-11, 2009
Also as Microsoft Research Technical Report MSR-TR-2009-44
HOTCLOUD 09
slides
bibtex
DryadInc: Reusing work in large-scale computations
Lucian Popa, Mihai Budiu, Yuan Yu, and Michael Isard
Workshop on Hot Topics in Cloud Computing (HotCloud), San Diego, CA, June 15, 2009
WASL 08
slides
bibtex
Hunting for problems with Artemis
Gabriela F. Creţu-Ciocârlie, Mihai Budiu, and Moises Goldszmidt
USENIX Workshop on the Analysis of System Logs (WASL), San Diego, CA, December 7, 2008
OSDI 08
bibtex
DryadLINQ: A System for General-Purpose Distributed Data-Parallel Computing Using a High-Level Language
Yuan Yu, Michael Isard, Dennis Fetterly, Mihai Budiu, Úlfar Erlingsson, Pradeep Kumar Gunda, and Jon Currey
Symposium on Operating System Design and Implementation (OSDI), San Diego, CA, December 8-10, 2008, 14 pages
DAC 07
slides
bibtex
Critical Path: A Tool for System-Level Timing Analysis
Girish Venkataramani, Tiberiu Chelcea, Mihai Budiu, and Seth C. Goldstein
Design Automation Conference (DAC), San Diego, CA, June 4-8, 2007
An expanded version is in CMU-CS-06-144
EUROSYS 07
bibtex
Dryad: Distributed Data-Parallel Programs from Sequential Building Blocks
Michael Isard, Mihai Budiu, Yuan Yu, Andrew Birrell, and Dennis Fetterly
European Conference on Computer Systems (EuroSys), Lisbon, Portugal, March 21-23, 2007, pages 59-72
Also as technical report MSR-TR-2006-140
OSDI 06
bibtex
XFI: Software Guards for System Address Spaces
Úlfar Erlingsson, Martín Abadi, Michael Vrable, Mihai Budiu, and George C. Necula
Symposium on Operating System Design and Implementation (OSDI), Seattle, WA, November 6-8, 2006, pages 75-88
ASPLOS 06
bibtex
Tartan: Evaluating Spatial Computation For Whole Program Execution
Mahim Mishra, Timothy J. Callahan, Tiberiu Chelcea, Girish Venkataramani, Mihai Budiu, and Seth C. Goldstein
International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), San Jose, CA, October 21-25, 2006, pages 163-174
ASID 06
slides
bibtex
Architectural Support for Software-Based Protection
Mihai Budiu, Úlfar Erlingsson, and Martín Abadi
Workshop on Architectural and System Support for Improving Software Dependability (ASID), San Jose, CA, October 21, 2006, pages 42-51
Also as technical report MSR-TR-2006-115
ICFEM 05
bibtex
A Theory of Secure Control-Flow
Martín Abadi, Mihai Budiu, Úlfar Erlingsson, and Jay Ligatti
International Conference on Formal Engineering Methods (ICFEM), Manchester, UK, November 1-4, 2005, pages 111-124
CCS 05
bibtex
Control-Flow Integrity
Martín Abadi, Mihai Budiu, Úlfar Erlingsson, and Jay Ligatti
ACM Conference on Computer and Communication Security (CCS), Alexandria, VA, November 7-11, 2005, pages 340-353
ODES 05
slides
bibtex
Inter-Iteration Scalar Replacement in the Presence of Conditional Control-Flow
Mihai Budiu and Seth Copen Goldstein
Workshop on Optimizations for DSP and Embedded Systems (ODES), San Jose, CA, March 20, 2005, pages 20-29
ISPASS 05
slides
bibtex
Dataflow: A Complement to Superscalar
Mihai Budiu, Pedro V. Artigas, and Seth Copen Goldstein
IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), Austin, TX, March 20-22, 2005, pages 177-186
ASPLOS 04
slides
bibtex
Spatial Computation
Mihai Budiu, Girish Venkataramani, Tiberiu Chelcea, and Seth Copen Goldstein
International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), Boston, MA, October 9-13, 2004, pages 14-26
MSP 04
bibtex
Programmer Specified Pointer Independence
David Koes, Mihai Budiu, Girish Venkataramani, and Seth Copen Goldstein
Workshop on Memory System Performance (MSP), June, 2004
Also as technical report CMU-CS-03-123
IWLS 04
bibtex
C to Asynchronous Dataflow Circuits: An End-to-End Toolflow
Girish Venkataramani, Mihai Budiu, and Seth Copen Goldstein
International Workshop on Logic synthesis (IWLS), Temecula, CA, June, 2004, pages 501-508
(full paper)
CGO 03
slides
bibtex
Optimizing Memory Accesses For Spatial Computation
Mihai Budiu and Seth Copen Goldstein
International ACM/IEEE Symposium on Code Generation and Optimization (CGO), San Francisco, CA, March 23-26, 2003, pages 216-227
FPL 02
bibtex
Compiling Application-Specific Hardware
Mihai Budiu and Seth Copen Goldstein
International Conference on Field Programmable Logic and Applications (FPL), Montpellier (La Grande-Motte), France, September 2-4, 2002, pages 853-863
FPL 02
bibtex
Factors Influencing the Performance of a CPU-RFU Hybrid Architecture
Girish Venkataramani, Suraj Sudhir, Mihai Budiu, and Seth Copen Goldstein
International Conference on Field Programmable Logic and Applications (FPL), Montpellier (La Grande-Motte), France, September, 2002, pages 955-965
FCCM 02
slides
bibtex
Peer-to-peer Hardware-Software Interfaces for Reconfigurable Fabrics
Mihai Budiu, Mahim Mishra, Ashwin Bharambe, and Seth Copen Goldstein
IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM), Napa Valley, CA, April, 2002, pages 57-66
SOCS 01 Application-Specific Hardware: Computing Without CPUs
Mihai Budiu
Fourth CMU Symposium on Computer Systems (SOCS), Carnegie Mellon University, October, 2001, pages 1-10
ISCA 01
bibtex
NanoFabrics: Spatial Computing Using Molecular Electronics
Seth Copen Goldstein and Mihai Budiu
International Symposium on Computer Architecture (ISCA), Göteborg, Sweden, 2001, pages 178-189
EUROPAR 00
slides
bibtex
BitValue Inference: Detecting and Exploiting Narrow Bitwidth Computations
Mihai Budiu, Majd Sakr, Kip Walker, and Seth Copen Goldstein
European Conference on Parallel Processing (EUROPAR), Münich, Germany, 2000, pages 969-979
An expanded version is in technical report CMU-CS-00-141
FCCM 00 Interfacing Reconfigurable Logic with a CPU
Kip Walker, Mihai Budiu, and Seth Copen Goldstein
IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM), Napa Valley, CA, 2000, pages 317-318
SOCS 99 Detecting and Exploiting Narrow Bitwidth Computations
Mihai Budiu
Second Annual CMU Symposium on Computer Systems (SOCS), Carnegie Mellon University, September, 1999, pages 55-64
Best paper award.
ISCA 99
bibtex
PipeRench: a Coprocessor for Streaming Multimedia Acceleration
Seth Copen Goldstein, Herman Schmit, Matthew Moe, Mihai Budiu, Srihari Cadambi, R. Reed Taylor, and Ronald Laufer
International Symposium on Computer Architecture (ISCA), Atlanta, GA, 1999, pages 28-39
ACM SIGARCH/IEEE-CS TCCA Influential ISCA Paper Award.
FPGA 99
slides
bibtex
Fast Compilation for Pipelined Reconfigurable Fabrics
Mihai Budiu and Seth Copen Goldstein
ACM/SIGDA International Symposium on Field Programmable Gate Arrays (FPGA), Monterey, CA, 1999, pages 195-205
ROSE 95 PicOs: A Microkernel Operating System
Mihai Budiu
International Conference Romanian Open Systems Event, Bucharest, Romania, November, 1995, pages 255-261
My presentation was just before Linus Torvalds'.
Journal publications
TOCS 12
bibtex
Fay: Extensible Distributed Tracing from Kernels to Clusters
Úlfar Erlingsson, Marcus Peinado, Simon Peter, Mihai Budiu, and Gloria Mainar-Ruiz
Transactions on Computer Systems (TOCS), Vol. 30, no 4, November, 2012
An expanded version of the SOSP 2011 paper
TISSEC 09
bibtex
Control-Flow Integrity principles, implementations and applications
Martín Abadi, Mihai Budiu, Úlfar Erlingsson, and Jay Ligatti
ACM Transactions on Information and System Security (TISSEC), Vol. 13, no 1, 2009, pages 1-40
IEEE 00
bibtex
PipeRench: A Reconfigurable Architecture and Compiler
Seth Copen Goldstein, Herman Schmit, Mihai Budiu, Srihari Cadambi, Matt Moe, and Reed Taylor
IEEE Computer, Vol. 33, no 4, April, 2000, pages 70-77
TOCS 99
bibtex
Bimodal Multicast
Kenneth P. Birman, Mark Hayden, Oznur Oskasap, Zhen Xiao, Mihai Budiu, and Yaron Minsky
Transactions on Computer Systems (TOCS), Vol. 17, no 2, May, 1999, pages 41-88
Book and book chapter
CHAPTER 11
bibtex
Chapter in, Scaling Up Machine Learning
Frank McSherry, Yuan Yu, Mihai Budiu, Michael Isard, and Dennis Fetterly
Large-Scale Machine Learning using DryadLINQ, Cambridge University Press, 2011
CHAPTER 03
bibtex
Chapter in, Molecules, Gates, Circuits, Computers
Seth Copen Goldstein and Mihai Budiu
in Molecular Nanoelectronics, American Scientific Publishers, January, 2003, pages 327-388
BOOK 89 BASIC HC 85
Mihai Budiu
1989, 190 pages
An introductory high-school text on BASIC programming, used between 1997 and 1990 in xerographied form as textbook for computer programming classes taught in the Informatics High School of Bucharest.
Invited Papers
FESTSCHRIFT 14
bibtex
Multilinear Programming with Big Data
Mihai Budiu and Gordon Plotkin
Festschrift for Luca Cardelli, September, 2014
HPDC 12
slides
bibtex
Putting A ``Big-Data'' Platform to Good Use: Training Kinect
Mihai Budiu
June 20, 2012
Keynote to the 21st International Symposium on High-Performance Parallel and Distributed Computing (HPDC)
ASAP 03
bibtex
Reconfigurable Computing and Electronic Nanotechnology
Seth Goldstein, Mihai Budiu, Mahim Mishra, and Girish Venkataramani
IEEE International Conference on Application-specific Systems, Architectures and Processors, Hague, the Netherlands, June 24-26, 2003, pages 132-143
Invited paper
Patents
Software Memory Access Control Abadi; Martin, Erlingsson; Ulfar, Ligatti; Jay, Budiu; Mihai, US Patent 7,337,291, issued February 2008.
Software Security Based On Control Flow Integrity, Abadi; Martin, Budiu; Mihai, Erlingsson; Ulfar, Ligatti; Jay, US Patent 7,577,992, issued August 2008.
Optimizing Systems on a Chip using the Dynamic Critical Path, Davis; John D., Budiu; Mihai, Kannan; Hari, US Patent 8,037,437, issued October 2011.
Architectural Support for Software-Based Protection, Erlingsson; Ulfar, Abadi; Martin, Budiu; Mihai, US Patent 8,136,091, issued March 2012.
Repair-Policy Refinement In Distributed Systems, Goldszmidt; Moises, Budiu; Mihai, Zhang; Yue, Pechuk; Michael, US Patent 8,504,874, issued September 2013.
Distributed Decision Tree Training, Shotton; Jamie, Budiu; Mihai-Dan, Fitzgibbon; Andrew William, Finocchio; Mark, Moore; Richard E., Robertson; Duncan, US Patent 8,543,517, issued October 2013.
Theses and technical reports
TR 14
bibtex
Unified Query Processing for JSON Documents and Indexes
Mihai Budiu, Gordon Plotkin, Yuan Yu, and Li Zhang
Microsoft Research Technical Report, MSR-TR-2014-129, December, 2014
TR 10
bibtex
User interfaces for exploring multi-dimensional data sets
Mihai Budiu
Microsoft Research Technical Report, MSR-TR-2010-67, June, 2010
TR 09
bibtex
Tuning SoCs using the Dynamic Critical Path
Hari Kannan, Mihai Budiu, John D. Davis, and Girish Venkataramani
Microsoft Research Technical Report, MSR-TR-2009-44, April, 2009
TR 08
bibtex
Some sample programs written in DryadLINQ
Yuan Yu, Michael Isard, Dennis Fetterly, Mihai Budiu, Ulfar Erlingsson, Pradeep Kumar Gunda, Jon Currey, Frank McSherry, and Kannan Achan
Microsoft Research Technical Report, MSR-TR-2008-74, May, 2008, 37 pages
TR 06 Dryad: Distributed Data-Parallel Programs from Sequential Building Blocks
Michael Isard, Mihai Budiu, Yuan Yu, Andrew Birrell, and Dennis Fetterly
Microsoft Research Technical Report, MSR-TR-2006-140, October, 2006, 14 pages
TR 06 Architectural Support for Software-Based Protection
Mihai Budiu, Úlfar Erlingsson, and Martín Abadi
Microsoft Research Technical Report, MSR-TR-2006-115, October (revised), 2006, 15 pages
TR 06
bibtex
Modeling the Global Critical Path in Concurrent Systems
Girish Venkataramani, Tiberiu Chelcea, Mihai Budiu, and Seth C. Goldstein
Carnegie Mellon University, Computer Science Department Technical Report, CMU-CS-06-144, August, 2006, 22 pages
TR 05 A Theory of Secure Control Flow
Martín Abadi, Mihai Budiu, Úlfar Erlingsson, and Jay Ligatti
Microsoft Research Technical Report, MSR-TR-2005-17, February, 2005, 12 pages
TR 05 Control-Flow Integrity
Martín Abadi, Mihai Budiu, Úlfar Erlingsson, and Jay Ligatti
Microsoft Research Technical Report, MSR-TR-2005-18, February, 2005, 12 pages
TR 04 Inter-Iteration Scalar Replacement in the Presence of Conditional Control-Flow
Mihai Budiu and Seth Copen Goldstein
Carnegie Mellon University, Department of Computer Science Technical Report, CMU-CS-04-103, February, 2004, 30 pages
PHD 03
slides
bibtex
Spatial Computation
Mihai Budiu
Ph.D. Thesis, Carnegie Mellon University, Computer Science Department, CMU-CS-03-217, December, 2003, 225 pages
Technical report CMU-CS-03-217
TR 03 Programmer Specified Pointer Independence
David Koes, Mihai Budiu, Girish Venkataramani, and Seth Copen Goldstein
Carnegie Mellon University, Department of Computer Science Technical Report, CMU-CS-03-123, April, 2003
TR 02 Pegasus: An Efficient Intermediate Representation
Mihai Budiu and Seth Copen Goldstein
Carnegie Mellon University Technical Report, CMU-CS-02-107, May, 2002, 20 pages
TR 00 BitValue Inference: Detecting and Exploiting Narrow Bitwidth Computations
Mihai Budiu and Seth Copen Goldstein
Carnegie Mellon University, Computer Science Department Technical Report, CMU-CS-00-141, June, 2000, 28 pages
TR 99 Bimodal Multicast
Kenneth Birman, Mark Hayden, Oznur Ozkasap, Zhen Xiao, Mihai Budiu, and Yaron Minsky
Cornell University Computer Science Department Technical Report, TR99-1745, May 11, 1999, 43 pages
TR 98 User-Level File Service Based on Watchdogs
Mihai Budiu and Raluca Budiu
Computer Science Department, Carnegie Mellon University Technical Report, CMU-CS-98-103, 1998, pages 81-92
Part of a larger technical report.
MS 96 Solving Image Oversegmentation in Parallel
Mihai Budiu
M.S. Thesis, ``Politehnica'' University of Bucharest, August 1996, 35 pages
BS 95 PicOs --- a Microkernel Implementation for a Distributed Operating System
Mihai Budiu
BS Thesis, ``Politehnica'' University of Bucharest, August, 1995
Part of it appeared in the Proceedings of the International Conference, Romanian Open Systems Event 1995. Won first prize at the Student Scientific Conference of the ``Politehnica'' University of Bucharest.
RR 94 Structured Filesystem Implementation
Mihai Budiu
Research Report, ``Politehnica'' University of Bucharest, March, 1994
RR 93 An Implementation of Combinatorial Circuit Simplification using the Transduction Method
Mihai Budiu
Research Report, Eindhoven Technical University, Netherlands, June, 1993
RR 92 Silicon Operating System Primitives
Mihai Budiu
Research Report, Eindhoven Technical University, Netherlands, June, 1992
Presentations

Data-Intensive Cluster Computing
San Jose State University Course on Cloud Computing, San Jose, CA, April 14, 2014

Systems for Data-Intensive Cluster Computing
ALMADA Summer School, Moscow, Russia, July 30-August 7, 2013

Interactive Parallel Data Visualization and Exploration
Microsoft Research, Silicon Valley, Mountain View, CA, March 23, 2013

Data-Intensive Cluster Computing
San Jose State University Course 297C1 on Cloud Computing, Santa Clara, CA, April 18, 2013

Data-Intensive Cluster Computing
San Jose State University Course 297C1 on Cloud Computing, Santa Clara, CA, November 8, 2012

JPath: Structural Queries for JSON Databases
Social Search Meetup, Microsoft, Santa Clara, CA, November 15, 2012

Data-Intensive Cluster Computing
San Jose State University Course 297C1 on Cloud Computing, Santa Clara, CA, November 8, 2012

The Compiler Forest
Microsoft Research Silicon Valley Lab, Mountain View, CA, October 24, 2012

The Compiler Forest
Workshop on Exploiting Concurrency Efficiently and Correctly, Berkeley, CA, July 7, 2012

Playing with Big Data
HPDC 2012 Keynote Presentation, Delft, Netherlands, June 20, 2012

Training Kinect
UCSD Center for Networked Systems 2012 Research Review, San Diego, CA, Feb 8, 2012

Programming Clusters with DryadLINQ
Carnegie Mellon Silicon Valley, Mountain View, CA, Dec 5, 2011

Crunching Big Data
Microsoft Research 20th Anniversary, Mountain View, CA, Sept 27, 2011

Data-Intensive Cluster Computing
San Jose State University, Course CMPE 281: Special Topics in Computer Engineering --- Cloud Technologies, Santa Clara, CA, September 21, 2011

Monitoring and Debugging Clusters with Daphne
International Workshop on High-level Parallel Programming Models and Supportive Environments (HIPS), Anchorage, AK, May 20, 2011

DryadOpt: Branch-and-Bound on Distributed Data-Parallel Execution Engines
IEEE International Parallel and Distributed Processing Symposium (IPDPS), Anchorage, AK, May 19, 2011

Programming Clusters with DryadLINQ
ACCU monthly meeting, Mountain View, CA, April 13, 2011

The Kinect Body Tracking Pipeline
NASA Ames Reseach Center, Mountain View, CA, February 15, 2011

Cluster Computing with DryadLINQ
San Jose State University Course 297C1 on Cloud Computing, Santa Clara, CA, September 13, 2010

Large-Scale Machine Learning using DryadLINQ
Workshop on Ambient Intelligence: From Sensor Networks to Smart Environments and Social Media, Stanford University, June 1, 2010

Large-Scale Machine Learning using DryadLINQ
SIAM Workshop on High Performance Analytics, Columbus, OH, May 1, 2010

Cluster Computing with DryadLINQ
Cloudera, Inc., Burlingame, CA, February 12, 2010

Cluster Computing with DryadLINQ
Guest lecture for the graduate course Cloud Computing: Infrastructure, Services, and Applications, UC Berkeley, Berkeley, CA, March 4, 2009

Hunting for Bugs with Artemis
USENIX Workshop on the Analysis of System Logs (WASL), San Diego, CA, December 7, 2008

Cluster Computing for the masses with DryadLINQ
Intel Research/UC Berkeley System Seminar Series, Intel Research, Berkeley, CA, October 9, 2008

DryadLINQ - a language for data-parallel computation on computer clusters
Cloud Computing-the New Face of Computing-Promises and Challenges, Stanford, CA, July 19, 2008

Cluster Computing with DryadLINQ
Palo Alto Research Center CSL Colloquium, Palo Alto, CA, May 8, 2008

Cluster Computing with Dryad
Microsoft Live Labs, Bellevue, WA, March 4, 2008

A Toolkit for Machine-Learning in DryadLINQ
Microsoft Research SVC, Mountain View, CA, January 30, 2008

Critical Path: A Tool for System-Level Timing Analysis
Microsoft Research SVC, Mountain View, CA, May 23, 2007

Architectural Support for Software-Based Protection
ASID 2006, San Jose, CA, October 21, 2006

On the Critical Path of Computations
Tensilica, Inc., Santa Clara, CA, August 3, 2006

Spatial Computation
Google, Mountain View, CA, May 10, 2005

Dataflow: A Complement to Superscalar
ISPASS 2005, Austin, TX, March 22, 2005

Inter-Iteration Scalar Replacement in the Presence of Conditional Control-Flow
ODES 2005, San Jose, CA, March 20, 2005

Spatial Computation
ASPLOS 2004, Boston, MA, October 11, 2004

Spatial Computation
SDI seminar, July 8, 2004, CMU.

Spatial Computation — Computing without General-Purpose Processors
Invited talk

  • Microsoft Research, Redmond, WA, February 24, 2004.
  • University of Pittsburgh CS, PA, March 31, 2004.
  • Georgia Tech CS, Atlanta, GA, April 6-7, 2004.
  • Purdue University CS, West Lafayette, IN, April 8-9, 2004.
  • Columbia University CS, New York, April 14, 2004.
  • Toyota Technical Institute CS, Chicago, April 26, 2004.
  • University of Illinois at Urbana-Champaign CS+ECE, April 27-29, 2004.
  • University of Chicago CS, April 30, 2004.
  • Microsoft Research, Silicon Valley, CA, May 17-18, 2004.

Compiling C to Asynchronous Hardware
Tutorial at ASYNC 2004, April 19, 2004, Hersonissos, Crete, Grece.

On the Energy Efficiency of Computation
CALCM Seminar, Carnegie Mellon University, February 17, 2004

Spatial Computation
Ph.D. Thesis Defense, December 8, 2003, CMU.
Slides with notes in pdf.

Spatial Computation
CACLM seminar, October 21, 2003, CMU.

Compiling for Application-Specific Hardware
STMicroelectronics, June 2003, San Diego, CA.

Optimizing Memory Accesses for Spatial Computation
CGO 03, San Francisco, CA, March 2003

ASH: A Substrate for Scalable Architectures
CACLM seminar, March 19, 2002, CMU.

Compiling Application-Specific Hardware
12th International Conference on Field Programmable Logic and Applications FPL 02, September 4, 2002, Montpellier (La Grande-Motte), France.

Peer-to-peer Hardware-software Interfaces for Reconfigurable Fabrics
IEEE Symposium on Field Programmable Gate Arrays, FCCM 02, Napa Valley, CA, April 24 2002.

Application-Specific Hardware: Computing Without CPUs
Fourth CMU Symposium on Computer Systems, SOCS-4, October 2001, CMU.

General-Purpose Computation without General-Purpose Processors
Thesis proposal, July 2001, CMU.

NanoFabrics: Spatial Computing using Molecular Electronics
SSS Seminar, April 20, 2001, CMU.

BitValue Inference: Detecting and Exploiting Narrow Bitwidth Computations
6th International Euro-par 00 Conference
Munich, Germany, August 2000.

Detecting and Exploiting Narrow Bitwidth Computations
Second CMU Symposium on Computer Systems, SOCS-2, Sept 1999, CMU.

The CMU Reconfigurable Computing Project
SSS Seminar, Sept 1999, CMU.

The CMU Reconfigurable Computing Project
August 1999, Bell Labs, Lucent Technologies.

Fast Compilation for Pipelined Reconfigurable Fabrics
Seventh ACM/SIGDA International Symposium on Field Programmable Gate Arrays, FPGA 99, Monterey, CA, Feb 23, 1999.

Fast Compilation for Pipelined Reconfigurable Fabrics
SDI Seminar, December 1998, CMU.

PicOs: A Microkernel Operating System
Second Romanian Open Systems Event, ROSE 95, Bucharest, Romania, Nov 2 1995.

Non-refereed publications
PROPOSAL 01 General-Purpose Computation without General-Purpose Processors
Mihai Budiu
Thesis proposal, July, 2001, 25 pages
PROJECT 97 ext4: A Dual-Disk Filesystem
Mihai Budiu
April, 1997
CS614, Advanced Operating Systems course project
SLASHDOT 01 An Interview with Bruce Maggs
Mihai Budiu
Slashdot, March 28, 2001
SLASHDOT 00 An Interview with Brian Kernighan
Mihai Budiu
Slashdot, September 4, 2000
Interviews
WhoWhatWhen
Brian Kernighan Researcher, Bell LabsJuly 2000
Bruce MaggsVP, Akamai Inc.March 2001
Chuck ThackerTechnical Fellow, MicrosoftOct 2006
Leslie LamportResearcher, MicrosoftMay 2007
Kurt AkeleyResearcher, MicrosoftFebruary 2009
Magazine Articles (Romanian)
ZIGGY 96 e-mail
Mihai Budiu
Ziggy Computer Magazine, May, 1996
BYTE 96 A Brief History of Unix
Mihai Budiu
Byte Romania, August, 1996
Reprinted with updates in ``Gazeta Informatica'' in 1998
GI 98 Data Types
Mihai Budiu
Gazeta Informatica, Vol. , no , 1998
AGORA 99 A Guide to Ph.D. Admission in US Universities
Mihai Budiu
``Agora On-Line'' Magazine, 1997-2001, 52 + index pages
Extensively replicated and linked-to on the Web
Monthly Column
in Net Report Romania

Monthly column (3000-8000 words)
NET Report Romanian Computer Magazine (name changed in 2001 from PC Report)
August 1996-February 2002.

Article Printed
The C Compiler August 1996
How to Write Programs October 1996
The Unix Filesystem November 1996
OS Kernels December 1996
User-space Multithreading January 1997
Caches March 1997
The ``Back-Door'' April 1997
Who's Afraid of Emacs? May 1997
The Unix Shell June 1997
``Corect'': a spell-checker for Romanian July 1997
New Trends in Algorithms Research August 1997
Why Microkernels are Losing September 1997
Efficient File Systems October 1997
The Functioning of the Unix Filesystem December 1997
The Anatomy of a System Call in Linux January 1998
The Virtual Filesystem Switch February 1998
Watchdogs: A Project in Operating Systems March 1998
Atomic Transactions April 1998
Routing in the Internet May 1998
Open-Source Software June 1998
Reconfigurable Hardware July 1998
Kerberos August 1998
System Measurements I: Tools September 1998
System Measurements II: Measuring the OS October 1998
Cache Coherence in SMP Systems November 1998
CPU Pipelining December 1998
Memory Allocation in OS Kernels January 1999
LAN Bridges February 1999
Internet Tunneling April 1999
Scalability in Computer Networks (with Ion Stoica) May 1999
DDD - a Visual Debugger June 1999
Register Renaming July 1999
Branch Prediction August 1999
Boolean Satisfiability I: Theoretical Issues October 1999
Boolean Satisfiability II: Practical Solutions November 1999
Computational Complexity I: Computability December 1999
Computational Complexity II: The Polynomial Hierarchy February 2000
Cognitive Sciences (with Raluca Budiu) March 2000
The Future of Microprocessors March 2000
Regular Expressions April 2000
Cooperation and Competition in the Internet May 2000
Research in Robotics (with Cristi Dima) June 2000
Computer Vision in Robotics (with Cristi Dima) June 2000
An Interview with Brian Kernighan August 2000
A Music Digital Library (with Cristi Francu) September 2000
LaTeX: a document preparation system for mathematics October 2000
The CMU Ballista project November 2000
Shell programming December 2000
Micro-electro-mechanical systems January 2001
Non-Work-Conserving Scheduling Disciplines in Computer Networks February 2001
An interview with Bruce Maggs (Akamai Technologies) March 2001
Nanotechnology and the Future of Computing May 2001
Spatial Computation June 2001
DDoS Attacks in the Internet July 2001
Speculative Execution September 2001
The CodeRed Internet Worm October 2001
Metacompilation November 2001
Reliability in Computer Architecture: I Hardware January 2002
Reliability in Computer Architecture: II Software February 2002

Employment

Work experience
Researcher
Fall 2004-Fall 2014, Microsoft Research, Silicon Valley.
Consultant
2006-2008, Rapport, Inc.
Postdoc
Fall 2003-Summer 2004, Carnegie Mellon University, prof. Seth Copen Goldstein, member of the Phoenix project.
Research assistant
Fall 1997-Summer 2003, Carnegie Mellon University, Computer Science Dept., prof. Seth Copen Goldstein. Compilation for reconfigurable hardware devices. I have developed a custom hardware description language called DIL and a CAD tool which optimizes, places and routes DIL programs on the PipeRench reconfigurable hardware chip. I have designed and built a framework for cycle-accurate simulation of systems comprising processors and reconfigurable hardware using the SimpleScalar tool set. I have developed the CASH optimizing compiler which translates ANSI C programs to asynchronous hardware circuits.
Research intern, Summer 2000
Bell Labs, Lucent Technologies, Murray Hill, NJ. Supervisor: Nevin Heintze. I studied compilation issues for a custom massively parallel DSP chip.
Research intern, Summer 1999
Bell Labs, Lucent Technologies, Murray Hill, NJ. Supervisor: Nevin Heintze. I studied the use of reconfigurable hardware devices for the acceleration of Digital Signal Processing applications.
Research assistant
Summer 1997, Carnegie Mellon University, Computer Science Dept., prof. Garth Gibson. During this summer I worked for the Parallel Data Lab, developing a multithreaded filesystem cache based on variable-size extents. This project was used by the Network Attached Secure Disks project.
Assistant editor
January 1998-February 2002, the Romanian Computer Magazine NET Report (PC Report), www.pcreport.ro.
Columnist
August 1996-February 2002 (monthly feature) in the Romanian Computer Magazine NET Report (PC Report).
Network administrator
1995; ``Politehnica'' University of Bucharest Communication Center, central hub of the Romanian Education Network, RoEduNet www.roedu.net.
Computer Programmer
1994; VAL Informatique, Bucharest, Romania (databases).
Unix System Administrator
1993; ``Politehnica'' University of Bucharest, Digital Signal Processing Laboratory.
Interns supervised
WhoFromWhen
Girish VenkataramaniCMU2005
Lucian PopaUCB2006
Gabriela Creţu-CiocârlieColumbia2008
Hari KannanStanford2008
Zuoning YinUIUC2009
Vilas JagannathUIUC2010
Joel GalensonUCB2010
Joel GalensonUCB2011
Qingzhou LuoUIUC2012
Yan ChenMPI-SWS2012
Cosmin AradKTH2012
Samer Al KiswanyUBC2013
Deniz AltinbukenCornell2013
Yazan BoshmafUBC2014
Danel AhmanUniversity of Edinborough2013
Teaching
TA, Spring 2000
(Teaching Assistant) Carnegie Mellon University, for 15-453 ``Formal Languages, Automata and Computation'' (senior level). Professor: Frank Pfenning. My (powerpoint) lecture on "Turing Machines and the Real World".
TA, Spring 1999
Carnegie Mellon University, for 15-451 ``Algorithms'' (senior level). Professor: Avrim Blum.
TA, Spring 1997
Cornell University, for CS514 ``Distributed Operating Systems'' (master level). Professor: Kenneth Birman.
TA, Fall 1996
Cornell University, for CS414 ``Operating Systems'' and CS415 ``Practicum in Operating Systems'' (senior level). Professor: Kenneth Birman.
TA, Spring 1996
``Politehnica'' University, Bucharest, for ``Computer Networks'' (senior level).
TA, Fall 1995
``Politehnica'' University, for ``Compiler Design'' (senior level). Professor: Irina Athanasiu.
Teacher, 1992-1995
``Informatics'' High School, Bucharest; taught the classes ``Programming Languages'', ``Data Structures'' and ``Algorithms''. Responsible for all aspects of the course: curriculum, lesson plan, test administration, grading, projects.
Teacher, 1989
``Informatics'' High School, Bucharest; taught the freshman class ``BASIC HC 85''. Responsible for devising the curriculum and delivering all lectures.
Instructor, 1987-1988
``Informatics'' High School, Bucharest; ran seminars on computer programming for high school students.
Service
Reviewer
for:
  • IEEE Transactions on Computers, 2004, 2006, 2013
  • IEEE Transactions on Software Engineering, 2006
  • IEEE Transactions on Dependable and Secure Computing 2005, 2011
  • IEEE Transactions on VLSI, 2005, 2008
  • IEEE Transactions on CAD, 2007 -- 2010
  • IEEE Computer, 2008
  • IEEE Software, 2012
  • ACM Transactions on Computer Systems, 2010
  • ACM Transactions on Parallel and Distributed Systems, 2010
  • ACM Transactions on Database Systems, 2010
  • ACM Transactions on Internet Technologies, 2011
  • ST Journal for Systems Research 2003
  • International Journal of Electronics 2005, 2006
  • Elsevier Journal for Systems and Software 2006, 2007, 2013
  • Elsevier Journal for Embedded Hardware Design (Microprocessors and Microsystems) 2009
  • International Journal of Information Security, 2009, 2010
  • IPSI Transactions on Internet Research 2007
  • Journal of Reconfigurable Computing, 2010
  • Software: Practice and Experience, 2012, 2013
  • Concurrency and Computation: Practice and Experience, 2013

  • PLDI (ACM/SIGPLAN Conference on Programming Language Design and Implementation) 2009
  • ISCA (ACM/IEEE International Symposium on Computer Architecture): 2002-2005
  • HPCA (IEEE International Symposium on High-Performance Computer Architecture) 2006
  • ASPLOS (ACM International Conference on Architectural Support for Programming Languages and Operating Systems) 2006, 2010, 2013, 2014
  • OSDI (Usenix Symposium on Operating Systems Design and Implementation) 2006, 2012, 2013
  • SPAA (ACM Symposium on Parallelism in Algorithms and Architectures) 2011
  • CGO (IEEE/ACM International Symposium on Code Generation and Optimization) 2007, 2010
  • CCS (ACM Conference on Computer and Communication Security) 2011
  • Usenix security 2006
  • Usenix ATC (Usenix Annual Technical Conference) 2011
  • ICCAD (IEEE International Conference on Computer-Aided Design): 2001, 2003, 2005
  • DAC (ACM/IEEE Design Automation Conference) 2004
  • PODC (ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing) 2006
  • POPL (ACM Symposium on Principles of Programming Languages) 2013
  • PACT (ACM/IEEE Parallel Architecture and Compilation Techniques) 2005, 2008
  • CASES (ACM/IEEE International Conference on Compilers, Architecture, and Synthesis for Embedded Systems) 2006
  • ASP-DAC (IEEE Asia and South-Pacific Design Automation Conference) 2005
  • SAC (ACM Symposium on Applied Computing) 2005, 2007
  • RTAS (IEEE Real-Time and Embedded Technology and Applications Symposium) 2005
  • ISVLSI (IEEE Computer Society Annual Symposium on VLSI) 2005, 2006
  • COMPSAC (IEEE Computer Software and Applications) 2005
  • VLSI-SOC (IFIP International Conference on VLSI Systems-on-a-Chip) 2005
  • MASCOTS (IEEE International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems) 2005
  • ISOCC (IEEE International System-on-a-Chip Design Conference) 2005
  • ISCAS (IEEE International Symposium on Circuits and Systems) 2007
  • GLSVLSI (ACM/IEEE Great Lakes Symposium on VLSI) 2006, 2007
  • FPL (IEEE International Conference on Field Programmable Logic and Applications) 2007 -- 2010
  • SASIMI (Workshop on Synthesis And System Integration of Mixed Information technologies) 2006
  • APLAS (Asian Symposium on Programming Languages and Systems) 2006
  • CSR (International Computer Science Symposium in Russia) 2006
  • ARC (International Workshop on Applied Reconfigurable Computing) 2005-2011
  • SOCA (IEEE International Service-Oriented Computing and Applications) 2010
  • MTAGS (IEEE Workshop on Many-Task Computing on Grids and Supercomputers) 2010, 2012
  • SRDS (International Symposium on Reliable Distributed Systems) 2011
  • HotCloud (Usenix Workshop on Topics in Cloud Computing) 2010 -- 2011
  • CloudCom (IEEE International Conference on Cloud Computing Technology and Science) 2011, 2012
  • CCGrid (IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing) 2012

  • Morgan Kaufmann 2007
  • Springer 2008
  • Richard Newton Award 2008
  • Microsoft Faculty Fellowship 2010-2011
  • Microsoft Women's Scholarship 2012, 2013
  • Microsoft Research Fellowship 2013-2014
Program committee member
Panel member
NSF Career 2004
Program chair
for SOCS-4, the Fourth CMU Symposium on Computer Systems, Carnegie Mellon University, October 6, 2001
Program committee member, publications chair and session chair
for SOCS-3: the Third CMU Symposium on Computer Systems, Carnegie Mellon University, October 14 2000.
Organizer
of the CMU SCS Student Seminar Series: Fall 1999-Fall 2002.
Creator and maintainer between 2000--2005
of the ``Who's who in compilers and computer architecture'' web page with researchers, photos, web links and research summaries.
Author
of the first Romanian ispell dictionaries and configuration files www.cs.cmu.edu/~mihaib/ftp/rom-spell.taz. Apparently it is the basis of the Romanian dictionaries used by aspell and OpenOffice.
Hobbies
(If you insist)
Classical music, piano
Photography
Downhill skiing