The Divisible Load Balance Problem and Its Application to Phylogenetic Inference
Motivated by load balance issues in parallel calculations of the phylogenetic likelihood function we address the problem of distributing divisible items to a given number of bins. The task is to balance the overall sum of (fractional) item sizes per bin, while keeping the maximum number of unique elements in any bin to a minimum. We show that this problem is NP-hard and give a polynomial time approximation algorithm that yields a solution where the sums of (possibly fractional) item sizes are balanced across bins. Moreover, the maximum number of unique elements in the bins is guaranteed to exceed the optimal solution by at most one element. We implement the algorithm in two production-level parallel codes for large-scale likelihood-based phylogenetic inference: ExaML and ExaBayes. For ExaML, we observe best-case runtime improvements of up to a factor of 5.9 compared to the previously implemented data distribution algorithms.
KeywordsItem Size Polynomial Time Approximation Algorithm Divisible Load Alignment Site Startup Latency
Unable to display preview. Download preview PDF.
- 3.Cook, S.A.: The complexity of theorem-proving procedures. In: STOC 1971 Proceedings of the Third Annual ACM Symposium on Theory of Computing, pp. 151–158 (1971)Google Scholar
- 4.Felsenstein, J.: Inferring phylogenies. Sinauer Associates (2003)Google Scholar
- 5.Gonzalez, T.F.: Handbook of Approximation Algorithms and Metaheuristics. Chapman & Hall/CRC (2007)Google Scholar
- 6.Karp, R.: Reducibility among combinatorial problems. Complexity of Computer Computations, 85–103 (1972)Google Scholar
- 7.Stamatakis, A., Aberer, A.J.: Novel parallelization schemes for large-scale likelihood-based phylogenetic inference. In: IPDPS, pp. 1195–1204 (2013)Google Scholar
- 9.Yang, Z.: Computational Molecular Evolution. Oxford University Press (2006)Google Scholar
- 10.Zhang, J., Stamatakis, A.: The multi-processor scheduling problem in phylogenetics. In: IPDPS Workshops, pp. 691–698. IEEE Computer Society (2012)Google Scholar