Title: Open64: A Framework for High performance Compiler
1Open64 A Framework for High performance Compiler
March 2007
2Presenters
- Shin-Ming Liu, HP
- Guang Gao, University of Deleware
- Chunhua Liao, University of Houston
- Robert Hundt, Google
- Soo-Mook Moon, Seoul National University
- Wei Chen, University of California, Berkeley
- Tong Chen, IBM Research
- Pen-Chung Yew, University of Minnisota
- Sun Chan, Simplight Nanoelectronics
- Dong Yuan, Tsinghua University
3Outline
- Open64 History
- Osprey Project
- Research Activities
- Retargetability
4Open64 History
- Derived from SGI MIPSpro compiler suite
- SGI did the initial port to Itanium
- SGI open sourced the MIPSpro compilers in Summer
2000 as the Pro64 compiler suite - Gnu-front-end based C, C compilers
- Cray-FORTRAN front-end based F95 compiler
- University of Delaware took over maintenance of
Pro64 compiler suite - New distribution re-named to be Open64 compiler
suite - Retargeted to several machines
- Mips, IA64, X86-64, Ceva, Tensilica, XScale
(ARM),
5Open64 History
- Intel enhanced the Open64 compiler code generator
with advanced optimizations for Itanium - Itanium-enhanced Open64 compiler suite released
as the Open Research Compiler (ORC) today to
facilitate Itanium-related research efforts in
academia - Pathscale retargeted Open64 compilers for x86-64
and seeded new repository to enable further
development by open source compiler developers
6Open64 History
- Thus, Open64 compiler technology
- is gnu-compatible since it uses the gcc, g
front-ends - incorporates back-end support for Itanium
- is based on mature compiler technology developed
by SGI with wide production exposure - Multiple OS bringup, compiler self build,
numerous large applications Oracle, Pro/E,
Abacus, Morgan-Stanley, Maya, - is suitable for computer architecture, compiler
architecture and compiler research
7Open64 in the Commercial Space
- STMicro
- Equator Technologies (acquired by Pixelworks)
- Cognigine (acquired by Huawei)
- Tensilica
- CEVA
- Pathscale (acquired by QLogic)
- Qualcomm (Unconfirmed)
- Absoft
- Nvidia
- These are based on Pathscale branch
8Osprey Project Objectives
- Rejuvenate Compiler Research for Itanium
Processor - Memory Hierarchy Optimizations
- Exploit Multi-core features
- Exploit ILP to the full extend
- As GCC with high performance alternative back end
- Productize Open64 for Itanium Processor
- For performance critical applications wedded to
open source compiler - Build Distributed development model
- Centralized Source Repository bug tracking
- Using svn and Bugzilla
- Hosted in www.open64.net
- Provide tight integration platform for activities
from research institutes - Participation from Universities
- University of Delaware, Tsinghua University,
CAS-ICT - Coordinated from HP
- Program management and testing infrastructure
- Working toward third party product level support
- Working toward steering committee for open64
community
9Comparison between ORC and Osprey
Osprey ORC
As a Compiler Research Platform Yes Yes
Promote leveraging research results across Universities/Institutes Yes No
Provide Source Code Repository Yes No
One Bug data base for reporting problems Yes No
Production Quality as a goal Yes No
Key Take Away Osprey Project wants to build a
research and development community around Open64
Technology
10Osprey Project 2006 Achievements
- Recreated source code repository
- Use subversion hosted on http//www.open64.net
- Includes all Open64 past releases in kept in
Sourceforge - Incorporated changes made in Pathscale
- Form extended engineering team, by engaging key
academic and research institutions - Released Opencc 3.0
- Adopted Pathscale 2.1 tree for GCC3.x front-end
updates - Incorporate latest ORC Itanium Code Generator
- Implement IA64 C ABI compatibility
- Ensure gcc command option compatibility
- Booted Linux Kernel with few source work-arounds
11Osprey Project 2007 Goals
- Merge Pathscale 3.0 changes
- Catch up with GCC4.2 front ends
- Full GCC ABI compatibility
- New Inter Procedural Analysis/Optimizations
- Memory Hierarchy Optimizations
- New Itanium Specific Optimizations
- Advanced Prefetch
- Exploit Multi-core Trend
- Loop Parallelization, Automatic or Program Advise
- Thread Level Parallelization
12Contributions from Pathscale (Qlogic)
- Osprey Project leverages effort made by Pathscale
heavily - Pathscale contributions (a Partial List)
- Brought up x8664 target support to Open64
- Option level compatibility with GCC/G
- Upgraded the GNU 3.x and GNU 4.x front end
- Added support for C Exception Handling in
bridge - Introduced new abstraction between GNU front end
and Open64 framework - Fixed many bugs in the front end /back end bridge
- Improved quality of middle end optimizations
- Updated Fortran front-end to support 2003
standard - Updated IPA linker to binutils-2.16.1
- My encouragement to support Pathscale effort
13Research Areas My Wish List
- All dimensions of Multi-core / Multi-thread
- Break the Memory Hierarchy Barrier
- Better Integration with Java and C
- Mix-mode programming paradigm
- Trade-off between Static and Dynamic Compilation
model - Debugging and Performance Analysis/Advisory Tools
- Productivity and Security Check Tools
- Scalable/Incremental Inter Procedural Analysis
Framework for Huge Applications - Instruction Level Parallelism
- Is it all done? Clearly Not!
14Open64 Research Activities
- UPC UC Berkeley
- OpenMP Tools U of Houston
- EPS, a global scheduler SNU
- Static analysis / performance advisory Google
- Cyclops University of Delaware
- Speculative Parallel Threading UMN
15(No Transcript)