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.
- 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 Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Christian Bischof, Dieter an Mey, and Christian Iwainsky. 2012. Brainware for green HPC. 27, 4 (2012), 227--233. Google ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarCross Ref
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- dfsan 2019. Clang 9 Documentation - DataFlowSanitizer. https://clang.llvm.org/docs/DataFlowSanitizer.html.Google Scholar
- Dan Gohman. 2009. ScalarEvolution and Loop Optimization. Talk at LLVM Developer's Meeting.Google Scholar
- 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 Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarCross Ref
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- JC Wang and CF Jeff Wu. 1995. A hidden projection property of Plackett-Burman and related designs. Statistica Sinica (1995), 235--250.Google Scholar
- 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 ScholarDigital Library
- Nicolas Wicki. 2020. Control Flow Taint Analysis for Performance Modeling in LLVM. Bachelor's Thesis.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
Performance-detective: automatic deduction of cheap and accurate performance models
Comments