OpenMP / GCC project (studying and improving of
OpenMP standart support in GCC C compiler).
Brief Description.
Project’s goal is to support, study and improve
existing implementation of GNU C compiler supporting the use of
OpenMP specification. This implementation was recently done by
GOMP project.
Current project activity is concerned with
developing PLN application, which is designed to be
framework and test
suite for investigating general multithreading issues and comparing known
multithreading API's implementations.
Project requires work within following
areas:
Algorithms (porting known
scientific kernels into PLN framework)
Multithreading techniques
(OpenMP mainly; WinThreads and pthreads)
Any volunteers to participate in
project activities are welcome!
Research Area Description
OpenMP Application Program
Interface (API)
specifies the set of functionality (compiler directives, library routines and
environment variables) for creating parallel programs. The goal of this specification is to provide a
model for parallel programming that allows a program to be portable across
shared-memory architectures from different vendors.
Gnu Compiler Collection
includes preprocessors for several languages: C, C++, Objective-C, Fortran, Java
и Ada. GCC compilers are open
source.
Goals
Long-term goals:
Create a test suite - set of
famous benchmarks - each benchmark implemented in various versions: using
OpenMP, libgomp library calls, Winthreads - each version tuned manually to
show high performance
Study and improve current
implementation performance using test suite
Test suite – PLN framework
development (PLN is, as said above, framework and test suite for investigating
general multithreading issues and comparing known multithreading API's
implementations)
Research Team
At the moment:
Alexey Kovalev
(Intel)
Irina Malkova
(ITLab)
Worked with us
before:
Roman Vinogradov
(ITLab)
Evgeny Gagauz
(ITLab)
Anna Gorbunova
(ITLab)
Dmitry Kurochkin
(ITLab)
Main results (expected)
·
self-dependent test-suite for investigating general
multithreading issues and comparing known multithreading API's
implementations
·
studying
and making conclusions about OpenMP support implementation in GCC
·
educational experience in areas of
multithreading techniques and issues, scientific algorithms and benchmarks,
compiler internals
Main results (achieved by project participants)
·
parser
for OpenMP directives implemented and published in GNU GOMP mailing
list
·
finite-state automata with stack created
(allows automatically interchange OpenMP directives with appropiate library
function calls)
Current Research
Work on PLN application:
PLN internals implemented (set of
service routines supplying test suite functionality)
ported several PLN Benchmarks (7
general implementations are done: DAXPY, MATMUL(several
versions), GEFA, LLNL loops)
implemented some PLN benchmark
parallel versions (OpenMP versions for all general kernels; WinThread's
versions for DAXPY, MATMUL, LLNL)