IP Library Granted Patent US 8,966,484
Granted Patent B2
US 8,966,484 · App. 13/591,889 · Granted Feb 24, 2015

Information processing apparatus, information processing method, and storage medium

Inventors: Kei Hamada (Fukuoka, JP); Kouichirou Amemiya (Kawasaki, JP); Yasushi Kurokawa (Fukuoka, JP); Yumiko Ogata (Kitakyusyu, JP); Eitatsu Yoshida (Fukuoka, JP)
Assignee: Fujitsu Limited
G06F9/46
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,966,484
App. No.
13/591,889
Granted
Feb 24, 2015
Kind
B2
Abstract

An information processing apparatus makes a plurality of threads concurrently execute tasks stored in a task queue associated with the thread a prescribed number of times of execution. The information processing apparatus includes a processor that executes the plurality of threads that executes a procedure. The procedure includes generating a task from among a plurality of tasks into which a serial program processing corresponding to a processing request is divided, selecting the task queue associated with one of the plurality of threads, enqueuing the generated task to the selected task queue, dequeuing the enqueued task to the task queue associated with the thread, and executing the dequeued task.

Claims (47)

1. An information processing apparatus which uses an operation system that is capable of giving a plurality of threads an execution opportunity sequentially by a thread switching and which makes a plurality of threads concurrently execute tasks stored in a task queue associated with the thread a prescribed number of times of execution, the information processing apparatus comprising:

a plurality of processors that concurrently execute the plurality of threads without using the thread switching, each of the plurality of threads executing a process, the process including:

generating a task from among a plurality of tasks into which a serial program processing corresponding to a processing request is divided;

selecting a task queue associated with one of the plurality of threads;

enqueuing the generated task to the selected task queue;

tying tasks with a similar function from among the tasks which are enqueued by the task queue associated with the plurality of threads;

dequeuing the enqueued task;

executing a first task stored in one of the plurality of task queues sequentially after executing the dequeued task;

executing a second task stored in the selected task queue sequentially after executing the dequeued task, when the dequeued task is not tied with any of the plurality of tasks; and

tying the executed dequeued task with the first task, when the address of a function of the executed dequeued task corresponds to an address of the function of the first task.

2. The information processing apparatus according to claim 1 , wherein the selecting includes:

measuring a queue length of each of a plurality of task queues associated with the plurality of threads; and

selecting the task queue with a shortest queue length among the plurality of task queues based on a result of the measuring.

3. The information processing apparatus according to claim 1 , wherein when the task is newly enqueued by the enqueue, the newly enqueued task is tied to the task with the function similar to the function of the task which is newly enqueued from among the tasks enqueued to the task queue associated with the plurality of threads, respectively.

4. The information processing apparatus according to claim 1 , wherein the number of the plurality of threads corresponds to the number of cores of the processor of the information processing apparatus.

5. The information processing apparatus according to claim 1 , the process further comprising:

executing a third task storing in one of the plurality of task queues sequentially after executing the first task, the third task having a similar function as the executed task and the first task, when the first task and the executed task are tied with the third task.

6. The information processing apparatus according to claim 5 ,

wherein the executed task and the first task are tied with the third task, after the executed task is tied with the first task.

7. An information processing method of an information processing apparatus which uses an operation system that is capable of giving a plurality of threads an execution opportunity sequentially by a thread switching and which makes a plurality of threads concurrently execute tasks stored in a task queue associated with the thread, the plurality of threads being concurrently executed without using the thread switching by a plurality of processors included in the information processing apparatus, the information processing method which is executed by the respective plurality of threads, the information processing method comprising:

generating a task from among a plurality of tasks into which a serial program processing corresponding to a processing request is divided;

selecting a task queue associated with one of the plurality of threads;

enqueuing the generated task to the selected task queue;

tying tasks with a similar function from among the tasks which are enqueued by the task queue associated with the plurality of threads;

dequeuing the enqueued task;

executing a first task stored in one of the plurality of task queues sequentially after executing the dequeued task;

executing a second task stored in the selected task queue sequentially after executing the dequeued task, when the dequeued task is not tied with any of the plurality of tasks; and

tying the executed dequeued task with the first task, when the address of a function of the executed dequeued task corresponds to an address of the function of the first task.

8. The information processing method according to claim 7 , wherein the selecting includes:

measuring a queue length of each of a plurality of task queues associated with the plurality of threads; and

selecting the task queue with the shortest queue length among the plurality of task queues based on a result of the measuring.

9. The information processing method according to claim 7 , wherein when the task is newly enqueued by the enqueue, the newly enqueued task is tied to the task with the function similar to the function of the task which is newly enqueued from among the tasks enqueued to the task queue associated with the plurality of threads, respectively.

10. The information processing method according to claim 7 , wherein the number of the plurality of threads corresponds to the number of cores of the processor of the information processing apparatus.

11. A non-transitory computer-readable storage medium which stores a program executed in an information processing apparatus for concurrently executing a plurality of threads which executes tasks stored in a task queue associated with the thread, the information processing apparatus being configured to use an operation system that is capable of giving the plurality of threads an execution opportunity sequentially by a thread switching, the plurality of threads being concurrently executed without using the thread switching by a plurality of processors included in the information processing apparatus, the program causes each plurality of threads to execute a method, the method comprising:

generating a task from among the tasks into which a serial program processing corresponding to a processing request is divided;

selecting a task queue associated to one of the plurality of threads;

enqueuing the generated task to the selected task queue;

tying tasks with a similar function from among the tasks which are enqueued by the task queue associated with the plurality of threads;

dequeuing the enqueued task;

executing a first task stored in one of the plurality of task queues sequentially after executing the dequeued task;

executing a second task stored in the selected task queue sequentially after executing the dequeued task, when the dequeued task is not tied with any of the plurality of tasks; and

tying the executed dequeued task with the first task, when the address of a function of the executed dequeued task corresponds to an address of the function of the first task.

12. The non-transitory storage medium according to claim 11 , wherein the selecting includes:

measuring a queue length of each of a plurality of task queues associated with the plurality of threads; and

selecting the task queue with the shortest queue length among the plurality of task queues based on a result of the measuring.

13. The non-transitory computer-readable storage medium according to claim 11 , wherein when the task is newly enqueued by the enqueued, the task with the function similar to the newly enqueued task is tied to the newly enqueued from among the tasks enqueued to the task queues associated with the respective plurality of threads.

14. The non-transitory storage medium according to claim 11 , wherein the number of the plurality of threads corresponds to the number of cores of the processors of the information processing apparatus.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2012
From: HAMADA, KEI; AMEMIYA, KOUICHIROU; KUROKAWA, YASUSHI; OGATA, YUMIKO; YOSHIDA, EITATSU
To: FUJITSU LIMITED
Reel/Frame 028858/0169 →
Priority Claims (1)
JP 2011-190925 · Sep 1, 2011 · national
Continuity (1)
Related Publication 20130061229A1 · Mar 7, 2013