Engineering Papers⌕ Search

SEARCH · Engineering Papers

Results for “THREADED 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 73 records · Page 4

A hybrid FPGA/Tilera compute element for autonomous hazard detection and navigation

To increase safety for future missions landing on other planetary or lunar bodies, the Autonomous Landing and Hazard Avoidance Technology (ALHAT) program is developing an integrated sensor for autonomous surface analysis and hazard determination. The ALHAT Hazard Detection System (HDS) consists of a Flash LIDAR for measuring the topography of the landing site, a gimbal to scan across the terrain, and an Inertial Measurement Unit (IMU), along with terrain analysis algorithms to identify the landing site and the local hazards. An FPGA and Manycore processor system was developed to interface all the devices in the HDS, to provide high-resolution timing to accurately measure system state, and to run the surface analysis algorithms quickly and efficiently. In this paper, we will describe how we integrated COTS components such as an FPGA evaluation board, a TILExpress64, and multi-threaded/multi-core aware software to build the HDS Compute Element (HDSCE). The ALHAT program is also working with the NASA Morpheus Project and has integrated the HDS as a sensor on the Morpheus Lander. This paper will also describe how the HDS is integrated with the Morpheus lander and the results of the initial test flights with the HDS installed. We will also describe future improvements to the HDSCE.

Trawny, Nikolas↗

Performance analysis and kernel size study of the Lynx real-time operating system

This paper analyzes the Lynx real-time operating system (LynxOS), which has been selected as the operating system for the Space Station Freedom Data Management System (DMS). The features of LynxOS are compared to other Unix-based operating system (OS). The tools for measuring the performance of LynxOS, which include a high-speed digital timer/counter board, a device driver program, and an application program, are analyzed. The timings for interrupt response, process creation and deletion, threads, semaphores, shared memory, and signals are measured. The memory size of the DMS Embedded Data Processor (EDP) is limited. Besides, virtual memory is not suitable for real-time applications because page swap timing may not be deterministic. Therefore, the DMS software, including LynxOS, has to fit in the main memory of an EDP. To reduce the LynxOS kernel size, the following steps are taken: analyzing the factors that influence the kernel size; identifying the modules of LynxOS that may not be needed in an EDP; adjusting the system parameters of LynxOS; reconfiguring the device drivers used in the LynxOS; and analyzing the symbol table. The reductions in kernel disk size, kernel memory size and total kernel size reduction from each step mentioned above are listed and analyzed.

Liu, Yuan-Kwei↗

Technical Evaluation Motor 3 (TEM-3)

A primary objective of the technical evaluation motor program is to recover the case, igniter and nozzle hardware for use on the redesigned solid rocket motor flight program. Two qualification objectives were addressed and met on TEM-3. The Nylok thread locking device of the 1U100269-03 leak check port plug and the 1U52295-04 safe and arm utilizing Krytox grease on the barrier-booster shaft O-rings were both certified. All inspection and instrumentation data indicate that the TEM-3 static test firing conducted 23 May 1989 was successful. The test was conducted at ambient conditions with the exception of the field joints (set point of 121 F, with a minimum of 87 F at the sensors), igniter joint (set point at 122 F with a minimum of 87 F at sensors) and case-to-nozzle joint (set point at 114 F with a minimum of 87 F at sensors). Ballistics performance values were within specification requirements. Nozzle performance was nominal with typical erosion. The nozzle and the case joint temperatures were maintained at the heaters controlling set points while electrical power was supplied. The water and the CO2 quench systems prevented damage to the metal hardware. All other test equipment performed as planned, contributing to a successful motor firing. All indications are that the test was a success, and all expected hardware will be refurbished for the RSRM program.

Garecht, Diane↗

High-Performance, Multi-Node File Copies and Checksums for Clustered File Systems

Modern parallel file systems achieve high performance using a variety of techniques, such as striping files across multiple disks to increase aggregate I/O bandwidth and spreading disks across multiple servers to increase aggregate interconnect bandwidth. To achieve peak performance from such systems, it is typically necessary to utilize multiple concurrent readers/writers from multiple systems to overcome various singlesystem limitations, such as number of processors and network bandwidth. The standard cp and md5sum tools of GNU coreutils found on every modern Unix/Linux system, however, utilize a single execution thread on a single CPU core of a single system, and hence cannot take full advantage of the increased performance of clustered file systems. Mcp and msum are drop-in replacements for the standard cp and md5sum programs that utilize multiple types of parallelism and other optimizations to achieve maximum copy and checksum performance on clustered file systems. Multi-threading is used to ensure that nodes are kept as busy as possible. Read/write parallelism allows individual operations of a single copy to be overlapped using asynchronous I/O. Multinode cooperation allows different nodes to take part in the same copy/checksum. Split-file processing allows multiple threads to operate concurrently on the same file. Finally, hash trees allow inherently serial checksums to be performed in parallel. Mcp and msum provide significant performance improvements over standard cp and md5sum using multiple types of parallelism and other optimizations. The total speed-ups from all improvements are significant. Mcp improves cp performance over 27x, msum improves md5sum performance almost 19x, and the combination of mcp and msum improves verified copies via cp and md5sum by almost 22x. These improvements come in the form of drop-in replacements for cp and md5sum, so are easily used and are available for download as open source software at http://mutil.sourceforge.net.

Kolano, Paul Z.↗

Program Model Checking: A Practitioner's Guide

Program model checking is a verification technology that uses state-space exploration to evaluate large numbers of potential program executions. Program model checking provides improved coverage over testing by systematically evaluating all possible test inputs and all possible interleavings of threads in a multithreaded system. Model-checking algorithms use several classes of optimizations to reduce the time and memory requirements for analysis, as well as heuristics for meaningful analysis of partial areas of the state space Our goal in this guidebook is to assemble, distill, and demonstrate emerging best practices for applying program model checking. We offer it as a starting point and introduction for those who want to apply model checking to software verification and validation. The guidebook will not discuss any specific tool in great detail, but we provide references for specific tools.

Pressburger, Thomas T.↗

Automation of the ICME Workflow Incorporating Material Digital Twins at Different Length Scales Within a Robust Information Management System

Recent successes in Integrated Computational Materials Engineering (ICME) have demonstrated the potential in designing ‘fit-for-purpose’ materials for a given application in a cost and time efficient manner. However, the material design process must contain a level of judicious automation in the material decision process; that is implementing some optimization algorithms to truly enable the benefits of ICME, particularly when considering materials at multiple length and time scales. Furthermore, the ability to effectively store developed material models, experimental data used for validation, and link models at multiple length and time scales must be implemented to ensure traceability across the material design process, such that the data gathered can be leveraged towards efficient material design. To enable such an optimization scheme a robust framework must exist: (1) that can capture changes made at a given length scale, (2) automatically propagate changes upstream to the highest scale, and (3) evaluate the material’s performance at the structural level. In this work, a developed framework for tracking material changes, automatically running the necessary simulations to determine the properties at the next highest scale, and saving each iteration of the design process to maintain the application’s digital thread is presented for polymer matrix composites (PMCs). The Automated Information Management Across Organizations and Scales (AIMAOS) program offers users an interactive graphical user interface (GUI) for defining constituent materials, building lamina and laminates, and applying effective laminate properties to finite element and composite optimization third party software. At each length scale, the necessary input files are automatically written, and subsequent analysis tools are called to solve for effective properties at the next scale, which are then read by the AIMAOS tool and displayed to the user. As changes are made to the material at lower length scales, information is automatically propagated upstream to higher length scales, and changes made are automatically tracked and versioned to maintain traceability during the design process. The AIMAOS tools serves as the first step in enabling optimized design of composites from the nano to the macroscale for a given application.

Brandon L Hearley↗

Launch Vehicle Propulsion Life Cycle Cost Lessons Learned

This paper will review lessons learned for space transportation systems from the viewpoint of the NASA, Industry and academia Space Propulsion Synergy Team (SPST). The paper provides the basic idea and history of "lessons learned". Recommendations that are extremely relevant to NASA's future investments in research, program development and operations are"'provided. Lastly, a novel and useful approach to documenting lessons learned is recommended, so as to most effectively guide future NASA investments. Applying lessons learned can significantly improve access to space for cargo or people by focusing limited funds on the right areas and needs for improvement. Many NASA human space flight initiatives have faltered, been re-directed or been outright canceled since the birth of the Space Shuttle program. The reasons given at the time have been seemingly unique. It will be shown that there are common threads as lessons learned in many a past initiative.

Zapata, Edgar↗

Face Gear Drive with Spur Involute Pinion: Geometry, Generation by a Worm, Stress Analysis

A face gear drive with a spur involute pinion is considered. The generation of the face gear is based on application of a grinding or cutting worm whereas the conventional method of generation is based on application of an involute shaper. An analytical approach is proposed for the determination of: (1) the worm thread surface; (2) avoidance of singularities of the worm thread surface, (air) dressing of the worm; and (3) determination of stresses of the face-gear drive. A computer program for simulation of meshing and contact of the pinion and face-gear has been developed. Correction of machine-tool settings is proposed for reduction of the shift of the bearing contact caused by misalignment. An automatic development of the model of five contacting teeth has been proposed for stress analysis. Numerical examples for illustration of the developed theory are provided.

Litvin, Faydor L.↗

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↗

NavP: Structured and Multithreaded Distributed Parallel Programming

We present Navigational Programming (NavP) -- a distributed parallel programming methodology based on the principles of migrating computations and multithreading. The four major steps of NavP are: (1) Distribute the data using the data communication pattern in a given algorithm; (2) Insert navigational commands for the computation to migrate and follow large-sized distributed data; (3) Cut the sequential migrating thread and construct a mobile pipeline; and (4) Loop back for refinement. NavP is significantly different from the current prevailing Message Passing (MP) approach. The advantages of NavP include: (1) NavP is structured distributed programming and it does not change the code structure of an original algorithm. This is in sharp contrast to MP as MP implementations in general do not resemble the original sequential code; (2) NavP implementations are always competitive with the best MPI implementations in terms of performance. Approaches such as DSM or HPF have failed to deliver satisfying performance as of today in contrast, even if they are relatively easy to use compared to MP; (3) NavP provides incremental parallelization, which is beyond the reach of MP; and (4) NavP is a unifying approach that allows us to exploit both fine- (multithreading on shared memory) and coarse- (pipelined tasks on distributed memory) grained parallelism. This is in contrast to the currently popular hybrid use of MP+OpenMP, which is known to be complex to use. We present experimental results that demonstrate the effectiveness of NavP.

navigational programming (NavP)↗

Propulsion technology needs for advanced space transportation systems

Plans are formulated for chemical propulsion technology programs to meet the needs of advanced space transportation systems from 1980 to the year 2000. The many possible vehicle applications are reviewed and cataloged to isolate the common threads of primary propulsion technology that satisfies near term requirements in the first decade and at the same time establish the technology groundwork for various potential far term applications in the second decade. Thrust classes of primary propulsion engines that are apparent include: (1) 5,000 to 30,000 pounds thrust for upper stages and space maneuvering; and (2) large booster engines of over 250,000 pounds thrust. Major classes of propulsion systems and the important subdivisions of each class are identified. The relative importance of each class is discussed in terms of the number of potential applications, the likelihood of that application materializing, and the criticality of the technology needed. Specific technology programs are described and scheduled to fulfill the anticipated primary propulsion technology requirements.

Gregory, J. W.↗

Propulsion technology needs for advanced space transportation systems

Plans have been formulated for chemical propulsion technology programs to meet the needs of advanced space transportation systems during the two decades from 1980 to the year 2000. The many possible vehicle applications have been reviewed and cataloged to isolate the common threads of primary propulsion technology that will satisfy near term requirements in the first decade and at the same time establish the technology groundwork for various potential far term applications in the second decade. Two thrust classes of primary propulsion engines are apparent: (1) 5,000 to 30,000 pounds thrust for upper stages and space maneuvering; (2) large booster engines of over 250,000 pounds thrust. Six major classes of propulsion systems and the important subdivisions of each class have been identified. The relative importance of each class is discussed in terms of the number of potential applications, the likelihood of that application materializing, and the criticality of the technology needed. Specific technology programs are described and scheduled to fulfill the anticipated primary propulsion technology requirements of the period.

Gregory, J. W.↗

Performance Analysis of an Actor-Based Distributed Simulation

Object-oriented design of simulation programs appears to be very attractive because of the natural association of components in the simulated system with objects. There is great potential in distributing the simulation across several computers for the purpose of parallel computation and its consequent handling of larger problems in less elapsed time. One approach to such a design is to use "actors", that is, active objects with their own thread of control. Because these objects execute concurrently, communication is via messages. This is in contrast to an object-oriented design using passive objects where communication between objects is via method calls (direct calls when they are in the same address space and remote procedure calls when they are in different address spaces or different machines). This paper describes a performance analysis program for the evaluation of a design for distributed simulations based upon actors.

Schoeffler, James D.↗

Stiffener Jumping for Unitized Stitched Composite Preform Manufacturing

A single-sided stitching head is used to assemble unitized three-dimensional preforms using the NASA Langley Research Center (LaRC) Integrated Structural Assembly of Advanced Composites (ISAAC) robotic manufacturing system. Typically, assembly of a preform includes a “skin” that is stiffened by stiffener elements stitched to the skin. The single-sided stitching head has two needles that pass through the preform from the same side to form the stitch, typically from the smooth outer surface so the needles penetrate through the preform towards the stiffener side. The single-sided head cannot stitch across stiffening elements (e.g., stringer, frame, integral cap, etc.) because the needles would penetrate into the stiffener web, which would not allow the stitch form because the thread movement would be impeded. As a result, stitching seams cannot cross stiffening elements, and therefore are very short and must remain in the skin/flange connections within the space between the stiffening element webs. Each short segment requires a stop and cut process that takes a significant amount of time. A stiffener jumping stitching method was developed that eliminates the need to cut and restart seams when encountering a stiffener, thus providing a long, continuous seam with a significant reduction in stitching time by eliminating cutting operations and associated excess thread end trimming. This stiffener jumping process places what could be considered a very long stitch that bridges the stiffener to connect the end of one segment of the seam with the beginning of the next segment of the seam to provide a longer continuous seam. As a result, all intermediate thread cuts that would be done at the end of each individual segment of the seam are eliminated, with only a single cut at the end of the seam. The process and programming requirements for carrying out the stiffener jumping stitching approach are presented in this paper. Using the presented stiffener jumping approach to produce the long continuous seams, the stitching time for a representative commercial transport unitized stiffened wing cover panel can possibly be reduced by at least 25 percent.

stitched↗

Parallel Eclipse Project Checkout

Parallel Eclipse Project Checkout (PEPC) is a program written to leverage parallelism and to automate the checkout process of plug-ins created in Eclipse RCP (Rich Client Platform). Eclipse plug-ins can be aggregated in a feature project. This innovation digests a feature description (xml file) and automatically checks out all of the plug-ins listed in the feature. This resolves the issue of manually checking out each plug-in required to work on the project. To minimize the amount of time necessary to checkout the plug-ins, this program makes the plug-in checkouts parallel. After parsing the feature, a request to checkout for each plug-in in the feature has been inserted. These requests are handled by a thread pool with a configurable number of threads. By checking out the plug-ins in parallel, the checkout process is streamlined before getting started on the project. For instance, projects that took 30 minutes to checkout now take less than 5 minutes. The effect is especially clear on a Mac, which has a network monitor displaying the bandwidth use. When running the client from a developer s home, the checkout process now saturates the bandwidth in order to get all the plug-ins checked out as fast as possible. For comparison, a checkout process that ranged from 8-200 Kbps from a developer s home is now able to saturate a pipe of 1.3 Mbps, resulting in significantly faster checkouts. Eclipse IDE (integrated development environment) tries to build a project as soon as it is downloaded. As part of another optimization, this innovation programmatically tells Eclipse to stop building while checkouts are happening, which dramatically reduces lock contention and enables plug-ins to continue downloading until all of them finish. Furthermore, the software re-enables automatic building, and forces Eclipse to do a clean build once it finishes checking out all of the plug-ins. This software is fully generic and does not contain any NASA-specific code. It can be applied to any Eclipse-based repository with a similar structure. It also can apply build parameters and preferences automatically at the end of the checkout.

Crockett, Thomas M.↗

Life's origin: the cosmic, planetary and biological processes

From elements formed in interstellar furnaces to humans peering back at the stars, the evolution of life has been a long, intricate and perhaps inevitable process. Life as we know it requires a planet orbiting a star at just the right distance so that water can exist in liquid form. It needs a rich supply of chemicals and energy sources. On Earth, the combination of chemistry and energy generated molecules that evolved ways of replicating themselves and of passing information from one generation to the next. Thus, the thread of life began. This chart traces the thread, maintained by DNA molecules for much of its history, as it weaves its way through the primitive oceans, gaining strength and diversity along the way. Organisms eventually moved onto the land, where advanced forms, including humans, ultimately arose. Finally, assisted by a technology of its own making, life has reached back out into space to understand its own origins, to expand into new realms, and to seek other living threads in the cosmos.

NASA Center ARC↗

Optics Program Modified for Multithreaded Parallel Computing

A powerful high-performance computer program for simulating and analyzing adaptive and controlled optical systems has been developed by modifying the serial version of the Modeling and Analysis for Controlled Optical Systems (MACOS) program to impart capabilities for multithreaded parallel processing on computing systems ranging from supercomputers down to Symmetric Multiprocessing (SMP) personal computers. The modifications included the incorporation of OpenMP, a portable and widely supported application interface software, that can be used to explicitly add multithreaded parallelism to an application program under a shared-memory programming model. OpenMP was applied to parallelize ray-tracing calculations, one of the major computing components in MACOS. Multithreading is also used in the diffraction propagation of light in MACOS based on pthreads [POSIX Thread, (where "POSIX" signifies a portable operating system for UNIX)]. In tests of the parallelized version of MACOS, the speedup in ray-tracing calculations was found to be linear, or proportional to the number of processors, while the speedup in diffraction calculations ranged from 50 to 60 percent, depending on the type and number of processors. The parallelized version of MACOS is portable, and, to the user, its interface is basically the same as that of the original serial version of MACOS.

Lou, John↗

Performance Analysis of Multilevel Parallel Applications on Shared Memory Architectures

In this paper we describe how to apply powerful performance analysis techniques to understand the behavior of multilevel parallel applications. We use the Paraver/OMPItrace performance analysis system for our study. This system consists of two major components: The OMPItrace dynamic instrumentation mechanism, which allows the tracing of processes and threads and the Paraver graphical user interface for inspection and analyses of the generated traces. We describe how to use the system to conduct a detailed comparative study of a benchmark code implemented in five different programming paradigms applicable for shared memory

Jost, Gabriele↗