Search NASASearch

SEARCH · Search NASA

Results for “concurrency programming”

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 19 records

The composition of concurrent programs

A notation is presented for concurrent programs called program composition notation (PCN). The notation is being implemented at Caltech on multicomputers (a network of computers that communicate by sending and receiving messages). A fragment of this notation has been implemented on a data-parallel computer, the Connection Machine. The central ideas underlying PCN are discussed.

Chandy, K. Mani

Symbolic Analysis of Concurrent Programs with Polymorphism

The current trend of multi-core and multi-processor computing is causing a paradigm shift from inherently sequential to highly concurrent and parallel applications. Certain thread interleavings, data input values, or combinations of both often cause errors in the system. Systematic verification techniques such as explicit state model checking and symbolic execution are extensively used to detect errors in such systems [7, 9]. Explicit state model checking enumerates possible thread schedules and input data values of a program in order to check for errors [3, 9]. To partially mitigate the state space explosion from data input values, symbolic execution techniques substitute data input values with symbolic values [5, 7, 6]. Explicit state model checking and symbolic execution techniques used in conjunction with exhaustive search techniques such as depth-first search are unable to detect errors in medium to large-sized concurrent programs because the number of behaviors caused by data and thread non-determinism is extremely large. We present an overview of abstraction-guided symbolic execution for concurrent programs that detects errors manifested by a combination of thread schedules and data values [8]. The technique generates a set of key program locations relevant in testing the reachability of the target locations. The symbolic execution is then guided along these locations in an attempt to generate a feasible execution path to the error state. This allows the execution to focus in parts of the behavior space more likely to contain an error.

Rungta, Neha Shyam

Visualization of Concurrent Program Executions

Various program analysis techniques are efficient at discovering failures and properties. However, it is often difficult to evaluate results, such as program traces. This calls for abstraction and visualization tools. We propose an approach based on UML sequence diagrams, addressing shortcomings of such diagrams for concurrency. The resulting visualization is expressive and provides all the necessary information at a glance.

concurrent programs

The Concert system - Compiler and runtime technology for efficient concurrent object-oriented programming

Concurrent object-oriented languages, particularly fine-grained approaches, reduce the difficulty of large scale concurrent programming by providing modularity through encapsulation while exposing large degrees of concurrency. Despite these programmability advantages, such languages have historically suffered from poor efficiency. This paper describes the Concert project whose goal is to develop portable, efficient implementations of fine-grained concurrent object-oriented languages. Our approach incorporates aggressive program analysis and program transformation with careful information management at every stage from the compiler to the runtime system. The paper discusses the basic elements of the Concert approach along with a description of the potential payoffs. Initial performance results and specific plans for system development are also detailed.

Chien, Andrew A.

The Caltech Concurrent Computation Program - Project description

The Caltech Concurrent Computation Program wwhich studies basic issues in computational science is described. The research builds on initial work where novel concurrent hardware, the necessary systems software to use it and twenty significant scientific implementations running on the initial 32, 64, and 128 node hypercube machines have been constructed. A major goal of the program will be to extend this work into new disciplines and more complex algorithms including general packages that decompose arbitrary problems in major application areas. New high-performance concurrent processors with up to 1024-nodes, over a gigabyte of memory and multigigaflop performance are being constructed. The implementations cover a wide range of problems in areas such as high energy and astrophysics, condensed matter, chemical reactions, plasma physics, applied mathematics, geophysics, simulation, CAD for VLSI, graphics and image processing. The products of the research program include the concurrent algorithms, hardware, systems software, and complete program implementations.

Fox, G.

Program Management for Concurrent University Satellite Programs, Including Propellant Feed System Design Elements

Propulsion options for CubeSats are limited but are necessary for the CubeSat industry to continue future growth. Challenges to CubeSat propulsion include volume/mass constraints, availability of sufficiently small and certified hardware, secondary payload status, safe storage of high energy, and power requirements. A multi-mode (chemical and electric) thruster was developed by at the Missouri University of Science and Technology (Missouri S&T) to enable CubeSat propulsion missions. Two satellite buses, a 3U and 6U, are being developed by the M-SAT satellite research team at Missouri S&T to demonstrate the multi-mode thruster's capabilities. Two key challenges related to these missions are the development of the feed system to support the thruster and management of the two programs' personnel, resources, timelines, and budgets. The feed system was designed to support the unique needs of the thruster including material compatibility with the custom ionic liquid, variable flow rate, high pressurization, and high voltage within the constraints and budget of a student-designed propulsion system. The feed system was also designed to minimize risk as a secondary payload. This resulted in the development of a unique method to pressurize propellant stored in the feed system tubing. Within the expected operating pressure range, the method was experimentally shown to provide sufficient pressure and propellant volume to the thruster to meet mission success criteria. The 3U and 6U CubeSat buses were designed concurrently with complimentary payloads, hardware, objectives, and team structures. Resources such as personnel, lab space, and time had to be carefully balanced between the two teams. With proper management, the two programs have been able to support one another, providing valuable insight and collaboration between the two teams. Lessons learned include experience with design, testing, and assembly of hardware, team training/mentoring and motivation, improved documentation practices, and risk management.

Withrow, Shannah Nichole

Model Checker for Java Programs

Java Pathfinder (JPF) is a verification and testing environment for Java that integrates model checking, program analysis, and testing. JPF consists of a custom-made Java Virtual Machine (JVM) that interprets bytecode, combined with a search interface to allow the complete behavior of a Java program to be analyzed, including interleavings of concurrent programs. JPF is implemented in Java, and its architecture is highly modular to support rapid prototyping of new features. JPF is an explicit-state model checker, because it enumerates all visited states and, therefore, suffers from the state-explosion problem inherent in analyzing large programs. It is suited to analyzing programs less than 10kLOC, but has been successfully applied to finding errors in concurrent programs up to 100kLOC. When an error is found, a trace from the initial state to the error is produced to guide the debugging. JPF works at the bytecode level, meaning that all of Java can be model-checked. By default, the software checks for all runtime errors (uncaught exceptions), assertions violations (supports Java s assert), and deadlocks. JPF uses garbage collection and symmetry reductions of the heap during model checking to reduce state-explosion, as well as dynamic partial order reductions to lower the number of interleavings analyzed. JPF is capable of symbolic execution of Java programs, including symbolic execution of complex data such as linked lists and trees. JPF is extensible as it allows for the creation of listeners that can subscribe to events during searches. The creation of dedicated code to be executed in place of regular classes is supported and allows users to easily handle native calls and to improve the efficiency of the analysis.

Visser, Willem

Multiple arm coordination using concurrent processing

The use of concurrent processing for robot arm coordination is considered, and a hierarchically structured set of routines for the completion of coordinated tasks is discussed. Concurrent programming controls interacting concurrent processes by providing techniques to handle the problems of mutual exclusion, synchronization, and communication. The process is demonstrated for the example of the producer-consumer problem. Software supporting a concurrent environment to control a robotic system is being developed in which parallel rather than sequential thought processes are used.

Basta, Robert A.

Research in computer science

Several short summaries of the work performed during this reporting period are presented. Topics discussed in this document include: (1) resilient seeded errors via simple techniques; (2) knowledge representation for engineering design; (3) analysis of faults in a multiversion software experiment; (4) implementation of parallel programming environment; (5) symbolic execution of concurrent programs; (6) two computer graphics systems for visualization of pressure distribution and convective density particles; (7) design of a source code management system; (8) vectorizing incomplete conjugate gradient on the Cyber 203/205; (9) extensions of domain testing theory and; (10) performance analyzer for the pisces system.

Ortega, J. M.

Parallel processing for scientific computations

The main contribution of the effort in the last two years is the introduction of the MOPPS system. After doing extensive literature search, we introduced the system which is described next. MOPPS employs a new solution to the problem of managing programs which solve scientific and engineering applications on a distributed processing environment. Autonomous computers cooperate efficiently in solving large scientific problems with this solution. MOPPS has the advantage of not assuming the presence of any particular network topology or configuration, computer architecture, or operating system. It imposes little overhead on network and processor resources while efficiently managing programs concurrently. The core of MOPPS is an intelligent program manager that builds a knowledge base of the execution performance of the parallel programs it is managing under various conditions. The manager applies this knowledge to improve the performance of future runs. The program manager learns from experience.

Alkhatib, Hasan S.

Evolution of a standard microprocessor-based space computer

An existing in inventory computer hardware/software package (B-1 RFS/ECM) was repackaged and applied to multiple missile/space programs. Concurrent with the application efforts, low risk modifications were made to the computer from program to program to take advantage of newer, advanced technology and to meet increasingly more demanding requirements (computational and memory capabilities, longer life, and fault tolerant autonomy). It is concluded that microprocessors hold promise in a number of critical areas for future space computer applications. However, the benefits of the DoD VHSIC Program are required and the old proliferation problem must be revised.

Fernandez, M.

Coverage Metrics for Model Checking

When using model checking to verify programs in practice, it is not usually possible to achieve complete coverage of the system. In this position paper we describe ongoing research within the Automated Software Engineering group at NASA Ames on the use of test coverage metrics to measure partial coverage and provide heuristic guidance for program model checking. We are specifically interested in applying and developing coverage metrics for concurrent programs that might be used to support certification of next generation avionics software.

Penix, John

Parallel scheduling of recursively defined arrays

A new method of automatic generation of concurrent programs which constructs arrays defined by sets of recursive equations is described. It is assumed that the time of computation of an array element is a linear combination of its indices, and integer programming is used to seek a succession of hyperplanes along which array elements can be computed concurrently. The method can be used to schedule equations involving variable length dependency vectors and mutually recursive arrays. Portions of the work reported here have been implemented in the PS automatic program generation system.

Myers, T. J.

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

Overcoming Molehills and Mountains Implementing a New Program

This slide presentation reviews some of the challenges and accomplishments of implementing a new program. The purpose of the presentation is to: (1) Share the challenges that were encountered formulating a new program concurrent with formulating & implementing new spacecraft development projects: (a) Immature mission concepts put on the fast track (b) Need to reconcile ambitious objectives with cost and budget reality (c) Changes of major stakeholders (d) Timing, timing, timing (e) Changing ground rules, assumptions, and risk tolerance (f) The role of centers, (2) Share the successes to date despite the challenges (3) Demonstrate how interdependencies between the program, projects, NASA HQ environment, and external political forces affect the process, and how expectations must be managed while dealing with external factors and great change.

Salute, Joan

Exploratory studies of the cruise performance of upper surface blown configurations. Experimental program: Test facilities, model design instrumentation, and lowspeed, high-lift tests

The model hardware, test facilities and instrumentation utilized in an experimental study of upper surface blown configurations at cruise is described. The high speed (subsonic) experimental work, studying the aerodynamic effects of wing nacelle geometric variations, was conducted around semispan model configurations composed of diversified, interchangeable components. Power simulation was provided by high pressure air ducted through closed forebody nacelles. Nozzle geometry was varied across size, exit aspect ratio, exit position and boattail angle. Three dimensional force and two dimensional pressure measurements were obtained at cruise Mach numbers from 0.5 to 0.8 and at nozzle pressure ratios up to about 3.0. The experimental investigation was supported by an analytical synthesis of the system using a vortex lattice representation with first order power effects. Results are also presented from a compatibility study in which a short haul transport is designed on the basis of the aerodynamic findings in the experimental study as well as acoustical data obtained in a concurrent program. High lift test data are used to substantiate the projected performance of the selected transport design.

Braden, J. A.

Exploratory studies of the cruise performance of upper surface blown configurations: Experimental program, high-speed pressure tests

Basic pressure data are presented which was obtained from an experimental study of upper-surface blown configurations at cruise. The high-speed (subsonic) experimental work, studying the aerodynamic effects of wing-nacelle geometric variations, was conducted around semi-span model configurations composed of diversified, interchangeable components. Power simulation was provided by high-pressure air ducted through closed forebody nacelles. Nozzle geometry was varied across size, exit aspect ratio, exit position and boattail angle. Both 3-D force and 2-D pressure measurements were obtained at cruise Mach numbers from 0.5 to 0.8 and at nozzle pressure ratios up to about 3.0. The experimental investigation was supported by an analytical synthesis of the system using a vortex lattice representation with first-order power effects. Results are also presented from a compatibility study in which a short-haul transport is designed on the basis of the aerodynamic findings in the experimental study as well as acoustical data obtained in a concurrent program. High-lift test data are used to substantiate the projected performance of the selected transport design.

Braden, J. A.