IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 浙江工商大学の特許一覧

特許7478918分散型異機種混在システムに基づくタスクインテリジェント処理方法
<>
  • 特許-分散型異機種混在システムに基づくタスクインテリジェント処理方法 図1
  • 特許-分散型異機種混在システムに基づくタスクインテリジェント処理方法 図2
  • 特許-分散型異機種混在システムに基づくタスクインテリジェント処理方法 図3
  • 特許-分散型異機種混在システムに基づくタスクインテリジェント処理方法 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-25
(45)【発行日】2024-05-08
(54)【発明の名称】分散型異機種混在システムに基づくタスクインテリジェント処理方法
(51)【国際特許分類】
   G06F 9/48 20060101AFI20240426BHJP
【FI】
G06F9/48 300Z
G06F9/48 300G
【請求項の数】 2
(21)【出願番号】P 2023063960
(22)【出願日】2023-04-11
(65)【公開番号】P2023171264
(43)【公開日】2023-12-01
【審査請求日】2023-04-11
(31)【優先権主張番号】202210543938.2
(32)【優先日】2022-05-18
(33)【優先権主張国・地域又は機関】CN
【早期審査対象出願】
(73)【特許権者】
【識別番号】522207877
【氏名又は名称】浙江工商大学
(74)【代理人】
【識別番号】100216471
【弁理士】
【氏名又は名称】瀬戸 麻希
(72)【発明者】
【氏名】劉東升
(72)【発明者】
【氏名】劉彦▲に▼
(72)【発明者】
【氏名】陳亜輝
(72)【発明者】
【氏名】劉礼芳
【審査官】坂庭 剛史
(56)【参考文献】
【文献】特開2020-161014(JP,A)
【文献】特開2019-106120(JP,A)
【文献】特開2013-206248(JP,A)
【文献】特開2010-243717(JP,A)
【文献】米国特許第09354931(US,B1)
【文献】米国特許第08209701(US,B1)
【文献】米国特許出願公開第2020/0125400(US,A1)
【文献】米国特許出願公開第2008/0295107(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/48
(57)【特許請求の範囲】
【請求項1】
分散型異機種混在システムに基づくタスクインテリジェント処理方法であって、
前記分散型異機種混在システムは、タスクの受け渡し端と、事前トレーニングの優先度決
定モデルと、スレッドプールと、を含み、
前記スレッドプールには所定数のスレッドが含まれ、
前記タスクの受け渡し端を制御してデータ処理タスク受け渡し処理を行い、データ処理タ
スク集合を得るステップと、
前記データ処理タスク集合を前記事前トレーニングの優先度決定モデルに入力し、優先度
集合を得るステップと、
前記スレッドプール内の各スレッドの初期負荷情報と状態情報を取得し、初期負荷情報集
合と状態情報集合を取得するステップと、
前記初期負荷情報集合、前記状態情報集合及び前記優先度集合に基づいて、前記スレッド
プール内のスレッドに前記データ処理タスクの集合内の各データ処理タスクを割り当てる
ステップと、ここで、前記スレッドプール内の各スレッドにはデータ処理タスクが割り当
てられ、
前記スレッドプールに割り当てられたデータ処理タスクのスレッド起動を制御し、割り当
てられたデータ処理タスクを実行するステップと、
を含む、分散型異機種混在システムに基づくタスクインテリジェント処理方法。
【請求項2】
コンピュータプログラムが格納されたコンピュータ可読媒体であって、
前記コンピュータプログラムがプロセッサによって実行されると、請求項1に記載の方法
が実現される、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、タスクインテリジェント処理技術分野に関し、具体的には分散型異機種混在シ
ステムに基づくタスクインテリジェント処理方法に関する。
【背景技術】
【0002】
分散型異機種混在システムのタスク処理問題は、システムの並列性能の発揮と負荷バラン
スの維持に非常に重要な意義を持っている。既存のタスク処理方法は、通常、タスクをス
レッドに直接またはランダムに割り当て、スレッドは割り当てられたタスクを実行する。
しかしながら、上記の方式を採用する場合には、次のような技術的課題がしばしば存在す
る。
第一に、指定されたスレッドにタスクを直接割り当て、スレッドの負荷と実行状態を考慮
せず、スレッドの負荷が不均衡になり、複数のスレッドの並列効率が低い。
第二に、データ処理タスクを等級分割せずに、指定されたスレッドにタスクを割り当てる
ことにより、等級の低いタスクが先に実行され、等級の高いタスクが後で実行され、デー
タ処理タスクの実行順序に影響を与える。
第三に、データ処理タスクの数がタスクを実行可能なスレッドの数と一致している場合、
データ処理タスクを直接またはランダムに各スレッドに割り当て、負荷の高いスレッドが
データ処理量の大きいタスクを実行することが頻繁に発生し、それによってスレッドの詰
まりが発生する頻度が高い。
第四に、データ処理タスクの数がタスクを実行可能なスレッドの数より大きい場合、デー
タ処理タスクを直接またはランダムに各スレッドに割り当て、新規スレッドの作成方法を
考慮せず、タスク処理の効率を低下させる。
第五に、データ処理タスクの数が実行可能なタスクのスレッドの数より大きい場合、デー
タ処理タスクを直接またはランダムに各スレッドに割り当て、データ処理タスクの待ち時
間が長くなることがある。
【発明の概要】
【0003】
本開示のいくつかの実施形態は、上記の背景技術の欄で言及された技術的問題のうちの1
つまたは複数を解決するために、分散異性化システムに基づくタスク処理方法、装置、装
置、および媒体を提案する。
【0004】
第1態様では、本開示のいくつかの実施形態は、タスクの受け渡し端、事前にトレーニン
グされた優先度決定モデル、およびスレッドプールを含む分散型異機種混在システムに基
づくタスクインテリジェント処理方法を提供する。前記スレッドプールには所定数のスレ
ッドが含まれ、前記方法は、前記タスクの受け渡し端を制御してデータ処理タスクの受け
渡し処理を行い、データ処理タスクの集合を得る、前記データ処理タスク集合を前記事前
トレーニングされた優先度決定モデルに入力し、優先度集合を得る、上記スレッドプール
内の各スレッドの初期負荷情報と状態情報を取得し、初期負荷情報集合と状態情報集合を
取得する、前記初期負荷情報集合、前記状態情報集合及び前記優先度集合に基づいて、前
記データ処理タスク集合中の各データ処理タスクを前記スレッドプール中のスレッドに割
り当て、前記スレッドプール中の各スレッドには1つのデータ処理タスクが割り当てられ
、スレッドプールに割り当てられたデータ処理タスクのスレッド起動を制御し、割り当て
られたデータ処理タスクを実行する。
【0005】
第2態様では、本開示のいくつかの実施形態は、タスクの受け渡し端、事前トレーニング
された優先度決定モデル、およびスレッドプールを含む分散型異機種混在システムに基づ
くタスクインテリジェント処理装置を提供する。この装置は、前記タスクの受け渡し端を
制御してデータ処理タスクの受け渡し処理を行い、データ処理タスクの集合を得るように
配置された第1制御ユニットと、前記データ処理タスク集合を前記事前トレーニングされ
た優先度決定モデルに入力して優先度集合を得る入力部と、前記スレッドプール内の各ス
レッドの初期負荷情報及び状態情報を取得し、初期負荷情報集合及び状態情報集合を得る
取得部と、前記初期負荷情報集合、前記状態情報集合及び前記優先度集合に基づいて、前
記データ処理タスク集合中の各データ処理タスクを前記スレッドプール中のスレッドに割
り当てる割当部と、第2制御部は、前記スレッドプールに割り当てられたデータ処理タス
クのスレッド起動を制御し、割り当てられたデータ処理タスクを実行するように構成され
る。
【0006】
第3の態様では、本開示のいくつかの実施形態は、タスクの受け渡し端、事前トレーニン
グの優先度決定モデル、スレッドプール1つ以上のプロセッサ、1つ以上のプログラムが
1つ以上のプロセッサによって実行され、1つ以上のプロセッサが上記第1態様のいずれ
かに記載の方法を実現するようにする1つ以上のプログラムが格納されている記憶装置で
ある。
【0007】
第4の態様では、本開示のいくつかの実施形態は、プロセッサによって実行されるときに
上述の第1態様のいずれかに記載の方法を実装するコンピュータプログラムを格納したコ
ンピュータ可読媒体を提供する。
【0008】
本開示の上述の各実施形態は、本開示のいくつかの実施形態の分散型異機種混在システム
に基づくタスクインテリジェント処理方法によりデータ処理タスクを割り当て、スレッド
負荷分散、複数スレッドの並列効率向上の効果を実現するという有益な効果を有する。具
体的には、スレッドの負荷が不均衡になり、複数のスレッドの並列効率が低下した理由は
、既存のデータ処理タスク割り当て方式は、スレッドの負荷や実行状態を考慮していない
。指定されたスレッドにタスクを直接割り当てるためである。これに基づいて、本開示の
いくつかの実施形態の分散型異機種混在システムに基づくタスクインテリジェント処理方
法を提供する。まず、前記タスク受け渡し端を制御してデータ処理タスク受け渡し処理を
行い、データ処理タスク集合を得ることができる。これにより、受信したデータ処理タス
クを等級分割することができる。次に、前記データ処理タスク集合を前記事前トレーニン
グされた優先度決定モデルに入力し、優先度集合を得ることができる。これにより、まず
等級の高いデータ処理タスクを実行することができ、したがって、時間要求の高いタスク
が最初に実行されて完了するようにすることができる。その後、上記スレッドプール内の
各スレッドの初期負荷情報と状態情報を取得し、初期負荷情報集合と状態情報集合を得る
ことができる。これにより、各スレッドの負荷状況を決定することができ、したがって、
時間要求の高いタスクを負荷の低いスレッドに割り当て、時間要求の低いタスクを負荷の
高いスレッドに割り当てることができ、したがって、各スレッド間の負荷を均衡させるこ
とができる。そして、前記初期負荷情報集合、前記状態情報集合及び前記優先度集合に基
づいて、前記データ処理タスク集合中の各データ処理タスクを、前記スレッドプール中の
スレッド毎に1つのデータ処理タスクを割り当てる。前記スレッドプール中のスレッドに
割り当てることができる。これにより、各スレッドにおける各タスクの実行効率が向上す
る。最後に、上記スレッドプールに割り当てられたデータ処理タスクのスレッド起動を制
御し、割り当てられたデータ処理タスクを実行することができます。これにより、データ
処理タスクを等級分割し、データ処理タスクの優先度と各スレッドの負荷状況と実行状態
に基づいて、各データ処理タスクを各スレッドにそれぞれ割り当てることにより、スレッ
ド負荷分散を実現し、複数スレッドの並列効率を向上させる。
【図面の簡単な説明】
【0009】
図1】本開示のいくつかの実施形態による分散型異機種混在システムに基づくタスクインテリジェント処理方法の適用場面の概略図である。
図2】本開示による分散型異機種混在システムに基づくタスクインテリジェント処理方法のいくつかの実施形態のフローチャートである。
図3】本開示による分散異性化システムに基づくタスクインテリジェント処理装置のいくつかの実施形態の構成図である。
図4】本開示のいくつかの実施形態を実現するのに適した電子機器の構造概略図である。
【発明を実施するための形態】
【0010】
以下、図面を参照し、実施例に関連して本開示を詳細に説明する。
図1は、本開示のいくつかの実施形態による分散型異機種混在システムに基づくタスクイ
ンテリジェント処理方法の適用場面の概略図である。
図1の応用場面において、まず、計算装置101は、上記タスク受け渡し端102を制御
してデータ処理タスク受け渡し処理を行い、データ処理タスク集合103を得ることがで
きる。次に、計算装置101は、上記データ処理タスク集合103を上記事前トレーニン
グの優先度決定モデル104に入力し、優先度集合105を得ることができ、上記スレッ
ドプール内の各スレッドの初期負荷情報と状態情報を取得し、初期負荷情報集合106と
状態情報集合107を取得する。前記初期負荷情報集合106、前記状態情報集合107
及び前記優先度集合105に基づいて、前記データ処理タスク集合103中の各データ処
理タスクを前記スレッドプール108中のスレッドに割り当て、前記スレッドプール10
8中の各スレッドには1つのデータ処理タスクが割り当てられ、上記スレッドプール10
8に割り当てられたデータ処理タスクのスレッド起動を制御し、割り当てられたデータ処
理タスクを実行する。
なお、上記計算装置101は、ハードウェアであってもよいし、ソフトウェアであっても
よい。コンピューティング装置がハードウェアである場合、複数のサーバまたは端末装置
からなる分散クラスタとして実装することも、単一のサーバまたは単一の端末装置として
実装することもできる。コンピューティング装置がソフトウェアとして具現化される場合
、上記に挙げたハードウェア装置にインストールすることができる。これは、例えば、分
散サービスを提供するための複数のソフトウェアまたはソフトウェアモジュールとして実
装されてもよく、単一のソフトウェアまたはソフトウェアモジュールとして実装されても
よい。ここでは具体的に限定しない。
図1の計算装置の数は概略的なものにすぎないことを理解すべきである。実装の必要に応
じて、任意の数の計算装置を有することができる。
【0011】
引き続き図2を参照して、本開示による分散異性化システムに基づくタスクインテリジェ
ント処理方法のいくつかの実施形態のフロー200を示す。分散型異機種混在システムに
基づくタスクインテリジェント処理方法は、次のステップを含む。
ステップ201では、タスク受け渡し端を制御してデータ処理タスク受け渡し処理を行い
、データ処理タスク集合を得る。
いくつかの実施形態では、分散型異機種混在システムに基づくタスクインテリジェント処
理方法の実行主体(図1に示す計算装置101)は、上記タスク受け渡し端を制御してデ
ータ処理タスク受け渡し処理を行い、データ処理タスク集合を得ることができる。ここで
、前記タスク受け渡し端は、クライアントから送信されたデータ処理タスクを受信し、そ
して前記実行主体は、前記タスク受け渡し端が受信したデータ処理タスクを取得すること
ができる。上記データ処理タスクの集合におけるデータ処理タスクは、データ処理に関連
する任意のタスクであってもよい。
一例として、上記データ処理タスクは、最新のリアルタイム気象情報を取得するために5
分おきに気象サーバに行ってもよい。上記データ処理タスクは、列車の便に応じて、いく
つかの時点を設定して分割発券してもよい。
ステップ202では、データ処理タスク集合を事前トレーニングの優先度決定モデルに入
力し、優先度集合を得る。
いくつかの実施形態では、前記実行主体は、前記データ処理タスク集合を前記事前トレー
ニングの優先度決定モデルに入力し、優先度集合を得ることができる。
ここで、上記事前トレーニングの優先度決定モデルは、以下のようなトレーニングにより
得られる。
サンプルデータ処理タスクと、サンプルデータ処理タスクに対応する優先度とを含むサン
プル集合を取得する。
上記サンプル集合に基づいて、次のトレーニング手順を実行する。
上記サンプル集合内の少なくとも1つのサンプルのサンプルデータ処理タスクをそれぞれ
初期ニューラルネットワークに入力し、上記少なくとも1つのサンプル中の各サンプルに
対応する優先度を得る。前記少なくとも1つのサンプル中の各サンプルに対応する優先度
と、少なくとも1つのサンプル中の各サンプルに対応する優先度とに基づいて、前記少な
くとも1つのサンプル中の各サンプルに対応する優先度の損失値を決定する。前記損失値
が所定の閾値に収束することを決定することに応答して、前記初期ニューラルネットワー
クをトレーニング完了の優先度決定モデルとする。前記損失値が所定の閾値に収束しない
ことを決定することに応答して、初期ニューラルネットワークのネットワークパラメータ
を調整し、未使用のサンプルを用いてトレーニングサンプル集合を構成し、調整後の初期
ニューラルネットワークを初期ニューラルネットワークとして、再び前記トレーニングス
テップを実行する。ここで、上記初期ニューラルネットワークは、データに基づいてタス
クを処理し、そのタスクの優先度を得る様々なニューラルネットワーク、例えば、畳み込
みニューラルネットワーク、深度ニューラルネットワークなどであってもよい。
上記ステップ202は、本開示の実施例の1つの発明点として、背景技術で言及された技
術問題2「データ処理タスクを等級分割せず、直接タスクを指定されたスレッドに割り当
てることにより、等級の低いタスクが先に実行され、等級の高いタスクが後で実行され、
データ処理タスクの実行順序に影響を与える」を解決する。データ処理タスクの実行順序
に影響を与える原因は、データ処理タスクを等級分割せずに指定されたスレッドにタスク
を割り当てることで、等級の低いタスクが先に実行され、等級の高いタスクが後で実行さ
れることになることが多い。このような原因を解決すれば、各データ処理タスクを優先度
の高い順に実行することができる。この効果を達成するために、事前トレーニングされた
優先度決定モデルを導入することにより、各データ処理タスクの優先度を決定する。初期
ニューラルネットワークをトレーニングすることにより、トレーニング完了の優先度決定
モデルを得る。これにより、トレーニング完了の優先度決定モデルによりデータ処理タス
クの等級を区分し、データ処理タスクの等級に応じてタスクの実行を行うことができ、し
たがって、各データ処理タスクは優先度の高い順にタスクの実行を完了することができる

ステップ203では、スレッドプール内の各スレッドの初期負荷情報と状態情報を取得し
、初期負荷情報集合と状態情報集合を得る。
いくつかの実施形態では、前記実行主体は、前記スレッドプール内の各スレッドの初期負
荷情報及び状態情報を取得し、初期負荷情報集合及び状態情報集合を得ることができる。
ここで、上記スレッドプールには所定数のスレッドが含まれていてもよい。上記のスレッ
ドプールは、スレッド作成機能を有するスレッドプールであってもよい。
ステップ204では、初期負荷情報集合、状態情報集合、優先度集合に基づいて、データ
処理タスク集合内の各データ処理タスクをスレッドプール内のスレッドに割り当てる。
いくつかの実施形態では、前記実行主体は、前記初期負荷情報集合、前記状態情報集合、
及び前記優先度集合に基づいて、前記データ処理タスク集合中の各データ処理タスクを前
記スレッドプール中のスレッドに割り当てることができる。ここで、上記スレッドプール
内のスレッドごとに1つのデータ処理タスクが割り当てられている。
いくつかの実施形態のいくつかの代替的な実施形態では、前記実行主体は、前記初期負荷
情報集合、前記状態情報集合、および前記優先度集合に基づいて、前記データ処理タスク
集合中の各データ処理タスクを前記スレッドプール中のスレッドに割り当て、前記状態情
報集合中の状態情報は、実行状態と未実行状態とを含み、以下のステップを含むことがで
きる。
第1ステップでは、上記スレッドプールにおけるスレッドの状態情報を実行状態のスレッ
ドとし、第1スレッドとして特定し、第1スレッド集合を得る。なお、前記第1スレッド
集合中の第1スレッドにはデータ処理タスクが割り当てられていない。前記第1スレッド
集合中の第1スレッドは、スレッドの状態情報が実行状態であるスレッドであってもよい

第2ステップでは、前記スレッドプールにおける前記第1スレッド集合を除く他のスレッ
ドを第2スレッドとして特定し、第2スレッド集合を得る。ここで、前記第2スレッド集
合中の第2スレッドに対してデータ処理タスクの割り当てを行う。前記第2スレッド集合
中の第2スレッドは、スレッドの状態情報が未実行状態のスレッドであってもよく、未実
行状態のスレッドに対してデータ処理タスクの割り当てを行うことができる。
オプションとして、前記実行主体は、前記初期負荷情報集合、前記状態情報集合、および
前記優先度集合に基づいて、前記データ処理タスク集合中の各データ処理タスクを前記ス
レッドプール中のスレッドに割り当て、前記状態情報集合中の状態情報は、実行状態と未
実行状態とを含み、以下のステップを含むことができる。
第1ステップでは、上記第2スレッド集合における第2スレッドの数を決定し、割り当て
られるスレッドの数を得る。例えば、第2スレッド集合における第2スレッドの数は5で
あってもよく、すなわち割り当てられるスレッドの数は5であってもよい。
第二に、前記データ処理タスクの集合におけるデータ処理タスクの数を決定し、データ処
理タスクの数を得る。例えば、上記データ処理タスクの集合におけるデータ処理タスクの
数は4であってもよく、すなわちデータ処理タスクの数は4であってもよい。
ステップ3では、前記データ処理タスクの数が前記割当対象スレッドの数以上であるかど
うかを判断する。
ステップ4では、前記データ処理タスクの数が前記割当先スレッドの数以下であることに
応答して、前記データ処理タスクの集合に対して、以下のタスク割当ステップを実行する

上記データ処理タスクの集合から、割り当てられるデータ処理タスクとして最も優先度の
高い(例えば、等級1の優先度が最も高い)データ処理タスクを選別する。前記第2スレ
ッド集合に対応する各初期負荷情報に基づいて、前記割り当てられるデータ処理タスクの
前記第2スレッド集合中の各第2スレッド上の実行時間長を決定し、実行時間長集合を得
る。ここでは、割り当てるべきデータ処理タスクの種々の負荷状況のスレッドにおける履
歴実行時間を参照として、実行時間を求める(例えば、ある割り当てられるデータ処理タ
スクに対して、この割り当てられるデータ処理タスクを取得するスレッドの負荷がケース
1の場合、この割り当てられるデータ処理タスクのマルチタスク実行時間は長く、複数の
タスク実行時間は平均値を求め、割り当てられるデータ処理タスクの負荷がケース1のス
レッドでの実行時間とする)。上記実行時間長集合から最も短い実行時間をターゲット実
行時間長として絞り込む。上記ターゲット実行時間長に対応する第2スレッドをターゲッ
トスレッドとして決定する。ここで、上記ターゲットスレッドは、割り当てられるデータ
処理タスクを実行するためのスレッドであってもよい。前記割り当てられるデータ処理タ
スクを前記ターゲットスレッドに割り当てる前記割当待ちデータ処理タスクを前記データ
処理タスク集合から削除し、タスク削除後のデータ処理タスク集合が空であるかどうかを
決定し、タスク削除後のデータ処理タスク集合が空であることに応答して、タスク割当ス
テップの実行が終了する。タスク削除後のデータ処理タスク集合が空でないことに応答し
て、タスク削除後のデータ処理タスク集合をデータ処理タスク集合として、上記タスク割
当ステップを実行し続ける。
上記第1ステップから第4ステップは、本開示の実施例の1つの発明点として、背景技術
で言及された技術問題3「データ処理タスクの数がタスクを実行可能なスレッドの数と一
致する場合、データ処理タスクを直接またはランダムに各スレッドに割り当て、負荷の高
いスレッドがデータ処理量の大きいタスクを実行することが頻繁に発生し、それによって
スレッドの詰まりが発生する頻度が高い」を解決した。スレッドの詰まりを引き起こす頻
度が高い理由は、データ処理タスクの数が実行可能タスクのスレッドの数と一致している
場合、データ処理タスクを直接またはランダムに各スレッドに割り当て、負荷の高いスレ
ッドがデータ処理量の大きいタスクを実行することが頻繁に発生するためであることが多
い。上記の原因を解決すれば、スレッド詰まりの発生頻度を減らす効果が得られる。この
効果を達成するためには、まず、割り当てられるスレッドの数を決定し、その後、データ
処理タスクの数を決定し、前記データ処理タスクの数と前記割り当てられるスレッドの数
との大小関係を決定し、前記データ処理タスクの数が前記割り当てられるスレッドの数以
下の場合、前記データ処理タスクの集合に対して、タスク割り当てステップを実行するこ
とができる。これにより、データ処理タスクの数がタスクを実行可能なスレッドの数と一
致している場合に、データ処理タスクの集合中の各データ処理タスクを各スレッドに割り
当てることにより、スレッド毎に1つのデータ処理タスクを実行させることができ、負荷
の高いスレッドがデータ処理量の大きいタスクを実行することの頻度を減少させるととも
に、スレッド詰まりの発生頻度を減少させることができる。
オプションとして、前記実行主体は、前記初期負荷情報集合、前記状態情報集合、および
前記優先度集合に基づいて、前記データ処理タスク集合中の各データ処理タスクを前記ス
レッドプール中のスレッドに割り当て、前記状態情報集合中の状態情報は、実行状態と未
実行状態とを含み、以下のステップを含むことができる。
第1に、前記データ処理タスクの数が前記割当先スレッドの数よりも大きいことに応答し
て、前記データ処理タスクの数と前記割当先スレッドの数との差を決定する。例えば、差
は2であってもよい。
第2に、上記スレッドプールを制御して、上記差分値と同じ数のスレッドを作成する。た
とえば、新規スレッドを2つ作成できる。
第3に、前記データ処理タスクの集合中のデータ処理タスクを、優先度が高い順に、前記
第二スレッドの集合と作成されたスレッドに割り当てる。ここで、前記データ処理タスク
の集合におけるデータ処理タスクの数は、前記第2スレッドの集合と作成されたスレッド
の数と同じであり、これにより、データ処理タスクごとに1スレッドに割り当てることが
できる。したがって、実装され、スレッドごとに1つのデータ処理タスクが実行される。
上記第1ステップから第3ステップは、本開示の実施形態の発明点の1つとして、背景技
術で言及されている技術問題4「データ処理タスクの数がタスクを実行可能なスレッドの
数よりも大きい場合、データ処理タスクを直接またはランダムに各スレッドに割り当て、
新規スレッドの方式を考慮せず、タスク処理の効率を低下させる」を解決した。タスク処
理の効率性が低下する理由は、データ処理タスクの数がタスクを実行可能なスレッドの数
よりも大きい場合、新規スレッドの作成方法を考慮せずに、データ処理タスクを直接また
はランダムに各スレッドに割り当てるためであることが多い。上記の原因を解決すれば、
タスク処理の効率化効果を実現することができる。この効果を達成するために、まず、デ
ータ処理タスクの数が前記割当先スレッドの数よりも大きく、前記データ処理タスクの数
と前記割当先スレッドの数との差を決定することができる。次に、前記スレッドプールを
制御して、前記差分値と同じ数のスレッドを作成する。最後に、前記データ処理タスクの
集合中のデータ処理タスクを、優先度が高い順に、前記第2スレッドの集合と作成された
スレッドに割り当てることができる。これにより、新規スレッドを作成することにより、
各データ処理タスクをそれぞれのスレッド上で実行することができ、タスク処理の効率が
向上する。
オプションとして、前記実行主体は、前記初期負荷情報集合、前記状態情報集合、および
前記優先度集合に基づいて、前記データ処理タスク集合中の各データ処理タスクを前記ス
レッドプール中のスレッドに割り当て、前記状態情報集合中の状態情報は、実行状態と未
実行状態とを含み、以下のステップを含むことができる。
第1ステップでは、前記データ処理タスクの数が前記割り当てられるスレッドの数よりも
大きいことに応答して、前記データ処理タスクの集合中のデータ処理タスクを、優先度が
高い順に前記第2スレッドの集合に割り当て、割り当て結果を得て、前記割り当て結果は
、未割り当てデータ処理タスクの集合を含む。データ処理タスクの数がスレッドの数より
も多いため、優先度の高いデータ処理タスクが先に実行される。
ステップ2では、未割当てデータ処理タスクの集合に対して、次のタスク再割当てステッ
プを実行する。
前記第2スレッド集合中の第2スレッドの実行が終了したか否かを検出し、前記第2スレ
ッド集合中に実行が終了した第2スレッドが存在することに応答して、実行が終了した第
2スレッドを再割当対象スレッドとして決定する。前記未割当データ処理タスクの集合の
中で最も優先度の高い未割当データ処理タスクを前記再割当待ちスレッドに割り当てる優
先度が最も高い未割当てデータ処理タスクを前記未割当てデータ処理タスク集合から除去
し、未割当てタスク除去後のデータ処理タスク集合が空であるかどうかを決定し、未割当
てタスク除去後のデータ処理タスク集合が空であることに応答して、タスク再割当てステ
ップの実行が終了する。未割当てタスク削除後のデータ処理タスク集合が空でないことに
応答して、未割当てタスク削除後のデータ処理タスク集合を未割当てデータ処理タスク集
合として、上記タスク再割当てステップを実行し続ける。これにより、相対的に優先度の
高いデータ処理タスクの実行が終了した後、このスレッドは未実行状態にあり、未割り当
てデータ処理タスクの集合の中で最も優先度の高い未割り当てデータ処理タスクをスレッ
ドに割り当てることができ、したがって、新しいスレッドを作成せずに、迅速なデータ処
理タスクの実行を実現することができる。
上記第1ステップから第2ステップは、本開示の実施形態の1つの発明点として、背景技
術で言及された技術的問題5「データ処理タスクの数が実行可能タスクのスレッドの数よ
り大きい場合、データ処理タスクを直接またはランダムに各スレッドに割り当て、データ
処理タスクのいくつかの待ち時間を長くする」を解決した。データ処理タスクの中には、
実行可能なタスクのスレッド数よりもデータ処理タスクの数が多い場合に、データ処理タ
スクを直接またはランダムに各スレッドに割り当てるための待ち時間が長くなるものがあ
る。このような理由を解決すれば、データ処理タスクの待ち時間を低減する効果が得られ
る。この効果を達成するために、まず、データ処理タスクの数が前記割り当てられるスレ
ッドの数より大きい場合、前記データ処理タスクの集合中のデータ処理タスクを、優先度
が高い順に前記第2スレッドの集合に割り当てることができる。割り当てられていないデ
ータ処理タスクに対して、タスク再割り当てステップを実行する。これにより、相対的に
優先度の高いデータ処理タスクの実行が終了した後、このスレッドは未実行状態にあり、
未割当てデータ処理タスクの集合の中で最も優先度の高い未割当てデータ処理タスクをこ
のスレッドに割り当てることができ、したがって、新しいスレッドを作成することなく、
データ処理タスクを迅速に実行し、データ処理タスクの待ち時間を低減する効果を実現す
ることができる。
ステップ205では、スレッドプールに割り当てられたデータ処理タスクのスレッド起動
を制御し、割り当てられたデータ処理タスクを実行する。
いくつかの実施形態では、前記実行主体は、前記スレッドプールに割り当てられたデータ
処理タスクのスレッド起動を制御し、割り当てられたデータ処理タスクを実行することが
できる。
あるいは、上記方法は、割り当てられたデータ処理タスクを実行する際の上記スレッドプ
ール内のスレッドの実行状態を検出することをさらに含むことができる。前記実行状態に
は、実行正常と実行異常が含まれる。そして、実行状態が異常を実行するスレッドで実行
されるデータ処理タスクに対して、タスクコピー処理を行い、レプリカデータ処理タスク
を得ることができる。その後、上記スレッドプールに未実行状態のスレッドが存在するか
どうかを判断することができる。前記スレッドプールに未実行状態のスレッドが存在する
ことに応答して、前記レプリカデータ処理タスクを前記スレッドプールに未実行状態のス
レッドに割り当てて実行する前記スレッドプールに未実行状態のスレッドが存在しないこ
とに応答して、前記スレッドプール作成スレッドを制御し、前記レプリカデータ処理タス
クを作成したスレッドに割り当てて実行する。
さらに図3を参照すると、上述した各図に示された方法の実現として、本開示は、図2
示された方法の実施形態に対応する分散型異性体システムに基づくタスクインテリジェン
ト処理装置のいくつかの実施形態を提供し、この装置は、具体的には様々な電子機器に適
用することができる。
【0012】
図3に示すように、いくつかの実施形態の分散型異機種混在システムに基づくタスクイン
テリジェント処理装置300は、第1制御部301、入力部302、取得部303、割当
部304、および第2制御部305を含む。ここで、第1制御部301は、前記タスク受
け渡し端を制御してデータ処理タスク受け渡し処理を行い、データ処理タスク集合を得る
ように構成され、入力部302は、前記データ処理タスク集合を前記事前トレーニングさ
れた優先度決定モデルに入力して優先度集合を得るように構成され、取得部303は、上
記スレッドプール内の各スレッドの初期負荷情報及び状態情報を取得し、初期負荷情報集
合及び状態情報集合を得るように構成され、割当部304は、前記初期負荷情報集合、前
記状態情報集合及び前記優先度集合に基づいて、前記データ処理タスク集合中の各データ
処理タスクを前記スレッドプール中のスレッドに割り当てるように構成され、前記スレッ
ドプール中の各スレッドにはデータ処理タスクが割り当てられ、第2制御部305は、上
記スレッドプールに割り当てられたデータ処理タスクのスレッド起動を制御し、割り当て
られたデータ処理タスクを実行するように構成される。
装置300に記載されたユニットは、図2を参照して説明された方法の各ステップに対応
していることが理解される。したがって、上述の方法について説明した操作、特徴、およ
び生成された有益な効果は、装置300および装置300に含まれるユニットにも同様に
適用され、ここではこれ以上説明しない。
【0013】
以下、図4を参照すると、本開示のいくつかの実施形態を実現するのに適した電子機器(
例えば、図1の計算装置101)400の構造概略図が示されている。図4に示す電子機
器は単なる一例であり、本開示の実施形態の機能及び使用範囲に何ら制限を与えるもので
はない。
図4に示すように、電子機器400は、読取り専用メモリ(ROM)402に格納された
プログラム、または記憶装置408からランダムアクセスメモリ(RAM)403にロー
ドされたプログラムに従って様々な適切な動作および処理を実行することができる処理装
置(例えば中央プロセッサ、グラフィックプロセッサなど)401を含むことができる。
RAM403には、電子機器400の動作に必要な各種プログラムやデータも格納されて
いる。処理装置401、ROM402、およびRAM403は、バス404を介して互い
に接続されている。バス404には、入出力(I/O)インタフェース405も接続され
ている。
一般に、I/Oインタフェース405には、タッチスクリーン、タッチパッド、キーボー
ド、マウス、カメラ、マイク、加速度計、ジャイロスコープなどを含む入力装置406、
液晶ディスプレイ(LCD)、スピーカ、バイブレータなどを含む出力装置407、磁気
テープ、ハードディスクなどを含む記憶装置408、および通信装置409を含む。通信
装置409は、電子装置400が他の装置とデータを交換するために無線または有線通信
することを可能にすることができる。図4は、様々な装置を備えた電子機器400を示し
ているが、図示された装置のすべてを実施または備える必要はないことが理解されるべき
である。代替的に、より多くまたはより少ない装置を実装または備えることができる。図
4に示す各ブロックは、1つの装置を表してもよく、必要に応じて複数の装置を表しても
よい。
特に、本開示のいくつかの実施形態によれば、フローチャートを参照して上述したプロセ
スをコンピュータソフトウェアプログラムとして実装することができる。例えば、本開示
のいくつかの実施形態は、フローチャートに示される方法を実行するためのプログラムコ
ードを含むコンピュータ可読媒体上に担持されたコンピュータプログラムを含むコンピュ
ータプログラム製品を含む。そのようないくつかの実施形態では、コンピュータプログラ
ムは、通信装置409を介してネットワークからダウンロードされてインストールされて
もよいし、記憶装置408からインストールされてもよいし、ROM402からインスト
ールされてもよい。コンピュータプログラムが処理装置401によって実行されると、本
開示のいくつかの実施形態の方法において定義された上述の機能が実行される。
図1
図2
図3
図4