Skip to main content

Genetic Improvement of Last Level Cache

  • Conference paper
  • First Online:
Genetic Programming (EuroGP 2024)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 14631))

Included in the following conference series:

  • 119 Accesses

Abstract

With increasing reliance on multi-core parallel computing performance is evermore dominated by interprocessor data communication typically provided by last level cache (LLC) shared between CPUs. In an 8 core 3.6 GHz desktop using multiple local searches, the Magpie parameter tuning genetic improvement (GI) system was able to reduce L3 cache access (load + stores) four fold on an existing open source 7000 line C PARSEC parallel computing VIPS image benchmark.

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

Access this chapter

Institutional subscriptions

Notes

  1. 1.

    We use Python 3.10.1.

  2. 2.

    https://github.com/bloa/magpie (last update before submission 2 October 2023).

  3. 3.

    Our work evolving 50 000 parameters for RNAfold’s free energy minimisation algorithm [37] and evolving 512 floating point values to convert the GNU C square root function into other functions [33], was done before Magpie was available.

  4. 4.

    https://github.com/bamos/parsec-benchmark Version 3.0 for 64-bit x86.

  5. 5.

    There is a vipsthumbnail command line option to allow the user to control the number of threads used during thumbnail image creation: –vips-concurrency, Sect. 4.2.

  6. 6.

    The Linux limit filesize command can be used to restrict the total size of files generated but this was not necessary in these experiments.

  7. 7.

    Although Table 2 suggests a slight downward trend in perf last level cache LLC measurements with increasing vips-thinstrip-height, this is not visible in Fig. 6, which includes both vips-thinstrip-height and vips-fatstrip-height.

References

  1. Adamek, K., Dimoudi, S., Giles, M., Armour, W.: GPU fast convolution via the overlap-and-save method in shared memory. ACM Trans. Archit. Code Optim. 17(3), article no 18 (2020). https://doi.org/10.1145/3394116

  2. Andrews, R.J., et al.: A map of the SARS-CoV-2 RNA structurome. NAR Genomics Bioinform. 3(2), lqab043 (2021). https://doi.org/10.1093/nargab/lqab043

  3. Banzhaf, W., Nordin, P., Keller, R.E., Francone, F.D.: Genetic Programming - An Introduction. Morgan Kaufmann, London (1998). https://www.amazon.co.uk/Genetic-Programming-Introduction-Artificial-Intelligence/dp/155860510X

  4. Berger, M.: Compilers and computer architecture: caches and caching. G5035, BSc/MComp Computer Science, University of Sussex, December 2019. https://users.sussex.ac.uk/mfb21/compilers/slides/15-handout.pdf. Accessed November 2023

  5. Bienia, C., Kumar, S., Singh, J.P., Li, K.: The PARSEC benchmark suite: characterization and architectural implications. In: Moshovos, A., Tarditi, D., Olukotun, K. (eds.) 17th International Conference on Parallel Architectures and Compilation Techniques, PACT 2008, pp. 72–81. ACM, Toronto, Ontario, Canada, 25–29 October 2008. https://doi.org/10.1145/1454115.1454128

  6. Blot, A., Petke, J.: Comparing genetic programming approaches for non-functional genetic improvement. In: Hu, T., Lourenço, N., Medvet, E., Divina, F. (eds.) EuroGP 2020. LNCS, vol. 12101, pp. 68–83. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-44094-7_5

    Chapter  Google Scholar 

  7. Blot, A., Petke, J.: Empirical comparison of search heuristics for genetic improvement of software. IEEE Trans. Evol. Comput. 25(5), 1001–1011 (2021). https://doi.org/10.1109/TEVC.2021.3070271

    Article  Google Scholar 

  8. Blot, A., Petke, J.: MAGPIE: machine automated general performance improvement via evolution of software, 4 August 2022. arXiv. http://dx.doi.org/10.48550/arxiv.2208.02811

  9. Blot, A., Petke, J.: Using genetic improvement to optimise optimisation algorithm implementations. In: Hadj-Hamou, K. (ed.) 23ème congrès annuel de la Société Française de Recherche Opérationnelle et d’Aide à la Décision, ROADEF’2022. INSA Lyon, France, 23–25 February 2022. https://hal.archives-ouvertes.fr/hal-03595447

  10. Brownlee, A.E.I., et al.: Enhancing genetic improvement mutations using large language models. In: Arcaini, P., Tao Yue, Fredericks, E. (eds.) Search-Based Software Engineering. SSBSE 2023: Challenge Track. LNCS, vol. 14415, pp. 153–159. Springer, Cham (2023). https://doi.org/10.1007/978-3-031-48796-5_13

  11. Bruce, B.R.: Automatically exploring computer system design spaces. In: Bruce, B.R., et al. (eds.) GI @ GECCO 2022, pp. 1926–1927. Association for Computing Machinery, Boston, USA, 9 July 2022. https://doi.org/10.1145/3520304.3534021

  12. de Almeida Farzat, F., de Oliveira Barros, M., Horta Travassos, G.: Challenges on applying genetic improvement in JavaScript using a high-performance computer. J. Softw. Eng. Res. Dev. 6(12) (2018). https://doi.org/10.1186/s40411-018-0056-2, 20th Iberoamerican Conference on Software Engineering

  13. Griffin, D., Stepney, S., Vidamour, I.: DebugNS: novelty search for finding bugs in simulators. In: Nowack, V., et al. (eds.) 12th International Workshop on Genetic Improvement @ICSE 2023, pp. 17–18. IEEE, Melbourne, Australia, 20 May 2023. https://doi.org/10.1109/GI59320.2023.00012

  14. Harman, M., Jones, B.F.: Search based software engineering. Inf. Softw. Technol. 43(14), 833–839 (2001). https://doi.org/10.1016/S0950-5849(01)00189-6

    Article  Google Scholar 

  15. Liou, J.-Y., Forrest, S., Wu, C.-J.: Genetic improvement of GPU code. In: Petke, J., Tan, S.H., Langdon, W.B., Weimer, W. (eds.) GI-2019, ICSE Workshops Proceedings, pp. 20–27. IEEE, Montreal, 28 May 2019. https://doi.org/10.1109/GI.2019.00014, Best Paper

  16. Liou, J.-Y., Wang, X., Forrest, S., Wu, C.-J.: GEVO: GPU code optimization using evolutionary computation. ACM Trans. Archit. Code Optim. 17(4), Article 33 (2020). https://doi.org/10.1145/3418055

  17. Jimenez, D.A., Teran, E., Gratz, P.V.: Last-level cache insertion and promotion policy in the presence of aggressive prefetching. IEEE Comput. Archit. Lett. 22(1), 17–20 (2023). https://doi.org/10.1109/LCA.2023.3242178

  18. Jouppi, N.P., et al.: TPU v4: an optically reconfigurable supercomputer for machine learning with hardware support for embeddings. In: Proceedings of the 50th Annual International Symposium on Computer Architecture, ISCA, p. article no 82. ACM, Orlando, FL, USA (2023). https://doi.org/10.1145/3579371.3589350

  19. Klinkenberg, J., et al.: H2M: exploiting heterogeneous shared memory architectures. Futur. Gener. Comput. Syst. 148, 39–55 (2023). https://doi.org/10.1016/J.FUTURE.2023.05.019

    Article  Google Scholar 

  20. Klus, P., et al.: BarraCUDA - a fast short read sequence aligner using graphics processing units. BMC Res. Notes 5(27) (2012). https://doi.org/10.1186/1756-0500-5-27

  21. Koza, J.R.: Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Cambridge, MA, USA (1992). http://mitpress.mit.edu/books/genetic-programming

  22. Krauss, O.: Exploring the use of natural language processing techniques for enhancing genetic improvement. In: Nowack, V., et al. (eds.) 12th International Workshop on Genetic Improvement @ICSE 2023, pp. 21–22. IEEE, Melbourne, Australia, 20 May 2023. https://doi.org/10.1109/GI59320.2023.00014

  23. Kuepper, J., et al.: CryptOpt: verified compilation with randomized program search for cryptographic primitives. In: Foster, N. (ed.) 44th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2023, p. article no. 158. Association for Computing Machinery, Orlando, Florida, 17–21 June 2023. https://doi.org/10.1145/3591272, Gold winner 2023 HUMIES, PLDI Distinguished Paper

  24. Langdon, W.B., Lam, B.Y.H.: Genetically improved BarraCUDA. BioData Min. 20(28) (2017). https://doi.org/10.1186/s13040-017-0149-1

  25. Langdon, W.B., Harman, M.: Evolving a CUDA kernel from an nVidia template. In: Sobrevilla, P. (ed.) 2010 IEEE World Congress on Computational Intelligence, pp. 2376–2383. IEEE, Barcelona, 18–23 July 2010. https://doi.org/10.1109/CEC.2010.5585922

  26. Langdon, W.B., Al-Subaihin, A., Blot, A., Clark, D.: Genetic improvement of LLVM intermediate representation. In: Pappa, G., Giacobini, M., Vasicek, Z. (eds.) Genetic Programming. EuroGP 2023. LNCS, vol. 13986, pp. 244–259. Springer, Cham (2023). https://doi.org/10.1007/978-3-031-29573-7_16

  27. Langdon, W.B., Alexander, B.J.: Genetic improvement of OLC and H3 with magpie. In: Nowack, V., et al. (eds.) 12th International Workshop on Genetic Improvement @ICSE 2023, pp. 9–16. IEEE, Melbourne, Australia, 20 May 2023. https://doi.org/10.1109/GI59320.2023.00011

  28. Langdon, W.B., Brian Yee Hong Lam, Petke, J., Harman, M.: Improving CUDA DNA analysis software with genetic programming. In: Silva, S., et al. (eds.) GECCO ’15: Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation, pp. 1063–1070. ACM, Madrid, 11–15 July 2015.https://doi.org/10.1145/2739480.2754652

  29. Langdon, W.B., Clark, D.: Deep mutations have little impact. In: Gabin, A., et al. (eds.) 13th International Workshop on Genetic Improvement @ICSE 2024. ACM, Lisbon, 16 April 2024, forthcoming

    Google Scholar 

  30. Langdon, W.B., Harman, M.: Genetically improved CUDA C++ software. In: Nicolau, M., et al. (eds.) EuroGP 2014. LNCS, vol. 8599, pp. 87–99. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-44303-3_8

    Chapter  Google Scholar 

  31. Langdon, W.B., Harman, M.: Grow and graft a better CUDA pknotsRG for RNA pseudoknot free energy calculation. In: Langdon, W.B., Petke, J., White, D.R. (eds.) Genetic Improvement 2015 Workshop, pp. 805–810. ACM, Madrid, 11–15 July 2015. https://doi.org/10.1145/2739482.2768418

  32. Langdon, W.B., Harman, M.: Optimising existing software with genetic programming. IEEE Trans. Evol. Comput. 19(1), 118–135 (2015). https://doi.org/10.1109/TEVC.2013.2281544

    Article  Google Scholar 

  33. Langdon, W.B., Krauss, O.: Genetic improvement of data for maths functions. ACM Trans. Evolut. Learn. Optim. 1(2), Article No.: 7 (2021). https://doi.org/10.1145/3461016

  34. Langdon, W.B., Lorenz, R.: Evolving AVX512 parallel C code using GP. In: Sekanina, L., Hu, T., Lourenço, N., Richter, H., García-Sánchez, P. (eds.) EuroGP 2019. LNCS, vol. 11451, pp. 245–261. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-16670-0_16

    Chapter  Google Scholar 

  35. Langdon, W.B., Modat, M., Petke, J., Harman, M.: Improving 3D medical image registration CUDA software with genetic programming. In: Igel, C., et al. (eds.) GECCO ’14: Proceeding of the Sixteenth Annual Conference on Genetic and Evolutionary Computation Conference, pp. 951–958. ACM, Vancouver, BC, Canada, 12–15 July 2014. https://doi.org/10.1145/2576768.2598244

  36. Langdon, W.B., Petke, J., Blot, A., Clark, D.: Genetically improved software with fewer data caches misses. In: Silva, S., et al. (eds.) Proceedings of the Companion Conference on Genetic and Evolutionary Computation, pp. 799–802. GECCO ’23, Association for Computing Machinery, Lisbon, Portugal, 15–19 July 2023. https://doi.org/10.1145/3583133.3590542

  37. Langdon, W.B., Petke, J., Lorenz, R.: Evolving better RNAfold structure prediction. In: Castelli, M., Sekanina, L., Zhang, M., Cagnoni, S., García-Sánchez, P. (eds.) EuroGP 2018. LNCS, vol. 10781, pp. 220–236. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-77553-1_14

    Chapter  Google Scholar 

  38. Langdon, W.B., et al.: Genetic improvement of GPU software. Genet. Program. Evolvable Mach. 18(1), 5–44 (2017). https://doi.org/10.1007/s10710-016-9273-9

    Article  Google Scholar 

  39. Lorenz, R., et al.: ViennaRNA package 2.0. Algorithms Mol. Biol. 6(1) (2011). https://doi.org/10.1186/1748-7188-6-26

  40. Pons, L., et al.: Cloud White: Detecting and estimating QoS degradation of latency-critical workloads in the public cloud. Futur. Gener. Comput. Syst. 138, 13–25 (2023). https://doi.org/10.1016/J.FUTURE.2022.08.012

  41. Marginean, A.: Automated Software Transplantation. Ph.D. thesis, University College London, UK, 8 November 2021. https://discovery.ucl.ac.uk/id/eprint/10137954/1/Marginean_10137954_thesis_redacted.pdf, ACM SIGEVO Award for the best dissertation of the year

  42. Marginean, A., Barr, E.T., Harman, M., Jia, Y.: Automated transplantation of call graph and layout features into Kate. In: Barros, M., Labiche, Y. (eds.) SSBSE 2015. LNCS, vol. 9275, pp. 262–268. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-22183-0_21

    Chapter  Google Scholar 

  43. Martinez, K., Cupitt, J.: VIPS - a highly tuned image processing software architecture. In: Proceedings of the 2005 International Conference on Image Processing, ICIP, pp. 574–577. IEEE, Genoa, Italy, 11–14 September 2005. https://doi.org/10.1109/ICIP.2005.1530120

  44. Moore, G.E.: Cramming more components onto integrated circuits. Electronics 38(8), 114–117 (1965)

    Google Scholar 

  45. Murphy, A., Laurent, T., Ventresque, A.: The case for grammatical evolution in test generation. In: Bruce, B.R., et al. (eds.) GI @ GECCO 2022, pp. 1946–1947. Association for Computing Machinery, Boston, USA, 9 July 2022. https://doi.org/10.1145/3520304.3534042

  46. Owens, J.D., et al.: GPU computing. Proc. IEEE 96(5), 879–899 (2008). Invited paper, https://doi.org/10.1109/JPROC.2008.917757

  47. Petke, J., et al.: Genetic improvement of software: a comprehensive survey. IEEE Trans. Evolut. Comput. 22(3), 415–432 (2018). https://doi.org/10.1109/TEVC.2017.2693219

  48. Poli, R., Langdon, W.B., McPhee, N.F.: A field guide to genetic programming. Published via http://lulu.com and freely (2008). http://www.gp-field-guide.org.uk, (With contributions by J. R. Koza)

  49. Robinson, T., Harkin, J., Shukla, P.: Hardware acceleration of genomics data analysis: challenges and opportunities. Bioinformatics 37(13), 1785–1795 (2021). https://doi.org/10.1093/bioinformatics/btab017

    Article  Google Scholar 

  50. Santiago, A., et al.: Analysis and deployment of applications acceleration environment for Xilinx hardware-accelerated platforms. In: 37th Conference on Design of Circuits and Integrated Circuits (DCIS). IEEE, Pamplona, Spain, 16–18 November 2022. https://doi.org/10.1109/DCIS55711.2022.9970101

  51. Schweim, D., et al.: Using knowledge of human-generated code to bias the search in program synthesis with grammatical evolution. In: Chicano, F., et al. (eds.) Proceedings of the 2021 Genetic and Evolutionary Computation Conference Companion, pp. 331–332. GECCO ’21, Association for Computing Machinery, internet, 10–14 July 2021. https://doi.org/10.1145/3449726.3459548

  52. Shuyue Stella Li, et al.: Genetic improvement in the Shackleton framework for optimizing LLVM pass sequences. In: Bruce, B.R., et al. (eds.) GI @ GECCO 2022, pp. 1938–1939. Association for Computing Machinery, Boston, USA, 9 July 2022. https://doi.org/10.1145/3520304.3534000, winner Best Presentation

  53. Silver, D., et al.: Mastering the game of Go without human knowledge. Nature 550(7676), 354–359 (2017). https://doi.org/10.1038/nature24270

    Article  Google Scholar 

  54. Kang, S., Yoo, S.: Towards objective-tailored genetic improvement through large language models. In: Nowack, V., et al. (eds.) 12th International Workshop on Genetic Improvement @ICSE 2023, pp. 19–20. IEEE, Melbourne, Australia, 20 May 2023. https://doi.org/10.1109/GI59320.2023.00013, Best position paper

  55. Patel, T., Tiwari, D.: CLITE: efficient and QoS-aware co-location of multiple latency-critical jobs for warehouse scale computers. In: 2020 IEEE International Symposium on High Performance Computer Architecture (HPCA), pp. 193–206 (2020). https://doi.org/10.1109/HPCA47549.2020.00025

  56. Weimer, W.: From deep learning to human judgments: lessons for genetic improvement. GI @ GECCO 2022, 9 July 2022. http://geneticimprovementofsoftware.com/slides/gi2022gecco/weimer-keynote-gi-gecco-22.pdf, Invited keynote

  57. Zhang, Y., Huang, Y.: Leveraging fuzzy system to reduce uncertainty of decision making in software engineering automation. In: Bruce, B.R., et al. (eds.) GI @ GECCO 2022, pp. 1948–1949. Association for Computing Machinery, Boston, USA, 9 July 2022. https://doi.org/10.1145/3520304.3533991

  58. Lin, Y.-C., Lee, J.-K., Bodin, F.: Guest editorial: special issue on embedded multicore applications and optimization. J. Signal Process. Syst. 91(3–4), 217–218 (2019). https://doi.org/10.1007/S11265-018-1431-2

Download references

Acknowledgements

I am grateful for the help of Aymeric Blot and Dan Blackwell.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to William B. Langdon .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Langdon, W.B., Clark, D. (2024). Genetic Improvement of Last Level Cache. In: Giacobini, M., Xue, B., Manzoni, L. (eds) Genetic Programming. EuroGP 2024. Lecture Notes in Computer Science, vol 14631. Springer, Cham. https://doi.org/10.1007/978-3-031-56957-9_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-56957-9_13

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-56956-2

  • Online ISBN: 978-3-031-56957-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics