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