[go: up one dir, main page]

JPH11195007A - Distributed processing system/method - Google Patents

Distributed processing system/method

Info

Publication number
JPH11195007A
JPH11195007A JP10001782A JP178298A JPH11195007A JP H11195007 A JPH11195007 A JP H11195007A JP 10001782 A JP10001782 A JP 10001782A JP 178298 A JP178298 A JP 178298A JP H11195007 A JPH11195007 A JP H11195007A
Authority
JP
Japan
Prior art keywords
task
slave
processor
processors
assigned
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10001782A
Other languages
Japanese (ja)
Inventor
Yasuhiro Ogami
靖弘 大上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanyo Electric Co Ltd
Real World Computing Partnership
Original Assignee
Sanyo Electric Co Ltd
Real World Computing Partnership
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanyo Electric Co Ltd, Real World Computing Partnership filed Critical Sanyo Electric Co Ltd
Priority to JP10001782A priority Critical patent/JPH11195007A/en
Publication of JPH11195007A publication Critical patent/JPH11195007A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

PROBLEM TO BE SOLVED: To standardize task quantity allocated to respective slave processors and to reduce the number of communication times in a system where a master processor and plural slave processors are connected through a network. SOLUTION: The master processor 10, the slave processor A12, the slave processor B14 and the slave processor C16 are connected through the network 100. The master processor 10 allocates tasks which are to be processed in the slave processors. A task allocation management part 10b in the master processor 10 allocates the tasks of same quantity to the respective slave processors and changes task quantity allocated to the task requests of one time in accordance with the number of task request times from the slave processors within prescribed time. To put it concretely, task quantity allocated in accordance with the task requests of one time is increased and the number of communication times is reduced as the number of task request times within prescribed time is larger.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は分散処理システム及
び分散処理方法、特に複数のプロセッサがネットワーク
を介して接続され、特定のプロセッサ(マスタプロセッ
サ)が該当のすべてのタスクを管理し、他のプロセッサ
(スレーブプロセッサ)にタスクを割り当てることによ
りタスクの並列処理を行うシステム及び方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a distributed processing system and a distributed processing method, in particular, a plurality of processors are connected via a network, a specific processor (master processor) manages all corresponding tasks, and other processors are used. The present invention relates to a system and a method for performing parallel processing of tasks by assigning tasks to (slave processors).

【0002】[0002]

【従来の技術】従来より、与えられたプログラムを処理
すべく、ネットワークを介して複数のプロセッサを接続
し、複数のプロセッサのうちのマスタプロセッサが他の
複数のスレーブプロセッサにタスク(プログラムを構成
する独立実行可能な処理のまとまり)を割り当てること
により並列処理を行うシステムが提案されている。
2. Description of the Related Art Conventionally, in order to process a given program, a plurality of processors are connected via a network, and a master processor among the plurality of processors is configured to perform tasks (programs) with other plurality of slave processors. A system for performing parallel processing by allocating a group of independently executable processes has been proposed.

【0003】このような分散処理システムにおいては、
タスクを効率的に処理するためには複数のスレーブプロ
セッサに対する負荷をいかに分散するかが重要な課題と
なる。複数のスレーブプロセッサの性能が互いに均一で
ある場合には、すべてのスレーブプロセッサに同じ量の
タスクを割り当てることにより負荷の分散を図ることが
できる。
In such a distributed processing system,
In order to process tasks efficiently, it is important to distribute the load on a plurality of slave processors. When the performance of a plurality of slave processors is uniform, the load can be distributed by allocating the same amount of tasks to all the slave processors.

【0004】一方、複数のスレーブプロセッサの性能が
互いに均一ではない場合、あるいはスレーブプロセッサ
の性能自体は均一であるものの、各スレーブプロセッサ
が別のプログラムを構成するタスクも同時に処理してい
る場合には、各スレーブプロセッサに均等にタスクを割
り当てると、処理性能の低いスレーブプロセッサによっ
て全体の性能が抑えられてしまう問題がある。
On the other hand, when the performances of a plurality of slave processors are not uniform with each other, or when the performances of the slave processors are uniform but each slave processor is simultaneously processing a task constituting another program, However, if tasks are equally assigned to each slave processor, there is a problem that the overall performance is suppressed by slave processors having low processing performance.

【0005】そこで、割り当てるべきタスクを細かい粒
度(単位)で生成し、最初にすべてのスレーブプロセッ
サに一定の数のタスクを与え、与えられたタスクの処理
が終了したスレーブプロセッサに対して再度残りのタス
クの割り当てを行うことが考えられる。これにより、処
理性能の高いスレーブプロセッサにはより多くのタスク
が割り当てられることになり、負荷が分散されることに
なる。
[0005] Therefore, tasks to be assigned are generated in a fine granularity (unit), a given number of tasks are first given to all slave processors, and the remaining processors are processed again for slave processors that have finished processing the given tasks. It is conceivable to assign tasks. As a result, more tasks are allocated to the slave processors with high processing performance, and the load is distributed.

【0006】もちろん、各スレーブプロセッサの性能が
予め決定されており、マスタプロセッサが各スレーブプ
ロセッサの性能を予め把握することができる場合には、
各スレーブプロセッサに対するタスクの割り当てを当初
から決定(静的に決定)して負荷の分散を行うことが可
能であるが、各スレーブプロセッサが別の異なるプログ
ラムを構成するタスクを処理するマルチタスク環境下で
は実行時のスレーブプロセッサの負荷状態をマスタプロ
セッサが完全に予測することは困難である。
Of course, if the performance of each slave processor is predetermined and the master processor can grasp the performance of each slave processor in advance,
It is possible to distribute the load by determining (statically determining) the assignment of tasks to each slave processor from the beginning, but in a multitask environment in which each slave processor processes a task constituting another different program. Then, it is difficult for the master processor to completely predict the load state of the slave processor at the time of execution.

【0007】したがって、スレーブプロセッサの性能が
均一である場合や均一ではないが個々のスレーブプロセ
ッサの性能が事前に判明している場合であっても、上述
のようにタスクを動的に割り当てる技術は有効なものと
なる。
Therefore, even if the performance of the slave processors is uniform or not uniform, but the performance of each slave processor is known in advance, the technique for dynamically allocating tasks as described above is not available. It will be effective.

【0008】このような負荷分散処理システムは、例え
ば特開平7−152702号公報などに開示されてい
る。
[0008] Such a load distribution processing system is disclosed in, for example, Japanese Patent Laid-Open No. 7-152702.

【0009】[0009]

【発明が解決しようとする課題】しかしながら、最初に
すべてのスレーブプロセッサに一定の数のタスクを与
え、与えられたタスクの処理が終了したスレーブプロセ
ッサに対して再度残りのタスクの割り当てを行う動的タ
スク割り当てにおいては、タスク割り当て時にマスタプ
ロセッサからスレーブプロセッサへの通信が必要とな
り、またタスク処理終了時にスレーブプロセッサからマ
スタプロセッサへの通信(タスク要求通信)も必要とな
る。すなわち、タスクの粒度(単位)を細かくすること
によってスレーブプロセッサで実行される処理量を均等
化、平準化できるものの、タスク割り当てに伴いマスタ
プロセッサとスレーブプロセッサ間の通信が増大してし
まう問題が生じる。特に、処理性能の高いスレーブプロ
セッサからは頻繁にタスク要求がマスタプロセッサに送
信されるため、処理性能の高いスレーブプロセッサとマ
スタプロセッサ間の通信が著しく増大してしまう問題が
ある。
However, a fixed number of tasks are first given to all the slave processors, and the remaining tasks are assigned again to the slave processors which have completed the processing of the given tasks. In task assignment, communication from the master processor to the slave processor is required at the time of task assignment, and communication (task request communication) from the slave processor to the master processor is also required at the end of task processing. That is, although the amount of processing executed by the slave processors can be equalized and leveled by reducing the granularity (unit) of the task, there is a problem that the communication between the master processor and the slave processors increases with the task allocation. . In particular, since a task request is frequently transmitted from a slave processor having high processing performance to the master processor, there is a problem that communication between the slave processor having high processing performance and the master processor is significantly increased.

【0010】本発明は、上記従来技術の有する課題に鑑
みなされたものであり、その目的は、マスタプロセッサ
とスレーブプロセッサ間の通信を徒に増大させることな
く、各スレーブプロセッサに効率的にタスクを割り当て
ることにより、タスクの効率的処理(すなわち、短時間
でのタスク処理)を実現する分散処理システム及び分散
処理方法を適用することにある。
The present invention has been made in view of the above-mentioned problems of the related art, and has as its object to efficiently assign a task to each slave processor without unnecessarily increasing communication between a master processor and a slave processor. It is an object of the present invention to apply a distributed processing system and a distributed processing method for realizing efficient processing of a task (that is, task processing in a short time) by allocating.

【0011】[0011]

【課題を解決するための手段】上記目的を達成するため
に、第1の発明は、複数のプロセッサがネットワークを
介して接続され、複数の該プロセッサの内のマスタプロ
セッサが他の複数のスレーブプロセッサで処理すべきタ
スクを割り当てる分散処理システムであって、前記マス
タプロセッサは、前記スレーブプロセッサに割り当てる
タスク量を前記スレーブプロセッサの状況に応じて変化
させる割り当て管理手段を有することを特徴とする。こ
こで、状況に応じて変化させるとは、例えばスレーブプ
ロセッサからのタスク要求に対して一度に割り当てるタ
スク量自体を動的に変化させることをいう。
According to a first aspect of the present invention, a plurality of processors are connected via a network, and a master processor among the plurality of processors is connected to another plurality of slave processors. Wherein the master processor has an assignment management unit that changes a task amount assigned to the slave processor according to a status of the slave processor. Here, changing according to the situation means, for example, dynamically changing the task amount itself to be assigned at one time in response to a task request from a slave processor.

【0012】また、第2の発明は、第1の発明におい
て、前記割り当て管理手段は、前記スレーブプロセッサ
のタスク処理能力に応じて割り当てるタスク量を変化さ
せることを特徴とする。処理能力に応じてタスク量を変
化させる、具体的には処理能力の大きいスレーブプロセ
ッサにはより多くのタスク量を一度に割り当てること
で、タスク要求の通信回数を低減させつつ、タスクの効
率的処理(処理能力の大きいスレーブプロセッサでより
多くのタスクを処理する)を図ることができる。
In a second aspect based on the first aspect, the assignment managing means changes a task amount to be assigned according to a task processing capability of the slave processor. Efficient processing of tasks while reducing the number of communication of task requests by assigning a larger amount of tasks at a time to slave processors with large processing capacity by changing the task amount according to the processing capacity (More tasks are processed by a slave processor having a large processing capability).

【0013】また、第3の発明は、第2の発明におい
て、前記割り当て管理手段は、前記スレーブプロセッサ
からのタスク要求の時間間隔に基づいて前記タスク処理
能力を評価することを特徴とする。タスク要求の時間間
隔に基づいて処理能力を評価する、具体的には時間間隔
が短い程処理能力が大きいと評価して一度に多くのタス
ク量を割り当てることで、処理能力を評価するための別
途の通信を不要として通信回数の低減を図ることができ
る。
In a third aspect based on the second aspect, the assignment managing means evaluates the task processing capability based on a time interval of a task request from the slave processor. Evaluate the processing capacity based on the task request time interval.Specifically, the shorter the time interval is, the higher the processing capacity is, and by assigning a larger amount of tasks at a time, a separate This communication is unnecessary, and the number of times of communication can be reduced.

【0014】また、第4の発明は、第2の発明におい
て、前記割り当て管理手段は、前記スレーブプロセッサ
からの所定時間内のタスク要求回数に基づいて前記タス
ク処理能力を評価することを特徴とする。所定時間内の
タスク要求回数に基づいて処理能力を評価する、具体的
にはタスク要求回数が多い程処理能力が大きいと評価し
て一度に多くのタスク量を割り当てることで、処理能力
を評価するための別途の通信を不要として通信回数の低
減を図ることができる。
In a fourth aspect based on the second aspect, the assignment management means evaluates the task processing capability based on the number of task requests from the slave processor within a predetermined time. . The processing capacity is evaluated based on the number of task requests within a predetermined time. Specifically, the processing capacity is evaluated by assigning a larger amount of tasks at a time by evaluating that the processing capacity is larger as the number of task requests is larger. Therefore, it is possible to reduce the number of times of communication by eliminating the need for separate communication.

【0015】また、第5の発明は、第1〜第4の発明に
おいて、前記マスタプロセッサは、さらに前記スレーブ
プロセッサに割り当てるべきタスクを保持するタスクキ
ュー手段を有し、前記割り当て管理手段は、前記割り当
てるタスク量を前記タスクキュー手段に保持されている
残りのタスク量に応じて変化させることを特徴とする。
残りのタスク量に応じて割り当てタスク量を変化させ
る、具体的には残りのタスク量が多い時間的に初期の段
階では割り当てるタスク量を多くしてタスク要求の通信
回数を低減させ、残りのタスク量が少ない時間的に後の
段階では割り当てるタスク量を小さくして各スレーブプ
ロセッサで処理する負荷を平準化し、効率的に全タスク
を処理できる。なお、この発明は、各スレーブプロセッ
サの処理能力及び残りのタスク量に応じて割り当てタス
ク量を時間的に変化させるものを含む。
In a fifth aspect based on the first to fourth aspects, the master processor further has a task queue means for holding a task to be assigned to the slave processor, and the assignment management means comprises: The task amount to be assigned is changed according to the remaining task amount held in the task queue means.
The assigned task amount is changed in accordance with the remaining task amount. Specifically, the remaining task amount is large, and in the initial stage of time, the assigned task amount is increased to reduce the number of communication of task requests, and the remaining tasks are reduced. At a later stage in time when the amount is small, the amount of tasks to be allocated is reduced, the load of processing by each slave processor is leveled, and all tasks can be processed efficiently. Note that the present invention includes an embodiment in which the assigned task amount is temporally changed according to the processing capacity of each slave processor and the remaining task amount.

【0016】また、第6の発明は、複数のプロセッサが
ネットワークを介して接続され、複数の該プロセッサの
内のマスタプロセッサが他の複数のスレーブプロセッサ
で処理すべきタスクを割り当てる分散処理システムであ
って、前記マスタプロセッサは、前記スレーブプロセッ
サに割り当てるべきタスクを保持するタスクキュー手段
と、前記スレーブプロセッサに割り当てるタスク量を前
記タスクキュー手段に保持されている残りのタスク量に
応じて変化させる割り当て管理手段とを有することを特
徴とする。残りのタスク量が多い時間的に初期の段階で
は割り当てるタスク量を多くしてタスク要求の通信回数
を低減させ、残りのタスク量が少ない時間的に後の段階
では割り当てるタスク量を小さくして各スレーブプロセ
ッサで処理する負荷を平準化し、効率的に全タスクを処
理できる。
A sixth aspect of the present invention is a distributed processing system in which a plurality of processors are connected via a network, and a master processor among the plurality of processors assigns a task to be processed by another plurality of slave processors. The master processor includes a task queue unit that holds a task to be assigned to the slave processor, and an assignment management unit that changes a task amount assigned to the slave processor according to a remaining task amount held in the task queue unit. Means. In the early stage where the remaining task amount is large, the assigned task amount is increased to reduce the number of communication of task requests, and in the later stage where the remaining task amount is small, the assigned task amount is decreased and the The load processed by the slave processor is leveled, and all tasks can be processed efficiently.

【0017】また、第7の発明は、複数のプロセッサが
ネットワークを介して接続され、複数の該プロセッサの
内のマスタプロセッサが他の複数のスレーブプロセッサ
で処理すべきタスクを割り当てる分散処理方法であっ
て、前記スレーブプロセッサに割り当てるタスク量を前
記スレーブプロセッサの状況に応じて変化させることを
特徴とする。
A seventh invention is a distributed processing method in which a plurality of processors are connected via a network, and a master processor among the plurality of processors assigns a task to be processed by another plurality of slave processors. The task amount assigned to the slave processor is changed according to the status of the slave processor.

【0018】また、第8の発明は、第7の発明におい
て、前記割り当てるタスク量は、前記スレーブプロセッ
サのタスク処理能力に応じて決定されることを特徴とす
る。処理能力に応じてタスク量を変化させる、具体的に
は処理能力の大きいスレーブプロセッサにはより多くの
タスク量を一度に割り当てることで、タスク要求の通信
回数を低減させつつ、タスクの効率的処理(処理能力の
大きいスレーブプロセッサでより多くのタスクを処理す
る)を図ることができる。
An eighth invention is characterized in that, in the seventh invention, the task amount to be allocated is determined according to a task processing capability of the slave processor. Efficient processing of tasks while reducing the number of communication of task requests by assigning a larger amount of tasks at a time to slave processors with large processing capacity by changing the task amount according to the processing capacity (More tasks are processed by a slave processor having a large processing capability).

【0019】また、第9の発明は、第8の発明におい
て、前記タスク処理能力は、タスク要求の時間間隔に基
づいて決定されることを特徴とする。タスク要求の時間
間隔に基づいて処理能力を評価する、具体的には時間間
隔が短い程処理能力が大きいと評価して一度に多くのタ
スク量を割り当てることで、処理能力を評価するための
別途の通信を不要として通信回数の低減を図ることがで
きる。
In a ninth aspect based on the eighth aspect, the task processing capability is determined based on a time interval between task requests. Evaluate the processing capacity based on the task request time interval.Specifically, the shorter the time interval is, the higher the processing capacity is, and by assigning a larger amount of tasks at a time, a separate This communication is unnecessary, and the number of times of communication can be reduced.

【0020】また、第10の発明は、第8の発明におい
て、前記タスク処理能力は、所定時間内のタスク要求回
数に基づいて決定されることを特徴とする。所定時間内
のタスク要求回数に基づいて処理能力を評価する、具体
的にはタスク要求回数が多い程処理能力が大きいと評価
して一度に多くのタスク量を割り当てることで、処理能
力を評価するための別途の通信を不要として通信回数の
低減を図ることができる。
In a tenth aspect based on the eighth aspect, the task processing capability is determined based on the number of task requests within a predetermined time. The processing capacity is evaluated based on the number of task requests within a predetermined time. Specifically, the processing capacity is evaluated by assigning a larger amount of tasks at a time by evaluating that the processing capacity is larger as the number of task requests is larger. Therefore, it is possible to reduce the number of times of communication by eliminating the need for separate communication.

【0021】また、第11の発明は、第7〜第10の発
明において、前記割り当てるタスク量は、未だ割り当て
られていない残りのタスク量に応じて決定されることを
特徴とする。残りのタスク量に応じて割り当てタスク量
を変化させる、具体的には残りのタスク量が多い時間的
に初期の段階では割り当てるタスク量を多くしてタスク
要求の通信回数を低減させ、残りのタスク量が少ない時
間的に後の段階では割り当てるタスク量を小さくして平
準化し、効率的に全タスクを処理できる。なお、この発
明においても、各スレーブプロセッサの処理能力及び残
りのタスク量に応じて割り当てタスク量を変化させるも
のを含む。
According to an eleventh aspect, in the seventh to tenth aspects, the task amount to be allocated is determined according to a remaining task amount that has not been allocated yet. The assigned task amount is changed in accordance with the remaining task amount. Specifically, the remaining task amount is large, and in the initial stage of time, the assigned task amount is increased to reduce the number of communication of task requests, and the remaining tasks are reduced. At a later stage in time when the amount is small, the amount of tasks to be allocated is reduced and leveled, and all tasks can be processed efficiently. It should be noted that the present invention also includes one that changes the assigned task amount according to the processing capacity of each slave processor and the remaining task amount.

【0022】また、第12の発明は、複数のプロセッサ
がネットワークを介して接続され、複数の該プロセッサ
の内のマスタプロセッサが他の複数のスレーブプロセッ
サで処理すべきタスクを割り当てる分散処理方法であっ
て、前記スレーブプロセッサに割り当てるタスク量を、
未だ割り当てられていない残りのタスク量に応じて変化
させることを特徴とする。
A twelfth invention is a distributed processing method in which a plurality of processors are connected via a network, and a master processor among the plurality of processors assigns a task to be processed by another plurality of slave processors. The task amount to be assigned to the slave processor
It is characterized in that it is changed according to the remaining task amount that has not been allocated yet.

【0023】[0023]

【発明の実施の形態】以下、図面に基づき本発明の実施
形態について説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0024】<第1実施形態>図1には、本実施形態の
分散処理システムの構成ブロック図が示されている。マ
スタプロセッサ10とスレーブプロセッサA12、スレ
ーブプロセッサB14、スレーブプロセッサC16がネ
ットワーク100を介して接続されている。マスタプロ
セッサ10は、処理すべきタスクを保持するタスクキュ
ー10a及び各スレーブプロセッサに対するタスク割り
当てを管理するタスク割り当て管理部10bを有してお
り、タスク割り当て管理部10bは、各スレーブプロセ
ッサA、B、Cからのタスク要求を受け付け、各スレー
ブプロセッサA、B、Cに割り当てるタスク量を動的に
変化させる。なお、本実施形態における「動的に変化さ
せる」とは、従来技術のように各スレーブプロセッサに
タスク要求に応じて順次予め定められた量のタスクを割
り当てるのではなく、各スレーブプロセッサA、B、C
からの一度のタスク要求に応じて一度に割り当てるタス
ク量を変化させることを意味する。すなわち、ある時刻
においてあるスレーブプロセッサに一度に割り当てたタ
スク量と、別の時刻に同じスレーブプロセッサに一度に
割り当てるタスク量とが異なり得ることを意味する。
<First Embodiment> FIG. 1 is a block diagram showing the configuration of a distributed processing system according to this embodiment. The master processor 10 is connected to the slave processors A12, B14, and C16 via the network 100. The master processor 10 has a task queue 10a for holding tasks to be processed and a task assignment management unit 10b for managing task assignment to each slave processor. The task assignment management unit 10b includes the slave processors A, B, A task request from C is received, and the task amount assigned to each of the slave processors A, B, and C is dynamically changed. Note that "dynamically changing" in the present embodiment does not mean that a predetermined amount of tasks are sequentially assigned to each slave processor in response to a task request as in the related art, but that each slave processor A, B , C
Means changing the task amount to be assigned at one time in response to a single task request from. In other words, it means that the task amount assigned to a slave processor at one time at a certain time may be different from the task amount assigned to the same slave processor at another time at another time.

【0025】一方、各スレーブプロセッサA、B、C
は、マスタプロセッサ10から割り当てられたタスクA
1〜A3を処理するが、この割り当てられたタスクだけ
でなく、これ以外のタスクも同時に処理することができ
る。例えば、図に示されるようにスレーブプロセッサA
12はマスタプロセッサ10から割り当てられたタスク
A1のみを実行するが、スレーブプロセッサB14はマ
スタプロセッサ10から割り当てられたタスクA2の他
に別のプログラムを構成するタスクCを同時に処理し、
スレーブプロセッサC16はマスタプロセッサ10から
割り当てられたタスクA3の他に別のプログラムを構成
するタスクBを同時に処理することができる。
On the other hand, each slave processor A, B, C
Is the task A assigned by the master processor 10.
1 to A3 are processed, but not only this assigned task but also other tasks can be processed simultaneously. For example, as shown in FIG.
12 executes only the task A1 assigned by the master processor 10, while the slave processor B14 simultaneously processes the task A2 assigned by the master processor 10 and the task C constituting another program.
The slave processor C16 can simultaneously process a task B constituting another program in addition to the task A3 assigned by the master processor 10.

【0026】このようなマルチタスク環境下では、上述
したように各スレーブプロセッサA、B、Cの処理能力
自体が仮に同一でも、別に処理すべきタスクの負荷に応
じてマスタプロセッサ10から割り当てられたタスクの
処理能力に相違が生ずることとなる。本実施形態におい
ては、このように複数のスレーブプロセッサの処理能力
が互いに異なる場合にも、マスタプロセッサ10は効率
的に各スレーブプロセッサにタスクを割り当てるもので
ある。
In such a multitask environment, as described above, even if the processing capacities of the slave processors A, B, and C are the same, the slave processors A, B, and C are allocated from the master processor 10 according to the load of the task to be processed separately. There will be differences in task processing capabilities. In the present embodiment, even when the processing capacities of the plurality of slave processors are different from each other, the master processor 10 efficiently allocates the tasks to the respective slave processors.

【0027】なお、本実施形態において、このようなマ
ルチタスク環境は必ずしも必須ではなく、各スレーブプ
ロセッサA、B、Cの処理能力自体が均一ではなく、各
スレーブプロセッサA、B、Cがマスタプロセッサ10
からのタスクのみを処理する場合にも同様に適用するこ
とができる。
In the present embodiment, such a multitask environment is not always essential, and the processing capabilities of the slave processors A, B, and C are not uniform. 10
The same can be applied to the case where only the tasks from are processed.

【0028】以下、マスタプロセッサ10のタスク割り
当て管理部10bの動作である各スレーブプロセッサ
A、B、Cに対するタスク割当量の動的決定方法につい
て具体的に説明する。なお、タスクとしては、例えば画
像処理を想定し、マスタプロセッサ10は処理すべき画
像を複数の領域に分割し、各領域における画像データを
各スレーブプロセッサA、B、Cに割り当てて画像処理
を実行するものとする。割り当てられた各領域における
画像データの処理は各スレーブプロセッサで独立に実行
可能であり、また分割された各領域のすべての画像処理
が終了した時点で全体の画像処理が終了する。各領域の
画像データ量はほぼ同一である。すなわち、本実施形態
のタスクは、プログラム中において独立実行可能な処理
のまとまりであり、すべてのタスクによって1つのプロ
グラムが構成され、それぞれのタスクの実行に必要な演
算性能はほぼ等しいものとする。
Hereinafter, a method of dynamically determining a task allocation amount for each of the slave processors A, B, and C, which is an operation of the task allocation management section 10b of the master processor 10, will be specifically described. As a task, for example, assuming image processing, the master processor 10 divides an image to be processed into a plurality of areas, allocates image data in each area to each of the slave processors A, B, and C, and executes image processing. It shall be. The processing of the image data in each assigned area can be independently executed by each slave processor, and the entire image processing ends when all the image processing of each divided area ends. The image data amount of each area is almost the same. That is, the tasks of the present embodiment are a group of processes that can be independently executed in a program, and one task is constituted by all tasks, and the computational performance required to execute each task is substantially equal.

【0029】図2には、マスタプロセッサ10が各スレ
ーブプロセッサA、B、C(以下、適宜スレーブA、
B、Cと称する)に割り当てるタスク量及び各スレーブ
プロセッサからマスタプロセッサに送信されるタスク要
求が時系列的に示されている。図において、(A)は時
刻0から時刻100までの処理であり、(B)は時刻1
00から時刻200までの処理である。
FIG. 2 shows that the master processor 10 includes slave processors A, B, and C (hereinafter, slave A,
B and C) and task requests transmitted from each slave processor to the master processor are shown in chronological order. In the figure, (A) shows the processing from time 0 to time 100, and (B) shows the processing at time 1
The processing is from 00 to time 200.

【0030】なお、説明の都合上、各スレーブプロセッ
サの性能比はスレーブA:B:C=15:5:3(性能
自体に差が存在する場合、及び性能自体は均一であるが
他のタスクを処理しているため割り当てられたタスクの
処理能力に差が存在する場合の両方を含む)とし、マス
タプロセッサ10が割り当てるべきタスクの総数を10
0、割り当てるタスク量の初期値を4(タスク数4個)
とする。そして、マスタプロセッサ10は、各スレーブ
プロセッサからのタスク要求回数をカウントし、すべて
のスレーブプロセッサのタスク要求回数が1以上になっ
たとき、すなわち一番処理が遅いスレーブプロセッサか
らの1回目のタスク要求があったときに、その時点まで
に各スレーブプロセッサから送信されたタスク要求の回
数に応じて割り当てるタスク量を見直して新たなタスク
量を決定する。割り当てるタスク量の決定に際し、マス
タプロセッサは以下の基準に基づいて割り当てを行う。
For convenience of explanation, the performance ratio of each slave processor is slave A: B: C = 15: 5: 3 (when there is a difference in performance itself, and when the performance itself is uniform, other tasks are performed. And the case where there is a difference in the processing capability of the assigned tasks), and the total number of tasks to be assigned by the master processor 10 is 10
0, initial value of assigned task amount is 4 (4 tasks)
And Then, the master processor 10 counts the number of task requests from each slave processor, and when the number of task requests of all slave processors becomes 1 or more, that is, the first task request from the slowest slave processor. When there is, a task amount to be assigned is reviewed according to the number of task requests transmitted from each slave processor up to that point, and a new task amount is determined. In deciding the task amount to be assigned, the master processor performs assignment based on the following criteria.

【0031】すなわち、スレーブA、B、Cのタスク要
求回数(通信回数)をそれぞれa、b、cとした場合 (1)a>b=cの場合 スレーブAに対する割り当てをa/bに増大させ、スレ
ーブBとスレーブCに対する割り当ては維持する。
That is, when the task request counts (communication counts) of the slaves A, B, and C are respectively a, b, and c. (1) When a> b = c, the allocation to the slave A is increased to a / b. , The assignments for slave B and slave C are maintained.

【0032】(2)a>b>cの場合 スレーブAに対する割り当てをa/bに増大させ、スレ
ーブCに対する割り当てをc/bに減少させ、スレーブ
Bに対する割り当てを維持する。
(2) When a>b> c The assignment to the slave A is increased to a / b, the assignment to the slave C is decreased to c / b, and the assignment to the slave B is maintained.

【0033】(3)a=b>cの場合 スレーブCに対する割り当てをc/bに減少させ、スレ
ーブA及びスレーブBに対する割り当てを維持する。
(3) When a = b> c The assignment to the slave C is reduced to c / b, and the assignment to the slaves A and B is maintained.

【0034】(4)a=b=cの場合 スレーブA、スレーブB、スレーブCに対する割り当て
を維持する。
(4) When a = b = c The assignment to the slave A, slave B, and slave C is maintained.

【0035】上記の基準はA、B、Cが入れ替わっても
そのまま適用される。以下、これらの基準を用いたタス
ク割り当ての様子を図2に基づいて説明する。
The above criterion is applied even if A, B and C are exchanged. Hereinafter, the state of task assignment using these criteria will be described with reference to FIG.

【0036】時刻t=0において、マスタプロセッサ1
0から各スレーブプロセッサに対して初期値として4個
のタスクをそれぞれ割り当てる。なお、図において割り
当てられたタスクの長さがスレーブによって異なってい
るが、これは各スレーブの処理能力が異なるため、その
タスクを処理するのにその長さ分だけ時間がかかること
を意味している。各スレーブに割り当てられる1個のタ
スク量は上述したようにほぼ同一である。スレーブA、
B、Cの処理能力は、15:5:3であるので、一番処
理が遅いスレーブCからのタスク要求がマスタプロセッ
サ10になされた時点t1(t1=約47)では、スレ
ーブA及びスレーブBは既にタスク要求をマスタプロセ
ッサ10に対して行っており、図示のようにスレーブA
は合計3回、スレーブBは合計1回のタスク要求を行っ
ている。すなわち、a=3、b=1、c=1である。
At time t = 0, the master processor 1
From 0, four tasks are assigned to each slave processor as initial values. In the figure, the length of the assigned task differs depending on the slave, but this means that the processing capacity of each slave is different, so that it takes time to process the task by that length. I have. One task amount assigned to each slave is almost the same as described above. Slave A,
Since the processing capabilities of B and C are 15: 5: 3, at the time t1 (t1 = approximately 47) when the task request from the slave C, which has the slowest processing, is made to the master processor 10, the slave A and the slave B are processed. Has already made a task request to the master processor 10, and as shown in FIG.
, A total of three times, and the slave B makes a total of one task request. That is, a = 3, b = 1, and c = 1.

【0037】そこで、マスタプロセッサ10のタスク割
り当て管理部10bは、所定時間(一番遅いスレーブプ
ロセッサからの要求があるまでの時間)における各スレ
ーブプロセッサからのタスク要求回数に応じて次に割り
当てるべきタスク量を決定する。具体的には、上述の基
準のうち(1)の基準が該当するため、スレーブAに対
する割り当てを3/1=3倍に増大させ、スレーブBと
スレーブCに対する割り当てを初期値である4個のまま
とする。したがって、時刻t1以降は、スレーブAから
のタスク要求が送信された場合、スレーブAに対しては
4×3=12個のタスクを割り当て、スレーブB、スレ
ーブCからのタスク要求に対しては、現状の4個のタス
クを割り当てることになる。なお、タスク量を決定した
後、タスク割り当て管理部10bは次回のカウントに備
えてタスク要求回数カウンタを0にリセットする。
Therefore, the task assignment management unit 10b of the master processor 10 assigns a task to be assigned next according to the number of task requests from each slave processor in a predetermined time (time until there is a request from the slowest slave processor). Determine the amount. Specifically, since the criterion (1) among the above-mentioned criterion is satisfied, the allocation to the slave A is increased by 3/1 = 3 times, and the allocation to the slave B and the slave C is set to four initial values. Leave it alone. Therefore, after the time t1, when a task request from the slave A is transmitted, 4 × 3 = 12 tasks are assigned to the slave A, and the task requests from the slaves B and C are The current four tasks will be assigned. After determining the task amount, the task allocation management unit 10b resets the task request counter to 0 in preparation for the next count.

【0038】以上のようにして割り当てるタスク量を決
定した後、さらに一番遅いスレーブCからのタスク要求
が時刻t2(t2=約92)でマスタプロセッサに送信
されたとする。マスタプロセッサ10のタスク割り当て
管理部10bは、時刻t1からt2までに送信された各
スレーブからのタスク要求回数をカウントする。時刻t
1からt2までの間の所定時間内に、図示のようにスレ
ーブAからは合計2回、スレーブBからも合計2回、ス
レーブCからは1回のタスク要求がなされるため、a=
2、b=2、c=1となる。タスク割り当て管理部10
bは、これらタスク要求回数に応じて再び各スレーブに
割り当てるタスク量を決定する。具体的には、上述の基
準のうち(3)の基準が該当するため、スレーブCに対
する割り当てを1/2=0.5倍に減少させ、スレーブ
AとスレーブBの割当量は現状のまま維持する。したが
って、時刻t2以降に各スレーブプロセッサからタスク
要求が送信された場合、スレーブA、スレーブB、スレ
ーブCに対するタスク割当量はそれぞれ12個、4個、
4×0.5=2個と割り当てることになる。
After the task amount to be allocated is determined as described above, it is assumed that the task request from the latest slave C is transmitted to the master processor at time t2 (t2 = about 92). The task allocation management unit 10b of the master processor 10 counts the number of task requests from each slave transmitted from time t1 to time t2. Time t
During the predetermined time from 1 to t2, as shown in the figure, the task request is made twice from the slave A, twice from the slave B, and once from the slave C.
2, b = 2 and c = 1. Task assignment management unit 10
b determines the amount of tasks to be allocated to each slave again according to the number of task requests. Specifically, since the criterion (3) among the above criterions applies, the allocation to the slave C is reduced to 1/2 = 0.5 times, and the allocation amounts of the slaves A and B are maintained as they are. I do. Therefore, when a task request is transmitted from each slave processor after time t2, the task allocation amounts for slave A, slave B, and slave C are 12, 4, respectively.
4 × 0.5 = 2.

【0039】同様にして、再び一番遅いスレーブプロセ
ッサからのタスク要求があった時点で、割り当てタスク
量の見直しを行う。今回の場合、一番遅いスレーブプロ
セッサはスレーブBとなり、スレーブBからのタスク要
求が時刻t3(t3=約120)で送信されたときに、
タスク割り当て管理部10bは割り当てるべきタスク量
を再び見直して新たな割当量を決定する。時刻t2から
t3までの所定時間内では、スレーブA、スレーブB、
スレーブCからのタスク要求はすべて1回であるため、
a=1、b=1、c=1となるので、上述の基準のうち
(4)の基準が該当し、各スレーブに対する割り当ては
現状のままとなる。
Similarly, when the task request from the slowest slave processor is received again, the assigned task amount is reviewed. In this case, the slowest slave processor is slave B, and when a task request from slave B is transmitted at time t3 (t3 = about 120),
The task assignment management unit 10b reviews the task amount to be assigned again and determines a new assigned amount. Within a predetermined time from time t2 to time t3, slave A, slave B,
Since all task requests from slave C are made once,
Since a = 1, b = 1, and c = 1, the criterion (4) among the above-mentioned criterion applies, and the assignment to each slave remains as it is.

【0040】そして、再び一番遅いスレーブプロセッサ
からのタスク要求の受付をトリガとして、割り当てタス
ク量の見直しを行う。今回の場合も、一番遅いスレーブ
プロセッサはスレーブBであり、スレーブBからのタス
ク要求が時刻t4(t4=約150)で行われた場合
に、時刻t3からt4までの所定時間内における各スレ
ーブからのタスク要求回数に応じて割り当て量を決定す
る。各スレーブからのタスク要求回数は図示のようにす
べて1回であるため、a=1、b=1、c=1となり、
上述の基準のうち(4)の基準が該当し、割り当てタス
ク量は現状のままとなる。以上のようにして、タスクの
全総数100の割り当てが終了し、時刻t5(t5=約
176)で全てのタスクの処理が完了する。
Then, with the receipt of the task request from the slowest slave processor again as a trigger, the assigned task amount is reviewed. In this case as well, the slowest slave processor is slave B, and when a task request from slave B is made at time t4 (t4 = about 150), each slave processor within a predetermined time from time t3 to t4. The allocation amount is determined according to the number of task requests from. Since the number of task requests from each slave is all one as shown in the figure, a = 1, b = 1, c = 1, and
The criterion (4) among the above-mentioned criteria is applicable, and the assigned task amount remains as it is. As described above, the assignment of the total number of tasks 100 is completed, and the processing of all tasks is completed at time t5 (t5 = about 176).

【0041】このように、本実施形態においては所定時
間内、すなわち一番遅いスレーブからタスク要求がある
までの時間内における各スレーブプロセッサからのタス
ク要求回数に基づいて各スレーブプロセッサの処理能力
を評価し、タスク要求回数が多い(処理能力が大きい)
スレーブプロセッサに対しては一度のタスク要求に応じ
て割り当てるタスク量を増大させるため、スレーブプロ
セッサとマスタプロセッサとの間の通信回数を減少させ
つつ各スレーブプロセッサに効率的にタスクを割り当て
ることができる。
As described above, in the present embodiment, the processing performance of each slave processor is evaluated based on the number of task requests from each slave processor within a predetermined time, that is, the time from when the slowest slave issues a task request. And the number of task requests is large (the processing capacity is large)
Since the amount of tasks assigned to a slave processor in response to a single task request is increased, tasks can be efficiently assigned to each slave processor while reducing the number of communications between the slave processor and the master processor.

【0042】すなわち、本実施形態では、スレーブプロ
セッサの処理能力を、別途の通信を用いてマスタプロセ
ッサが把握するのではなく、タスク要求回数によって把
握するため、通信が徒に増大することもない。さらに、
処理能力の大きいスレーブプロセッサには多くのタスク
量が割り当てられるため、そのスレーブプロセッサから
タスク要求が頻繁にマスタプロセッサに送信されること
もなくなる。
That is, in the present embodiment, the processing capacity of the slave processor is not grasped by the master processor using a separate communication but is grasped by the number of task requests, so that the communication does not increase unnecessarily. further,
Since a large amount of tasks is assigned to a slave processor having a large processing capacity, task requests are not frequently transmitted from the slave processor to the master processor.

【0043】本願出願人は、タスクの総数を100個、
マスタプロセッサとスレーブプロセッサ間の通信に3
(時間単位)、1個のタスクの処理にスレーブA、スレ
ーブB、スレーブCがそれぞれ1(時間単位)、3(時
間単位)、5(時間単位)要すると仮定して割り当てる
タスク量を常に一定とした場合と本実施形態のように時
間的に変化させた場合についてコンピュータシュミレー
ションを行い、全タスクの処理時間Tについて次のよう
な結果を得ることができた。
The applicant has set the total number of tasks to 100,
3 for communication between master processor and slave processor
(Time unit) Assuming that slave A, slave B, and slave C require 1 (hour unit), 3 (hour unit), and 5 (hour unit) to process one task, the task amount to be allocated is always constant. A computer simulation was performed for the case where the time was changed as in this embodiment and the case where the time was changed as in the present embodiment, and the following results were obtained for the processing time T of all tasks.

【0044】<割り当てタスク量を常に1個とした場合
> T=372(時間単位) <割り当てタスク量を常に4個とした場合> T=210(時間単位) <割り当てタスク量を常に16個とした場合> T=204(時間単位) <本実施形態の場合> T=176(時間単位) このシミュレーション結果からも明らかなように、本実
施形態においては各スレーブプロセッサに最適にタスク
量を割り当てるとともに、マスタプロセッサとスレーブ
プロセッサ間の通信も抑制しているため、全タスクを効
率的かつ迅速に処理することが可能となる。
<When the assigned task amount is always one> T = 372 (time unit) <When the assigned task amount is always four> T = 210 (hour unit) <Allocated task amount is always 16 T = 204 (in units of time) <Case of the present embodiment> T = 176 (in units of time) As is clear from the simulation results, in the present embodiment, the task amount is optimally assigned to each slave processor. Since communication between the master processor and the slave processor is also suppressed, all tasks can be processed efficiently and quickly.

【0045】なお、本実施形態においては所定時間内に
おける各スレーブプロセッサからのタスク要求回数によ
り各スレーブプロセッサのタスク処理能力を評価してい
るが、各スレーブプロセッサのタスク要求時間間隔に基
づいて各スレーブプロセッサのタスク処理能力を評価す
ることも可能である。すなわち、マスタプロセッサ10
は初期値として4個のタスクを各スレーブプロセッサに
割り当て、この4個のタスクを処理して各スレーブプロ
セッサからタスク要求が送信されるまでの時間間隔を計
測する。そして、時間間隔の相違によって処理能力を評
価し、処理能力の大きいスレーブプロセッサに対しては
次回から一度に多くのタスク量を割り当てればよい。当
業者であれば、所定時間内のタスク要求回数とタスク要
求の時間間隔とは物理的に等価であることが明らかであ
ろう。
In this embodiment, the task processing capability of each slave processor is evaluated based on the number of task requests from each slave processor within a predetermined time, but each slave processor is evaluated based on the task request time interval of each slave processor. It is also possible to evaluate the task processing capability of the processor. That is, the master processor 10
Assigns four tasks to each slave processor as an initial value, measures these four tasks, and measures a time interval until a task request is transmitted from each slave processor. Then, the processing capacity is evaluated based on the difference in the time interval, and a large amount of tasks may be allocated to the slave processor having a large processing capacity at once from the next time. It will be clear to those skilled in the art that the number of task requests within a given time period and the time interval between task requests are physically equivalent.

【0046】<第2実施形態>上述した第1実施形態で
は、マスタプロセッサ10のタスク割り当て管理部10
bが各スレーブプロセッサのタスク処理能力に応じてタ
スク要求に対して1回に割り当てるタスク量を変化させ
る場合について示したが、本実施形態においては、未だ
割り当てられていないタスク残存量に応じて各スレーブ
プロセッサに割り当てるタスク量を動的に変化させる場
合について説明する。
<Second Embodiment> In the first embodiment described above, the task assignment management unit 10 of the master processor 10
b shows the case where the task amount assigned to a task request at one time is changed in accordance with the task processing capacity of each slave processor. In the present embodiment, each task amount is changed according to the remaining task amount not yet assigned. A case where the task amount assigned to the slave processor is dynamically changed will be described.

【0047】本実施形態の構成ブロック図は、図1に示
された構成ブロック図と同様であり、マスタプロセッサ
10内のタスク割り当て管理部10bが、各スレーブプ
ロセッサA、B、Cに割り当てるべきタスク量を決定
し、タスクキュー10aに保持されているタスクを各ス
レーブプロセッサに供給する。タスク割り当て管理部1
0bは、各スレーブプロセッサA、B、Cに割り当てる
タスクを決定するに際し、タスクキュー10aに保持さ
れているタスク残存量を監視し、タスク残存量に応じて
割り当てるタスク量を決定する。具体的には、タスク残
存量が多い場合には各スレーブプロセッサに割り当てる
タスク量を多くし、タスク残存量が少なくなるに従い、
割り当てるタスクの粒度(単位)を細かくして各スレー
ブプロセッサに割り当てるタスク量を平準化する。
The configuration block diagram of the present embodiment is the same as the configuration block diagram shown in FIG. 1, and the task allocation management unit 10b in the master processor 10 assigns a task to be allocated to each of the slave processors A, B, and C. The amount is determined, and the task held in the task queue 10a is supplied to each slave processor. Task assignment management unit 1
When determining a task to be assigned to each of the slave processors A, B and C, 0b monitors the remaining task amount held in the task queue 10a and determines the task amount to be assigned according to the remaining task amount. Specifically, when the remaining task amount is large, the task amount assigned to each slave processor is increased, and as the remaining task amount decreases,
The amount of tasks to be allocated to each slave processor is leveled by reducing the granularity (unit) of the tasks to be allocated.

【0048】図3には、各スレーブプロセッサに対する
割り当てタスク量の時間変化が示されている。図におい
て、横軸は未だ割り当てられていないタスク率、すなわ
ち全タスク量に対する残存タスク量の比(残りのタスク
量/全タスク量)であり、縦軸は各スレーブプロセッサ
に1度のタスク要求に対して割り当てるタスク量であ
る。なお、時間とともに残存タスク量は減っていくの
で、横軸は時間軸としても機能することになる(すなわ
ち、図3は割り当てタスク量の時間変化を示してい
る)。また、図において割り当てるタスク量は、最小の
割り当て単位をnとして表現している。
FIG. 3 shows the change over time of the task amount assigned to each slave processor. In the figure, the horizontal axis represents the task ratio that has not been assigned, that is, the ratio of the remaining task amount to the total task amount (remaining task amount / total task amount), and the vertical axis represents the task request to each slave processor once. This is the task amount to be assigned to the task. Note that since the remaining task amount decreases with time, the horizontal axis also functions as a time axis (that is, FIG. 3 shows a time change of the assigned task amount). In the figure, the task amount to be assigned represents the minimum assignment unit as n.

【0049】図に示すように、残りのタスク量/全タス
ク量(タスク残存率)が1/4となるまでは、マスタプ
ロセッサ10のタスク割り当て管理部10bは各スレー
ブプロセッサに一律に8nだけタスクを割り当てる。そ
して、タスク残存率が4分の1以下となった場合には、
一度のタスク要求に対して各スレーブプロセッサに割り
当てるタスク量を8nから4nに減らす。さらに、タス
ク残存率が1/8以下となった場合には割り当てるタス
ク量を4nから2nに減少させ、タスク残存率が1/1
6以下となった場合には、割り当てるタスク量の粒度を
さらに細かくして2nから最小の単位であるnとする。
As shown in the figure, until the remaining task amount / the total task amount (remaining task ratio) becomes 1/4, the task allocation management unit 10b of the master processor 10 uniformly assigns 8n tasks to each slave processor. Assign. And if the task remaining rate is less than 1/4,
The task amount assigned to each slave processor for one task request is reduced from 8n to 4n. Further, when the task remaining rate becomes 1/8 or less, the task amount to be allocated is reduced from 4n to 2n, and the task remaining rate becomes 1/1.
When the number of tasks becomes 6 or less, the granularity of the task amount to be allocated is further reduced to 2n, which is the minimum unit.

【0050】このように、未だ割り当てられておらずタ
スクキューに保持されているタスク量が多い場合(すな
わち時間的に初期の場合)には、一度に割り当てるタス
ク量を多くすることにより各スレーブプロセッサ(特に
処理能力の大きいスレーブプロセッサ)からのタスク要
求回数を減らすとともに、残存タスク量が少なくなる
(すなわち時間が経過した場合)に従い割り当てるタス
ク量の粒度を細かくすることで各スレーブプロセッサに
割り当てるタスク量を平準化し、効率的に全タスクを処
理することができる。
As described above, when the amount of tasks not yet allocated and held in the task queue is large (that is, in the case of initial time), the amount of tasks allocated at a time is increased to increase the The task amount to be assigned to each slave processor by reducing the number of task requests from the slave processor (particularly, a slave processor having a large processing capacity) and reducing the granularity of the task amount to be assigned as the remaining task amount decreases (that is, when time elapses). And all tasks can be processed efficiently.

【0051】なお、本実施形態においても第1実施形態
と同様な条件でコンピュータシュミレーションを行い、
全タスクの処理が終了するまでの時間Tを計算してい
る。その結果、 <本実施形態の場合> T=192(時間単位) という結果を得ることができた。
In this embodiment, a computer simulation is performed under the same conditions as those in the first embodiment.
The time T until the processing of all tasks is completed is calculated. As a result, the following result was obtained in the case of the present embodiment: T = 192 (time unit).

【0052】従って、本実施形態のように、タスクキュ
ー10aに保持されている残りのタスク量に応じて割り
当てるタスク量を時間的に変化させることで、一律に各
スレーブプロセッサにタスクを割り当てる場合に比べ、
通信回数を減少させるとともに、より効率的に全タスク
を処理することが可能となる。
Therefore, as in the present embodiment, when the task amount to be assigned is temporally changed according to the remaining task amount held in the task queue 10a, the task can be uniformly assigned to each slave processor. compared,
The number of communications can be reduced, and all tasks can be processed more efficiently.

【0053】<第3実施形態>上述した第2実施形態に
おいては、未だ割り当てられていない残りのタスク量に
応じて各スレーブプロセッサに割り当てるタスク量を時
間的に変化させているが、本実施形態においては、上述
した第1実施形態の分散処理方法と第2実施形態の分散
処理方法を組み合わせた分散処理方法について説明す
る。
<Third Embodiment> In the above-described second embodiment, the task amount assigned to each slave processor is temporally changed according to the remaining task amount that has not been assigned. In the following, a distributed processing method that combines the above-described distributed processing method of the first embodiment and the distributed processing method of the second embodiment will be described.

【0054】本実施形態の構成ブロック図も、図1に示
された構成ブロック図と同様であり、マスタプロセッサ
10内のタスク割り当て管理部10bが各スレーブプロ
セッサのタスク処理能力を評価し、タスク処理能力に応
じて一度に割り当てるタスク量を時間的に変化させると
ともに、タスクキュー10aに保持されている残存タス
ク量によっても割り当てるタスク量を変化させる。
The configuration block diagram of this embodiment is also the same as the configuration block diagram shown in FIG. 1, and the task allocation management unit 10b in the master processor 10 evaluates the task processing capability of each slave processor, and executes the task processing. The amount of tasks to be assigned at one time is temporally changed according to the capability, and the amount of tasks to be assigned is also changed according to the amount of remaining tasks held in the task queue 10a.

【0055】図4には、マスタプロセッサ10から各ス
レーブプロセッサに割り当てられるタスク量及び各スレ
ーブプロセッサからのタスク要求が時系列的に示されて
いる。(A)は時刻t=0から100までの割り当てタ
スク量であり、(B)は時刻t=100から200まで
の割り当てタスク量である。
FIG. 4 shows the amount of tasks allocated from the master processor 10 to each slave processor and the task requests from each slave processor in chronological order. (A) is the assigned task amount from time t = 0 to 100, and (B) is the assigned task amount from time t = 100 to 200.

【0056】本実施形態においても、第1実施形態と同
様に、各スレーブプロセッサの性能比はスレーブA:
B:C=15:5:3(性能自体に差が存在する場合、
及び性能自体は均一であるが他のタスクを処理している
ため割り当てられたタスクの処理能力に差が存在する場
合の両方を含む)とし、マスタプロセッサ10が割り当
てるべきタスクの総数を100としている。
In this embodiment, as in the first embodiment, the performance ratio of each slave processor is the slave A:
B: C = 15: 5: 3 (if there is a difference in performance itself,
And the performance itself is uniform, but there is a difference in the processing capability of the assigned task because it is processing another task), and the total number of tasks to be assigned by the master processor 10 is 100. .

【0057】時刻t=0において、マスタプロセッサ1
0内のタスク割り当て管理部10bは、各スレーブプロ
セッサに割り当てるタスク量の初期値を8とし、各スレ
ーブプロセッサ(スレーブA、B、C)に8個のタスク
を割り当てる。そして、一番遅いスレーブCからのタス
ク要求がなされた時刻t1(t1=約86)までの所定
時間内における各スレーブプロセッサからのタスク要求
回数をカウントする。この場合、図に示すようにスレー
ブAからは合計3回のタスク要求がなされ、スレーブB
からは合計2回のタスク要求がなされ、スレーブCから
は1回のタスク要求がなされる。したがって、a=3、
b=2、c=1であるので、タスク割り当て管理部10
bは、第1実施形態における4つの基準のうち、(2)
の基準に従い、スレーブAに対する割り当てを3/2=
1.5倍に増大させ、スレーブCに対する割り当てを1
/2=0.5倍に減少させ、スレーブBに対する割り当
てを現状のまま維持する。したがって、時刻t1以降の
タスク要求に対しては、スレーブAに対しては8×1.
5=12個、スレーブBに対しては8個、スレーブCに
対しては8×0.5=4個を割り当てることになる。
At time t = 0, master processor 1
The task allocation management unit 10b in 0 sets the initial value of the task amount allocated to each slave processor to 8, and allocates eight tasks to each slave processor (slaves A, B, and C). Then, the number of task requests from each slave processor within a predetermined time until time t1 (t1 = about 86) at which the task request from the latest slave C is made is counted. In this case, a task request is made three times in total from the slave A as shown in FIG.
, The task request is made twice in total, and the slave C makes one task request. Therefore, a = 3,
Since b = 2 and c = 1, the task assignment management unit 10
b is (2) out of the four criteria in the first embodiment.
According to the criterion, the assignment to the slave A is 3/2 =
Increase by 1.5 times, and assign the
/2=0.5 times and keep the assignment to slave B as it is. Therefore, for a task request after time t1, 8 × 1.
5 = 12, 8 for slave B, and 8 × 0.5 = 4 for slave C.

【0058】割り当てタスク量を決定した後、上述した
第1実施形態においては一番遅いスレーブプロセッサか
らのタスク要求が再びあった時点で割り当てタスク量の
見直しを行うが、本実施形態においては、タスク割り当
て管理部10bはタスク要求を監視するだけでなく、さ
らにタスクキュー10aに保持されている残存タスク量
も監視する。そして、残存タスク率が1/4、すなわち
残りのタスク量が100×1/4=25以下となった場
合には、割り当てタスクの基準値である8を4に減少
(粒度を細かく)させ、この基準値4に対して各スレー
ブに割り当てるタスク量を見直し、新たなタスク量を決
定する。
After determining the assigned task amount, in the first embodiment described above, the assigned task amount is reviewed when the task request from the slowest slave processor is made again. The assignment management unit 10b not only monitors task requests, but also monitors the remaining task amount held in the task queue 10a. Then, when the remaining task rate is 1/4, that is, when the remaining task amount is 100 × 1 / = 25 or less, the reference value 8 of the assigned task is reduced to 4 (fine granularity), The task amount assigned to each slave is reviewed with respect to the reference value 4, and a new task amount is determined.

【0059】具体的には、前回決定した割り当てタスク
量はスレーブAに対しては、基準値の1.5倍、スレー
ブBに対しては基準値そのまま、スレーブCに対しては
基準値の0.5倍であったから、時刻t2(t2=約1
08)で残りのタスク量が25個となったとすると、基
準値を8から4に減少させ、スレーブAに対しては4×
1.5=6個のタスクを割り当て、スレーブBに対して
は4個のタスクを割り当て、スレーブCに対しては4×
0.5=2個のタスクを割り当てる。
More specifically, the assigned task amount determined last time is 1.5 times the reference value for the slave A, the reference value is unchanged for the slave B, and the reference value is 0 for the slave C. 0.5 times, the time t2 (t2 = about 1
08), if the remaining task amount becomes 25, the reference value is reduced from 8 to 4, and 4 ×
1.5 = 6 tasks are allocated, 4 tasks are allocated to slave B, and 4 ×
0.5 = 2 tasks are assigned.

【0060】そして、一番遅いスレーブプロセッサ(こ
の場合にはスレーブC)からタスク要求が時刻t3で送
信された場合には、タスク割り当て管理部10bは、第
1実施形態と同様に時刻t1からt3までの所定時間内
のタスク要求回数に応じて割り当てるタスク量を決定す
る。時刻t1からt3の所定時間内に、スレーブAから
は合計2回、スレーブBからは合計1回、スレーブCか
らは合計1回のタスク要求があるから、a=2、b=
1、c=1となり、(1)の基準に従って時刻t3以降
のタスク要求に対しては、スレーブAについては6×2
/1=12個のタスクを割り当て、スレーブBについて
は4個のタスクを割り当て、スレーブCについては2個
のタスクを割り当てる。以上のようにして、各スレーブ
プロセッサの処理能力及び残存タスク量に応じて割り当
てタスク量を変化させ、すべてのタスクをスレーブプロ
セッサA、B、Cにて処理する。
When the task request is transmitted from the slowest slave processor (slave C in this case) at time t3, the task allocation management unit 10b sets the time from time t1 to t3 as in the first embodiment. The task amount to be assigned is determined according to the number of task requests within a predetermined time up to the specified time. Within a predetermined time from time t1 to t3, there are a total of two task requests from slave A, a total of one task from slave B, and a total of one task request from slave C. Therefore, a = 2, b =
1, c = 1, and 6 × 2 for the slave A for the task request after the time t3 according to the criterion (1).
/ 1 = 12 tasks are assigned, 4 tasks are assigned to slave B, and 2 tasks are assigned to slave C. As described above, the assigned task amount is changed according to the processing capacity and the remaining task amount of each slave processor, and all the tasks are processed by the slave processors A, B, and C.

【0061】本実施形態においても、本願出願人はコン
ピュータシュミレーションを用いて全タスクを処理する
のに要する時間Tを計算した結果、 <本実施形態の場合> T=166(時間単位) という結果を得ることができた。
Also in the present embodiment, the present applicant has calculated the time T required to process all tasks using computer simulation. <In the case of the present embodiment> T = 166 (time unit) I got it.

【0062】このように、各スレーブプロセッサの処理
能力及び残りのタスク量に基づいて、割り当てるタスク
量を時間的に動的に変化させることで、各スレーブプロ
セッサに一律にタスクを割り当てる場合に比べ、より効
率的かつ迅速に全タスクを処理することができる。
As described above, by dynamically changing the task amount to be allocated over time based on the processing capacity of each slave processor and the remaining task amount, compared to a case where tasks are uniformly assigned to each slave processor, All tasks can be processed more efficiently and quickly.

【0063】以上、本発明の実施形態について画像デー
タを複数のプロセッサで処理する場合について説明した
が、本発明はこれに限らず任意のデータ処理に用いるこ
とができるのはいうまでもない。また、スレーブプロセ
ッサも3個に限定されず4個またはそれ以上のシステム
においても適用可能である。
The case where image data is processed by a plurality of processors has been described in the embodiment of the present invention. However, it goes without saying that the present invention is not limited to this and can be used for arbitrary data processing. Also, the number of slave processors is not limited to three, and can be applied to a system having four or more slave processors.

【0064】さらに、マスタプロセッサも1個に限定さ
れず、場合によっては2個またはそれ以上あってもよ
い。また、マスタプロセッサがスレーブプロセッサの機
能も有し、タスクを処理する場合にも適用できる。さら
に、スレーブプロセッサが適宜マスタプロセッサとして
機能する態様をとる場合にも適用できる。この場合、ス
レーブプロセッサとマスタープロセッサが適宜交代する
ことになる。
Further, the number of master processors is not limited to one, but may be two or more in some cases. Further, the present invention can be applied to a case where the master processor also has a slave processor function and processes a task. Furthermore, the present invention can be applied to a case where the slave processor appropriately takes the form of functioning as a master processor. In this case, the slave processor and the master processor are replaced as appropriate.

【0065】[0065]

【発明の効果】本発明によれば、複数のスレーブプロセ
ッサに割り当てるタスク量を時間的に動的に変化させる
ため、複数のスレーブプロセッサ間に処理能力の相違が
あっても効率的にタスク割り当てを行い、全タスク処理
に要する時間を短縮することができる。
According to the present invention, the amount of tasks to be allocated to a plurality of slave processors is dynamically changed over time, so that even if there is a difference in processing capacity among the plurality of slave processors, task allocation can be performed efficiently. By doing so, the time required for all task processing can be reduced.

【0066】また、マスタプロセッサとスレーブプロセ
ッサ間の通信を増大させることなく、効率的にタスクを
割り当てることができる。
Further, tasks can be efficiently allocated without increasing the communication between the master processor and the slave processors.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 本発明の実施形態の構成ブロック図である。FIG. 1 is a configuration block diagram of an embodiment of the present invention.

【図2】 本発明の第1実施形態の割り当てタスク量の
時間変化を示す説明図である。
FIG. 2 is an explanatory diagram showing a time change of an assigned task amount according to the first embodiment of this invention.

【図3】 本発明の第2実施形態の割り当てタスク量の
時間変化を示すグラフ図である。
FIG. 3 is a graph showing a time change of an assigned task amount according to a second embodiment of the present invention.

【図4】 本発明の第3実施形態の割り当てタスク量の
時間変化を示す説明図である。
FIG. 4 is an explanatory diagram showing a time change of an assigned task amount according to a third embodiment of the present invention.

【符号の説明】[Explanation of symbols]

10 マスタプロセッサ、10a タスクキュー、10
b タスク割り当て管理部、12 スレーブプロセッサ
A(スレーブA)、14 スレーブプロセッサB(スレ
ーブB)、16 スレーブプロセッサC(スレーブ
C)、100 ネットワーク。
10 Master processor, 10a Task queue, 10
b Task allocation management unit, 12 slave processors A (slave A), 14 slave processors B (slave B), 16 slave processors C (slave C), 100 networks.

Claims (12)

【特許請求の範囲】[Claims] 【請求項1】 複数のプロセッサがネットワークを介し
て接続され、複数の該プロセッサの内のマスタプロセッ
サが他の複数のスレーブプロセッサで処理すべきタスク
を割り当てる分散処理システムであって、 前記マスタプロセッサは、前記スレーブプロセッサに割
り当てるタスク量を前記スレーブプロセッサの状況に応
じて変化させる割り当て管理手段を有することを特徴と
する分散処理システム。
1. A distributed processing system in which a plurality of processors are connected via a network, and a master processor among the plurality of processors assigns a task to be processed by another plurality of slave processors. And a allocating means for changing a task amount allocated to the slave processor in accordance with a status of the slave processor.
【請求項2】 前記割り当て管理手段は、前記スレーブ
プロセッサのタスク処理能力に応じて割り当てるタスク
量を変化させることを特徴とする請求項1記載の分散処
理システム。
2. The distributed processing system according to claim 1, wherein said allocation management means changes a task amount to be allocated according to a task processing capability of said slave processor.
【請求項3】 前記割り当て管理手段は、前記スレーブ
プロセッサからのタスク要求の時間間隔に基づいて前記
タスク処理能力を評価することを特徴とする請求項2記
載の分散処理システム。
3. The distributed processing system according to claim 2, wherein said assignment management unit evaluates said task processing capability based on a time interval of a task request from said slave processor.
【請求項4】 前記割り当て管理手段は、前記スレーブ
プロセッサからの所定時間内のタスク要求回数に基づい
て前記タスク処理能力を評価することを特徴とする請求
項2記載の分散処理システム。
4. The distributed processing system according to claim 2, wherein said assignment management means evaluates said task processing capability based on the number of task requests within a predetermined time from said slave processor.
【請求項5】 前記マスタプロセッサは、さらに前記ス
レーブプロセッサに割り当てるべきタスクを保持するタ
スクキュー手段を有し、 前記割り当て管理手段は、前記割り当てるタスク量を前
記タスクキュー手段に保持されている残りのタスク量に
応じて変化させることを特徴とする請求項1〜4のいず
れかに記載の分散処理システム。
5. The master processor further includes task queue means for holding a task to be assigned to the slave processor, and the assignment management means stores the task amount to be assigned to the remaining task amount held in the task queue means. The distributed processing system according to any one of claims 1 to 4, wherein the value is changed according to a task amount.
【請求項6】 複数のプロセッサがネットワークを介し
て接続され、複数の該プロセッサの内のマスタプロセッ
サが他の複数のスレーブプロセッサで処理すべきタスク
を割り当てる分散処理システムであって、 前記マスタプロセッサは、 前記スレーブプロセッサに割り当てるべきタスクを保持
するタスクキュー手段と、 前記スレーブプロセッサに割り当てるタスク量を前記タ
スクキュー手段に保持されている残りのタスク量に応じ
て変化させる割り当て管理手段と、 を有することを特徴とする分散処理システム。
6. A distributed processing system in which a plurality of processors are connected via a network, and a master processor among the plurality of processors assigns a task to be processed by another plurality of slave processors, wherein the master processor comprises: A task queue unit that holds tasks to be assigned to the slave processors; and an assignment management unit that changes a task amount to be assigned to the slave processors according to a remaining task amount held in the task queue unit. A distributed processing system characterized by the following.
【請求項7】 複数のプロセッサがネットワークを介し
て接続され、複数の該プロセッサの内のマスタプロセッ
サが他の複数のスレーブプロセッサで処理すべきタスク
を割り当てる分散処理方法であって、 前記スレーブプロセッサに割り当てるタスク量を前記ス
レーブプロセッサの状況に応じて変化させることを特徴
とする分散処理方法。
7. A distributed processing method in which a plurality of processors are connected via a network, and a master processor among the plurality of processors assigns a task to be processed by another plurality of slave processors. A distributed processing method, wherein the task amount to be allocated is changed according to the status of the slave processor.
【請求項8】 前記割り当てるタスク量は、前記スレー
ブプロセッサのタスク処理能力に応じて決定されること
を特徴とする請求項7記載の分散処理方法。
8. The distributed processing method according to claim 7, wherein the task amount to be allocated is determined according to a task processing capability of the slave processor.
【請求項9】 前記タスク処理能力は、タスク要求の時
間間隔に基づいて決定されることを特徴とする請求項8
記載の分散処理方法。
9. The system according to claim 8, wherein the task processing capability is determined based on a time interval between task requests.
The distributed processing method as described above.
【請求項10】 前記タスク処理能力は、所定時間内の
タスク要求回数に基づいて決定されることを特徴とする
請求項8記載の分散処理方法。
10. The distributed processing method according to claim 8, wherein the task processing capacity is determined based on the number of task requests within a predetermined time.
【請求項11】 前記割り当てるタスク量は、未だ割り
当てられていない残りのタスク量に応じて決定されるこ
とを特徴とする請求項7〜10のいずれかに記載の分散
処理方法。
11. The distributed processing method according to claim 7, wherein the task amount to be assigned is determined according to a remaining task amount that has not been assigned yet.
【請求項12】 複数のプロセッサがネットワークを介
して接続され、複数の該プロセッサの内のマスタプロセ
ッサが他の複数のスレーブプロセッサで処理すべきタス
クを割り当てる分散処理方法であって、 前記スレーブプロセッサに割り当てるタスク量を、未だ
割り当てられていない残りのタスク量に応じて変化させ
ることを特徴とする分散処理方法。
12. A distributed processing method in which a plurality of processors are connected via a network, and a master processor among the plurality of processors assigns a task to be processed by another plurality of slave processors. A distributed processing method characterized by changing an assigned task amount according to a remaining task amount that has not been assigned yet.
JP10001782A 1998-01-07 1998-01-07 Distributed processing system/method Pending JPH11195007A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10001782A JPH11195007A (en) 1998-01-07 1998-01-07 Distributed processing system/method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10001782A JPH11195007A (en) 1998-01-07 1998-01-07 Distributed processing system/method

Publications (1)

Publication Number Publication Date
JPH11195007A true JPH11195007A (en) 1999-07-21

Family

ID=11511157

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10001782A Pending JPH11195007A (en) 1998-01-07 1998-01-07 Distributed processing system/method

Country Status (1)

Country Link
JP (1) JPH11195007A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003100648A1 (en) * 2002-05-28 2003-12-04 Dai Nippon Printing Co., Ltd. Parallel processing system
JP2011134330A (en) * 2009-12-22 2011-07-07 Intel Corp Systems and methods for energy efficient load balancing at server clusters
WO2011161831A1 (en) * 2010-06-25 2011-12-29 富士通株式会社 Multi-processor system and scheduling method
US8631118B2 (en) 2008-01-17 2014-01-14 Fujitsu Limited Recording medium having distributed processing program stored therein, distributed processing device and distributed processing method
CN119512734A (en) * 2024-09-25 2025-02-25 山东云海国创云计算装备产业创新中心有限公司 Task processing method, device, electronic device and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03262074A (en) * 1990-03-13 1991-11-21 Agency Of Ind Science & Technol Dynamic equalizing system of load in loose coupled parallel computers
JPH0612392A (en) * 1992-03-19 1994-01-21 Fujitsu Ltd Computer resource distribution method and system
JPH07160650A (en) * 1993-12-02 1995-06-23 Matsushita Electric Ind Co Ltd Task execution controller

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03262074A (en) * 1990-03-13 1991-11-21 Agency Of Ind Science & Technol Dynamic equalizing system of load in loose coupled parallel computers
JPH0612392A (en) * 1992-03-19 1994-01-21 Fujitsu Ltd Computer resource distribution method and system
JPH07160650A (en) * 1993-12-02 1995-06-23 Matsushita Electric Ind Co Ltd Task execution controller

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003100648A1 (en) * 2002-05-28 2003-12-04 Dai Nippon Printing Co., Ltd. Parallel processing system
US8631118B2 (en) 2008-01-17 2014-01-14 Fujitsu Limited Recording medium having distributed processing program stored therein, distributed processing device and distributed processing method
JP2011134330A (en) * 2009-12-22 2011-07-07 Intel Corp Systems and methods for energy efficient load balancing at server clusters
WO2011161831A1 (en) * 2010-06-25 2011-12-29 富士通株式会社 Multi-processor system and scheduling method
JP5447666B2 (en) * 2010-06-25 2014-03-19 富士通株式会社 Multiprocessor system and scheduling method
US9367326B2 (en) 2010-06-25 2016-06-14 Fujitsu Limited Multiprocessor system and task allocation method
CN119512734A (en) * 2024-09-25 2025-02-25 山东云海国创云计算装备产业创新中心有限公司 Task processing method, device, electronic device and storage medium

Similar Documents

Publication Publication Date Title
KR101651871B1 (en) Job Allocation Method on Multi-core System and Apparatus thereof
US6560628B1 (en) Apparatus, method, and recording medium for scheduling execution using time slot data
CN109564528B (en) System and method for computing resource allocation in distributed computing
JP4387174B2 (en) Distributing processes associated with multiple priority groups across multiple resources
US20080115143A1 (en) Job Execution Method, Job Execution System, and Job Execution Program
CN106897132A (en) The method and device of a kind of server task scheduling
WO2020238989A1 (en) Method and apparatus for scheduling task processing entity
JP2002278945A (en) Method and system for distributing transaction load between computers with multi-processor configuration and program
JP2006048680A (en) System and method for operating load balancers for multiple instance applications
JP2010122758A (en) Job managing device, job managing method and job managing program
CN110187960A (en) A distributed resource scheduling method and device
US11438271B2 (en) Method, electronic device and computer program product of load balancing
CN111767146A (en) A Distributed Machine Learning System Acceleration Method Based on Network Reconfiguration
CN111355751A (en) Task scheduling method and device
CN114116173A (en) Method, device and system for dynamically adjusting task allocation
WO2020108337A1 (en) Cpu resource scheduling method and electronic equipment
CN112395063B (en) Dynamic multithreading scheduling method and system
CN100362806C (en) A Method for Realizing Load Sharing in Distributed System
Zikos et al. Communication cost effective scheduling policies of nonclairvoyant jobs with load balancing in a grid
JPH11195007A (en) Distributed processing system/method
CN115048247A (en) Dynamic distribution method and system of distributed tasks
JP2012038275A (en) Transaction calculation simulation system, method, and program
Yang et al. AutoAdmin: automatic and dynamic resource reservation admission control in Hadoop YARN clusters
Sun et al. Quality of service of grid computing: Resource sharing
US20230010895A1 (en) Information processing apparatus, information processing method, and computer-readable recording medium storing information processing program

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041026

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050705