Virtually all existing vectorization algorithms are designed to only analyze the numeric properties of an algorithm and distribute those elements across multiple processors. This advances the state of the practice because it is the only known system, at the time of this reporting, that takes high-level statements and analyzes them for their decision properties and converts them to a form that allows them to automatically be executed in parallel. The software takes a high-level source program that describes a complex decision-based condition and rewrites it as a disjunctive set of component Boolean relations that can then be executed in parallel. This is important because parallel architectures are becoming more commonplace in conventional systems and they have always been present in NASA flight systems. This technology allows one to take existing condition-based code and automatically vectorize it so it naturally decomposes across parallel architectures.

This program was written by Mark James of Caltech for NASA's Jet Propulsion Laboratory. For further information, access the Technical Support Package (TSP) free online at www.techbriefs.com/tsp under the Software category.

This software is available for commercial licensing. Please contact Karina Edmonds of the California Institute of Technology at (626) 395-2322. Refer to NPO-42524.



This Brief includes a Technical Support Package (TSP).
Document cover
Automated Vectorization of Decision-Based Algorithm

(reference NPO-42524) is currently available for download from the TSP library.

Don't have an account?



Magazine cover
NASA Tech Briefs Magazine

This article first appeared in the September, 2006 issue of NASA Tech Briefs Magazine (Vol. 30 No. 9).

Read more articles from the archives here.


Overview

The document titled "Automatic Vectorization of Decision-based Algorithms on to Parallel Flight Processors" (NPO-42524) presents a unique software solution developed by NASA's Jet Propulsion Laboratory (JPL) that addresses the challenges of vectorizing decision-based algorithms for execution on parallel architectures. Traditional vectorization algorithms primarily focus on numeric properties, limiting their applicability. In contrast, this innovative system analyzes LISP-based high-level statements for their decision-making properties and transforms them into a format suitable for parallel execution.

The software's core functionality involves taking complex decision-based conditions from high-level source programs and rewriting them as disjunctive sets of Boolean relations. This transformation allows the algorithms to be executed in parallel, which is increasingly important as parallel architectures become more prevalent in both conventional and NASA flight systems. The ability to automatically vectorize existing condition-based code enhances its performance across various platforms, including SUN, HP, Intel, Apple MACs, and flight processors.

The document emphasizes the software's versatility, noting that it is not limited to flight software but can be applied to a wide range of applications across different domains. This capability is particularly valuable for both manned and unmanned science-gathering programs, as the algorithms are domain-independent and can be adapted to various contexts.

The software is implemented as a library package, allowing it to integrate seamlessly into different environments. It requires a LISP compiler to operate, with several commercially available and shareware options accessible. Importantly, the software does not impose specific memory requirements, as these depend on the applications utilizing it.

The document also highlights the lack of existing packages that can perform the necessary vectorization capabilities, underscoring the uniqueness of this technology. By enabling the automatic decomposition of decision-based algorithms across parallel architectures, this software represents a significant advancement in the field of software development for aerospace applications.

In summary, the document outlines a groundbreaking approach to vectorization that enhances the efficiency and applicability of decision-based algorithms in parallel processing environments, with broad implications for various scientific and commercial applications.