Нижегородский государственный университет им.Н.И.Лобачевского.


Факультет вычислительной математики и кибернетики

Лаборатория ITLabИсследованияПроекты 2003-2009 гг.Учебно-исследовательские проектыРеализация поддержки стандарта OpenMP в GCC (gnu compiler collection) Switch to English version  
О Лаборатории
Проекты 2011 г.
Проекты 2010 г.
Проекты 2003-2009 гг.
Образовательные комплексы
Семинар Лаборатории
Вакансии Интел
Разработчики сайта
О нас пишут
Летняя школа 2011
Видео лекции
Клуб У.М.Н.И.К.
Забыли пароль? Регистрация

Реализация поддержки стандарта OpenMP в GCC


Project Title

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)
  • Multithreading issues (studying parallel applications performance, solving cost problems, tuning multithreading applications)
  • Compiler internals

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.


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
  • Create Winthreads libgomp implementation (optional)

 Short-term goals:

  • 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)



© ITLab, Нижний Новгород,  2009