Search NASA⌕ Search

SEARCH · Search NASA

Results for “Data Races”

Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.

Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.

At least 37 records · Page 2

An Overview of the Runtime Verification Tool Java PathExplorer

We present an overview of the Java PathExplorer runtime verification tool, in short referred to as JPAX. JPAX can monitor the execution of a Java program and check that it conforms with a set of user provided properties formulated in temporal logic. JPAX can in addition analyze the program for concurrency errors such as deadlocks and data races. The concurrency analysis requires no user provided specification. The tool facilitates automated instrumentation of a program's bytecode, which when executed will emit an event stream, the execution trace, to an observer. The observer dispatches the incoming event stream to a set of observer processes, each performing a specialized analysis, such as the temporal logic verification, the deadlock analysis and the data race analysis. Temporal logic specifications can be formulated by the user in the Maude rewriting logic, where Maude is a high-speed rewriting system for equational logic, but here extended with executable temporal logic. The Maude rewriting engine is then activated as an event driven monitoring process. Alternatively, temporal specifications can be translated into efficient automata, which check the event stream. JPAX can be used during program testing to gain increased information about program executions, and can potentially furthermore be applied during operation to survey safety critical systems.

Havelund, Klaus↗

A Memory Efficient Lock-Free Circular Queue

Hardware queues are import in many applications, such as data transfer, synchronization of concurrent modules with the need of mutual exclusion constructs. State of the art bounded (of a fixed size) lock free circular queues are implemented either by read/write atomic operations, or barrier conditions, or by separating dequeue and enqueue operations. However, these queues always require an unused element at all the times to safe-guard the front and rear pointers of the queue, so as to avoid data race conditions, which leads to the waste of memory. The waste of memory is especially disadvantageous in applications such as I/O data transfer, and image transfer between processing filters, when large element size is needed, We propose a lock-free solution of the bounded circular queue through read/write atomic operations, but without the need of an extra element in the queue. The proposed solution is implemented and verified in both Verilog and ’C’ languages. We also demonstrate its effectiveness by comparing its area and delay metrics with the implementations of other existing designs of queue.

Miniskar, Narasinga Rao↗

Monitoring Java Programs with Java PathExplorer

We present recent work on the development Java PathExplorer (JPAX), a tool for monitoring the execution of Java programs. JPAX can be used during program testing to gain increased information about program executions, and can potentially furthermore be applied during operation to survey safety critical systems. The tool facilitates automated instrumentation of a program's late code which will then omit events to an observer during its execution. The observer checks the events against user provided high level requirement specifications, for example temporal logic formulae, and against lower level error detection procedures, for example concurrency related such as deadlock and data race algorithms. High level requirement specifications together with their underlying logics are defined in the Maude rewriting logic, and then can either be directly checked using the Maude rewriting engine, or be first translated to efficient data structures and then checked in Java.

Havelund, Klaus↗

Barrier elision for production parallel programs

Large scientific code bases are often composed of several layers of runtime libraries, implemented in multiple programming languages. In such situation, programmers often choose conservative synchronization patterns leading to suboptimal performance. In this paper, we present context-sensitive dynamic optimizations that elide barriers redundant during the program execution. In our technique, we perform data race detection alongside the program to identify redundant barriers in their calling contexts; after an initial learning, we start eliding all future instances of barriers occurring in the same calling context. We present an automatic on-the-fly optimization and a multi-pass guided optimization. We apply our techniques to NWChem - a 6 million line computational chemistry code written in C/C++/Fortran that uses several runtime libraries such as Global Arrays, ComEx, DMAPP, and MPI. Our technique elides a surprisingly high fraction of barriers (as many as 63%) in production runs. This redundancy elimination translates to application speedups as high as 14% on 2048 cores. Our techniques also provided valuable insight about the application behavior, later used by NWChem developers. Overall, we demonstrate the value of holistic context-sensitive analyses that consider the domain science in conjunction with the associated runtime software stack.

97 MATHEMATICS AND COMPUTING↗

Scabbard

Scabbard is a tool to detect data races that occur between AMD GPUs and CPUs, for projects using HIP technology. The tool detects unsynchronized memory accesses when using unified memory. It is designed as an extension of LLVM/clang for ROCm.

Laguna Peralta, Ignacio [Lawrence Livermore Nation↗

Thin-Threads: An Approach for History-Based Monte Carlo on GPUs

A graphics processing unit (GPU) has become a core technology for modern supercomputers. Applications that once ran on supercomputers are being forced to make significant changes to their designs to utilize these new machines. This paper introduces the concept of Thin-Threads as a method for history-based Monte Carlo transport applications on GPUs. The key principles behind Thin-Threads are light memory usage and communication and managing data race issues via atomics. We show that we can achieve a 10x speedup when moving from the traditional method to Thin-Threads on GPUs. Additionally, we demonstrate the viability of the Thin-Threads model at scale for GPU and CPU platforms.

97 MATHEMATICS AND COMPUTING↗

LLNL contributions to MPD thrusters for SEI

Some of the topics covered with respect to the Lawrence Livermore National Laboratory's (LLNL's) contributions to Magnetoplasmadynamic (MPD) Thrusters for the Space Exploration Initiative (SEI) include: an IR camera, plasma-induced erosion/redeposition, the Mirror Fusion Test Facility-B (MFTF-B), the Thruster Lifetime Test Facility, the RACE Compact Torus Accelerator Facility, and a RACE program summary. Some of the other topics addressed include: flux contours for HAM simulation, comparison of RACE data of plasma ring formation with the HAM 2-D magnetohydrodynamic code, and the 2-D Ring Acceleration Code (TRAC).

Hooper, Edwin Bickford↗

The ParaScope parallel programming environment

The ParaScope parallel programming environment, developed to support scientific programming of shared-memory multiprocessors, includes a collection of tools that use global program analysis to help users develop and debug parallel programs. This paper focuses on ParaScope's compilation system, its parallel program editor, and its parallel debugging system. The compilation system extends the traditional single-procedure compiler by providing a mechanism for managing the compilation of complete programs. Thus, ParaScope can support both traditional single-procedure optimization and optimization across procedure boundaries. The ParaScope editor brings both compiler analysis and user expertise to bear on program parallelization. It assists the knowledgeable user by displaying and managing analysis and by providing a variety of interactive program transformations that are effective in exposing parallelism. The debugging system detects and reports timing-dependent errors, called data races, in execution of parallel programs. The system combines static analysis, program instrumentation, and run-time reporting to provide a mechanical system for isolating errors in parallel program executions. Finally, we describe a new project to extend ParaScope to support programming in FORTRAN D, a machine-independent parallel programming language intended for use with both distributed-memory and shared-memory parallel computers.

Cooper, Keith D.↗

Using Runtime Analysis to Guide Model Checking of Java Programs

This paper describes how two runtime analysis algorithms, an existing data race detection algorithm and a new deadlock detection algorithm, have been implemented to analyze Java programs. Runtime analysis is based on the idea of executing the program once. and observing the generated run to extract various kinds of information. This information can then be used to predict whether other different runs may violate some properties of interest, in addition of course to demonstrate whether the generated run itself violates such properties. These runtime analyses can be performed stand-alone to generate a set of warnings. It is furthermore demonstrated how these warnings can be used to guide a model checker, thereby reducing the search space. The described techniques have been implemented in the b e grown Java model checker called PathFinder.

Havelund, Klaus↗

Java PathExplorer: A Runtime Verification Tool

We describe recent work on designing an environment called Java PathExplorer for monitoring the execution of Java programs. This environment facilitates the testing of execution traces against high level specifications, including temporal logic formulae. In addition, it contains algorithms for detecting classical error patterns in concurrent programs, such as deadlocks and data races. An initial prototype of the tool has been applied to the executive module of the planetary Rover K9, developed at NASA Ames. In this paper we describe the background and motivation for the development of this tool, including comments on how it relates to formal methods tools as well as to traditional testing, and we then present the tool itself.

Havelund, Klaus↗

Experiments with Test Case Generation and Runtime Analysis

Software testing is typically an ad hoc process where human testers manually write many test inputs and expected test results, perhaps automating their execution in a regression suite. This process is cumbersome and costly. This paper reports preliminary results on an approach to further automate this process. The approach consists of combining automated test case generation based on systematically exploring the program's input domain, with runtime analysis, where execution traces are monitored and verified against temporal logic specifications, or analyzed using advanced algorithms for detecting concurrency errors such as data races and deadlocks. The approach suggests to generate specifications dynamically per input instance rather than statically once-and-for-all. The paper describes experiments with variants of this approach in the context of two examples, a planetary rover controller and a space craft fault protection system.

Artho, Cyrille↗

Instrumentation of Java Bytecode for Runtime Analysis

This paper describes JSpy, a system for high-level instrumentation of Java bytecode and its use with JPaX, OUT system for runtime analysis of Java programs. JPaX monitors the execution of temporal logic formulas and performs predicative analysis of deadlocks and data races. JSpy s input is an instrumentation specification, which consists of a collection of rules, where a rule is a predicate/action pair The predicate is a conjunction of syntactic constraints on a Java statement, and the action is a description of logging information to be inserted in the bytecode corresponding to the statement. JSpy is built using JTrek an instrumentation package at a lower level of abstraction.

Goldberg, Allen↗

Applying Jlint to Space Exploration Software

Java is a very successful programming language which is also becoming widespread in embedded systems, where software correctness is critical. Jlint is a simple but highly efficient static analyzer that checks a Java program for several common errors, such as null pointer exceptions, and overflow errors. It also includes checks for multi-threading problems, such as deadlocks and data races. The case study described here shows the effectiveness of Jlint in find-false positives in the multi-threading warnings gives an insight into design patterns commonly used in multi-threaded code. The results show that a few analysis techniques are sufficient to avoid almost all false positives. These techniques include investigating all possible callers and a few code idioms. Verifying the correct application of these patterns is still crucial, because their correct usage is not trivial.

Artho, Cyrille↗

Symbolically Modeling Concurrent MCAPI Executions

Improper use of Inter-Process Communication (IPC) within concurrent systems often creates data races which can lead to bugs that are challenging to discover. Techniques that use Satisfiability Modulo Theories (SMT) problems to symbolically model possible executions of concurrent software have recently been proposed for use in the formal verification of software. In this work we describe a new technique for modeling executions of concurrent software that use a message passing API called MCAPI. Our technique uses an execution trace to create an SMT problem that symbolically models all possible concurrent executions and follows the same sequence of conditional branch outcomes as the provided execution trace. We check if there exists a satisfying assignment to the SMT problem with respect to specific safety properties. If such an assignment exists, it provides the conditions that lead to the violation of the property. We show how our method models behaviors of MCAPI applications that are ignored in previously published techniques.

Fischer, Topher↗

Race conditions and data partitioning: risks posed by common errors to reproducible parallel simulations

When parallel algorithms for simulation were introduced in the 1970s, their development and use interested only experts in parallel computation. This circumstance changed as multi-core processors became commonplace, putting a parallel computer into the hands of every modeler. A natural outcome is growing interest in parallel simulation among persons not intimately familiar with parallel computing. At the same time, parallel simulation tools continue to be developed with the implicit assumption that the modeler is knowledgeable about parallel programming. The unintended consequence is a rapidly growing number of users of parallel simulation tools that are unlikely to recognize when the interaction of race conditions, partitioning strategies, and simultaneous action in their simulation models make results non-reproducible, thereby calling into question the validity of conclusions drawn from the simulation data. Here, we illustrate the potential dangers of exposing parallel algorithms to users who are not experts in parallel computation with example models constructed using existing parallel simulation tools. By doing so, we hope to refocus tool developers on usability, even if this new focus incurs loss of some performance.

97 MATHEMATICS AND COMPUTING↗

Further measurements of normal accelerations on racing airplanes

The work of collecting acceleration data for racing airplanes during races, started in January 1934, has been continued by obtaining similar data in the airplanes winning first and second places in the 1935 Thompson Trophy Race. Records were taken in the Howard Racer "Mr. Mulligan" and in the Wittman D-12 Racer. The maximum positive accelerations were generally smaller than those recorded in other airplanes during earlier races; the maximum in the Howard Racer was 2.8 g, and one value of 4.25 g was obtained in the Wittman Racer. Minimum values were as low as -0.55 g in the Howard Racer and 0.3 g in the Wittman Racer.

Scudder, N F↗

Kennedy Space Center Spaceport Analysis

Until the Shuttle Atlantis' final landing on July 21, 2011, Kennedy Space Center (KSC) served as NASA's main spaceport, which is a launch and landing facility for rockets and spacecraft that are attempting to enter orbit. Many of the facilities at KSC were created to assist the Shuttle Program. One of the most important and used facilities is the Shuttle Landing Facility (SLF), This was the main landing area for the return of the shuttle after her mission in space. · However, the SLF has also been used for a number of other projects including straight-line testing by Gibbs Racing, weather data collection by NOAA, and an airfield for the KSC helicopters. This runway is three miles long with control tower at midfield and a fire department located at the end in care of an emergency. This facility, which was part of the great space race, will continue to be used for historical events as Kennedy begins to commercialize its facilities. KSC continues to be an important spaceport to the government, and it will transform into an important spaceport for the commercial industry as well. During my internship at KSC's Center Planning and Development Directorate, I had the opportunity to be a part of the negotiation team working on the agreement for Space Florida to control the Shuttle Landing Facility. This gave me the opportunity to learn about all the changes that are occurring here at Kennedy Space Center. Through various meetings, I discovered the Master Plan and its focus is to transform the existing facilities that were primarily used for the Shuttle Program, to support government operations and commercial flights in the future. This. idea is also in a new strategic business plan and completion of a space industry market analysis. All of these different documentations were brought to my attention and I. saw how they came together in the discussions of transitioning the SLF to a commercial operator, Space Florida. After attending meetings and partaking in discussions for the SLF Agreement, I formed the idea of a Spaceport Analysis as my over internship project. As previously stated, I had the opportunity to sit in on the market analysis meetings and read through the analysis itself. I suggested the creation of a Strengths Weaknesses Opportunities Threats (SWOT) analysis, which allows an individual to see an overview of the company's strengths and weaknesses alongside any industry opportunities and threats. After discussions with the lead writer of the new strategic business plan and getting approval, I took the action upon myself and created the Kennedy Space Center SWOT Analysis.

Wary, Samantha A.↗

Development and validation of a quantitative PCR assay method of assessing relative resistance of oat ( Avena sativa ) to crown rust ( Puccinia coronata f. sp. avenae )

Evaluation of oat crown rust resistance is usually based on visual assessment of disease severity or infection types. Visual assessment is subjective, prone to rater bias and requires expert knowledge. PCR‐based quantitative assays can overcome challenges associated with visual assessment. New TaqMan primers and probes were designed from Puccinia coronata f. sp. avenae (Pca) sequences. The primer–probe sets were specific to Pca, amplified using as little as 0.5 pg fungal DNA (fDNA) and allowed for scaling to variation in sample total DNA quantity. The quantitative PCR (qPCR) assay was validated using oat recombinant inbred lines (RILs) from the Provena × 94197A1‐9‐2‐2‐2‐5 cross evaluated under a controlled environment. For comparison with fDNA load, inoculation with the Pca race LCBB provided segregation data on the hypersensitive response, while Pca race LSLG provided data on segregation for reduced pustule number. fDNA content was positively correlated with both pustule number and infection type (IT). Composite interval mapping identified two quantitative trait loci (QTLs) on oat linkage groups Mrg12 and Mrg20 using visual and qPCR assessments (pustule number, IT and fDNA). In this study a qPCR assay method that can be used to assess the relative resistance of oat to crown rust was refined and validated, and single nucleotide polymorphisms (SNPs) closely linked with two QTLs derived from the crown rust resistant line 94197A1‐9‐2‐2‐2‐5 were identified.

Admassu‐Yimer, B.↗