Debugging scientific applications with statistical assertions

Minh Ngoc Dinh, David Abramson, Jin Chao, Donny Kurniawan, Andrew Gontarek, Robert Moench, Luiz DeRose

    Research output: Chapter in Book/Report/Conference proceedingConference PaperResearchpeer-review

    3 Citations (Scopus)


    Traditional debuggers are of limited value for modern scientific codes that manipulate large complex data structures. Current parallel machines make this even more complicated, because the data may be distributed across multiple processors, making it difficult to view, interpret and validate the contents of a distributed structure. As a result, many applications' developers resort to placing validation and display code directly in the source program itself. This paper discusses a novel debug-time assertion, called a "Statistical Assertion", that allows a user to reason about large data structures. We present the design and implementation of statistical assertions, and illustrate the debugging technique with a molecular dynamics simulation. We evaluate the performance of the system on a 12,000 processor Cray XE6, and show that it is useful for real time debugging.
    Original languageEnglish
    Title of host publicationProcedia Computer Science
    Subtitle of host publicationInternational Conference on Computational Science (ICCS 2012)
    EditorsHesham Ali, Yong Shi, Deepak Khazanchi, Michael Lees, G Dick van Albada, Jack Dongarra, Peter M A Sloot
    Place of PublicationAmsterdam, Netherlands
    Number of pages10
    Publication statusPublished - 2012
    EventInternational Conference on Computational Science 2012 - Omaha, United States of America
    Duration: 4 Jun 20126 Jun 2012
    Conference number: 12th


    ConferenceInternational Conference on Computational Science 2012
    Abbreviated titleICCS 2012
    Country/TerritoryUnited States of America
    OtherThe International Conference on Computational Science aims to bring together annually researchers and scientists from mathematics and computer science as basic computing disciplines, researchers from various application areas who are pioneering advanced application of computational methods to sciences such as physics, chemistry, life sciences, and engineering, arts and humanitarian fields, along with software developers and vendors, to discuss problems and solutions in the area, to identify new issues, and to shape future directions for research, as well as to help industrial users apply various advanced computational techniques.
    Internet address


    • Debugging
    • Assertion
    • Statistic
    • Parallel architecture

    Cite this