IP Library Granted Patent US 8,141,102
Granted Patent B2
US 8,141,102 · App. 12/204,391 · Granted Mar 20, 2012

Data processing in a hybrid computing environment

Assignee: International Business Machines Corporation
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 8,141,102
App. No.
12/204,391
Granted
Mar 20, 2012
Kind
B2
Abstract

Data processing in a hybrid computing environment that includes a host computer having a host computer architecture; an accelerator having an accelerator architecture, the accelerator architecture optimized, with respect to the host computer architecture, for speed of execution of a particular class of computing functions; the host computer and the accelerator adapted to one another for data communications by a system level message passing module; and a host application process executing on the host computer. Data processing such a hybrid computing environment includes starting, at the behest of the host application process, a thread of execution on the accelerator; returning, by the system level message passing module to the host application process, a process identifier (‘PID’) for the thread of execution; and managing, by the host application process, the thread of execution on the accelerator as though the thread of execution were a thread of execution on the host computer.

Claims (38)

1. A method of data processing in a hybrid computing environment, the hybrid computing environment comprising a host computer having a host computer architecture, an accelerator having an accelerator architecture, the accelerator architecture optimized, with respect to the host computer architecture, for speed of execution of a particular class of computing functions, the host computer and the accelerator adapted to one another for data communications by a system level message passing module, a host application process executing on the host computer, the method comprising:

starting, by the system level message passing module at the behest of the host application process, a thread of execution on the accelerator;

returning, by the system level message passing module to the host application process, a process identifier (‘PID’) for the thread of execution; and

managing, by the host application process, the thread of execution on the accelerator as though the thread of execution were a thread of execution on the host computer.

2. The method of claim 1 wherein managing the thread of execution further comprises managing the thread of execution as a child process of the host application process.

3. The method of claim 1 wherein managing the thread of execution further comprises receiving exit data by the host application process through the system level message passing module upon termination of the thread of execution on the accelerator.

4. The method of claim 1 wherein managing the thread of execution further comprises killing the thread of execution on the accelerator through the system level message passing module.

5. The method of claim 1 further comprising:

detecting by the system level message passing module termination of the host application process; and

killing, upon the termination by the system level message passing module, the thread of execution on the accelerator.

6. The method of claim 1 further comprising:

executing, by the system level message passing module at the behest of the host application process, a wait function, including determining whether the thread of execution on the accelerator has terminated; and

advising the host application process, by the system level message passing module upon return of the wait function, that the thread of execution on the accelerator has terminated.

7. A hybrid computing environment comprising a host computer having a host computer architecture, an accelerator having an accelerator architecture, the accelerator architecture optimized, with respect to the host computer architecture, for speed of execution of a particular class of computing functions, the host computer and the accelerator adapted to one another for data communications by a system level message passing module, a host application process executing on the host computer, the system level message passing module comprising computer program instructions capable of:

starting, at the behest of the host application process, a thread of execution on the accelerator, and returning, to the host application process, a process identifier (‘PID’) for the thread of execution; and

the host application process comprising computer program instructions capable of managing the thread of execution on the accelerator as though the thread of execution were a thread of execution on the host computer.

8. The hybrid computing environment of claim 7 wherein managing the thread of execution further comprises managing the thread of execution as a child process of the host application process.

9. The hybrid computing environment of claim 7 wherein managing the thread of execution further comprises receiving exit data by the host application process through the system level message passing module upon termination of the thread of execution on the accelerator.

10. The hybrid computing environment of claim 7 wherein managing the thread of execution further comprises killing the thread of execution on the accelerator through the system level message passing module.

11. The hybrid computing environment of claim 7 further comprising computer program instructions capable of:

detecting by the system level message passing module termination of the host application process; and

killing, upon the termination by the system level message passing module, the thread of execution on the accelerator.

12. The hybrid computing environment of claim 7 further comprising computer program instructions capable of:

executing, by the system level message passing module at the behest of the host application process, a wait function, including determining whether the thread of execution on the accelerator has terminated; and

advising the host application process, by the system level message passing module upon return of the wait function, that the thread of execution on the accelerator has terminated.

13. A computer program product for data processing in a hybrid computing environment, the hybrid computing environment comprising a host computer having a host computer architecture, an accelerator having an accelerator architecture, the accelerator architecture optimized, with respect to the host computer architecture, for speed of execution of a particular class of computing functions, the host computer and the accelerator adapted to one another for data communications by a system level message passing module, a host application process executing on the host computer; the computer program product disposed upon a recordable non-transmission computer readable medium, the computer program product comprising computer program instructions capable of:

starting, by the system level message passing module at the behest of the host application process, a thread of execution on the accelerator;

returning, by the system level message passing module to the host application process, a process identifier (‘PID’) for the thread of execution; and

managing, by the host application process, the thread of execution on the accelerator as though the thread of execution were a thread of execution on the host computer.

14. The computer program product of claim 13 wherein managing the thread of execution further comprises managing the thread of execution as a child process of the host application process.

15. The computer program product of claim 13 wherein managing the thread of execution further comprises receiving exit data by the host application process through the system level message passing module upon termination of the thread of execution on the accelerator.

16. The computer program product of claim 13 wherein managing the thread of execution further comprises killing the thread of execution on the accelerator through the system level message passing module.

17. The computer program product of claim 13 further comprising computer program instructions capable of:

detecting by the system level message passing module termination of the host application process; and

killing, upon the termination by the system level message passing module, the thread of execution on the accelerator.

18. The computer program product of claim 13 further comprising computer program instructions capable of:

executing, by the system level message passing module at the behest of the host application process, a wait function, including determining whether the thread of execution on the accelerator has terminated; and

advising the host application process, by the system level message passing module upon return of the wait function, that the thread of execution on the accelerator has terminated.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2009
From: AHO, MICHAEL E.; CAREY, JAMES E.; STEWART, GORDON G.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022593/0566 →
Continuity (1)
Related Publication 20100058356A1 · Mar 4, 2010