Implementation and Translation of Major OpenMP Directives for Chip Multiprocessor without using OS

단일 칩 다중 프로세서상에서 운영체제를 사용하지 않은 OpenMP 구현 및 주요 디렉티브 변환

  • 전우철 (서울대학교 전기컴퓨터공학부) ;
  • 하순회 (서울대학교 전기컴퓨터공학부)
  • Published : 2007.04.15

Abstract

OpenMP is an attractive parallel programming model for a chip multiprocessor because there is no standard parallel programming method for a chip multiprocessor and it is easy to write a parallel program in OpenMP. Then, chip multiprocessor systems can have various architectures according to target application programs. So, we need to implement OpenMP in different way for each system. In this paper, we propose the implementation and the effective translation of major OpenMP directives for a chip multiprocessor without using OS to improve the performance without using special hardware and without extending the OpenMP directives. We present the experimental results on our target platform CT3400.

단일 칩 다중 프로세서의 경우 표준화된 병렬 프로그래밍 방법이 없는데 OpenMP를 사용하면 병렬 프로그래밍이 쉬우므로 OpenMP는 단일 칩 다중 프로세서를 위한 매력적인 병렬 프로그래밍 모델이다. 그런데 단일 칩 다중 프로세서 시스템의 구조는 대상 응용 프로그램에 따라 다양할 수 있다. 따라서 각 시스템마다 다른 방식으로 OpenMP를 구현해야 할 필요가 있다. 본 논문에서는 운영체제를 사용하지 않는 단일 칩 다중 프로세서를 위한 OpenMP 구현과 주요 디렉티브의 효과적인 변환을 제안하여 특수한 하드웨어에 의존하지 않고 OpenMP 디렉티브의 추가적인 확장 없이 성능을 향상 시킬 수 있게 한다. 실험은 대상 플랫폼인 CT3400에서 수행하고 그 결과를 제시한다.

Keywords

References

  1. Message Passing Interface Forum, 'MPI: A message-passing interface standard,' International Journal of Supercomputer Applications and High Performance Computing, Vol.8, No.3/4, pp.159-416, 1994
  2. OpenMP Architecture Review Board, 'OpenMP C and C++ Application Program Interface,' http://www.openmp.org, Version 1.0, Oct. 1998
  3. Christian Brunschen and Mats Brorsson, 'OdinMP/ CCp - A portable implementation of OpenMP for C,' (EWOMP'99) In the proceeding of first European Workshop on OpenMP, Lund, Sweden, Sept. 1999, pp.21-26
  4. Vassilios V. Dimakopoulos and Elias Leontiadis, 'A portable C compiler for OpenMP V.2.0,' EWOMP 2003, In the proceeding of 5th European Workshop on OpenMP, Aachen, Germany, Sept. 2003, pp.5-11
  5. Mitsuhisa Sato, Shigehisa Satoh, Kazuhiro Kusano, and Yoshio Tanaka, 'Design of OpenMP Compiler for an SMP Cluster,' EWOMP'99, In the proceeding of 1st European Workshop on OpenMP, Lund, Sweden, Sept. 1999, pp.32-39
  6. Yang-Suk Kee, Jin-Soo Kim, and Soonhoi Ha, 'ParADE: An OpenMP Programming Environment for SMP Cluster Systems,' ACM/IEEE Supercomputing (SC'03), Nov 12-15, 2003 https://doi.org/10.1109/SC.2003.10004
  7. Feng Liu and Vipin Chaudhary, 'A Practical OpenMP Compiler for System on Chips,' WOMPAT 2003, LNCS 2716, pp. 54-68, 2003
  8. Yoshihiko Hotta, Mitsuhisa Sato, Yoshihiro Nakajima, Yoshinori Ojima, 'OpenMP Implemen tation and Performance on Embedded Renesas M32R Chip Multiprocessor,' EWOMP 2004, Stockholm, Sweden, Oct. 2004, pp. 37-42
  9. Feng Liu and Vipin Chudhary, 'Extending OpenMP for Heterogeneous Chip Multiprocessors,' Proceedings of the 2003 International Conference on Parallel Processing, Kaohsiung, Taiwan, Oct. 2003, pp.161- https://doi.org/10.1109/ICPP.2003.1240577
  10. Cradle Technologies, Inc., CT3400 Multi-core DSP datasheet, http://www.cradle.com, 2004
  11. Cradle Technologies,Inc., CRAGCC Compiler Addendum, http://www.cradle.com, 2004
  12. 강신육, 'SMP 클러스터를 위한 OpenMP Translator 구현', 서울대학교 대학원 전기컴퓨터공학부 공학석사 학위논문, 2003
  13. EPCC OpenMP Microbenchmarks 1.0, http://www.epcc.ed.ac.uk/research/openmpbench, 1999
  14. OpenMP Architecture Review Board, 'OpenMP C and C++ Application Program Interface,' http://www.openmp.org, Version 2.0, Mar. 2002