Skip to main content

Deep Parameter Tuning of Concurrent Divide and Conquer Algorithms in Akka

  • Conference paper
  • First Online:
Applications of Evolutionary Computation (EvoApplications 2017)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 10200))

Included in the following conference series:

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Notes

  1. 1.

    Strictly, a monad.

  2. 2.

    http://doc.akka.io/docs/akka/current/scala/dispatchers.html.

  3. 3.

    https://commons.apache.org/proper/commons-math/javadocs/api-3.6.1/index.html.

References

  1. Ackling, T., Alexander, B., Grunert, I.: Evolving patches for software repair. In: GECCO 2011 Proceedings (2011)

    Google Scholar 

  2. Agapitos, A., Lucas, S.M.: Evolving efficient recursive sorting algorithms. In: 2006 IEEE International Conference on Evolutionary Computation Proceedings (2006)

    Google Scholar 

  3. Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools. Addison-Wesley Longman Publishing Co., Inc., Boston (1986)

    MATH  Google Scholar 

  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. 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. 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_20

    Chapter  Google Scholar 

  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_5

    Chapter  Google Scholar 

  8. Cooley, J.W., Tukey, J.W.: An algorithm for the machine calculation of complex Fourier series. Math. Comput. 19, 297–301 (1965)

    Article  MathSciNet  MATH  Google Scholar 

  9. Cooley, J.W., Tukey, J.W.: An algorithm for the machine calculation of complex Fourier series. Math. Comput. 19(90), 297–301 (1965)

    Article  MathSciNet  MATH  Google Scholar 

  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)

    Article  Google Scholar 

  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. Hansen, N., Ostermeier, A.: Completely derandomized self-adaptation in evolution strategies. Evol. Comput. 9(2), 159–195 (2001)

    Article  Google Scholar 

  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. Hoare, C.A.R.: Algorithm 64: quicksort. Commun. ACM 4(7), 321–322 (1961)

    Article  Google Scholar 

  15. Karatsuba, A.A.: The complexity of computations. Proc. Steklov Inst. Math. Interperiodica Transl. 211, 169–183 (1995)

    MathSciNet  MATH  Google Scholar 

  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. 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. 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. Rockmore, D.N.: The FFT: an algorithm the whole family can use. Comput. Sci. Eng. 2(1), 60–64 (2000)

    Article  Google Scholar 

  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_14

    Google Scholar 

  21. Strassen, V.: Gaussian elimination is not optimal. Numerische Mathematik 13(4), 354–356 (1969)

    Article  MathSciNet  MATH  Google Scholar 

  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. 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_17

    Google Scholar 

  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. 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. Wu, F., Weimer, W., Harman, M., Jia, Y., Krinke, J.: Deep parameter optimisation. In: GECCO Proceedings (2015)

    Google Scholar 

  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 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jerry Swan .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

White, D.R., Joffe, L., Bowles, E., Swan, J. (2017). Deep Parameter Tuning of Concurrent Divide and Conquer Algorithms in Akka. In: Squillero, G., Sim, K. (eds) Applications of Evolutionary Computation. EvoApplications 2017. Lecture Notes in Computer Science(), vol 10200. Springer, Cham. https://doi.org/10.1007/978-3-319-55792-2_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-55792-2_3

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-55791-5

  • Online ISBN: 978-3-319-55792-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics