Curriculum Vitae
Saman Prabhath Amarasinghe
ACADEMIC AND RESEARCH EXPERIENCE
Professor, Massachusetts Institute of Technology, Cambridge,
MA
|
July 2009 - present
|
Associate
Professor, Massachusetts Institute of Technology, Cambridge,
MA
|
July 2001 - June 2009
|
|
|
Assistant
Professor, Massachusetts Institute of Technology, Cambridge,
MA
|
February 1997 - June 2001
|
Department of Electrical Engineering and
Computer Science and Laboratory for
Computer Science
|
Leader
of the Commit Group and co-leader
of the RAW project. Research interest include compiler algorithms, computer
architecture and parallel processing. Interested in discovering novel
approaches to improve the performance of modern computer systems without
unduly increasing the complexity faced by either application developers,
compiler writers or computer architects.
|
Research
Assistant,
Stanford University, Stanford
CA
|
January 1990 - January 1997
|
Performed
research in parallelizing compilers and parallel architectures. Participated
in the design and implementation of the SUIF
compiler system, a publicly available parallelizing and optimizing
compiler system that is specifically designed to support research and rapid prototyping.
SUIF is currently used at many universities and companies.
|
Teaching
Assistant,
Western Institute of Computer Science,
Stanford,
CA
|
Summers 1991, 1992
|
Planned
and conducted sections for a parallel architectures and compilers course for
professionals.
|
PROFESSIONAL EXPERIENCE
CTO,
Determina, Inc., Redwood
City, CA
|
June 2003 - present
|
Co-founded
Determina to bring the Host Intrusion Prevention technology (Program
Shepherding) developed at MIT to the market.
|
Member,
Technical Advisory Board, Millennium
Information Technologies, Cambridge, MA
|
July 2001 - present
|
Technical
Advisor.
|
Consultant, Delta Search
Labs. Cambridge,
MA
|
June 2001 - December 2001
|
Technical
Advisor.
|
Consultant,
McDonell Boehnen
Hulbert and Berghoff, Chicago, IL
|
March 2000 - June 2000
|
Expert
Witness.
|
Director, Lanka Internet Services, Ltd. Colombo,
SRI LANKA
|
January 1994 - June 2001
|
Co-founded
the first internet service provider in Sri Lanka. Was involved in all aspects
of the start-up process and served as the primary technical advisor.
|
Independent
Consultant,
Thinking Machines Corporation, Boston, MA
|
February 1994
|
Parallel
Compiler Group
Helped formulate the communication optimization and code generation strategy
for the HPF compiler.
|
Software
Engineer, Stanford University, Stanford,
CA
|
September 1988 - December
1989
|
Networking and Communication Systems
Designed, developed, and maintained a TCP/IP protocol stack
and related software for PCs.
|
Development
Engineer, Microsoft Corporation, Redmond,
WA
|
Summers 1988, 1989
|
LAN
Manager group
Developed OS/2 kernel debugger extensions, analyzed and improved the LAN
Manager server performance, and participated in the debugging process of the
server. Helped start internationalization process of the LAN Manager family
of products.
|
Programmer
/ Analyst,
Cornell University, Ithaca, NY
|
January 1986 - June 1988
|
Engineering
Placement Office
Designed, developed, and maintained a national award-winning software package
to handle the interview sign-up and scheduling process.
|
Technical
Consultant,
Cornell University, Ithaca, NY
|
August 1987 - June 1988
|
Career Center
Planned the automation strategy for the center and its library.
|
Co-op
Engineer, Xerox Corporation, Webster,
NY
|
Summer 1986,
August - December 1985
|
High
Volume Product Development Reprographics Business Group
Developed device drivers and evaluated the use of hard drives to store
real-time scanned data. Designed and developed a control system for a
xerographic sub-system of a test fixture.
|
EDUCATION
Doctor
of Philosophy in Electrical Engineering
Stanford University, Stanford, CA
|
January
1997
|
|
|
Master
of Electrical Engineering
Stanford University, Stanford, CA
|
June
1990
|
|
|
Bachelor
of Science
Cornell University, Ithaca, NY
Majors: Electrical Engineering and Computer Science
|
May
1988
|
|
|
University of Moratuwa,
Moratuwa, Sri Lanka
|
January
1984 - June 1984
|
|
|
G.C.E.
A/L
Royal College, Colombo, Sri Lanka
|
1972
- 1982
|
|
|
Grade
2
Thurston Junior, Colombo, Sri Lanka
|
1970
- 1971
|
AWARDS
AND HONORS
InfoWorld
Innovator 2005 Award, InfoWorld
Magazine
IBM Eclipse Innovation Award.
Arthur Samuel Best PhD Thesis Award, Computer
Science Dept., Stanford University
CIS Fellowship from Intel Corporation
Eta Kappa Nu
Tau Beta Pi
Phi Kappa Phi
PROFESSIONAL ACTIVITIES
Program
Committee Member:
ACM SIGPLAN Conference on Programming Language Design and Implementation
(PLDI), 2004.
36th Annual International Symposium
on Microarchitecture(Micro), 2003.
The Twelfth International Conference on Parallel
Architectures and Compilation Techniques (PACT), 2003.
First Annual IEEE/ACM International Symposium on Code
Generation and Optimization (CGO), 2003.
35th Annual International Symposium
on Microarchitecture(Micro), 2002.
16th
Annual International Conference on Supercomputing (ICS), 2002.
6th Workshop on Languages, Compilers, and Run-time Systems
for Scalable Computers (LCR), 2002.
29th
Annual International Symposium on Computer Architecture (ISCA), 2002.
34th Annual International Symposium on Microarchitecture (Micro) 2001.
Ninth International Conference on Architectural Support for
Programming Languages and Operating Systems (ASPLOS), 2000.
27th Annual International Symposium on Computer Architecture
(ISCA), 2000.
ACM SIGPLAN Conference on Programming Language Design and
Implementation (PLDI), 2000.
Eleventh IASTED International Conference on Parallel and
Distributed Computing and Systems, 1999.
High Performance Networking and Computing Conference(SC99),
1999.
Eighth International Conference on Architectural Support for
Programming Languages and Operating Systems (ASPLOS), 1998.
Associate Editor: ACM Transactions on Architecture and Code
Optimization, 2003 to 2006.
Co-chairman: The First Workshop on Streaming Systems, 2003.
Reviewer: IEEE Transactions on Parallel and Distributed Systems, ACM
SIGPLAN Conference on Programming Language Design and Implementation (PLDI),
ACM SIGPLAN Conference on Principles and Practice of Parallel Programming (PPoPP), ACM SIGPLAN Conference on Object-Oriented
Programming Systems, Languages, and Applications (OOPSLA), Supercomputing, and
Symposium on the Frontiers of Massively Parallel Computation.
Member: Technical Advisory Committee, University of Colombo School of
Computing, Colombo, Sri Lanka
PUBLICATIONS
Journal
Articles, Refereed Conference and Workshop Papers
2006
- Exploiting
Coarse-Grained Task, Data, and Pipeline Parallelism in Stream Programs.
Michael Gordon, William Thies, and Saman Amarasinghe
In In Proceedings of the Twelfth
International Conference on Architectural Support for Programming
Languages and Operating Systems (ASPLOS), San Jose, CA, October, 2006.
- Abstraction
Layers for Scalable Microfluidic Biocomputers.
William Thies, John Paul Urbanski, Todd Thorsen
and Saman Amarasinghe
In Proceedings of the 12th International Meeting on DNA Computing (DNA
2006), Seoul, Korea, June, 2006.
- MPEG-2
Decoding in a Stream Programming Language.
Matthew Drake, Henry Hoffman, Rodric Rabbah, and Saman Amarasinghe
In Proceedings of the 20th IEEE International Parallel &
Distributed Processing Symposium, Rhodes Island (IPDPS), Rhodes
Island, Greece, April, 2006.
- Digital microfluidics using soft lithography..
John Paul Urbanski, William Thies, Christopher
Rhodes, Saman Amarasinghe, and Todd Thorsen,
In Lab on a Chip, January, 2006, 6(1), pp. 96-104.
2005
- Exploiting
Vector Parallelism in Software Pipelined Loops.
Samuel Larsen, Rodric Rabbah, and Saman Amarasinghe.
In Proceedings of the 38th International Symposium on Microarchitecture (Micro), Barcelona, Spain,
November, 2005.
- Convergent
Scheduling.
Diego Puppin, Mark Stephenson, Walter Lee, and Saman Amarasinghe.
In Journal of Instruction-Level Parallelism (JILP), September,
2005.
- Optimizing
Stream Programs Using Linear State Space Analysis.
Sitij Agrawal, William
Thies, and Saman Amarasinghe.
In Proceedings of the 2005 International Conference on Compilers,
Architecture, and Synthesis for Embedded Systems (CASES), San
Francisco, September, 2005.
- High-Productivity
Stream Programming For High-Performance Systems.
Rodric Rabbah, Bill Thies, Michael Gordon, Janis Sermulins,
and Saman Amarasinghe.
In Proceedings of the Ninth Annual High Performance Embedded Computing
Workshop (HPEC), Lincoln, MA, September 2005.
- Teleport
Messaging for Distributed Stream Programs.
William Thies, Michal Karczmarek, Janis Sermulins,
Rodric Rabbah, and Saman Amarasinghe.
In Proceedings of ACM SIGPLAN 2005 Symposium on Principles and Practice
of Parallel Programming (PPoPP), Chicago,
Illinois, June, 2005.
- Cache
Aware Optimization of Stream Programs.
Janis Sermulins, William Thies, Rodric Rabbah,
and Saman Amarasinghe.
In Proceedings of the 2005 Conference on Languages, Compilers, and
Tools for Embedded Systems (LCTES), Chicago, Illinois, June, 2005.
- Language and Compiler Design for Streaming Applications .
Saman Amarasinghe, Michael I. Gordon, Michal Karczmarek, Jasper Lin, David
Maze, Rodric M. Rabbah, and William Thies.
In International Journal of Parallel Programming, Vol. 33, Nos.
2/3, June 2005.
- Maintaining
Consistency and Bounding Capacity of Software Code Caches.
Derek Bruening and Saman Amarasinghe.
In Proceedings of the 3rd International Symposium on Code Generation
and Optimization (CGO), San Jose, California, March, 2005.
- Predicting
Unroll Factors Using Supervised Classification.
Mark Stephenson and Saman Amarasinghe.
In Proceedings of the 3rd International Symposium on Code Generation
and Optimization (CGO), San Jose, California, March, 2005.
- A Productive
Programming Environment for Stream Computing.
Kimberly Kuo, Rodric Rabbah, and Saman
Amarasinghe.
In Second Workshop on Productivity and Performance in High-End
Computing, San Francisco, California, February, 2005.
- Scalar
Operand Networks.
Michael Bedford Taylor, Walter Lee, Saman Amarasinghe, and Anant Agarwal.
In Transactions on Parallel and Distributed Systems (Special Issue on
On-chip Networks), February 2005.
2004
- Convergent
Scheduling.
Diego Puppin, Mark Stephenson, Walter Lee, Saman Amarasinghe.
In Journal of Instruction-Level Parallelism, Volume 6, September
2004.
- Evaluation
of the Raw Microprocessor: An Exposed-Wire-Delay Architecture for ILP and
Streams.
Michael Taylor, Walter Lee, Jason Miller, David Wentzlaff,
Ian Bratt, Benjamin Greenwald, Henry Hoffman,
Paul Johnson, Jason Kim, James Psota, Arvind Saraf, Nathan Shnidman,
Volker Strumpen, Matthew Frank, Saman
Amarasinghe, and Anant Agarwal.
In Proceedings of the 31st Annual International Symposium on Computer
Architecture (ISCA), Munich, Germany, June, 2004.
2003
- Adapting Convergent Scheduling Using Machine-Learning,
Diego Puppin, Mark Stephenson, Una-May O'Reilly, Martin C. Martin, and
Saman Amarasinghe,
In Proceedings of the 16th International Workshop on Languages and
Compilers for Parallel Computing (LCPC), College Station, Texas, October 2003.
- High-Bandwidth
Packet Switching on the Raw General-Purpose Architecture,
Gleb A. Chuvpilo and
Saman Amarasinghe
In Proceedings of the International Conference on Parallel Processing
(ICPP), Kaohsiung, Taiwan, Republic of China, October 2003.
- Linear
Analysis and Optimization of Stream Programs,
Andrew Lamb, William Thies, Saman Amarasinghe,
In Proceedings of the SIGPLAN '03 Conference on Programming Language
Design and Implementation (PLDI), San Diego, California, June 2003.
- Meta
Optimization: Improving Compiler Heuristics with Machine Learning,
Mark Stephenson, Una-May O'Reilly, Martin C. Martin, and Saman
Amarasinghe,
In Proceedings of the SIGPLAN '03 Conference on Programming Language
Design and Implementation (PLDI), San Diego, California, June 2003.
- Phased
Scheduling of Stream Programs,
Michal Karczmarek, William Thies, Saman Amarasinghe,
In Proceedings of the ACM SIGPLAN '03 Conference on Languages,
Compilers, and Tools for Embedded Systems (LCTES), San Diego,
California, June 2003.
- Dynamic
Native Optimization of Interpreters,
Gregory Sullivan, Derek Bruening, Iris Baron, Timothy Garnett, Saman
Amarasinghe,
In Proceedings of the ACM SIGPLAN '03 Workshop on Interpreters, Virtual
Machines and Emulators (IVME), San Diego, California, June 2003.
- Genetic
Programming Applied to Compiler Heuristic Optimization,
Mark Stephenson, Una-May O'Reilly,
Martin C. Martin, and Saman Amarasinghe,
In Proceedings of the 6th European Conference on Genetic Programming (EuroGP),Essex, UK,
April, 2003.
- Defying
the Speed of Light: Wire-Exposed Architectures and Spatially-Aware
Compilers,
Saman Amarasinghe.
In Proceedings of the 28th Annual GOMACTech
Conference, Tampa, Florida, March, 2003.
- An
Infrastructure for Adaptive Dynamic Optimization,
Derek Bruening, Timothy Garnett, Saman Amarasinghe,
In Proceedings of the First Annual IEEE/ACM International Symposium on
Code Generation and Optimization (CGO), San Francisco, California,
March 2003.
- Scalar Operand
Networks,
Michael Bedford Taylor, Walter Lee, Saman Amarasinghe, and Anant Agarwal,
In Proceedings of the Ninth International Symposium on High Performance
Computer Architecture (HPCA), Anaheim, California, February, 2003.
- A 16-issue multiple-program-counter microprocessor with
point-to-point scalar operand network,
M. B. Taylor, J. Kim, J. Miller, D. Wentzlaff,
F. Ghodrat, B. Greenwald, H. Hoffman, P.
Johnson, W. Lee, A. Saraf, N. Shnidman, V. Strumpen, S.
Amarasinghe, A. Agarwal.
In Proceedings of the IEEE International Solid-State Circuits
Conference (ISSCC), San Francisco, California, February, 2003.
2002
- Convergent
Scheduling,
Walter Lee, Diego Puppin, Shane Swanson, Saman Amarasinghe,
In Proceedings of the 35th Annual International Symposium on Microarchitecture (MICRO), Istanbul, Turkey,
November 2002.
- A
Stream Compiler for Communication-Exposed Architectures, (detailed
results)
Michael Gordon, William Thies, Michal Karczmarek, Jasper Lin, Ali S. Meli, Chris Leger, Andrew A. Lamb, Jeremy Wong, Henry
Hoffman, David Z. Maze, and Saman Amarasinghe,
In Proceedings of the 10th International Conference on Architectural
Support for Programming Languages and Operating Systems (ASPLOS), San
Jose, CA, October 2002.
- Increasing
and Detecting Memory Address Congruence,
Sam Larsen, Emmett Witchel, and Saman Amarasinghe,
In Proceedings of 11th International Conference on Parallel
Architectures and Compilation Techniques (PACT), Charlottesville, VA,
September, 2002.
- Secure
Execution Via Program Shepherding
Vladimir Kiriansky, Derek Bruening, and Saman Amarasinghe.
In Proceedings of the 11th USENIX Security Symposium, San
Francisco, August 5, 2002.
- Providing
Web Search Capability for Low-Connectivity Communities
Libby Levison, William Thies, and Saman
Amarasinghe.
In Proceedings of the 2002 International Symposium on Technology and
Society, Raleigh, North Carolina, June, 2002.
- The Raw
Microprocessor: A Computational Fabric for Software Circuits and General
Purpose Programs
Michael Taylor, Jason Kim, Jason Miller, David Wentzlaff,
Fae Ghodrat, Benjamin
Greenwald, Henry Hoffman, Jae-Wook Lee, Paul
Johnson, Walter Lee, Albert Ma, Arvind Saraf,
Mark Seneski, Nathan Shnidman,
Volker Strumpen, Matthew Frank, Saman
Amarasinghe, and Anant Agarwal.
In IEEE Micro, May, 2002.
- Searching
the World Wide Web in Low-Connectivity Communities
William Thies, Janelle Prevost, Tazeen Mahtab, Genevieve T. Cuevas, Saad
Shakhshir, Alexandro Artola, Binh D. Vo, Yuliya Litvak, Sheldon Chan, Sid Henderson, Mark Halsey,
Libby Levison, and Saman Amarasinghe.
In the proceedings of the 11th International World Wide Web Conference,
Global Community Track, Honolulu, Hawaii, May, 2002.
- StreamIt: A
Language for Streaming Applications
William Thies, Michal Karczmarek, and Saman Amarasinghe.
In the proceedings of the 2002 International Conference on Compiler
Construction. Š 2002 Springer-Verlag LNCS, Grenoble, France, April, 2002.
- Efficient
Pipelining of Nested Loops: Unroll-and-Squash
Darin Petkov, Randolph Harr, and Saman
Amarasinghe.
In the proceedings of the 16th International Parallel and Distributed
Processing Symposium, Fort Lauderdale, Florida, April, 2002.
- Gigabit
IP Routing on Raw
Gleb A. Chuvpilo,
David Wentzlaff, and Saman Amarasinghe
In the Proceedings of the 1st HPCA Workshop on Network Processors,
Cambridge, Massachusetts, February, 2002, pp. 2-9.
2001
- Design and
Implementation of a Dynamic Optimization Framework for Windows, (Click here for
PostScript)
Derek Bruening, Evelyn Duesterwald, and Saman
Amarasinghe.
Proceedings of the 4th
ACM Workshop on Feedback-Directed and Dynamic Optimization (FDDO), Austin, Texas, December, 2001.
- The Raw Architecture: Signal Processing on a Scalable Composable Computation Fabric
David Wentzlaff, Michael Bedford Taylor, Jason
Kim, Jason Miller, Fae Ghodrat,
Ben Greenwald, Paul Johnson, Walter Lee, Albert Ma, Nathan Shnidman, Henry Hoffmann, Arvind Saraf,
Volker Strumpen, Matt Frank, Saman Amarasinghe,
and Anant Agarwal,
Proceedings of the Fifth Annual Workshop on High Performance Embedded
Computing (HPEC), Boston, Massachusetts, November 2001.
- Compiler
Support for Scalable and Efficient Memory Systems (click here
for postscript)
Rajeev Barua, Walter Lee, Saman Amarasinghe,
Anant Agarwal,
IEEE Transaction on Computers, , September, 2001. (A Special Issue
on High Performance Memory Systems)
- The Raw
Processor: A Composeable 32-Bit Fabric for Embedded
and General Purpose Computing,
M. Taylor, J. Kim, J. Miller, F. Ghodrat,
B. Greenwald,
P. Johnson, W. Lee, A. Ma, N. Schnidman,
D. Wentzlaff, M. Frank, S.
Amarasinghe, A. Agarwal,
Proceedings of the Thirteenth Symposium on High
Performance Chips (Hot Chips), Stanford, California, August
2001.
- Strength
Reduction of Integer Division and Modulo Operations (Click here
for PostScript)
Jeffrey Sheldon, Walter Lee, Benjamin Greenwald, and Saman Amarasinghe.
Proceedings of the '01 Languages and Compilers for Parallel Computing
(LCPC), Cumberland Falls, Kentucky, August 2001.
- The
TEK Search Engine
(Click here for
PostScript)
Libby Levison, Bill Thies, Saman Amarasinghe.
Proceedings of the Development by Design Workshop, Boston, MA, July
2001.
- A
Unified Framework for Schedule and Storage Optimization (Click here
for PostScript)
William Thies, Frédéric Vivien, Jeffrey Sheldon,
and Saman Amarasinghe.
Proceedings of the SIGPLAN '01 Conference on Programming Language
Design and Implementation (PLDI), Snowbird, Utah, June 2001.
2000
- Softspec: Software-based Speculative Parallelism. (Click here
for PostScript)
Derek Bruening, Srikrishna Devabhaktuni,
and Saman Amarasinghe.
Proceedings of the 3rd ACM
Workshop on Feedback-Directed and Dynamic Optimization (FDDO),
Monterey, California, December, 2000.
- FlexCache: A Framework for Flexible Compiler Generated
Data Caching (click
here
for PostScript)
Csaba Andras Moritz,
Matthew Frank, and Saman Amarasinghe.
Proceedings of the 2nd Workshop on Intelligent Memory Systems,
Boston, MA, November, 2000.
- Bitwidth Analysis with Application to Silicon
Compilation
(click here
for postscript),
Mark Stephenson, Jonathan Babb, Saman Amarasinghe,
Proceedings of the ACM SIGPLAN '2000 Conference on Programming Language
Design and Implementation (PLDI), Vancouver, BC, June 2000.
- Exploiting Superword Level Parallelism with Multimedia
Instruction Sets
(click here
for postscript),
Sam Larsen, Saman Amarasinghe,
Proceedings of the ACM SIGPLAN '2000 Conference on Programming Language
Design and Implementation (PLDI), Vancouver, BC, June 2000.
1999
- Maps: A
Compiler-Managed Memory System for Raw Machines,
Rajeev Barua, Walter Lee, Saman Amarasinghe, and
Anant Agarwal.
Proceedings of the Twenty-Sixth International Symposium on Computer
Architecture (ISCA), Atlanta, GA, May, 1999.
- Memory
Parallelizing Applications Into Silicon
Jonathan Babb, Martin Rinard, Andras Moritz,
Walter Lee, Matthew Frank, Rajeev Barua, and
Saman Amarasinghe.
Proceedings of the IEEE Workshop on FPGAs for Custom Computing Machines
'99 (FCCM), Napa Valley, CA, April 1999.
1998
- Memory
Bank Disambiguation using Modulo Unrolling for Raw Machines,
Rajeev Barua, Walter Lee, Saman Amarasinghe, and
Anant Agarwal.
Proceedings of the Fifth International Conference on High Performance
Computing, December, 1998.
- Space-Time
Scheduling of Instruction-Level Parallelism on a Raw Machine,
Walter Lee, Rajeev Barua, Matthew Frank, Devabhaktuni Srikrishna,
Jonathan Babb, Vivek Sarkar and Saman Amarasinghe,
Proceedings of the Eighth International Conference on Architectural
Support for Programming Languages and Operating Systems (ASPLOS),
October, 1998.
1997
- Baring
it all to Software: Raw Machines.
Elliot Waingold, Michael Taylor, Devabhaktuni Srikrishna,
Vivek Sarkar, Walter Lee, Victor Lee, Jang Kim, Matthew Frank, Peter
Finch, Rajeev Barua, Jonathan Babb, Saman
Amarasinghe, and Anant Agarwal.
IEEE Computer 30(9), September 1997. (A Special Issue on Billion
Transistor Architectures)
- The Raw
Compiler Project.
Anant Agarwal, Saman Amarasinghe, Rajeev Barua,
Matthew Frank, Walter Lee, Vivek Sarkar, Devabhaktuni
Srikrishna, and Michael Taylor.
Proceedings of the Second SUIF Compiler Workshop, Stanford, CA,
August, 1997.
1996
- Maximizing
Multiprocessor Performance with the SUIF Compiler.
M. W. Hall, J. M. Anderson, S. P. Amarasinghe, B. R. Murphy, S.-W. Liao,
E. Bugnion and M. S. Lam.
IEEE Computer, 29(12), December 1996. (A Special Issue on
Multiprocessors)
- The Multiprocessor as a
General-Purpose Processor: A Software Perspective.
Saman P. Amarasinghe, Jennifer M. Anderson, Chris S. Wilson, Shih-Wei
Liao, Robert S. French, Mary W. Hall, Brian R. Murphy and Monica S. Lam.
IEEE Micro 16(3), June 1996. (A Special Issue on the Hot Chips VII
Conference, Stanford, CA, Aug. 1995).
1995
- Detecting
Coarse-Grain Parallelism Using an Interprocedural
Parallelizing Compiler (Click here
for PostScript)
M. W. Hall, S. P. Amarasinghe, B. R. Murphy, S. Liao, and M. S. Lam.
Proceedings of Supercomputing '95, December 1995.
- Interprocedural
Analysis for Parallelization(Click here for
PostScript)
M. W. Hall, B. R. Murphy, S. P. Amarasinghe, S. Liao, and M. S. Lam.
Proceedings of the 8th International Workshop on Languages and
Compilers for Parallel Computing (LCPC), August 1995.
- Breakthroughs in Parallelizing Compilers and Their
Architectural Implications,
S. P. Amarasinghe, J. A. M. Anderson, R. S. French, M. W. Hall, M.
S. Lam, S. W. Liao, B. R. Murphy, C. W. Tseng, C. S. Wilson, R. P.
Wilson,
Proceedings of the Seventh Symposium on High-Performance Chips (Hot
Chips), Stanford, CA, August 1995.
- Data and
Computation Transformations for Multiprocessors (Click here for PostScript)
J. M. Anderson, S. P. Amarasinghe and M. S. Lam.
Proceedings of the Fifth ACM SIGPLAN Symposium on Principles and
Practice of Parallel Processing, July 1995.
- Unified Compilation
Techniques for Shared and Distributed Address Space Machines
C.-W. Tseng, J. M. Anderson, S. P. Amarasinghe, and M. S. Lam.
Proceedings of the International Conference on Supercomputing, July
1995.
- The SUIF Compiler for
Scalable Parallel Machines
S. P. Amarasinghe, J. M. Anderson, M. S. Lam and C. W. Tseng
Proceedings of the Seventh SIAM Conference on Parallel Processing for
Scientific Computing, February 1995.
- Interprocedural
Parallelization Analysis: A Case Study
M. W. Hall, B. R. Murphy and S. P. Amarasinghe
Proceedings of the Seventh SIAM Conference on Parallel Processing for
Scientific Computing, February 1995.
1993
- Communication
Optimization and Code Generation for Distributed Memory Machines
S. P. Amarasinghe and M. S. Lam.
Proceedings of the ACM SIGPLAN'93 Conference on Programming Language Design
and Implementation (PLDI), June 1993.
- An Overview of a Compiler
for Scalable Parallel Machines
S. P. Amarasinghe, J. M. Anderson, M. S. Lam and A. W. Lim.
Proceedings of the 6th Workshop on Languages and Compilers for Parallel
Computing (LCPC), August 1993.
- Array Data Flow Analysis
and its Use in Array Privatization
D. E. Maydan, S. P. Amarasinghe and M. S. Lam.
Proceedings of The 20th Annual ACM Symposium
on Principles of Programming Languages (POPL), January 1993.
1992
- Data Dependence and
Data-Flow Analysis of Arrays
D. E. Maydan, S. P. Amarasinghe and M. S. Lam.
Proceedings of 5th Workshop on Languages and Compilers for Parallel
Computing (LCPC), 1992.
Technical Reports
- Phased
Computation Graphs in the Polyhedral Model,
William Thies, Jasper Lin, and Saman Amarasinghe.
MIT/LCS Technical Memo LCS-TM-630, August, 2002.
- A
Stream Compiler for Communication-Exposed Architectures,
Michael Gordon, William Thies, Michal Karczmarek, Jeremy Wong, Henry
Hoffman, David Z. Maze, and Saman Amarasinghe.
MIT/LCS Technical Memo LCS-TM-627, May 2002.
- Secure
Execution Via Program Shepherding,
Vladimir Kiriansky, Derek Bruening, and Saman Amarasinghe.
MIT/LCS Technical Memo LCS-TM-625, February, 2002.
- StreamIt:
A Compiler for Streaming Applications,
William Thies, Michal Karczmarek, Michael Gordon, David Z. Maze, Jeremy
Wong, Henry Hoffman, Matthew Brown, and Saman Amarasinghe.
MIT/LCS Technical Memo LCS-TM-622, December, 2001.
- Techniques
for Increasing and Detecting Memory Alignment,
Samuel Larsen, Emmett Witchel, and Saman Amarasinghe
MIT/LCS Technical Memo LCS-TM-621, November, 2001.
- StreaMIT: A Language for Streaming Applications,
Bill Thies, Michal Karczmarek, and Saman Amarasinghe,
MIT/LCS Technical Memo MIT-LCS-TM-620, August 2001.
- A
Software Framework for Supporting General Purpose Applications on Raw
Computation Fabrics,
Matthew Frank, Walter Lee and Saman Amarasinghe,
MIT-LCS Technical Memo MIT-LCS-TM-619, July 2001.
- Perspectives
on the Use of Internet in Sri Lanka,
Govinda Shrestha, and
Saman Amarasinghe,
MIT/LCS Technical Report MIT-LCS-TR-815, January 2001.
- A Unified
Framework for Schedule and Storage Optimization,
William Thies, Frédéric Vivien, Jeffrey Sheldon,
Saman Amarasinghe,
MIT/LCS Technical Memo MIT-LCS-TM-613, November 2000.
- Softspec: Software-based Speculative Parallelism,
Derek Bruening, Srikrishna Devabhaktuni,
and Saman Amarasinghe,
MIT/LCS Technical Memo, MIT-LCS-TM-606, April 2000.
- Strength
Reduction of Integer Division and Modulo Operations,
Walter Lee, Benjamin Greenwald, Saman Amarasinghe,
MIT/LCS Technical Memo MIT-LCS-TM-600, November, 1999.
- Exploiting
Superword Level Parallelism with Multimedia
Instruction Sets
(Click here for
Postscript),
Sam Larsen, Saman Amarasinghe,
MIT/LCS Technical Memo MIT-LCS-TM-601, November, 1999.
- Bitwidth Analysis with Application to Silicon
Compilation (Click
here for
Postscript),
Mark Stephenson, Jonathan Babb, Saman Amarasinghe,
MIT/LCS Technical Memo MIT-LCS-TM-602, November, 1999.
- Hot Pages:
Software Caching for Raw Microprocessors (Click here for
Postscript),
Csaba Andras Moritz,
Matthew Frank, Walter Lee,and
Saman Amarasinghe,
MIT/LCS Technical Memo MIT-LCS-TM-599, August, 1999.
- SUDS:
Primitive Mechanisms for Memory Dependence Speculation,
M. Frank, C. A. Moritz, B. Greenwald, S. Amarasinghe, and A. Agarwal,
MIT/LCS Technical Memo MIT-LCS-TM-591, January, 1999.
- Parallelizing Applications into Smart Memories,
Jonathan Babb, Martin Rinard, Csaba Andras Moritz, Walter Lee, Matthew Frank, Rajeev Barua, Saman Amarsinghe,
MIT/LCS Technical Report MIT-LCS-TR-769, October, 1998.
- Maps: A
Compiler-Managed Memory System for Raw Machines,
Rajeev Barua, Walter Lee, Saman Amarasinghe and
Anant Agarwal.
MIT/LCS Technical Memo MIT-LCS-TM-583, July, 1998.
- Memory
Bank Disambiguation using Modulo Unrolling for Raw Machines,
Rajeev Barua, Walter Lee, Saman Amarasinghe and
Anant Agarwal.
MIT/LCS Technical Report MIT-LCS-TR-759, June, 1998.
- Space-Time
Scheduling of Instruction-Level Parallelism on a Raw Machine,
Walter Lee, Rajeev Barua, Devabhaktuni
Srikrishna, Jonathan Babb, Vivek Sarkar, Saman
Amarasinghe, Anant Agarwal
MIT/LCS Technical Memo MIT-LCS-TM-572, December, 1997.
- Baring it
all to Software: The Raw Machine,
Elliot Waingold, Michael Taylor, Vivek Sarkar,
Walter Lee, Victor Lee, Jang Kim, Matthew Frank, Peter Finch, Srikrishna Devabhaktuni,
Rajeev Barua, Jonathan Babb, Saman Amarasinghe,
and Anant Agarwal
MIT/LCS Technical Report MIT-LCS-TR-709, March 1997.
- Parallelizing
Compiler Techniques Based on Linear Inequalities. (Click here for pdf)
S. P. Amarasinghe, Ph.D. thesis,
Technical Report CSL-TR-97-714, Stanford University, January, 1997.
- Interprocedural parallelization
analysis: Preliminary results.
M. W. Hall, S. P. Amarasinghe, B. R. Murphy, S.-W. Liao,
and M. S. Lam.
Technical Report CSL-TR-95-665, Dept. of Computer Science, Stanford
University, March 1995.
Miscellaneous Papers
- A Common
Machine Language for Grid-Based Architectures
William Thies, Michal Karczmarek, Michael Gordon, David Z. Maze, Jeremy
Wong, Henry Hoffman, Matthew Brown, and Saman Amarasinghe.
In ACM SIGARCH Computer Architecture News, June, 2002.
- SUIF:
A Parallelizing and Optimizing Research Compiler
R. Wilson, R. French, C. Wilson, S. Amarasinghe, J. Anderson, S. Tjiang, S.-W. Liao, C.-W. Tseng, M. Hall, M. Lam, and
J. Hennessy.
ACM SIGPLAN Notices, 29(12):31-37, December 1994.
INVITED TALKS AND PANELS
- November 2005, "Security: The Application Point of
View", Panelist, CSI 32nd Annual Computer Security Conference,
Washington DC.
- October 2005, "TEK: Internet Search System for
Low-Connectivity Communities", Keynote Speech, Technology and
Infrastructure for Emerging Regions (TIER) Workshop, Berkeley, CA.
- October 2005, "View from the Labs", Panelist,
DowJones Emerging Ventures Conference. Boston,
MA.
- May 2005, "Characteristics of an
Entrepreneur", Panelist, California Turkish American Business Conference,
Palo Alto, CA.
- April 2005, "New Technologies Showcase",
Panelist, Global Security Consortium Summit, Washington DC.
- March 2005, "StreamIt: A Language and Compiler for
the Streaming Domain," Seminar on Scheduling for Parallel
Architectures: Theory, Applications, Challenges, Schloss
Dagstuhl International Conference and Research
Center for Computer Science, Dagstuhl, Germany.
- March 2005, "Convergent Scheduling," Seminar
on Scheduling for Parallel Architectures: Theory, Applications, Challenges,
Schloss Dagstuhl
International Conference and Research Center for Computer Science, Dagstuhl, Germany.
- March 2005, "Multicores from the Compiler's
Perspective: A Blessing or a Curse?",
Keynote Speech, International Symposium on Code Generation and
Optimization (CGO), San Jose, CA.
- November 2004, "Defeating Worm Attacks using a
Memory Firewall", Security SIG, SDForum,
Palo Alto, CA
- October 2003, "StreamIt: A Language and Compiler
for the Streaming Domain," University of Illinois at Urbana
Champaign, IL.
- October 2003, "Alternative Solutions to Two Hard
Compiler Problems,", Stanford University,
Stanford, CA.
- October 2003, "Secure Program Execution,"
10th Annual Research and Development Conference, MIT, Cambridge, MA.
- September 2003, "Architectures, Languages, and
Compilers for the Streaming Domain," Tutorial at the 12th Annual
International Conference on Parallel Architectures and Compilation
Techniques, New Orleans, Louisiana.
- August 2003, "StreamIt: A Language and Compiler
for the Streaming Domain," Workshop on Streaming Systems, Dedham, MA.
- June 2003, "StreamIt: A Streaming Language for
Modern Architectures," Research Day Invited Talk, Ecole
Polytechnique Federale
De Lausanne (EPFL), Lausanne, Switzerland.
- June 2003, "Challenges for Computer Architects:
Breaking the Abstraction Barriers," NSF Future of Computer
Architecture Research Panel, San Diego, CA.
- April 2003, "Secure Execution via Program
Shepherding," Harvard University, Cambridge, MA.
- March 2003, "On the Run - Building Dynamic Program
Modifiers for Optimization, Introspection and Security," Tutorial at
the First International Symposium on Code Generation and Optimization
(CGO), San Francisco, CA.
- March 2003, "Secure Execution via Program
Shepherding," University of California, Berkeley, CA.
- March 2003, "Secure Execution via Program
Shepherding," Cornell University, Ithaca, NY.
- February 2003, "Secure Execution via Program
Shepherding," University of California at San Diego, San Diego, CA.
- January 2003, "Secure Execution via Program
Shepherding," National University of Singapore, Singapore.
- January 2003, "Defying the Speed of Light with
Wire-Exposed Architectures and Spatially-Aware Compilers," Nanyang Technological University, Singapore.
- January 2003, "StreamIt: A Language and Compiler
for Communication-Exposed Architectures," The SMA Forum, Singapore.
- January 2003, "Secure Execution via Program
Shepherding," University of Washington, Seattle, WA.
- December 2002, "Secure Execution via Program
Shepherding," Princeton University, Princeton, NJ.
- December 2002, "Secure Execution via Program
Shepherding," Microsoft Research Laboratories, Redmond, WA.
- October 2002, "Defying the Speed of Light with
Spatially Aware Computing," ASIAN Symposium on Partial Evaluation and
Semantic-Based Program Manipulation, Aizu,
Japan.
- October 2002, "On the Run - Building Dynamic
Program Modifiers for Optimization, Introspection and Security,"
Tutorial at the Tenth International Conference on Architectural Support
for Programming Languages and Operating Systems, San Jose, CA.
- October 2002, "Defying the Speed of Light with
Wire-Exposed Architectures and Spatially-Aware Compilers," Georgia
Tech., Atlanta, GA.
- October 2002, "Defying the Speed of Light with
Wire-Exposed Architectures and Spatially-Aware Compilers," IBM
Research Laboratories, Yorktown Heights, NY.
- October 2002, "DynamoRIO:
Dynamic Program Modification System and its use in Program Shepherding and
Optimization," Intel Corporation, Shrewsbury, MA.
- October 2002, "DynamoRIO:
Dynamic Program Modification System and its use in Program Shepherding and
Optimization," Hewlett-Packard Company, Nashua, NH.
- August 2002, "Secure Execution via Program
Shepherding," Hewlett Packard Laboratories, Palo Alto, CA.
- August 2002, "Defying Speed of Light:
Spatially-Aware Compiler for Wire-Exposed Architectures," Intel
Research Laboratories, Santa Clara, CA.
- August 2002, "Secure Execution via Program
Shepherding," VMWare, Inc., Palo Alto, CA.
- June 2002, "On the Run: Building Dynamic Program
Modifiers for Optimization, Introspection and Security," Tutorial at
Programming Language Design and Implementation Conference (PLDI) with
Evelyn Duesterwald, Berlin Germany.
- May 2002, "Wire-Exposed Architectures and
Spatially-Aware Compilers," ITRI, Taiwan ROC.
- January 2002, "Alignment Analysis," Colombo
University, Colombo, Sri Lanka.
- January 2002, "The Raw Architecture,"
University of Moratuwa, Colombo, Sri Lanka.
- January 2002, "Alignment Analysis," Indian
Institute of Technology, Chennai, India.
- January 2002, "Alignment Analysis," Stanford
University, Stanford, CA.
- October 2001, "Alignment Analysis," Computer
Architecture Seminar Series, University of Texas - Austin, TX.
- September 2000, "Practical Compiler Techniques for
Detecting Parallelism," Electrical and Computer Engineering
Department Colloquium, Boston University, Boston, MA.
- July 2000, "Practical Techniques for Detecting
Parallelism," University of Illinois at Urbana-Champaign, IL.
- June 2000, "Softspec:
Software-based Speculative Parallelism," Microsoft Laboratories,
Seattle, WA.
- February 2000, "Compiling for Multimedia
Instruction Sets with Superword Level
Parallelism," MIT EECS Colloquium, Cambridge, MA.
- February 2000, "Compiling for Multimedia
Instruction Sets with Superword Level
Parallelism," Hewlett-Packard Laboratories, Cambridge, MA.
- December 1999, "Superword
Level Parallelism," Princeton University, Princeton, NJ.
- January 1999, "Compiling for a RAW Machine,"
Compaq Corporation, MA.
- February 1998, "The RAW Architecture,"
Carnegie Mellon University, Pittsburgh, PA.
AWARDS, GRANTS AND CONTRACTS
Exploiting PCA Architectures
for Cognitive Applications.
Defense Advanced Research Projects Agency, Seedling.
Saman Amarasinghe, Anant Agarwal.
May 2003 April 2004.
PCA Raw Fabric: Architectural Prototyping,
Demonstration and Evaluation.
Defense Advanced Research Projects Agency, PCA II.
Saman Amarasinghe, Anant Agarwal.
January 2003 September 2005
Raw Supercomputer Project
Collaboration.
ITRI, Taiwan.
Anant Agarwal, Saman Amarasinghe.
January 2003 December 2003
Dynamic Optimization, and its Application to
Domain-Specific Languages, Phase I
Hewlett-Packard Corporation
Saman Amarasinghe, Greg Sullivan
February 2002 - February 2004
Raw
Fabric: A Technology for Rapid Embedded-System Customization.
Defense Advanced Research Projects Agency, PCA.
Saman Amarasinghe, Anant Agarwal.
June 2001 May 2003.
Faculty Fellowship.
University of Singapore.
Saman Amarasinghe.
January 2001 December 2002.
CISE
Experimental Partnerships: The MIT Raw Machine.
National Science Foundation EIA-0071841.
Saman Amarasinghe, Anant Agarwal, Martin Rinard.
September 2000 September 2002.
Exploiting Superword Level Parallelism.
National Science Foundation CCR-0073510.
Saman Amarasinghe.
June 2000 May 2003.
PACE:
Power Aware Computing Engines.
Defense Advanced Research Projects Agency, PAC/C, F30602-00-2-0562.
Krste Asanovic, Saman Amarasinghe, Martin Rinard.
May 2000 September 2003.
Compilation Techniques for Embedded Processors.
MIT/LCS Project Oxygen.
Saman Amarasinghe.
May 2000 April 2002.
Baring it all to Software.
National Science Foundation. EIA-9810173.
Anant Agarwal, Saman Amarasinghe, Martin Rinard.
October 1998 September 2001.
DISSERTATION
Paralelizing
Compiler Techniques Based on Linear Inequalities.
Shared-memory multiprocessors, built out of the
latest microprocessors, are becoming a prevalent
computer architecture. To effectively harness the power of these machines it is
important that we find all the available parallelism in the programs. We have
developed an interprocedural optimizer with novel
array analysis techniques. We have shown that these analyses in combination
with a full suite of scalar analyses can be successful in finding large amounts
of parallelism in general scientific applications. Another important factor in
obtaining parallel performance is the effective utilization of the memory
hierarchy. In parallel applications false sharing and cache conflicts between
processors can significantly reduce performance. We have developed the first
compiler that automatically performs a full suite of data transformations (a
combination of transpose, strip-mining and padding). We have shown that the performance of many benchmarks are drastically improved
after the data transformations.
Full text: (postscript, pdf)
Advisor: Professor
Monica Lam, Stanford University.