• DocumentCode
    2075150
  • Title

    DETERMIN: inferring likely deterministic specifications of multithreaded programs

  • Author

    Burnim, Jacob ; Sen, Koushik

  • Author_Institution
    EECS Dept., UC Berkeley, Berkeley, CA, USA
  • Volume
    1
  • fYear
    2010
  • fDate
    2-8 May 2010
  • Firstpage
    415
  • Lastpage
    424
  • Abstract
    The trend towards multicore processors and graphic processing units is increasing the need for software that can take advantage of parallelism. Writing correct parallel programs using threads, however, has proven to be quite challenging due to nondeterminism. The threads of a parallel application may be interleaved nondeterministically during execution, which can lead to nondeterministic results---some interleavings may produce the correct result while others may not. We have previously proposed an assertion framework for specifying that regions of a parallel program behave deterministically despite nondeterministic thread interleaving. The framework allows programmers to write assertions involving pairs of program states arising from different parallel schedules. We propose an algorithm to dynamically infer likely deterministic specifications for parallel programs given a set of inputs and schedules. We have implemented our specification inference algorithm for Java and have applied it to a number of previously examined Java benchmarks. We were able to automatically infer specifications largely equivalent to or stronger than our manual assertions from our previous work. We believe that the inference of deterministic specifications can aid in understanding and documenting the deterministic behavior of parallel programs. Moreover, an unexpected deterministic specification can indicate to a programmer the presence of erroneous or unintended behavior.
  • Keywords
    multi-threading; multiprocessing systems; parallel programming; DETERMIN; Java; deterministic specification; deterministic specifications; graphic processing units; multicore processors; multithreaded programs; parallel programs; Bridges; Instruction sets; Java; Lattices; Schedules; Semantics; Vegetation; determinism; parallel programs; specification inference;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering, 2010 ACM/IEEE 32nd International Conference on
  • Conference_Location
    Cape Town
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-60558-719-6
  • Type

    conf

  • DOI
    10.1145/1806799.1806860
  • Filename
    6062109