Productivity and Software Development Effort Estimation in High-Performance Computing
Total Page:16
File Type:pdf, Size:1020Kb
ERGEBNISSE AUS DER INFORMATIK Sandra Wienke Productivity and Software Development Effort Estimation in High-Performance Computing Productivity and Software Development Effort Estimation in High-Performance Computing Von der Fakultät für Mathematik, Informatik und Naturwissenschaften der RWTH Aachen University zur Erlangung des akademischen Grades einer Doktorin der Naturwissenschaften genehmigte Dissertation vorgelegt von Sandra Juliane Wienke, Master of Science aus Berlin-Wedding Berichter: Universitätsprofessor Dr. Matthias S. Müller Universitätsprofessor Dr. Thomas Ludwig Tag der mündlichen Prüfung: 18. September 2017 Diese Dissertation ist auf den Internetseiten der Universitätsbibliothek online verfügbar. Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.ddb.de abrufbar. Sandra Wienke: Productivity and Software Development Effort Estimation in High-Performance Compu- ting 1. Auflage, 2017 Gedruckt auf holz- und säurefreiem Papier, 100% chlorfrei gebleicht. Apprimus Verlag, Aachen, 2017 Wissenschaftsverlag des Instituts für Industriekommunikation und Fachmedien an der RWTH Aachen Steinbachstr. 25, 52074 Aachen Internet: www.apprimus-verlag.de, E-Mail: [email protected] Printed in Germany ISBN 978-3-86359-572-2 D 82 (Diss. RWTH Aachen University, 2017) Abstract Ever increasing demands for computational power are concomitant with rising electrical power needs and complexity in hardware and software designs. According increasing expenses for hardware, electrical power and programming tighten the rein on available budgets. Hence, an informed decision making on how to invest available budgets is more important than ever. Especially for procurements, a quantitative metric is needed to predict the cost effectiveness of an HPC center. In this work, I set up models and methodologies to support the HPC procure- ment process of German HPC centers. I model cost effectiveness as a productivity figure of merit of HPC centers by defining a ratio of scientific outcome generated over the lifetime of the HPC system to its total costs of ownership (TCO). I fur- ther define scientific outcome as number of scientific-application runs to embrace the multi-job nature of an HPC system in a meaningful way. I investigate the predictability of the productivity model’s parameters and show their robustness towards errors in various real-world HPC setups. Case studies further verify the model’s applicability, e.g., to compare hardware setups or optimize system lifetime. I continue to investigate total ownership costs of HPC centers as part of the productivity metric. I model TCO by splitting expenses into one-time and an- nual costs, node-based and node-type-based costs, as well as, system-dependent and application-dependent costs. Furthermore, I discuss quantification and pre- dictability capabilities of all TCO components. I tackle the challenge of estimating HPC software development effort as TCO component with increasing importance. For that, I establish a methodology that is based on a so-called performance life-cycle describing the relationship of effort to performance achieved by spending the respective effort. To identify further impact factors on application development effort, I apply ranking surveys that reveal priorities for quantifying effects. Such an effect is the developer’s pre-knowledge in HPC whose quantification is addressed by confidence ratings in so-called knowledge surveys. I also examine the quantification of impacts of the parallel programming model by proposing a pattern-based approach. Since meaningful quantifications rely on sufficient and appropriate data sets, I broaden previous human-subject based data collections by introducing tools and methods for a community effort. Finally, I present the applicability of my methodologies and models in a case study that covers a real-world application from aeroacoustics simulation. Zusammenfassung Mit dem stetig wachsenden Bedarf an Rechenleistung erhöhen sich die elektrische Leistung und die Hardware- und Softwarekomplexität im Hochleistungsrechnen (HPC). Die steigenden Kosten für Maschinerie, Energie und Programmierung be- lasten dabei verfügbare Budgets zunehmend. Infolgedessen werden auch fundierte Entscheidungskriterien für die Verwendung vorhandener Budgets bedeutsamer. Besonders in Beschaffungsprozessen werden quantitative Metriken benötigt um die Kostenwirksamkeit eines HPC Zentrums abzuschätzen. In dieser Arbeit stelle ich Modelle und Methodiken zur Unterstützung von Be- schaffungen in deutschen, universitären HPC Zentren auf. Ich modelliere ihre Kos- tenwirksamkeit als Produktivitätsmetrik mit dem Verhältnis von wissenschaftli- chen Resultaten (erzeugt über die Lebenszeit des HPC Systems) zu seinen Ge- samtkosten (TCO). Meine weiterführende Darstellung der wissenschaftlichen Re- sultate als aggregierte Ausführungszahl aller (Simulations-)Anwendungen auf dem HPC System deckt auch die typische Programm-Mischung eines HPC Clusters ab. Ich untersuche die Vorhersagbarkeit der Parameter des Produktivitätsmodells und zeige, dass das Modell robust gegenüber Fehlern in realen HPC Setups ist. Als Teil der Produktivitätsmetrik führe ich ein Gesamtkosten-Modell eines HPC Zentrums ein, das zwischen einmaligen und jährlichen Kosten, zwischen Ausgaben basierend auf der Rechenknotenzahl und dem Rechenknotentyp, sowie zwischen system- und anwendungsabhängigen Kosten differenziert. Darüber hinaus diskutie- re ich mögliche Quantifizierungen und Vorhersagbarkeiten der TCO-Komponenten. DadieWichtigkeitdesEntwicklungsaufwandsalsGesamtkostenteilsteigt,führeich eine Methodik zur HPC Aufwandsschätzung basierend auf einem sog. Performance- Lebenszyklus ein, der den Zusammenhang zwischen Entwicklungszeit für die wissen- schaftliche Anwendung und erreichter Maschinen-Leistung beschreibt. Zur Identifi- zierung von Faktorenmit Einfluss auf den Aufwand dienen Umfragen zur Prioritäten- Bildung.BeispielsweiseistdasHPCVorwisseneinesEntwicklerseineSchlüsselkompo- nente, die ich mit Umfragen zur Wissens-Selbsteinschätzung angehe. Ebenfalls unter- suche ich den Einfluss des parallelen Programmiermodells. Da aussagekräftige Quan- tifizierungen auf ausreichenden Daten beruhen, motiviere ich ihre Erhebung in einem HPC-weiten Ansatz durch die Unterstützung von Werkzeugen und Methoden. Schließlich stelle ich eine Fallstudie aus dem Bereich der Aeroakustik-Simulation vor, in der ich die Anwendbarkeit meiner Methodiken und Modelle darstelle. Acknowledgements This work would have never been successful without the incredible support and encouragement of my significant other, family, friends, colleagues, and supervisors. I would like to thank the IT Center (formerly known as the Center for Com- puting and Communication), the Chair for High Performance Computing and the Aachen Institute for Advanced Study in Computational Engineering Science (AICES) of RWTH Aachen University for the financial support during my years of research. This includes the opportunities for traveling as ground base for getting food for thought from different perspectives. In addition, I really appreciate the fruitful discussions, feedback and mentoring from my supervisors Prof. Matthias S. Müller and Prof. Thomas Ludwig, as well as the inspiration provided by Prof. Christian Bischof and Dieter an Mey who initially pointed me to the field of pro- ductivity and TCO evaluations in HPC. I particularly thank Christian Terboven for his guidance in scientific and everyday life, as well as his effort in proof-reading my thesis. My thanks also go to Dirk Schmidl for his criticism and critique that im- proved my work and for our verbal exchanges that spiced up the workday. Further, I would like to acknowledge Julian Miller who contributed to the methodological approach of effort estimation — even through overseas task arrangements. Addi- tionally, Tim Cramer helped to set up and supervise software labs starting in 2013 that was a ground base of my effort evaluations: Thanks. I thank Paul Kapinos for providing supplies for the ‘Snäckbär’ and the administrators of the IT Center for providing short-notice trouble shooting if needed. To all my colleagues who made an outstanding good working atmosphere possible: Thank you — Dieter an Mey, Tim Cramer, Alesja Dammer, Hristo Iliev, Jannis Klinkenberg, Julian Miller, Joachim Protze, Dirk Schmidl, Daniel Schürhoff, Aamer Shah, Christian Terboven and Bo Wang. Moreover, I am grateful to our MATSE apprentices and student workers for their supportive work, as well as to my former colleague Oliver Fort- meier for the great Latex thesis template. My internship at the Lawrence Livermore National Laboratory, USA, enabled me to drive my research on software development effort estimation and pro- grammability forward, especially due to the support of Prof. Martin Schulz. Thank you, for giving me the opportunity to focus on this topic, for connecting me to different researchers and for improving my scientific writing skills. I also appre- ciate the various GPU hackathon organizers who have given me the chance to integrate my research on human-subject based effort quantification into the corre- sponding events. Prof. Sunita Chandrasekaran has been a very strong supporter of my person which increased my confidence and especially fostered my scientific skills in reviewing and chairing. It has always been fun working and spending time with you. Thanks a lot! I further would like to express