Curriculum Vitae - Mihai Budiu

Personal Information

Personal information
Last name Budiu
First name Mihai-Dan
Position Researcher
Company Microsoft Research
Office Address Microsoft Research SVC,
1065 La Avenida
Mountain View, CA 94043
Office Telephone(650) 693-1440
Cellphone(412) 216-8430
E-mail mbudiu (-at-) microsoft.com
URL www.cs.cmu.edu/~mihaib

Research Interests

Research Interests

At Microsoft Research I am working in the areas of computer security and distributed file systems.

My thesis research at Carnegie Mellon has spanned the areas of compilers, computer architecture, reconfigurable hardware, and high-level synthesis. My thesis explored a new model of computation: Spatial Computation. In this model of computation one no longer uses general-purpose processors (i.e. microprocessors) to execute programs. Instead, high-level language programs are directly compiled into circuits.

I have implemented two compilers for Spatial Computation: the PipeRench DIL compiler, and CASH, a Compiler for Application-Specific Hardware. The DIL compiler subsumed a complete CAD tool-flow, performing parsing, optimizations, place-and-route, technology mapping, while being 700 times faster than commercial CAD tools. The circuits generated by the CASH compiler feature high computational performance while consuming 1000 less energy compared to a generic microprocessor.

I was a member of the Phoenix and PipeRench projects.

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

Journal publications
Computer 00 Seth Copen Goldstein, Herman Schmit, Mihai Budiu, Srihari Cadambi, Matt Moe, and Reed Taylor
PipeRench: A Reconfigurable Architecture and Compiler
IEEE Computer, pages 70-77, Vol. 33, no 4, April, 2000
TOCS 99 Kenneth P. Birman, Mark Hayden, Oznur Oskasap, Zhen Xiao, Mihai Budiu, and Yaron Minsky
Bimodal Multicast
Transactions on Computer Systems (TOCS), pages 41-88, Vol. 17, no 2, May, 1999
Refereed conferences and workshops
ODES 05 Mihai Budiu and Seth Copen Goldstein
Inter-Iteration Scalar Replacement in the Presence of Conditional Control-Flow
Workshop on Optimizations for DSP and Embedded Systems (ODES), pages 20-29, San Jose, CA, March, 2005
Presentation slides
ISPASS 05 Mihai Budiu, Pedro Artigas, and Seth Copen Goldstein
Dataflow: A Complement to Superscalar
IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), pages 177-187, Austin, TX, March, 2005
Presentation slides
ASPLOS 04 Mihai Budiu, Girish Venkataramani, Tiberiu Chelcea, and Seth Copen Goldstein
Spatial Computation
International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), pages 14-26, Boston, MA, October, 2004
Presentation slides
MSP 04 David Koes, Mihai Budiu, Girish Venkataramani, and Seth Copen Goldstein
Programmer Specified Pointer Independence
Workshop on Memory System Performance (MSP), June, 2004. Also as TR CMU-CS-03-123
IWLS 04 Girish Venkataramani, Mihai Budiu, Tiberiu Chelcea, and Seth Copen Goldstein
C to Asynchronous Dataflow Circuits: An End-to-End Toolflow
International Workshop on Logic synthesis (IWLS), pages 501-508, Temecula, CA, June, 2004. (full paper)
CGO 03 Mihai Budiu and Seth Copen Goldstein
Optimizing Memory Accesses For Spatial Computation
International ACM/IEEE Symposium on Code Generation and Optimization (CGO), pages 216-227, San Francisco, CA, March 23-26, 2003
Presentation slides
FPL 02a Girish Venkataramani, Suraj Sudhir, Mihai Budiu, and Seth Copen Goldstein
Factors Influencing the Performance of a CPU-RFU Hybrid Architecture
International Conference on Field Programmable Logic and Applications (FPL), pages 955-965, Montpellier (La Grande-Motte), France, September, 2002
FPL 02 Mihai Budiu and Seth Copen Goldstein
Compiling Application-Specific Hardware
International Conference on Field Programmable Logic and Applications (FPL), pages 853-863, Montpellier (La Grande-Motte), France, September 2-4, 2002
Presentation slides
FCCM 02 Mihai Budiu, Mahim Mishra, Ashwin Bharambe, and Seth Copen Goldstein
Peer-to-peer Hardware-Software Interfaces for Reconfigurable Fabrics
IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM), pages 57-66, Napa Valley, CA, April, 2002
Presentation slides
SOCS 01 Mihai Budiu
Application-Specific Hardware: Computing Without CPUs
Fourth CMU Symposium on Computer Systems (SOCS), pages 1-10, Carnegie Mellon University, October, 2001
ISCA 01 Seth Copen Goldstein and Mihai Budiu
NanoFabrics: Spatial Computing Using Molecular Electronics
International Symposium on Computer Architecture (ISCA), pages 178-189, Göteborg, Sweden, 2001
EuroPar 00 Mihai Budiu, Majd Sakr, Kip Walker, and Seth Copen Goldstein
BitValue Inference: Detecting and Exploiting Narrow Bitwidth Computations
European Conference on Parallel Processing (EUROPAR), pages 969-979, Münich, Germany, 2000. An expanded version is in TR 00
Presentation slides
FCCM 00 Kip Walker, Mihai Budiu, and Seth Copen Goldstein
Interfacing Reconfigurable Logic with a CPU
IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM), pages 317-318, Napa Valley, CA, 2000
SOCS 99 Mihai Budiu
Detecting and Exploiting Narrow Bitwidth Computations
Second Annual CMU Symposium on Computer Systems (SOCS), pages 55-64, Carnegie Mellon University, September, 1999
ISCA 99 Seth Copen Goldstein, Herman Schmit, Matthew Moe, Mihai Budiu, Srihari Cadambi, R. Reed Taylor, and Ronald Laufer
PipeRench: a Coprocessor for Streaming Multimedia Acceleration
International Symposium on Computer Architecture (ISCA), pages 28-39, Atlanta, GA, 1999
FPGA 99 Mihai Budiu and Seth Copen Goldstein
Fast Compilation for Pipelined Reconfigurable Fabrics
ACM/SIGDA International Symposium on Field Programmable Gate Arrays (FPGA), pages 195-205, Monterey, CA, 1999
Presentation slides
ROSE 95 Mihai Budiu
PicOs: A Microkernel Operating System
International Conference Romanian Open Systems Event, pages 255-261, Bucharest, Romania, November, 1995. My presentation was just before Linus Torvalds'.
Book and book chapter
Chapter 03 Seth Copen Goldstein and Mihai Budiu
Molecules, Gates, Circuits, Computers
in Molecular Nanoelectronics, pages 327-388, American Scientific Publishers, January, 2003
Book 89 Mihai Budiu
BASIC HC 85
Manuscript, in Romanian, 190 pages, 1989. 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
ASAP 03 Seth Goldstein, Mihai Budiu, Mahim Mishra, and Girish Venkataramani
Reconfigurable Computing and Electronic Nanotechnology
IEEE International Conference on Application-specific Systems, Architectures and Processors, pages 132-143, Hague, the Netherlands, June 24-26, 2003. Invited paper
Theses and technical reports
TR 05 Martín Abadi, Úlfar Erlingsson, Jay Ligatti, and Mihai Budiu
Control-Flow Integrity
Microsoft Research, 12 pages, MSR-TR-2005-18, February, 2005
TR 05a Úlfar Erlingsson, Mihai Budiu, Martín Abadi, and Jay Ligatti
A Theory of Secure Control Flow
Microsoft Research, 12 pages, MSR-TR-2005-17, February, 2005
TR 04 Mihai Budiu and Seth Copen Goldstein
Inter-Iteration Scalar Replacement in the Presence of Conditional Control-Flow
Carnegie Mellon University, Department of Computer Science, 30 pages, CMU-CS-04-103, February, 2004
PhD Thesis 03 Mihai Budiu
Spatial Computation
Ph.D. Thesis, Carnegie Mellon University, Computer Science Department, 225 pages, CMU-CS-03-217, December, 2003. Technical report CMU-CS-03-217
TR 03 David Koes, Mihai Budiu, Girish Venkataramani, and Seth Copen Goldstein
Programmer Specified Pointer Independence
Carnegie Mellon University, Department of Computer Science, CMU-CS-03-123, April, 2003
TR 02 Mihai Budiu and Seth Copen Goldstein
Pegasus: An Efficient Intermediate Representation
Carnegie Mellon University, 20 pages, CMU-CS-02-107, May, 2002
TR 00 Mihai Budiu and Seth Copen Goldstein
BitValue Inference: Detecting and Exploiting Narrow Bitwidth Computations
Carnegie Mellon University, Computer Science Department, 28 pages, CMU-CS-00-141, June, 2000
TR 99 Kenneth Birman, Mark Hayden, Oznur Ozkasap, Zhen Xiao, Mihai Budiu, and Yaron Minsky
Bimodal Multicast
Cornell University Computer Science Department, 43 pages, TR99-1745, May 11, 1999
TR 98 Mihai Budiu and Raluca Budiu
User-Level File Service Based on Watchdogs
Computer Science Department, Carnegie Mellon University, pages 81-92, CMU-CS-98-103, 1998. Part of a larger technical report.
MS Thesis 96 Mihai Budiu
Solving Image Oversegmentation in Parallel
M.S. Thesis, ``Politehnica'' University of Bucharest, 35 pages, August 1996
BS Thesis 95 Mihai Budiu
PicOs -- a Microkernel Implementation for a Distributed Operating System
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 Mihai Budiu
Structured Filesystem Implementation
Research Report, ``Politehnica'' University of Bucharest, March, 1994
RR 93 Mihai Budiu
An Implementation of Combinatorial Circuit Simplification using the Transduction Method
Research Report, Eindhoven Technical University, Netherlands, June, 1993
RR 92 Mihai Budiu
Silicon Operating System Primitives
Research Report, Eindhoven Technical University, Netherlands, June, 1992
Non-refereed publications
Proposal 01 Mihai Budiu
General-Purpose Computation without General-Purpose Processors
Thesis proposal, 25 pages, July, 2001
Project 97 Mihai Budiu
ext4: A Dual-Disk Filesystem
Cornell University Course Project, CS614, Advanced Operating Systems, April 1997. Extensively linked to on the Web, as example of Linux kernel filesystem programming. A company manufacturing solid-state disks expressed interests in making it a commercial product
Slashdot 01 Mihai Budiu
An Interview with Bruce Maggs
featured on Slashdot, March 28, 2001
Slashdot 00 Mihai Budiu
An Interview with Brian Kernighan
featured on Slashdot, September 4, 2000
Magazine Articles (Romanian)
Ziggy 96 Mihai Budiu
e-mail
Ziggy Computer Magazine, Bucharest, Romania, May 1996
BYTE 96 Mihai Budiu
A Brief History of UNIX
Byte Romania, Bucharest, Romania, August 1996. Reprinted with updates in ``Gazeta Informatica'' in 1998
GI 98 Mihai Budiu
Data Types
in ``Gazeta Informatica'', Bucharest, Romania, 1998
Agora 99 Mihai Budiu
A Guide to PhD Admission in US Universities
Magazine ``Agora On-Line'', 52 pages + index, 1997-2001. 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

Presentations

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

Dataflow: A Complement to Superscalar
IEEE International Symposium on Performance Analysis of Systems and Software ISPASS 05, March 21-22, 2005, Austin, TX.

Inter-Iteration Scalar Replacement in the Presence of Conditional Control-Flow
3rd Workshop on Optimizations for DSP and Embedded Systems ODES 05, March 20, 2005, San Jose, CA.

Spatial Computation
11th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS 04, October 11, 2004, Boston, MA.

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.

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

On the energy efficiency of computation
CALCM Seminar, February 17, 2004, CMU.

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
1st International ACM/IEEE Symposium on Code Generation and Optimization, CGO 03, March 2003, San Francisco, CA.

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.

Experience

Teaching experience
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.
Work experience
Researcher
Fall 2004-current, Microsoft Research, Silicon Valley.
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. I worked in 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 energy-efficient 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 (old name PC Report), www.pcreport.ro.
Columnist
August 1996-February 2002 (monthly feature) in the Romanian Computer Magazine NET Report (old name PC Report) since August 1996.
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.
Other activities
Reviewer
for ICCAD 2001, 2003, ISCA 2002-2005, DAC 2004, ST Journal for Systems Research 2003, IEEE Transactions on Computers 2004, NSF CAREER 2004, ASP-DAC 2005, SAC 2005, RTAS 2005, ISVLSI 2005, COMPSAC 2005, TDSC 2005, PACT 2005, IJE 2005, ICCAD 2005.
Program committee member
International Workshop on Applied Reconfigurable Computing (ARC 2005), Algarve, Portugal, February 22, 2005.
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
of the ``Who's who in compilers and architecture'' web page, with over 1000 researchers, photos, urls 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
Photography
Downhill skiing, tennis