10.1145/3524059.3532391acmconferencesArticle/Chapter ViewAbstractPublication PagesicsConference Proceedingsconference-collections
research-article

Performance-detective: automatic deduction of cheap and accurate performance models

Published:28 June 2022Publication History

ABSTRACT

The many configuration options of modern applications make it difficult for users to select a performance-optimal configuration. Performance models help users in understanding system performance and choosing a fast configuration. Existing performance modeling approaches for applications and configurable systems either require a full-factorial experiment design or a sampling design based on heuristics. This results in high costs for achieving accurate models. Furthermore, they require repeated execution of experiments to account for measurement noise. We propose Performance-Detective, a novel code analysis tool that deduces insights on the interactions of program parameters. We use the insights to derive the smallest necessary experiment design and avoiding repetitions of measurements when possible, significantly lowering the cost of performance modeling. We evaluate Performance-Detective using two case studies where we reduce the number of measurements from up to 3125 to only 25, decreasing cost to only 2.9% of the previously needed core hours, while maintaining accuracy of the resulting model with 91.5% compared to 93.8% using all 3125 measurements.

References

  1. A. J. Kunen, T. S. Bailey, and P. N. Brown. 2015. Kripke - a massively parallel transport mini-app. In Joint International Conference on Mathematics and Computation (M&C), Supercomputing in Nuclear Applications (SNA) and the Monte Carlo (MC) Method (ANS MC '15) (Nashville, Tennessee).Google ScholarGoogle Scholar
  2. Jason Ansel, Shoaib Kamil, Kalyan Veeramachaneni, Jonathan RaganKelley, Jeffrey Bosboom, Una-May O'Reilly, and Saman Amarasinghe. 2014. OpenTuner: An extensible framework for program autotuning. In 2014 23rd International Conference on Parallel Architecture and Compilation Techniques (PACT). 303--315. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Prasanna Balaprakash, Stefan M. Wild, and Paul D. Hovland. 2013. An Experimental Study of Global and Local Search Algorithms in Empirical Performance Tuning. In High Performance Computing for Computational Science - VECPAR 2012, Michel Daydé, Osni Marques, and Kengo Nakajima (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 261--269.Google ScholarGoogle Scholar
  4. Bradley J. Barnes, Barry Rountree, David K. Lowenthal, Jaxk Reeves, Bronis de Supinski, and Martin Schulz. 2008. A Regression-Based Approach to Scalability Prediction. In Proceedings of the 22nd Annual International Conference on Supercomputing (Island of Kos, Greece) (ICS '08). Association for Computing Machinery, New York, NY, USA, 368--377. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Steffen Becker, Heiko Koziolek, and Ralf Reussner. 2009. The Palladio component model for model-driven performance prediction. Journal of Systems and Software 82, 1 (2009), 3--22. Special Issue: Software Performance - Modeling and Analysis. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Arnamoy Bhattacharyya and Torsten Hoefler. 2014. PEMOGEN: Automatic Adaptive Performance Modeling During Program Runtime. In Proc. of the 23rd International Conference on Parallel Architectures and Compilation (Edmonton, AB, Canada) (PACT '14). ACM, New York, NY, USA, 393--404. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Arnamoy Bhattacharyya, Grzegorz Kwasniewski, and Torsten Hoefler. 2015. Using Compiler Techniques to Improve Automatic Performance Modeling. In Proc. of the 24th International Conference on Parallel Architectures and Compilation Techniques (PACT'15) (San Francisco, CA, USA). San Francisco, CA, USA, 1--12.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Christian Bischof, Dieter an Mey, and Christian Iwainsky. 2012. Brainware for green HPC. 27, 4 (2012), 227--233. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Alexandru Calotoiu, David Beckinsale, Christopher W. Earl, Torsten Hoefler, Ian Karlin, Martin Schulz, and Felix Wolf. 2016. Fast Multiparameter Performance Modeling. In 2016 IEEE International Conference on Cluster Computing (CLUSTER) (Taipei, Taiwan, 2016-09). IEEE, 172--181. Google ScholarGoogle ScholarCross RefCross Ref
  10. Alexandru Calotoiu, Marcin Copik, Torsten Hoefler, Marcus Ritter, Sergei Shudler, and Felix Wolf. 2020. ExtraPeak: Advanced Automatic Performance Modeling for HPC Applications. In Software for Exascale Computing - SPPEXA 2016-2019 (Cham) (Lecture Notes in Computational Science and Engineering), Hans-Joachim Bungartz, Severin Reiz, Benjamin Uekermann, Philipp Neumann, and Wolfgang E. Nagel (Eds.). Springer International Publishing, 453--482. Google ScholarGoogle ScholarCross RefCross Ref
  11. Alexandru Calotoiu, Alexander Graf, Torsten Hoefler, Daniel Lorenz, Sebastian Rinke, and Felix Wolf. 2018. Lightweight Requirements Engineering for Exascale Co-design. In Proc. of the 2018 IEEE International Conference on Cluster Computing (CLUSTER), Belfast, UK. IEEE, 1--11.Google ScholarGoogle ScholarCross RefCross Ref
  12. Alexandru Calotoiu, Torsten Hoefler, Marius Poke, and Felix Wolf. 2013. Using automated performance modeling to find scalability bugs in complex codes. In SC '13: Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis (2013-11). 1--12. ISSN: 2167-4337. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Marcin Copik, Alexandru Calotoiu, Tobias Grosser, Nicolas Wicki, Felix Wolf, and Torsten Hoefler. 2021. Extracting Clean Performance Models from Tainted Programs. In Proceedings of the 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (Virtual Event, Republic of Korea) (PPoPP '21). Association for Computing Machinery, New York, NY, USA, 403--417. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Marcin Copik and Torsten Hoefler. 2019. perf-taint: Taint Analysis for Automatic Many-Parameter Performance Modeling. ACM Student Research Competition at ACM/IEEE Supercomputing (2019). https://sc19.supercomputing.org/proceedings/src_poster/src_poster_pages/spostg110.htmlGoogle ScholarGoogle Scholar
  15. dfsan 2019. Clang 9 Documentation - DataFlowSanitizer. https://clang.llvm.org/docs/DataFlowSanitizer.html.Google ScholarGoogle Scholar
  16. Dan Gohman. 2009. ScalarEvolution and Loop Optimization. Talk at LLVM Developer's Meeting.Google ScholarGoogle Scholar
  17. Alexander Grebhahn, Norbert Siegmund, and Sven Apel. 2019. Predicting Performance of Software Configurations: There is no Silver Bullet. (2019). arXiv:1911.12643 http://arxiv.org/abs/1911.12643Google ScholarGoogle Scholar
  18. Huong Ha and Hongyu Zhang. 2019. Performance-Influence Model for Highly Configurable Software with Fourier Learning and Lasso Regression. In 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME). 470--480. Google ScholarGoogle ScholarCross RefCross Ref
  19. Xue Han and Tingting Yu. 2016. An Empirical Study on Performance Bugs for Highly Configurable Software Systems. In Proceedings of the 10th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (Ciudad Real, Spain) (ESEM '16). Association for Computing Machinery, New York, NY, USA, Article 23, 10 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Torsten Hoefler, William Gropp, William Kramer, and Marc Snir. 2011. Performance modeling for systematic performance tuning. In SC'11: Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis. IEEE, 1--12.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. J. Hötzer, A. Reiter, H. Hierl, P. Steinmetz, M. Selzer, and Britta Nestler. 2018. The parallel multi-physics phase-field framework Pace3D. Journal of Computational Science 26 (2018), 1--12. Google ScholarGoogle ScholarCross RefCross Ref
  22. Engin Ipek, Bronis R. de Supinski, Martin Schulz, and Sally A. McKee. 2005. An Approach to Performance Prediction for Parallel Applications. In Proceedings of the 11th International Euro-Par Conference on Parallel Processing (Lisbon, Portugal) (Euro-Par'05). Springer-Verlag, Berlin, Heidelberg, 196--205.Google ScholarGoogle Scholar
  23. Herbert Jordan, Peter Thoman, Juan J. Durillo, Simone Pellegrini, Philipp Gschwandtner, Thomas Fahringer, and Hans Moritsch. 2012. A multi-objective auto-tuning framework for parallel codes. In SC '12: Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis. 1--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Christian Kaltenecker, Alexander Grebhahn, Norbert Siegmund, and Sven Apel. 2020. The Interplay of Sampling and Machine Learning for Software Performance Prediction. IEEE Software 37, 4 (2020), 58--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Darren J Kerbyson, Henry J Alme, Adolfy Hoisie, Fabrizio Petrini, Harvey J Wasserman, and Mike Gittings. 2001. Predictive performance and scalability modeling of a large-scale application. In Proceedings of the 2001 ACM/IEEE conference on Supercomputing. 37--37.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Andreas Knüpfer, Christian Rössel, Dieter an Mey, Scott Biersdorff, Kai Diethelm, Dominic Eschweiler, Markus Geimer, Michael Gerndt, Daniel Lorenz, Allen Malony, Wolfgang E. Nagel, Yury Oleynik, Peter Philippen, Pavel Saviankou, Dirk Schmidl, Sameer Shende, Ronny Tschüter, Michael Wagner, Bert Wesarg, and Felix Wolf. 2012. Score-P: A Joint Performance Measurement Run-Time Infrastructure for Periscope, Scalasca, TAU, and Vampir. In Tools for High Performance Computing 2011, Holger Brunst, Matthias S. Müller, Wolfgang E. Nagel, and Michael M. Resch (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 79--91.Google ScholarGoogle Scholar
  27. Sergiy Kolesnikov, Norbert Siegmund, Christian Kästner, Alexander Grebhahn, and Sven Apel. 2019. Tradeoffs in modeling performance of highly configurable software systems. 18, 3 (2019), 2265--2283. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Klaus Krogmann, Michael Kuperberg, and Ralf Reussner. 2010. Using Genetic Search for Reverse Engineering of Parametric Behavior Models for Performance Prediction. IEEE Transactions on Software Engineering 36, 6 (2010), 865--877. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. C. Lattner and V. Adve. 2004. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In Proc. of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization (Palo Alto, California) (CGO '04). IEEE Computer Society, Washington, DC, USA.Google ScholarGoogle Scholar
  30. Benjamin C. Lee, David M. Brooks, Bronis R. de Supinski, Martin Schulz, Karan Singh, and Sally A. McKee. 2007. Methods of inference and learning for performance modeling of parallel applications. In Proc. of the 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (San Jose, California, USA) ((PPoPP '07)). ACM, 249--258.Google ScholarGoogle Scholar
  31. Seyong Lee, Jeremy S Meredith, and Jeffrey S Vetter. 2015. Compass: A framework for automated performance modeling and prediction. In Proceedings of the 29th ACM on International Conference on Supercomputing. 405--414.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Manar Mazkatli, David Monschein, Johannes Grohmann, and Anne Koziolek. 2020. Incremental Calibration of Architectural Performance Models with Parametric Dependencies. In IEEE International Conference on Software Architecture (ICSA 2020). Salvador, Brazil, 23--34. Google ScholarGoogle ScholarCross RefCross Ref
  33. Philip Pfaffe, Martin Tillmann, Sigmar Walter, and Walter F. Tichy. 2017. Online-Autotuning in the Presence of Algorithmic Choice. In 2017 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW). 1379--1388. Google ScholarGoogle ScholarCross RefCross Ref
  34. Elnatan Reisner, Charles Song, Kin-Keung Ma, Jeffrey S. Foster, and Adam Porter. 2010. Using symbolic evaluation to understand behavior in configurable software systems. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - ICSE '10 (Cape Town, South Africa), Vol. 1. ACM Press, 445. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Ralf H. Reussner, Steffen Becker, Jens Happe, Robert Heinrich, Anne Koziolek, Heiko Koziolek, Max Kramer, and Klaus Krogmann. 2016. Modeling and Simulating Software Architectures - The Palladio Approach. MIT Press, Cambridge, MA. http://mitpress.mit.edu/books/modeling-and-simulating-software-architecturesGoogle ScholarGoogle Scholar
  36. Marcus Ritter, Alexandru Calotoiu, Sebastian Rinke, Thorsten Reimann, Torsten Hoefler, and Felix Wolf. 2020. Learning Cost-Effective Sampling Strategies for Empirical Performance Modeling. In 2020 IEEE International Parallel and Distributed Processing Symposium (IPDPS) (New Orleans, LA, USA, 2020-05). IEEE, 884--895. Google ScholarGoogle ScholarCross RefCross Ref
  37. Marcus Ritter, Alexander Geiß, Johannes Wehrstein, Alexandru Calotoiu, Thorsten Reimann, Torsten Hoefler, and Felix Wolf. 2021. Noise-Resilient Empirical Performance Modeling with Deep Neural Networks. In 2021 IEEE International Parallel and Distributed Processing Symposium (IPDPS). 23--34. Google ScholarGoogle ScholarCross RefCross Ref
  38. Sergei Shudler, Alexandru Calotoiu, Torsten Hoefler, Alexandre Strube, and Felix Wolf. 2015. Exascaling Your Library: Will Your Implementation Meet Your Expectations?. In Proceedings of the 29th ACM on International Conference on Supercomputing (Newport Beach, California, USA) (ICS '15). Association for Computing Machinery, New York, NY, USA, 165--175. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Norbert Siegmund, Alexander Grebhahn, Sven Apel, and Christian Kästner. 2015. Performance-influence models for highly configurable systems. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering - ESEC/FSE 2015 (Bergamo, Italy). ACM Press, 284--294. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Connie U. Smith. 1993. Software performance engineering. In Performance Evaluation of Computer and Communication Systems, Lorenzo Donatiello and Randolph Nelson (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 509--536.Google ScholarGoogle Scholar
  41. K. L. Spafford and J. S. Vetter. 2012. Aspen: A Domain Specific Language for Performance Modeling. In Proc. of the International Conference on High Performance Computing, Networking, Storage and Analysis (Salt Lake City, Utah) (SC '12). IEEE Computer Society Press, Los Alamitos, CA, USA, Article 84, 11 pages.Google ScholarGoogle Scholar
  42. Jingwei Sun, Guangzhong Sun, Shiyan Zhan, Jiepeng Zhang, and Yong Chen. 2020. Automated Performance Modeling of HPC Applications Using Machine Learning. IEEE Trans. Comput. 69, 5 (2020), 749--763. Google ScholarGoogle ScholarCross RefCross Ref
  43. N. R. Tallent and A. Hoisie. 2014. Palm: Easing the Burden of Analytical Performance Modeling. In Proc. of the 28th ACM International Conference on Supercomputing (Munich, Germany) (ICS '14). ACM, New York, NY, USA, 221--230. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Sébastien Varrette, Frédéric Pinel, Emmanuel Kieffer, Grégoire Danoy, and Pascal Bouvry. 2020. Automatic Software Tuning of Parallel Programs for Energy-Aware Executions. In Parallel Processing and Applied Mathematics, Roman Wyrzykowski, Ewa Deelman, Jack Dongarra, and Konrad Karczewski (Eds.). Springer International Publishing, Cham, 144--155.Google ScholarGoogle Scholar
  45. Miguel Velez, Pooyan Jamshidi, Florian Sattler, Norbert Siegmund, Sven Apel, and Christian Kästner. 2020. ConfigCrusher: Towards White-Box Performance Analysis for Configurable Systems. Automated Software Engineering 27, 3 (2020), 265--300. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Miguel Velez, Pooyan Jamshidi, Norbert Siegmund, Sven Apel, and Christian Kästner. 2021. White-box analysis over machine learning: Modeling performance of configurable systems. In 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE). IEEE, 1072--1084.Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. JC Wang and CF Jeff Wu. 1995. A hidden projection property of Plackett-Burman and related designs. Statistica Sinica (1995), 235--250.Google ScholarGoogle Scholar
  48. Max Weber, Sven Apel, and Norbert Siegmund. 2021. White-Box Performance-Influence Models: A Profiling and Learning Approach. In 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE) (Madrid, Spain, 2021-05). IEEE, 1059--1071. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Nicolas Wicki. 2020. Control Flow Taint Analysis for Performance Modeling in LLVM. Bachelor's Thesis.Google ScholarGoogle Scholar
  50. Murray Woodside, Greg Franks, and Dorina C. Petriu. 2007. The Future of Software Performance Engineering. In Future of Software Engineering (FOSE '07) (Minneapolis, MN, USA, 2007-05). IEEE, 171--187. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Yi Zhang, Jianmei Guo, Eric Blais, and Krzysztof Czarnecki. 2015. Performance Prediction of Configurable Software Systems by Fourier Learning (T). In 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE) (2015-11). 365--373. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Performance-detective: automatic deduction of cheap and accurate performance models

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Article Metrics

      • Downloads (Last 12 months)68
      • Downloads (Last 6 weeks)7

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!