Omni OpenMP Compiler Project
TO Japanese Home Page
What's new!
- Omni-1.6 is available.
click!
This is the final version of 1.x. 2.0 will be
released in SC2003.
RWCP Omni Compiler Software is a collection of programs and libraries,
written in C and Java, that allow researchers to build code
transformation systems (compilers). Omni OpenMP compiler is a part
of this software that translates C and Fortran77 programs
with OpenMP pragmas into C code suitable for compiling with a
native compiler linked with the Omni OpenMP runtime library.
Our objectives of Omni OpenMP compiler project includes:
- Portable implementation of OpenMP for SMPs
- Support seamless programming for SMPs to SMP/PC clusters in OpenMP.
- Support transparent execution of OpenMP programs on a cluster of SMPs.
- Generate efficient communication between nodes for
OpenMP parallel constructs by the compiler.
The OpenMP compiler for our PC-based SMP Cluster,
COMPaS ,
is currently under development.
Our approach is a compiler-directed SDSM
(software distributed memory system),
which allows the compiler to optimize communications between
SMP nodes. For more information, click
here .
Documents
in the recent release
-
Introduction
-
Compile and run your OpenMP program
-
Profiling
-
Commands
- omcc -- OpenMP C compiler
- ompcc -- OpenMP C compiler (default configuration driver)
- omf77 -- OpenMP Fortran 77 compiler
- ompf77 -- OpenMP Fortran 77 compiler (default configuration driver)
- tlogview -- Omni profile visualization tool
-
Omni Environment Variables
-
Installation
-
Compiling and Using Omni/ST -- StackThreads
runtime implementation for nested irregular parallelism
-
Omin/SCASH: Cluster-enabled OpenMP -- OpenMP
implementation for a software distributed shared memory system SCASH
-
Omni OpenMP Compiler 64 bit environment status
-
Omni Fortran Compiler, omf77 multiple precision real support
Download:
The version 1.6 is now available!
To download Omni OpenMP compiler, click here .
The current version of the Omni OpenMP compiler has been tested on the
following platforms:
- Sun Solaris 5.6 (SPARC and x86) with Solaris threads.
- Linux 2.2.7 (redhat-6.0, x86 SMP) with linux-threads.
- IRIX 6.5 (Origin 2000) with POSIX thread library and sproc.
- IBM AIX with POSIX thread library.
- HPUX with POSIX thread library.
- Compaq Alpha SMP with linux-threads (64bits implementataion)
- Cygnus cygwin environment for Windows-NT/2000
Note that you can install the software to any platform with POSIX
thread library (even in a single processor machine!).
Version 1.6 supports the following runtime and configurations:
The Omni compiler is a product of our research project.
Your feedback and bug reports will be greatly appreciated.
1.3, Update from 1.2s
- Bug fix
- Omni OpenMP extension of data mapping and affinity scheduling for SCASH.
- Update for Score 3.3.2, in which SCASH for SMP nodes are available.
- omf77 multiple precision support by GNU MP.
- Source distribution for Win-NT implementation on the cygus environment.
- Installtion with jexc, out of beta state.
- Stackthreads implementation improved by polling codes.
1.2s, Update from 1.2 (minor update) are:
- Several bugs in SCASH implementation were fixed for Score 3.2.
- Fixed bugs and update in omf77/omcc
- threadprivate common.
external dummy procedure.
- adjustable local array is supported.
- local variables in main are allocated statically.
- spin lock for alpha and IBM
- jexc (java byte code to C translator for Exc java toolkit) is
ready for a binary version.
- RPM (binary) is available for linux (x86 and alpha, Redhad 6.2).
- Win-NT implementation on the cygus environment
1.2, Updates from 1.1 are:
- Several bugs in OpenMP C/Fortran 77 compiler were fixed.
- Adjustable array in private clause of F77 OpenMP is supported.
- Complex reduction in F77 is supported.
- Performance improvement from 1.1.
- Kaffe JVM (1.0.5) can be used to run our compiler.
- Supporting multiple configurations including scash, shmem, StackThreads,
sproc(on irix)
- Cluster-enabled OpenMP implementation on software distributed shared
memory SCASH.
- StackThreads runtime implementation for nested irregular parallelism
is available.
- Omni installation creates all runtime libraries (combination of lock
mechanism and parallel execution mechanism) available on the platform.
- New compile drivers, omcc/omf77, are available for multiple runtime
configuration (shmem, scash, StackThreads, etc...). You can specify
those runtimes by "-omniconfig" option.
- 64 bit machine support. See also omni64bit.html for detail.
- INTEGER*8 support in Fortran 77 if backend C compiler supports 64
bit integer.
1.1, Updates from 1.0 are:
- Several bugs in OpenMP C compiler, ompcc, were fixed.
- OpenMP Fortran 77, ompf77, now supports almost features, which
were not supported in the previous beta version.
- The front-end of C and f77 can successfully compile major benchmark
programs including SPECint95, SPECfp95, SPEChpc (SPECseis,
SPECchem, SPECclimate), NPB 2.3 serial version.
- A serious performance bug of thread scheduling for linux pthread
was fixed. "sched_yield" of linux may cause large overhead.
- A performance bug in case of the mixture of OpenMP and MPI under
pthread environment was fixed. The idle threads are suspended
by using "pthread_cond_wait". The "spin" version may cause
performance bug when using with MPICH.
- In profiling mode, blocks of tlog records are output in the order of
timestamp. A large tlog file is automatically truncated (2000 records)
in viewing with tlogview.
- IBM AIX with POSIX thread is supported.
Document Index:
-
RWCP Omni OpenMP Compiler
-
OpenMP official web site
OpenMP Benchmarks