IP Library Granted Patent US 9,229,779
Granted Patent B2
US 9,229,779 · App. 12/647,711 · Granted Jan 5, 2016

Parallelizing heterogeneous network communications in smart devices based on selection of task allocation strategy

Inventors: Shuichi Kurabayashi (Kanagawa, JP); Naofumi Yoshida (Kanagawa, JP); Kosuke Takano (Kanagawa, JP)
Assignee: Empire Technology Development LLC
G06F9/5066G06F9/4843G06F9/4881
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,229,779
App. No.
12/647,711
Filed
Dec 28, 2009
Granted
Jan 5, 2016
Kind
B2
Examiner
LEE, JAMES J
Art Unit
3668
USPC
718/105
Abstract

The present disclosure relates to devices, implementations and techniques for task scheduling. Specifically, task scheduling in an electronic device that has a multi-processing environment and support network interface devices.

Claims (84)

1. A device, comprising:

multiple processor cores;

a resource checker unit configured to determine a status of the multiple processor cores and of multiple heterogeneous network interface devices;

a task analyzer unit configured to:

receive a communication task to be performed by the device;

divide the communication task into two or more subtasks;

determine communication attributions of the two or more subtasks, the communication attributions comprising a network interface to be used, a data size to communicate, and a level of parallelism; and

in response to the received communication task, select an allocation strategy for the communication task based at least in part on the status of the multiple processor cores and of multiple heterogeneous network interface devices and a combination of at least the data size, and the level of parallelism, such that:

a one-to-one allocation strategy is selected for a small data size and a low level of parallelism,

a one-to-many allocation strategy is selected for a large data size and a high level of parallelism,

a many-to-one allocation strategy is selected for a large data size and a low level of parallelism, and

a many-to-many allocation strategy is selected for a small data size and a high level of parallelism; and

a task allocator unit configured to allocate the two or more subtasks to one or more processor cores of the multiple processor cores based at least in part on the selected allocation strategy,

wherein the device is configured to:

execute the two or more subtasks on the one or more processor cores; and

transfer an output of the two or more subtasks to a network interface device of the multiple heterogeneous network interface devices based on the network interface to be used.

2. The device of claim 1 , wherein the task analyzer unit is further configured to retrieve the communication attributions of the two or more subtasks from a program file that is operatively associated with the communication task.

3. The device of claim 1 , wherein the one-to-one allocation strategy comprises an allocation of a single subtask of the two or more subtasks to a single processor core.

4. The device of claim 1 , wherein the one-to-many allocation strategy comprises an allocation of a single subtask of the two or more subtasks to multiple processor cores.

5. The device of claim 1 , wherein the many-to-one allocation strategy comprises an allocation of multiple subtasks of the two or more subtasks to a single processor core.

6. The device of claim 1 wherein the many-to-many allocation strategy comprises an allocation of multiple subtasks of the two or more subtasks to multiple processor cores.

7. The device of claim 1 , wherein the task allocator unit is further configured to prepare a thread or a process to execute the two or more subtasks on the one or more of the processor cores.

8. The device of claim 7 , further comprising a scheduler unit configured to control execution of the thread or the process.

9. A task scheduling method for a device that includes multiple processor cores and that supports multiple heterogeneous network interface devices, the method comprising:

determining a status of the multiple processor cores and the multiple heterogeneous network interface devices;

receiving a communication task to be performed by the device;

dividing the communication task into two or more subtasks;

determining communication attributions of the two or more subtasks, the communication attributions comprising a network interface to be used, a data size to communicate, and a level of parallelism;

selecting an allocation strategy for the communication task based at least in part on the status of the multiple processor cores and of multiple heterogeneous network interface devices and a combination of at least the data size and the level of parallelism, such that:

a one-to-one allocation strategy is selected for a small data size and a low level of parallelism,

a one-to-many allocation strategy is selected for a large data size and a high level of parallelism,

a many-to-one allocation strategy is selected for a large data size and a low level of parallelism, and

a many-to-many allocation strategy is selected for a small data size and a high level of parallelism;

allocating, based at least in part on the selected allocation strategy, the two or more subtasks to one or more processor cores of the multiple processor cores;

executing the two or more subtasks on the one or more processor cores; and

transferring an output of the two or more subtasks to a network interface device of the multiple heterogeneous network interface devices based on the network interface to be used.

10. The task scheduling method of claim 9 , wherein selecting the allocation strategy for the communication task comprises retrieving the communications attributions of the two or more subtasks from a program file that is operatively associated with the communication task.

11. The task scheduling method of claim 9 , wherein selecting the allocation strategy for the communication task comprises referring to a table that stores a plurality of communication attributions of the two or more subtasks and one or more allocation strategies.

12. An article of manufacture, comprising:

a non-transitory computer storage medium comprising machine-readable instructions stored thereon, which, in response to execution by one or more processors, enable a device that includes multiple processor cores and that supports multiple heterogeneous network interface devices to:

receive a first communication task to be performed by the device;

divide the first communication task into a first set of subtasks;

determine first communication attributions of the a first set of subtasks, the first communication attributions comprising a first network interface to be used, a first data size to communicate, and a first level of parallelism;

determine a first status of the multiple processor cores and the multiple heterogeneous network interface devices;

select a first allocation strategy for the first communication task based at least in part on the first status of the multiple processor cores and of multiple heterogeneous network interface devices and a combination of at least the first data size and the first level of parallelism, such that:

a one-to-one allocation strategy is selected for a small data size and a low level of parallelism,

a one-to-many allocation strategy is selected for a large data size and a high level of parallelism,

a many-to-one allocation strategy is selected for a large data size and a low level of parallelism, and

a many-to-many allocation strategy is selected for a small data size and a high level of parallelism;

allocate, based at least in part on the selected first allocation strategy, the first set of subtasks to one or more processor cores of the multiple processor cores;

execute the first set of subtasks on the one or more processor cores; and

transfer an output of the first set of subtasks to a network interface device of the multiple heterogeneous network interface devices based on the first network interface to be used.

13. The article of manufacture of claim 12 , wherein the non-transitory computer storage medium further comprises machine-readable instructions stored thereon, which, in response to execution by the one or more processors, enable the device to:

receive a second communication task to be performed by the device;

divide the second communication task into a second set of subtasks;

determine second communication attributions of the a second set of subtasks, the second communication attributions comprising a second network interface to be used, a second data size to communicate, and a second level of parallelism;

determine a second status of the multiple processor cores and the multiple heterogeneous network interface devices;

select a second allocation strategy for the second communication task based at least in part on a combination of the second status of the multiple processor cores and of multiple heterogeneous network interface devices and at least the second data size and the second level of parallelism, such that:

a one-to-one allocation strategy is selected for a small data size and a low level of parallelism,

a one-to-many allocation strategy is selected for a large data size and a high level of parallelism,

a many-to-one allocation strategy is selected for a large data size and a low level of parallelism, and

a many-to-many allocation strategy is selected for a small data size and a high level of parallelism;

allocate the second set of subtasks to one or more processor cores of the multiple processor cores based at least in part on the second allocation strategy; and

provide a first communication associated with the first set of subtasks and a second communication associated with the second set of subtasks in parallel over different network interface devices of the multiple heterogeneous network interface devices.

14. The article of manufacture of claim 13 , wherein the first communication attributions of the first set of subtasks specify a first network interface device and first protocol to be used for the first set of subtasks and the second communication attributions of the second set of subtasks specifies a second network interface device and second protocol to be used for the second set of subtasks.

15. A system, comprising:

a device that includes multiple processor cores and that supports multiple heterogeneous network interface devices;

a task scheduler device communicatively coupled to the device, the task scheduler device comprising:

a resource checker unit configured to determine a status of the multiple processor cores and of the multiple heterogeneous network interface devices;

a task analyzer unit configured to:

receive a communication task to be performed by the device;

divide the communication task into two or more subtasks;

determine communication attributions of the two or more subtasks of the communication task, the communication attributions comprising a network interface to be used, a data size to communicate, and a level of parallelism;

select an allocation strategy for the communication task based at least in part on the status of the multiple processor cores and of multiple heterogeneous network interface devices and a combination of at least the data size and the level of parallelism, such that:

a one-to-one allocation strategy is selected for a small data size and a low level of parallelism,

a one-to-many allocation strategy is selected for a large data size and a high level of parallelism,

a many-to-one allocation strategy is selected for a large data size and a low level of parallelism, and

a many-to-many allocation strategy is selected for a small data size and a high level of parallelism;

a task allocator unit, operatively coupled to the task analyzer unit and to the resource checker unit, configured to allocate the two or more subtasks to one or more processor cores of the multiple processor cores based at least in part on the selected allocation strategy;

wherein the device is configured to:

execute the two or more subtasks on the one or more processor cores; and

transfer an output of the two or more subtasks to a network interface device of the multiple heterogeneous network interface devices based on the network interface to be used.

16. The system of claim 15 , wherein:

the task analyzer unit is configured to select the allocation strategy for the communication task by reference to a table that stores a plurality of communication attributions and a plurality of allocation strategies, including the one-to-one allocation strategy, the one-to-many allocation strategy, the many-to-one allocation strategy, or the many-to-many allocation strategy.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS, RECORDED ON JANUARY 29, 2019, AT REEL/FRAME 048373/0217 Recorded Jun 22, 2026
From: CRESTLINE DIRECT FINANCE, L.P., AS COLLATERAL AGENT
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 075799/0053 →
RELEASE OF SECURITY INTEREST IN PATENTS, RECORDED ON JANUARY 29, 2019 AT REEL 048373 FRAME 0217 Recorded Sep 22, 2025
From: CRESTLINE DIRECT FINANCE, L.P., AS COLLATERAL AGENT
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 072936/0464 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2011
From: KURABAYASHI, SHUICHI; YOSHIDA, NAOFUMI; TAKANO, KOSUKE
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 026130/0325 →
Continuity (1)
Related Publication 20110161974A1 · Jun 30, 2011