引き続き
図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に
示された方法の実施形態に対応する分散型異性体システムに基づくタスクインテリジェン
ト処理装置のいくつかの実施形態を提供し、この装置は、具体的には様々な電子機器に適
用することができる。