Mandelbrot Benchmark
The DTPM scheduler is used to compute the Mandelbrot set for parts of the application domain by using different instances of a Mandelbrot plugin. The partial results are gathered at the end of the simulation, which provides insight into the communication overhead. The implementation of the Mandelbrot plugin performs a partitioning of the simulation domain. Thus, each instance is responsible for a subdomain. In its essence, this approach follows a data parallel approach, which also shows that the DTPM can be used for such kind of tasks, despite of its inherent focus on task parallelism.
Two different simulation domains have been investigated, being a grid of 1000x1000 and 4000x4000 to demonstrate the influence of varying computational load on the scaling behavior. Each plugin processes one line of the grid, consequently 1000 instances for the smaller and 4000 instances for the larger case have been used.
The strong scaling figure depicts the strong scaling results. Reasonable scaling is achieved, although communication overhead and load balancing problems are identifiable already for small core numbers. However, increasing the computational load on each plugin and the number of plugins to be processed by the MPI processes further shifts the scaling saturation towards higher core numbers.