PACT-2002 Tutorials

  • Parallel Programming with OpenMP, Rudolf Eigenmann.
  • Open Research Compiler (ORC): Beyond Version 1.0, Roy Ju, Sun Chan, Fred Chow, and Xiaobing Feng.

    Parallel Programming With OpenMP

    Rudolf Eigenmann

    OpenMP is an Application Programming Interface for directive-driven parallel programming of shared memory computers. Fortran, C and C++ compilers supporting OpenMP are available for Unix and Windows workstations. Most vendors of shared memory computers are committed to OpenMP making it the de facto standard for writing portable, shared memory, parallel programs. This tutorial will provide an introduction to OpenMP. It will start with basic concepts to bring the novice up to speed. It will then present several advanced examples to give insight into the issues that come up for experienced OpenMP programmers.

    Dr. Rudolf Eigenmann
    is an Associate Professor and Chairman of the Computer Area at the School of Electrical and Computer Engineering at Purdue University. His research interests include optimizing compilers, programming methodologies and tools, and performance evaluation for high-performance computers. Eigenmann received his Ph.D. in Electrical Engineering/Computer Science in 1988 from ETH Zurich, Switzerland. He is the recipient of a 1997 NSF CAREER award and serves on the editorial boards of the International Journal of Parallel Programming and the IEEE Computing in Science and Engineering Magazine. He has also served as the chairman/vice-chairman of the High-Performance Group of the Standard Performance Evaluation Corporation (SPEC). He is a member of the IEEE and the ACM.

    Address: Purdue University, School of Electrical and Computer Engineering, 1285 EE Bldg., West Lafayette, IN 47907, eigenman@purdue.edu,
    http://www.ece.purdue.edu/~eigenman/.


    Open Research Compiler (ORC): Beyond Version 1.0

    Roy Ju (MRL, Intel), Sun Chan (MRL, Intel), Fred Chow (Key Research), and Xiaobing Feng (ICT, CAS)

    The objective of the Open Research Compiler (ORC) project is to provide a leading open source compiler infrastructure for the Itanium(tm) Processor Family (IA-64) to the compiler and architecture research community. Version 1.0 of ORC has been released to the open source community (http://ipf-orc.sourceforge.net/) in January, 2002. There have been hundreds of downloads, and ORC has been used as a compiler infrastructure in various university research and teaching projects. Subsequent to the Jan release, the ORC team has made a great stride on its performance by adding many optimizations and enhancements, in particular the inter-procedural analysis and function inlining enabled. These improvements are planned to be released around the mid-year of 2002 as Version 1.1. We have also got much feedback from the early users who started their research work on ORC. This tutorial will cover:
    - Overview of the ORC infrastructure
    - Features and state of ORC 1.1
    - Research activities from ORC users and support in the ORC community

    Roy D.C. Ju
    is a senior researcher at the Programming System Lab in the Microprocessor Research Labs, Intel Corp. He is currently the compiler architect of an IA-64 open source research compiler, which aims at providing an infrastructure for compiler and architecture research on IA-64 to the research and open source communities. His primary research interests include compiler optimization, optimization for memory hierarchy, software power management, program analysis, computer architecture, and parallel processing. Prior to joining in Intel, he was with the Hewlett-Packard Company from 1994 to 1999, and he was a project lead in designing and developing an optimizing compiler for IA-64. He worked at IBM from 1992 to 1994 in developing a then state-of-the-art Fortran 90 optimizing compiler. He received his B.S. degree in Electrical Engineering from National Taiwan University in 1984. He received his M.S. and Ph.D. degrees in Electrical and Computer Engineering from the University of Texas at Austin in 1988 and 1992, respectively. He currently holds 8 U.S. patents and has published more than 30 journal and conference papers in various areas, including array language optimizations, compilation for instruction-level parallelism, cache optimization, coarse-grained parallelization, etc. He has served on the program committees of a number of conferences, such as MICRO-33 and PLDI 2001.

    Sun C. Chan
    is the manager of the open source research compiler project in the Microprocessor Research Labs, Intel Corp. His primary research interests include large-scale software engineering, compiler scalar optimization, both in the global and inter-procedural areas, and instruction level parallelism. Prior to joining Intel, he was with SGI where he was a manager of global optimizer and interprocedural optimizer. He is also the coordinator and architect of the open source Pro64 compiler. Before SGI, he was a project lead at Mips working on global scheduling and optimization of dynamic shared objects. He received his M.S. degree in Computer Science from Purdue University in 1981. He holds 10 U.S. patents with several more pending and has published in journal and conference papers in various areas, including inter-procedural analysis, global optimization and instruction-level parallelism. He is also interested in engaging university researchers in compiler and architecture research.

    Fred Chow
    has over 24 years of experience developing advanced optimization techniques in production compilers. Recently, he lead a team to develop code generation techniques for Cognigine's Variable Instruction Set Architecture, which was successfully deployed in the compiler for Cognigine's network processor chip. Earlier, Fred was Chief Scientist at SGI, where he spearheaded SGI's compiler efforts to achieve highest performances in SGI's systems. He was Chief Architect of the Pro64 Compiler, which was re-targeted to the Itanium and made available to the public as the Open64 Compiler. Before SGI, Fred was the original member of the compiler team at MIPS Computer Systems. MIPS' Ucode Compiler was a productization of Fred's pioneering Ph.D. research at Stanford. MIPS' Ucode Compiler became the very first commercial compiler that incorporates a full set of global optimization capabilities, and established highly optimizing compiler as an indispensable component in modern microprocessors. Fred received his B.Sc. degree from the University of Toronto in 1977. He received his M.S. and Ph.D. degrees from Stanford University in 1978 and 1983, respectively. Throughout his career, Fred has put major emphases on compiler infrastructures that enable efficient and stable optimization implementation. Fred has written numerous articles in journals and research publications. He holds 8 patents.

    Xiaobing Feng
    Associate Professor
    Advanced Compiler Technology Laboratory, Division of Computer Systems
    Institute of Computing Technology, Chinese Academy of Science.
    Received his Ph. D. degree of computer science from Institute of Computing Technology, Chinese Academy of Science at 1999, received his master degree of computer science from Peking University at 1996 and received his bachelor degree of computer science from Tianjin University at 1992. His research interests include Dynamic Optimization, Data Locality, Parallel Compilation Optimization and tools. He is currently taking charge of a project on dynamic optimization. This project is supported by national fund of China.He is also involved in the IPF open source research compiler.