IP Library Granted Patent US 10,678,550
Granted Patent B2
US 10,678,550 · App. 14/572,153 · Granted Jun 9, 2020

Capturing snapshots of offload applications on many-core coprocessors

Inventors: Cheng-Hong Li (Princeton, NJ); Giuseppe Coviello (Plainsboro, NJ); Srimat Chakradhar (Manalapan, NJ); Arash Rezaei (Raleigh, NC)
Assignee: NEC Corporation
G06F9/3863G06F9/3009G06F9/3877G06F9/4856G06F11/1438G06F11/1446G06F11/203G06F11/2043G06F2201/825G06F2201/84G06F2209/509
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 10,678,550
App. No.
14/572,153
Granted
Jun 9, 2020
Kind
B2
Abstract

Methods are provided. A method includes capturing a snapshot of an offload process being executed by one or more many-core processors. The offload process is in signal communication with a host process being executed by a host processor. At least the offload is in signal communication with a monitoring process. The method further includes terminating the offload process on the one or more many-core processors, by the monitor process responsive to a communication between the monitor process and the offload processing being disrupted. The snapshot includes a respective predetermined minimum set of information required to restore a same state of the process as when the snapshot was taken.

Claims (17)

1. A method, comprising:

capturing a snapshot of an offload process being executed by one or more many-core processors, the offload process being in signal communication with a host process being executed by a host processor, at least the offload being in signal communication with a monitoring process;

executing a communication channel emptying method, by a process on one end of a communication channel, to empty the communication channel, the emptying method comprising:

forming a consistent global state by collaboration between the host process, a Coprocessor Offload Infrastructure (COI) daemon, and the offload process; and

blocking one or more threads in the host process and the offload process to prevent use of existing Symmetric Communications InterFace (SCIF) channels between the host process and the offload process;

terminating the offload process on the one or more many-core processors, by the monitor process responsive to a communication between the monitor process and the offload processing being disrupted; and

simultaneously executing multiple processes whose aggregate memory footprint exceeds physical memory on the processors by swapping out the offload process and swapping in another offload process based on scheduling and resource management policies,

wherein the snapshot comprises a respective predetermined minimum set of information required to restore a same state of the process as when the snapshot was taken, and

wherein the swapping out comprises preemptively migrating the offload process from a failing processor to a healthy processor.

2. The method of claim 1 , further comprising executing a snapshot correctness ensuring method, by at least one of the host process, the offload process, and the monitor process, to ensure correct snapshots.

3. The method of claim 1 , wherein the communication channel emptying method comprises a two-ended message transmission confirmation method for ensuring that resulting snapshots of both sides of the communication channel are in agreement regarding whether a message was sent or not sent.

4. The method claim 2 , further comprising executing a communication channel disconnecting method, by a process on one end of a communication channel, to disconnect from the communication channel.

5. The method of claim 1 , further comprising executing a post-snapshot execution-resuming method, by at least one of the host process, the offload process, and the monitor process, to resume execution after the snapshot is taken.

6. The method of claim 1 , further comprising executing an offload process execution restarting method, by at least one of the host process, the offload processes, and the monitor process, to restart an execution of the offload process from the snapshot.

7. The method of claim 6 , wherein the offload process execution restarting method comprises sending information through the monitor process to the offload process to reestablish the communication channels with the host process.

8. The method of claim 1 , further comprising executing a host process execution restarting method, by at least one of the host process, the offload process, and the monitor process, to restart an execution of the host process from the snapshot.

9. A non-transitory article of manufacture tangibly embodying a computer readable program which when executed causes a computer to perform the steps of claim 1 .

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2020
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 052497/0698 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2015
From: LI, CHENG-HONG; COVIELLO, GIUSEPPE; CHAKRADHAR, SRIMAT; REZAEI, ARASH
To: NEC LABORATORIES AMERICA, INC.
Reel/Frame 034756/0988 →
Continuity (3)
Provisional Application 61931245 · Jan 24, 2014
Provisional Application 61931315 · Jan 24, 2014
Related Publication 20150212892A1 · Jul 30, 2015
Cited By (2)
US 12,210,778 US 12,669,965