摘要
OpenMP is able to develop multithreaded programs with lower cost as a promising way to quickly parallelize a great number of serial programs. However, there are many difficulties when developing OpenMP multithreaded programs. Most importantly, the performance of OpenMP programs cannot be guar- anteed, which has greatly affected the application of OpenMP. This paper examines several factors that af- fect the execution performance of OpenMP programs, including loop transformation, scheduling strategy, the number of threads, and nested parallelism. The results show that one of the key reasons for perform- ance degradation is load imbalance, which can be corrected by reasonable use of these key factors to im- prove the execution performance of OpenMP programs.
OpenMP is able to develop multithreaded programs with lower cost as a promising way to quickly parallelize a great number of serial programs. However, there are many difficulties when developing OpenMP multithreaded programs. Most importantly, the performance of OpenMP programs cannot be guar- anteed, which has greatly affected the application of OpenMP. This paper examines several factors that af- fect the execution performance of OpenMP programs, including loop transformation, scheduling strategy, the number of threads, and nested parallelism. The results show that one of the key reasons for perform- ance degradation is load imbalance, which can be corrected by reasonable use of these key factors to im- prove the execution performance of OpenMP programs.
基金
Supported by the National Natural Science Foundation of China (No. 69933202) and by the Intel Corporation