Making root cause analysis feasible for large code bases: a solution approach for a climate model

For large-scale simulation codes with huge and complex code bases, where bit-for-bit comparisons are too restrictive, finding the source of statistically significant discrepancies (e.g., from a previous version, alternative hardware or supporting software stack) in output is non-trivial at best. Alt...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:arXiv.org 2019-02
Hauptverfasser: Milroy, Daniel J, Baker, Allison H, Hammerling, Dorit M, Kim, Youngsung, Jessup, Elizabeth R, Hauser, Thomas
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page
container_issue
container_start_page
container_title arXiv.org
container_volume
creator Milroy, Daniel J
Baker, Allison H
Hammerling, Dorit M
Kim, Youngsung
Jessup, Elizabeth R
Hauser, Thomas
description For large-scale simulation codes with huge and complex code bases, where bit-for-bit comparisons are too restrictive, finding the source of statistically significant discrepancies (e.g., from a previous version, alternative hardware or supporting software stack) in output is non-trivial at best. Although there are many tools for program comprehension through debugging or slicing, few (if any) scale to a model as large as the Community Earth System Model (CESM; trademarked), which consists of more than 1.5 million lines of Fortran code. Currently for the CESM, we can easily determine whether a discrepancy exists in the output using a by now well-established statistical consistency testing tool. However, this tool provides no information as to the possible cause of the detected discrepancy, leaving developers in a seemingly impossible (and frustrating) situation. Therefore, our aim in this work is to provide the tools to enable developers to trace a problem detected through the CESM output to its source. To this end, our strategy is to reduce the search space for the root cause(s) to a tractable size via a series of techniques that include creating a directed graph of internal CESM variables, extracting a subgraph (using a form of hybrid program slicing), partitioning into communities, and ranking nodes by centrality. Runtime variable sampling then becomes feasible in this reduced search space. We demonstrate the utility of this process on multiple examples of CESM simulation output by illustrating how sampling can be performed as part of an efficient parallel iterative refinement procedure to locate error sources, including sensitivity to CPU instructions. By providing CESM developers with tools to identify and understand the reason for statistically distinct output, we have positively impacted the CESM software development cycle and, in particular, its focus on quality assurance.
format Article
fullrecord <record><control><sourceid>proquest</sourceid><recordid>TN_cdi_proquest_journals_2127831971</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2127831971</sourcerecordid><originalsourceid>FETCH-proquest_journals_21278319713</originalsourceid><addsrcrecordid>eNqNzbEOgjAUheHGxESivMNNnEloK4KuRuPi5k6ueMFiodhbBt9eYnwAp7N8J_9MREprmRQbpRYiZm7TNFXbXGWZjgRe8Gn6BrxzASocmQB7tG82DDUhm5slqJ0Hi74hqNyd4IZMvAcEdnYMxvWAw-AdVo-vRKis6TAQdJO2KzGv0TLFv12K9el4PZyT6fIaiUPZutFPTS6VVHmh5S6X-j_1AQjqRNw</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2127831971</pqid></control><display><type>article</type><title>Making root cause analysis feasible for large code bases: a solution approach for a climate model</title><source>Free E- Journals</source><creator>Milroy, Daniel J ; Baker, Allison H ; Hammerling, Dorit M ; Kim, Youngsung ; Jessup, Elizabeth R ; Hauser, Thomas</creator><creatorcontrib>Milroy, Daniel J ; Baker, Allison H ; Hammerling, Dorit M ; Kim, Youngsung ; Jessup, Elizabeth R ; Hauser, Thomas</creatorcontrib><description>For large-scale simulation codes with huge and complex code bases, where bit-for-bit comparisons are too restrictive, finding the source of statistically significant discrepancies (e.g., from a previous version, alternative hardware or supporting software stack) in output is non-trivial at best. Although there are many tools for program comprehension through debugging or slicing, few (if any) scale to a model as large as the Community Earth System Model (CESM; trademarked), which consists of more than 1.5 million lines of Fortran code. Currently for the CESM, we can easily determine whether a discrepancy exists in the output using a by now well-established statistical consistency testing tool. However, this tool provides no information as to the possible cause of the detected discrepancy, leaving developers in a seemingly impossible (and frustrating) situation. Therefore, our aim in this work is to provide the tools to enable developers to trace a problem detected through the CESM output to its source. To this end, our strategy is to reduce the search space for the root cause(s) to a tractable size via a series of techniques that include creating a directed graph of internal CESM variables, extracting a subgraph (using a form of hybrid program slicing), partitioning into communities, and ranking nodes by centrality. Runtime variable sampling then becomes feasible in this reduced search space. We demonstrate the utility of this process on multiple examples of CESM simulation output by illustrating how sampling can be performed as part of an efficient parallel iterative refinement procedure to locate error sources, including sensitivity to CPU instructions. By providing CESM developers with tools to identify and understand the reason for statistically distinct output, we have positively impacted the CESM software development cycle and, in particular, its focus on quality assurance.</description><identifier>EISSN: 2331-8422</identifier><language>eng</language><publisher>Ithaca: Cornell University Library, arXiv.org</publisher><subject>Climate models ; Computer simulation ; Debugging ; Error detection ; Feasibility studies ; FORTRAN ; Graph theory ; Iterative methods ; Quality assurance ; Root cause analysis ; Sampling ; Simulation ; Slicing ; Software development</subject><ispartof>arXiv.org, 2019-02</ispartof><rights>2019. This work is published under http://arxiv.org/licenses/nonexclusive-distrib/1.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>780,784</link.rule.ids></links><search><creatorcontrib>Milroy, Daniel J</creatorcontrib><creatorcontrib>Baker, Allison H</creatorcontrib><creatorcontrib>Hammerling, Dorit M</creatorcontrib><creatorcontrib>Kim, Youngsung</creatorcontrib><creatorcontrib>Jessup, Elizabeth R</creatorcontrib><creatorcontrib>Hauser, Thomas</creatorcontrib><title>Making root cause analysis feasible for large code bases: a solution approach for a climate model</title><title>arXiv.org</title><description>For large-scale simulation codes with huge and complex code bases, where bit-for-bit comparisons are too restrictive, finding the source of statistically significant discrepancies (e.g., from a previous version, alternative hardware or supporting software stack) in output is non-trivial at best. Although there are many tools for program comprehension through debugging or slicing, few (if any) scale to a model as large as the Community Earth System Model (CESM; trademarked), which consists of more than 1.5 million lines of Fortran code. Currently for the CESM, we can easily determine whether a discrepancy exists in the output using a by now well-established statistical consistency testing tool. However, this tool provides no information as to the possible cause of the detected discrepancy, leaving developers in a seemingly impossible (and frustrating) situation. Therefore, our aim in this work is to provide the tools to enable developers to trace a problem detected through the CESM output to its source. To this end, our strategy is to reduce the search space for the root cause(s) to a tractable size via a series of techniques that include creating a directed graph of internal CESM variables, extracting a subgraph (using a form of hybrid program slicing), partitioning into communities, and ranking nodes by centrality. Runtime variable sampling then becomes feasible in this reduced search space. We demonstrate the utility of this process on multiple examples of CESM simulation output by illustrating how sampling can be performed as part of an efficient parallel iterative refinement procedure to locate error sources, including sensitivity to CPU instructions. By providing CESM developers with tools to identify and understand the reason for statistically distinct output, we have positively impacted the CESM software development cycle and, in particular, its focus on quality assurance.</description><subject>Climate models</subject><subject>Computer simulation</subject><subject>Debugging</subject><subject>Error detection</subject><subject>Feasibility studies</subject><subject>FORTRAN</subject><subject>Graph theory</subject><subject>Iterative methods</subject><subject>Quality assurance</subject><subject>Root cause analysis</subject><subject>Sampling</subject><subject>Simulation</subject><subject>Slicing</subject><subject>Software development</subject><issn>2331-8422</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2019</creationdate><recordtype>article</recordtype><sourceid>ABUWG</sourceid><sourceid>AFKRA</sourceid><sourceid>AZQEC</sourceid><sourceid>BENPR</sourceid><sourceid>CCPQU</sourceid><sourceid>DWQXO</sourceid><recordid>eNqNzbEOgjAUheHGxESivMNNnEloK4KuRuPi5k6ueMFiodhbBt9eYnwAp7N8J_9MREprmRQbpRYiZm7TNFXbXGWZjgRe8Gn6BrxzASocmQB7tG82DDUhm5slqJ0Hi74hqNyd4IZMvAcEdnYMxvWAw-AdVo-vRKis6TAQdJO2KzGv0TLFv12K9el4PZyT6fIaiUPZutFPTS6VVHmh5S6X-j_1AQjqRNw</recordid><startdate>20190211</startdate><enddate>20190211</enddate><creator>Milroy, Daniel J</creator><creator>Baker, Allison H</creator><creator>Hammerling, Dorit M</creator><creator>Kim, Youngsung</creator><creator>Jessup, Elizabeth R</creator><creator>Hauser, Thomas</creator><general>Cornell University Library, arXiv.org</general><scope>8FE</scope><scope>8FG</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>HCIFZ</scope><scope>L6V</scope><scope>M7S</scope><scope>PIMPY</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope></search><sort><creationdate>20190211</creationdate><title>Making root cause analysis feasible for large code bases: a solution approach for a climate model</title><author>Milroy, Daniel J ; Baker, Allison H ; Hammerling, Dorit M ; Kim, Youngsung ; Jessup, Elizabeth R ; Hauser, Thomas</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-proquest_journals_21278319713</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2019</creationdate><topic>Climate models</topic><topic>Computer simulation</topic><topic>Debugging</topic><topic>Error detection</topic><topic>Feasibility studies</topic><topic>FORTRAN</topic><topic>Graph theory</topic><topic>Iterative methods</topic><topic>Quality assurance</topic><topic>Root cause analysis</topic><topic>Sampling</topic><topic>Simulation</topic><topic>Slicing</topic><topic>Software development</topic><toplevel>online_resources</toplevel><creatorcontrib>Milroy, Daniel J</creatorcontrib><creatorcontrib>Baker, Allison H</creatorcontrib><creatorcontrib>Hammerling, Dorit M</creatorcontrib><creatorcontrib>Kim, Youngsung</creatorcontrib><creatorcontrib>Jessup, Elizabeth R</creatorcontrib><creatorcontrib>Hauser, Thomas</creatorcontrib><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Materials Science &amp; Engineering Collection</collection><collection>ProQuest Central (Alumni Edition)</collection><collection>ProQuest Central UK/Ireland</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection (ProQuest)</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Engineering Collection</collection><collection>Engineering Database</collection><collection>Publicly Available Content Database</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering Collection</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Milroy, Daniel J</au><au>Baker, Allison H</au><au>Hammerling, Dorit M</au><au>Kim, Youngsung</au><au>Jessup, Elizabeth R</au><au>Hauser, Thomas</au><format>book</format><genre>document</genre><ristype>GEN</ristype><atitle>Making root cause analysis feasible for large code bases: a solution approach for a climate model</atitle><jtitle>arXiv.org</jtitle><date>2019-02-11</date><risdate>2019</risdate><eissn>2331-8422</eissn><abstract>For large-scale simulation codes with huge and complex code bases, where bit-for-bit comparisons are too restrictive, finding the source of statistically significant discrepancies (e.g., from a previous version, alternative hardware or supporting software stack) in output is non-trivial at best. Although there are many tools for program comprehension through debugging or slicing, few (if any) scale to a model as large as the Community Earth System Model (CESM; trademarked), which consists of more than 1.5 million lines of Fortran code. Currently for the CESM, we can easily determine whether a discrepancy exists in the output using a by now well-established statistical consistency testing tool. However, this tool provides no information as to the possible cause of the detected discrepancy, leaving developers in a seemingly impossible (and frustrating) situation. Therefore, our aim in this work is to provide the tools to enable developers to trace a problem detected through the CESM output to its source. To this end, our strategy is to reduce the search space for the root cause(s) to a tractable size via a series of techniques that include creating a directed graph of internal CESM variables, extracting a subgraph (using a form of hybrid program slicing), partitioning into communities, and ranking nodes by centrality. Runtime variable sampling then becomes feasible in this reduced search space. We demonstrate the utility of this process on multiple examples of CESM simulation output by illustrating how sampling can be performed as part of an efficient parallel iterative refinement procedure to locate error sources, including sensitivity to CPU instructions. By providing CESM developers with tools to identify and understand the reason for statistically distinct output, we have positively impacted the CESM software development cycle and, in particular, its focus on quality assurance.</abstract><cop>Ithaca</cop><pub>Cornell University Library, arXiv.org</pub><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier EISSN: 2331-8422
ispartof arXiv.org, 2019-02
issn 2331-8422
language eng
recordid cdi_proquest_journals_2127831971
source Free E- Journals
subjects Climate models
Computer simulation
Debugging
Error detection
Feasibility studies
FORTRAN
Graph theory
Iterative methods
Quality assurance
Root cause analysis
Sampling
Simulation
Slicing
Software development
title Making root cause analysis feasible for large code bases: a solution approach for a climate model
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-09T14%3A54%3A47IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=document&rft.atitle=Making%20root%20cause%20analysis%20feasible%20for%20large%20code%20bases:%20a%20solution%20approach%20for%20a%20climate%20model&rft.jtitle=arXiv.org&rft.au=Milroy,%20Daniel%20J&rft.date=2019-02-11&rft.eissn=2331-8422&rft_id=info:doi/&rft_dat=%3Cproquest%3E2127831971%3C/proquest%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2127831971&rft_id=info:pmid/&rfr_iscdi=true