Deep Parameter Tuning of Concurrent Divide and Conquer Algorithms in Akka

  • David R. White
  • Leonid Joffe
  • Edward Bowles
  • Jerry Swan
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10200)


Akka is a widely-used high-performance and distributed computing toolkit for fine-grained concurrency, written in Scala for the Java Virtual Machine. Although Akka elegantly simplifies the process of building complex parallel software, many crucial decisions that affect system performance are deferred to the user. Employing the method of Deep Parameter Tuning to extract embedded ‘magic numbers’ from source code, we use the CMA-ES evolutionary computation algorithm to optimise the concurrent implementation of three widely-used divide-and-conquer algorithms within the Akka toolkit: Quicksort, Strassen’s matrix multiplication, and the Fast Fourier Transform.


Genetic improvement Concurrency Scala JVM Akka Deep parameter tuning Divide and Conquer FFT Matrix multiplication Quicksort 


  1. 1.
    Ackling, T., Alexander, B., Grunert, I.: Evolving patches for software repair. In: GECCO 2011 Proceedings (2011)Google Scholar
  2. 2.
    Agapitos, A., Lucas, S.M.: Evolving efficient recursive sorting algorithms. In: 2006 IEEE International Conference on Evolutionary Computation Proceedings (2006)Google Scholar
  3. 3.
    Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools. Addison-Wesley Longman Publishing Co., Inc., Boston (1986)zbMATHGoogle Scholar
  4. 4.
    Armstrong, J.: A history of Erlang. In: Proceedings of the Third ACM SIGPLAN Conference on History of Programming Languages. HOPL III (2007)Google Scholar
  5. 5.
    Brown, C.M., Hammond, K., Loidl, H.: Paraforming: forming parallel haskell programs using Novel Refactoring Techniques. In: Trends in Functional Programming (2011)Google Scholar
  6. 6.
    Burles, N., Bowles, E., Brownlee, A.E.I., Kocsis, Z.A., Swan, J., Veerapen, N.: Object-oriented genetic improvement for improved energy consumption in Google Guava. In: Barros, M., Labiche, Y. (eds.) SSBSE 2015. LNCS, vol. 9275, pp. 255–261. Springer, Cham (2015). doi: 10.1007/978-3-319-22183-0_20CrossRefGoogle Scholar
  7. 7.
    Calderón Trilla, J.M., Poulding, S., Runciman, C.: Weaving parallel threads. In: Barros, M., Labiche, Y. (eds.) SSBSE 2015. LNCS, vol. 9275, pp. 62–76. Springer, Cham (2015). doi: 10.1007/978-3-319-22183-0_5CrossRefGoogle Scholar
  8. 8.
    Cooley, J.W., Tukey, J.W.: An algorithm for the machine calculation of complex Fourier series. Math. Comput. 19, 297–301 (1965)MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    Cooley, J.W., Tukey, J.W.: An algorithm for the machine calculation of complex Fourier series. Math. Comput. 19(90), 297–301 (1965)MathSciNetCrossRefzbMATHGoogle Scholar
  10. 10.
    Gao, Z., Jian, C., Qiu, X., Meng, L.: QoE/QoS driven simulated annealing-based genetic algorithm for web services selection. J. China Univ. Posts Telecommun. 16, 102–107 (2009)CrossRefGoogle Scholar
  11. 11.
    Hansen, N., Ostermeier, A.: Adapting arbitrary normal mutation distributions in evolution strategies: the covariance matrix adaptation. In: Proceedings of IEEE International Conference on Evolutionary Computation (1996)Google Scholar
  12. 12.
    Hansen, N., Ostermeier, A.: Completely derandomized self-adaptation in evolution strategies. Evol. Comput. 9(2), 159–195 (2001)CrossRefGoogle Scholar
  13. 13.
    Harman, M., Langdon, W.B., Jia, Y., White, D.R., Arcuri, A., Clark, J.A.: The GISMOE challenge: constructing the pareto program surface using genetic programming to find better programs (keynote paper). In: Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering, ASE 2012, pp. 1–14. ACM, New York (2012)Google Scholar
  14. 14.
    Hoare, C.A.R.: Algorithm 64: quicksort. Commun. ACM 4(7), 321–322 (1961)CrossRefGoogle Scholar
  15. 15.
    Karatsuba, A.A.: The complexity of computations. Proc. Steklov Inst. Math. Interperiodica Transl. 211, 169–183 (1995)MathSciNetzbMATHGoogle Scholar
  16. 16.
    Kocsis, Z.A., Drake, J.H., Carson, D., Swan, J.: Automatic improvement of apache spark queries using semantics-preserving program reduction. In: Proceedings of the 2016 on Genetic and Evolutionary Computation Conference Companion, GECCO 2016 Companion, pp. 1141–1146. ACM, New York (2016)Google Scholar
  17. 17.
    Kocsis, Z.A., Neumann, G., Swan, J., Epitropakis, M.G., Brownlee, A.E.I., Haraldsson, S.O., Bowles, E.: Repairing and Optimizing Hadoop hashCode Implementations (2014)Google Scholar
  18. 18.
    Mrazek, V., Vasicek, Z., Sekanina, L.: Evolutionary approximation of software for embedded systems: median function. In: Proceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary Computation (2015)Google Scholar
  19. 19.
    Rockmore, D.N.: The FFT: an algorithm the whole family can use. Comput. Sci. Eng. 2(1), 60–64 (2000)CrossRefGoogle Scholar
  20. 20.
    Sohn, J., Lee, S., Yoo, S.: Amortised deep parameter optimisation of GPGPU work group size for OpenCV. In: Sarro, F., Deb, K. (eds.) SSBSE 2016. LNCS, vol. 9962, pp. 211–217. Springer, Cham (2016). doi: 10.1007/978-3-319-47106-8_14Google Scholar
  21. 21.
    Strassen, V.: Gaussian elimination is not optimal. Numerische Mathematik 13(4), 354–356 (1969)MathSciNetCrossRefzbMATHGoogle Scholar
  22. 22.
    Swan, J., Epitropakis, M.G., Woodward, J.R.: Gen-O-Fix: An embeddable framework for Dynamic Adaptive Genetic Improvement Programming. Technical report CSM-195, Computing Science and Mathematics, University of Stirling (2014)Google Scholar
  23. 23.
    Swan, J., Burles, N.: Templar – a framework for template-method hyper-heuristics. In: Machado, P., Heywood, M.I., McDermott, J., Castelli, M., García-Sánchez, P., Burelli, P., Risi, S., Sim, K. (eds.) EuroGP 2015. LNCS, vol. 9025, pp. 205–216. Springer, Cham (2015). doi: 10.1007/978-3-319-16501-1_17Google Scholar
  24. 24.
    White, D.R., Clark, J., Jacob, J., Poulding, S.M.: Searching for resource-efficient programs: low-power pseudorandom number generators. In: GECCO 2008 Proceedings (2008)Google Scholar
  25. 25.
    Woodward, J.R., Swan, J.: Template method hyper-heuristics. In: Proceedings of the Companion Publication of the 2014 Annual Conference on Genetic and Evolutionary Computation, GECCO Comp 2014 (2014)Google Scholar
  26. 26.
    Wu, F., Weimer, W., Harman, M., Jia, Y., Krinke, J.: Deep parameter optimisation. In: GECCO Proceedings (2015)Google Scholar
  27. 27.
    Yeboah-Antwi, K., Baudry, B.: Embedding adaptivity in software systems using the ECSELR framework. In: Proceedings of the Companion Publication of the 2015 Annual Conference on Genetic and Evolutionary Computation, GECCO Companion 2015 (2015)Google Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • David R. White
    • 1
  • Leonid Joffe
    • 1
  • Edward Bowles
    • 2
  • Jerry Swan
    • 2
  1. 1.CRESTUniversity College LondonLondonUK
  2. 2.Computer ScienceUniversity of YorkYorkUK

Personalised recommendations