IP Library Granted Patent US 9,015,673
Granted Patent B2
US 9,015,673 · App. 13/588,485 · Granted Apr 21, 2015

Method for developing software in a parallel computing environment

Inventors: Eric Daniel Buehler (Grand Rapids, MI); Benjamin Thomas Occhipinti (Grand Rapids, MI)
Assignee: GE Aviation Systems, LLC
G06F8/10G06F8/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,015,673
App. No.
13/588,485
Granted
Apr 21, 2015
Kind
B2
Abstract

A method for developing software in a parallel computing environment comprises the steps of developing a sequential implementation and parallel implementation of the software and verifying the results of the parallel implementation of the software against the results of the sequential implementation of the software.

Claims (20)

1. A method for developing software in a parallel computing environment comprising the steps of:

developing a sequential implementation of the software in a sequential processing environment using a sequential processing architecture;

verifying that the sequential implementation of the software works as expected;

developing a parallel implementation in a parallel processing environment using a parallel processing architecture following the completion of the sequential implementation of the software; and

verifying the results including testing of the parallel implementation of the software following the step of verifying that the sequential implementation of the software works as expected; wherein the sequential processing architecture and the parallel processing architecture comprise different hardware architectures and wherein the sequential implementation of the software and the parallel implementation of the software are each designed for a corresponding one of the different hardware architectures.

2. The method for developing software according to claim 1 and further comprising the step of maintaining both the sequential implementation of the software and the parallel implementation of the software.

3. The method for developing software according to claim 1 and further comprising the steps of:

determining requirements for the software; and

determining a design for the software;

wherein these steps are performed prior to the step of developing the software in the sequential processing environment.

4. The method for developing software according to claim 1 wherein the step of developing a parallel implementation of the sequential implementation of the software in a parallel processing environment is performed generally contemporaneously with the step of verifying that the sequential implementation of the software works as expected.

5. The method for developing software according to claim 1 wherein the parallel processing environment comprises at least one graphical processing unit (GPU) and the sequential processing environment comprises at least one central processing unit (CPU).

6. The method for developing software according to claim 1 wherein the parallel processing environment comprises at least one multi-core processor and the sequential processing environment comprises at least one central processing unit (CPU).

7. The method for developing software according to claim 1 wherein the step of verifying the results including testing of the parallel implementation of the software against the results including testing of the sequential implementation of the software comprises at least one of the following steps:

(a) performing confidence testing on the results of the parallel implementation of the software and comparing the results to the results of the sequential implementation;

(b) performing at least one unit test on the results of the parallel implementation of the software and comparing the results to the results of the sequential implementation;

(c) performing at least one corner test on the results of the parallel implementation of the software and comparing the results to the results of the sequential implementation; and

(d) performing at least one edge test on the results of the parallel implementation of the software and comparing the results to the results of the sequential implementation.

8. The method for developing software according to claim 1 and further comprising the step of detecting whether a run-time state of the software can support parallel processing.

9. The method for developing software according to claim 8 and further comprising the step of running the software in the parallel processing mode based upon a signal from the step of detecting whether a run-time state of the software can support parallel processing.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2012
From: BUEHLER, ERIC DANIEL; OCCHIPINTI, BENJAMIN THOMAS
To: GE AVIATION SYSTEMS LLC
Reel/Frame 028809/0807 →
Continuity (1)
Related Publication 20140053137A1 · Feb 20, 2014