Programming, tuning and automatic parallelization of irregular divide-and-conquer applications in DAMPVM/DAC
This paper presents a new object oriented framework DAMPVM/DAC which is implemented on top of DAMPVM and provides automatic partitioning of irregular divide-and-conquer (DAC) applications at runtime. The processes are then mapped dynamically to processors taking into account their speeds and even loads by other user processes. The paper presents the programming interface (API) of the framework, available tuning mechanisms, internal solutions with respect to automatic partitioning and mapping to processors. Finally, specific parameters, optimization techniques and simulation results are shown for a variety of irregular divide-and-conquer applications. The applications include alphabeta search, recursive Fibonacci, ((n)(k)), finding twin prime numbers in parallel and previously implemented and now carefully analyzed and tuned adaptive quadrature integration and image recognition. Various DAC parameters were tuned for specific applications including costs of computing vectors/subtrees, maximum partitioning levels etc. Moreover, the overhead of DAMPVM/DAC compared to sequential implementations is shown for all the implemented applications.
automatic parallelization data decomposition dynamic load balancing process migration