Hybrid parallel programming on SMP clusters using XPFortran and OpenMP

  • Authors:
  • Yuanyuan Zhang;Hidetoshi Iwashita;Kuninori Ishii;Masanori Kaneko;Tomotake Nakamura;Kohichiro Hotta

  • Affiliations:
  • Software Development Division, Next Generation Technical Computing Unit, Fujitsu Limited, Kawasaki, Japan;Software Development Division, Next Generation Technical Computing Unit, Fujitsu Limited, Kawasaki, Japan;Software Development Division, Next Generation Technical Computing Unit, Fujitsu Limited, Kawasaki, Japan;Software Development Division, Next Generation Technical Computing Unit, Fujitsu Limited, Kawasaki, Japan;Software Development Division, Next Generation Technical Computing Unit, Fujitsu Limited, Kawasaki, Japan;Software Development Division, Next Generation Technical Computing Unit, Fujitsu Limited, Kawasaki, Japan

  • Venue:
  • IWOMP'10 Proceedings of the 6th international conference on Beyond Loop Level Parallelism in OpenMP: accelerators, Tasking and more
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Process-thread hybrid programming paradigm is commonly employed in SMP clusters. XPFortran, a parallel programming language that specifies a set of compiler directives and library routines, can be used to realize process-level parallelism in distributed memory systems. In this paper, we introduce hybrid parallel programming by XPFortran to SMP clusters, in which thread-level parallelism is realized by OpenMP. We present the language support and compiler implementation of OpenMP directives in XPFortran, and show some of our experiences in XPFortran-OpenMP hybrid programming. For nested loops parallelized by process-thread hybrid programming, it’s common sense to use process parallelization for outer loops and thread parallelization for inner ones. However, we have found that in some cases it’s possible to write XPFortran-OpenMP hybrid program in a reverse way, i.e., OpenMP outside, XPFortran inside. Our evaluation results show that this programming style sometimes delivers better performance than the traditional one. We therefore recommend using the hybrid parallelization flexibly.