Open64
Encyclopedia
Open64 is an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

, optimizing compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 for the Itanium
Itanium
Itanium is a family of 64-bit Intel microprocessors that implement the Intel Itanium architecture . Intel markets the processors for enterprise servers and high-performance computing systems...

 and x86-64
X86-64
x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...

 microprocessor
Microprocessor
A microprocessor incorporates the functions of a computer's central processing unit on a single integrated circuit, or at most a few integrated circuits. It is a multipurpose, programmable device that accepts digital data as input, processes it according to instructions stored in its memory, and...

 architectures. It derives from the SGI
Silicon Graphics
Silicon Graphics, Inc. was a manufacturer of high-performance computing solutions, including computer hardware and software, founded in 1981 by Jim Clark...

 compilers for the MIPS R10000
R10000
The R10000, code-named "T5", is a RISC microprocessor implementation of the MIPS IV instruction set architecture developed by MIPS Technologies, Inc. , then a division of Silicon Graphics, Inc. . The chief designers were Chris Rowen and Kenneth C. Yeager...

 processor, called MIPSPro. It was initially released in 2000 as GNU GPL software under the name Pro64. The following year, University of Delaware became the gate keepers and renamed the compiler to Open64. It now mostly serves as a research platform for compiler and computer architecture
Computer architecture
In computer science and engineering, computer architecture is the practical art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals and the formal modelling of those systems....

 research groups. Open64 supports Fortran
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

 77/95 and C/C++, as well as the shared memory
Shared memory
In computing, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies. Depending on context, programs may run on a single processor or on multiple separate processors...

 programming model OpenMP
OpenMP
OpenMP is an API that supports multi-platform shared memory multiprocessing programming in C, C++, and Fortran, on most processor architectures and operating systems, including Linux, Unix, AIX, Solaris, Mac OS X, and Microsoft Windows platforms...

. It can conduct high-quality interprocedural analysis
Interprocedural optimization
Interprocedural optimization is a collection of compiler techniques used in computer programming to improve performance in programs containing many frequently used functions of small or medium length...

, data-flow analysis
Data-flow analysis
Data-flow analysis is a technique for gathering information about the possible set of values calculated at various points in a computer program. A program's control flow graph is used to determine those parts of a program to which a particular value assigned to a variable might propagate. The...

, data dependence analysis
Dependence analysis
In compiler theory, dependence analysis produces execution-order constraints between statements/instructions. Broadly speaking, a statement S2 depends on S1 if S1 must be executed before S2...

, and array region analysis.

The Infrastructure

Its major components are the frontend for C/C++ (using GCC
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...

) and Fortran 77/90 (using the CraySoft front-end and libraries),
Interprocedural analysis
Interprocedural optimization
Interprocedural optimization is a collection of compiler techniques used in computer programming to improve performance in programs containing many frequently used functions of small or medium length...

 (IPA), loop nest optimizer (LNO), global optimizer (WOPT),
and code generator (CG). Despite being initially written for a single computer architecture, Open64 has proven that it can generate efficient code for CISC
Complex instruction set computer
A complex instruction set computer , is a computer where single instructions can execute several low-level operations and/or are capable of multi-step operations or addressing modes within single instructions...

, RISC
Reduced instruction set computer
Reduced instruction set computing, or RISC , is a CPU design strategy based on the insight that simplified instructions can provide higher performance if this simplicity enables much faster execution of each instruction. A computer based on this strategy is a reduced instruction set computer...

, and VLIW
Very long instruction word
Very long instruction word or VLIW refers to a CPU architecture designed to take advantage of instruction level parallelism . A processor that executes every instruction one after the other may use processor resources inefficiently, potentially leading to poor performance...

 architectures, including MIPS
MIPS architecture
MIPS is a reduced instruction set computer instruction set architecture developed by MIPS Technologies . The early MIPS architectures were 32-bit, and later versions were 64-bit...

, x86, IA-64, ARM
ARM architecture
ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...

, and others.

IR

A hierarchical intermediate representation (IR) with 5 main levels is used in this compiler to serve as the common interface among all the frontend and backend components. This IR is named WHIRL.

Versions

Open64 exists in many fork
Fork (software development)
In software engineering, a project fork happens when developers take a legal copy of source code from one software package and start independent development on it, creating a distinct piece of software...

s, each of which has different features and limitations. The "classic" Open64 branch is the Open Research Compiler (ORC), which produces code only for the Itanium (IA64), and was funded by Intel. The ORC effort ended in 2003. Other important branches include the compilers from Tensilica
Tensilica
Tensilica is an IP core company based in Silicon Valley. Tensilica is best known for its customizable microprocessor cores, the Xtensa configurable processor...

. The current official branch is managed by Hewlett Packard and the University of Delaware
University of Delaware
The university is organized into seven colleges:* College of Agriculture and Natural Resources* College of Arts and Sciences* Alfred Lerner College of Business and Economics* College of Earth, Ocean and Environment* College of Education and Human Development...

. This effort originated from the Intel ORC project. AMD supports an x86 Open64 Compiler Suite based on the official branch.

The original version of Open64 that was released in 2002 was missing its very advanced software pipelining
Software pipelining
In computer science, software pipelining is a technique used to optimize loops, in a manner that parallels hardware pipelining. Software pipelining is a type of out-of-order execution, except that the reordering is done by a compiler instead of the processor...

 code generator, and had only a rudimentary code generator for Itanium. The entire original MIPSPro compiler, with this code generator, is available under a commercial license as the Blackbird compiler from Reservoir Labs. The Showdown Paper documents the code generator that is missing from Open64. The very advanced compiler from Tilera, for its 64-core TILE64 chip, is based on Blackbird.

Nvidia
NVIDIA
Nvidia is an American global technology company based in Santa Clara, California. Nvidia is best known for its graphics processors . Nvidia and chief rival AMD Graphics Techonologies have dominated the high performance GPU market, pushing other manufacturers to smaller, niche roles...

 is also using an Open64 fork to optimize code in its CUDA
CUDA
CUDA or Compute Unified Device Architecture is a parallel computing architecture developed by Nvidia. CUDA is the computing engine in Nvidia graphics processing units that is accessible to software developers through variants of industry standard programming languages...

 toolchain.

Current development projects

Open64 is also used in a number of research projects, such as the Unified Parallel C
Unified Parallel C
Unified Parallel C is an extension of the C programming language designed for high-performance computing on large-scale parallel machines, including those with a common global address space and those with distributed memory...

 (UPC) and speculative multithreading
Speculative multithreading
Speculative multithreading , also known as thread level speculation , is a dynamic parallelization technique that depends on out-of-order execution to achieve speedup on multiprocessor CPUs. It is a kind of speculative execution that occurs at the thread level as opposed to the instruction level....

 work at various universities. The 2010 Open64 Developers Forum describes projects done at Absoft, AMD, Chinese Academy of Sciences
Chinese Academy of Sciences
The Chinese Academy of Sciences , formerly known as Academia Sinica, is the national academy for the natural sciences of the People's Republic of China. It is an institution of the State Council of China. It is headquartered in Beijing, with institutes all over the People's Republic of China...

, Fudan University
Fudan University
Fudan University , located in Shanghai, is one of the oldest and most selective universities in China, and is a member of the C9 League. Its institutional predecessor was founded in 1905, shortly before the end of China's imperial Qing dynasty...

, HP, National Tsing Hua University
National Tsing Hua University
National Tsing Hua University is one of the most prestigious universities in Taiwan. The university has a strong reputation in the studies of science and engineering. Times Higher Education - World University Rankings is107in the world. Engineering and Science are the best in Taiwan...

, Nvidia
NVIDIA
Nvidia is an American global technology company based in Santa Clara, California. Nvidia is best known for its graphics processors . Nvidia and chief rival AMD Graphics Techonologies have dominated the high performance GPU market, pushing other manufacturers to smaller, niche roles...

, Tensilica
Tensilica
Tensilica is an IP core company based in Silicon Valley. Tensilica is best known for its customizable microprocessor cores, the Xtensa configurable processor...

, Tsinghua University
Tsinghua University
Tsinghua University , colloquially known in Chinese as Qinghua, is a university in Beijing, China. The school is one of the nine universities of the C9 League. It was established in 1911 under the name "Tsinghua Xuetang" or "Tsinghua College" and was renamed the "Tsinghua School" one year later...

, and University of Houston
University of Houston
The University of Houston is a state research university, and is the flagship institution of the University of Houston System. Founded in 1927, it is Texas's third-largest university with nearly 40,000 students. Its campus spans 667 acres in southeast Houston, and was known as University of...

. The Chinese Academy of Sciences
Chinese Academy of Sciences
The Chinese Academy of Sciences , formerly known as Academia Sinica, is the national academy for the natural sciences of the People's Republic of China. It is an institution of the State Council of China. It is headquartered in Beijing, with institutes all over the People's Republic of China...

 ported Open64 to the Loongson II platform.

AMD has extended and productized Open64 with optimizations designed for x86 multi-core processor advancements and multi-threaded code development. AMD supports Open64 as a complementary compiler to GCC
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...

.

See also

  • GNU Compiler Collection
    GNU Compiler Collection
    The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...

  • List of compilers
  • GPGPU
    GPGPU
    General-purpose computing on graphics processing units is the technique of using a GPU, which typically handles computation only for computer graphics, to perform computation in applications traditionally handled by the CPU...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK