Parallel Loop Self-Scheduling for Heterogeneous Cluster Systems with Multi-core Computers
Multicore computers have been widely included in cluster systems. They are shared memory architecture. However, previous research on parallel loop self-scheduling did not consider the feature of multicore computers. It is more suitable for shared-memory multiprocessors to adopt OpenMP for parallel programming. Therefore, in this paper, we propose to adopt hybrid programming model MPI+OpenMP to design loop self-scheduling schemes for cluster systems with multicore computers. Initially, each computer runs only one MPI process no matter how many cores it has. A MPI process will fork OpenMP threads depending on the number of cores in the computer. Each idle slave MPI-process will request tasks from the master process. The tasks dispatched to a process will be executed in parallel by OpenMP threads. According to the experimental results, our method outperforms the previous work by 18.66% or 29.76% depending on the problem size. Moreover, the performance improvement is very stable no matter our method is based on which traditional scheme.