Curriculum Vitae

Saman Prabhath Amarasinghe

Internet: saman@cs.stanford.edu
http://suif.stanford.edu/~saman
Postal: Gates Building 406, M/C 9040,
Stanford University,
Stanford, CA 94305
Telephone: (415) 725-3720 (office)
(415) 369-0544 (home)
(415) 369-7439 (fax)


EDUCATION

Doctor of Philosophy Candidate in Electrical Engineering
Stanford University, Stanford, CA
Expected in December 1996
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


AWARDS AND HONORS

Fellowship from Intel Corporation
Eta Kappa Nu
Tau Beta Pi
Phi Kappa Phi


DISSERTATION

Improving the effectiveness of automatic compilation for multiprocessors

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.

Advisor: Professor Monica Lam


RESEARCH AND ACADEMIC EXPERIENCE

Research Assistant, Stanford University, Stanford CA Jan 1990 - present
Performing 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, Stanford University, Stanford CA Fall 1991
Gave several lectures and assisted in planning a graduate course in compilers.

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

Director, Lanka Internet Services, Ltd. Colombo, SRI LANKA Jan 1994 - present
Founded the first and only internet service provider in Sri Lanka, currently with fifty employees and estimated revenue of one million dollars. Was involved in all aspects of the start-up process and now serving as the primary technical advisor.

Independent Consultant, Thinking Machines Corporation, Boston, MA Feb 1994
Parallel Compiler Group
Helped formulate the communication optimization and code generation strategy for the HPF compiler.

Software Engineer, Stanford University, Stanford, CA Sep 1988 - Dec 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 Jan 1986 - Jun 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 Aug 1987 - Jun 1988
Career Center
Planned the automation strategy for the center and its library.

Co-op Engineer, Xerox Corporation, Webster, NY Summer 1986,
Aug - Dec 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.


PROFESSIONAL ACTIVITIES

Reviewer for 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.


REFERENCES

Professor Monica Lam Gates Building 307, M/C 9030
Computer Science Department
Stanford University
Stanford, CA 94305
(415) 725-3714
lam@cs.stanford.edu

Professor John Hennessy Gates Building 308, M/C 9030
Computer Science Department
Stanford University
Stanford, CA 94305
(415) 725-3712
jlh@vsop.stanford.edu

Professor Anoop Gupta Gates Building 304, M/C 9030
Computer Science Department
Stanford University
Stanford, CA 94305
(415) 725-3716
gupta@cs.stanford.edu

Professor Kunle Olukotun Gates Building 302, M/C 9030
Computer Science Department
Stanford University
Stanford, CA 94305
(415) 725-3713
kunle@ogun.stanford.edu


PUBLICATIONS

  1. 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. To appear in IEEE Micro.

  2. 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.

  3. 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.

  4. 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.

  5. 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, June 1993.

  6. 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, January 1993.

  7. 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 (LCPC95), August 1995.

  8. 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.

  9. Interprocedural Analysis for Parallelization: Design and Experience
    M. W. Hall, B. R. Murphy and S. P. Amarasinghe Proceedings of the Seventh SIAM Conference on Parallel Processing for Scientific Computing, February 1995.

  10. 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.

  11. 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, August 1993.

  12. Data Dependence and Data-Flow Analysis of Arrays
    D. E. Maydan, S. P. Amarasinghe and M. S. Lam. Conference Record of 5th Workshop on Languages and Compilers for Parallel Computing, 1992.