【手続補正書】
【提出日】平成25年10月30日(2013.10.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも一つの処理エンジン（２４）によってタスクを実行するために使用するコンピュータによって実行される方法であって、
少なくとも一つの処理エンジン（２４）を有する少なくとも一つのプロセッサ（１４）に関連するタスク配分メトリックを決定するステップであって、前記少なくとも一つの処理エンジン（２４）が各々が一又は複数のスレッド（３１）を有する複数の処理コアを有し、該タスクが複数のサブタスクを含む、決定するステップと、
前記タスクを前記一又は複数のスレッド（３１）のうちの一つに割り当て、
タスクが（ａ）負荷バランス方法か（ｂ）コアアフィニティ方法のいずれかを用いて実行されるべきであるかを表示するタスク配分メトリックに従ってタスク割当を実行するステップと、
前記タスク配分メトリックが、前記少なくとも一つのプロセッサ（１４）に関連する負荷バランスが第１閾値を下回ることを示す場合、負荷バランス方法を実行するステップであって、該負荷バランス方法は、
前記少なくとも一つの処理エンジン（２４）によって、前記タスクが再入可能タスクであるか否かを決定するステップであって、前記タスクが前記少なくとも一つの処理エンジン（２４）に関連する前記一又は複数のスレッド（３１）のうちの任意の一つに以前割り当てられた場合に前記タスクが再投入可能タスクである、ステップを含むステップと、
前記タスクが再入可能タスクである場合、前記少なくとも一つの処理エンジン（２４）によって、停止基準が満たされたか否かを決定するステップであって、該停止基準は該タスクに従属するいくつかまたはすべてのサブタスクが完了したかどうかを含むステップと、を含み、
前記停止基準が満たされておらず、前記タスクが再入可能タスクである場合に、前記少なくとも一つの処理エンジン（２４）に関連するタスクのキュー（２６）に前記タスクを再入させた後に前記一または複数のスレッドのうつの一つを解放するステップと、
前記タスク配分メトリックが、前記少なくとも一つのプロセッサ（１４）に関連するコア（２９）アフィニティが第２閾値を下回ることを示す場合、コアアフィニティ方法を実行するステップであって、該コアアフィニティ方法は、
前記少なくとも一つの処理エンジン（２４）によって、前記タスクがメインタスクであるか否かを決定するステップであって、メインタスクとは少なくとも一つのサブタスクを有するが他のタスクのサブタスクでないステップと、
前記タスクがメインタスクでない場合、前記少なくとも一つの処理エンジン（２４）によって前記停止基準が満たされたか否かを決定するステップと、
前記停止基準が満たされており、前記タスクがメインタスクでない場合、前記タスクの親タスクを前記一又は複数のスレッド（３１）の前記同じ一つに割り当てるステップとを含む、
を含む方法。
【請求項２】
前記タスクが再入可能タスクでない場合に、前記タスクは複数のサブタスクに分解可能であるか否かを決定し、前記タスクが分解可能である場合に、前記少なくとも一つの処理エンジン（２４）によって前記タスクの複数のサブタスクを前記キュー（２６）に挿入することをさらに含む、請求項１に記載の方法。
【請求項３】
前記停止基準が満たされた場合に、前記少なくとも一つの処理エンジン（２４）によって少なくとも一つの蓄積タスクを実行し、前記親タスクを前記一又は複数のスレッド（３１）のうちの前記一つに割り当てられた後で、前記親タスクに関連する少なくとも一つの蓄積タスクを実行することをさらに含む、請求項１または２に記載の方法。
【請求項４】
前記タスクがメインタスクでない場合に前記停止基準が満たされたか否かを決定するステップが、前記タスクに従属するマルチプルサブタスクのそれぞれが完了したか否かを決定することを含み、前記停止基準が満たされておらず、前記タスクがメインタスクでない場合、前記タスクをタスクのキュー（２６）に再入させた後で、前記タスクの状態を完了に設定し、前記一又は複数のスレッド（３１）のうちの前記一つを解放することをさらに含む、請求項１乃至３のいずれか１項に記載の方法。
【請求項５】
前記タスクがメインタスクか否かを決定する前に、前記タスクが複数のサブタスクに分割可能であるか否かを決定し、前記タスクが分割可能である場合、前記タスクの前記複数のサブタスクをタスクのキュー（２６）に挿入することをさらに含む、請求項４に記載の方法。
【請求項６】
タスクの実行において使用するコンピューティング装置であって、前記コンピューティング装置は、
タスクのキュー（２６）を記憶するメモリ（１２）装置であって、該タスクが複数のサブタスクを含む装置と、
前記メモリ（１２）装置に結合し、それぞれが一又は複数のスレッドを有する複数の処理コアを有する少なくとも一つの処理エンジン（２４）を含むプロセッサ（１４）であって、前記少なくとも一つの処理エンジン（２４）はタスクマネージャ（２７）とキューマネージャ（２５）を含み、前記キューマネージャ（２５）はタスクの前記キュー（２６）を管理するように構成されており、前記タスクマネージャ（２７）は前記プロセッサ（１４）に関連するタスク配分メトリックを決定し、前記タスクを前記一又は複数のスレッド（３１）のうちの前記一つに割り当て、タスクが（ａ）負荷バランス方法か（ｂ）コアアフィニティ方法のいずれかを用いて実行されるべきであるかを表示するタスク配分メトリックに従ってタスク割当を実行するように構成されている前記プロセッサ（１４）を含み、
前記タスクマネージャ（２７）は、前記タスク配分メトリックが、前記プロセッサ（１４）に関連する負荷バランスが第１閾値を下回ることを示す場合に、負荷バランス方法を実行し、
該負荷バランスは該タスクが再入可能タスクであるか否かを決定し、ここで、前記タスクが前記少なくとも一又は複数のスレッド（３１）のうちの任意の一つに以前割り当てられた場合に前記タスクが再投入可能タスクであり、前記タスクが再入可能タスクである場合、停止基準が満たされたか否かを決定し、該停止基準は該タスクに従属したいくつかまたはすべての該サブタスク完了したか否かの決定を含み、該停止基準が満たされておらず、前記タスクが再入可能タスクである場合に、前記タスクをタスクのキュー（２６）に前記キューマネージャ（２５）を介して再入させた後に前記一または複数のスレッドのうつの一つを解放し、
前記タスクマネージャ（２７）は、タスク配分メトリックが、前記プロセッサ（１４）に関連するコア（２９）アフィニティが第２閾値を下回ることを示す場合、コアアフィニティ方法を実行し、該コアアフィニティ方法は、前記タスクがメインタスクであるか否かを決定し、メインタスクとは少なくとも一つのサブタスクを有するが他のタスクのサブタスクでない場合であり、前記タスクがメインタスクでない場合に、前記停止基準が満たされたか否かを決定し、前記停止基準が満たされており、前記タスクがメインタスクでない場合に、前記タスクに関連する親タスクを前記一又は複数のスレッド（３１）の前記同じ一つに割り当てる、コンピューティング装置。
【請求項７】
前記タスクマネージャ（２７）がさらに、前記タスクが再入可能タスクでない場合に、前記タスクが複数のサブタスクに分解可能であるか否かを決定するようにさらに構成されており、前記タスクマネージャ（２７）がさらに、前記タスクが分解可能である場合に、前記キューマネージャ（２５）を介して、前記タスクの前記複数のサブタスクを前記キュー（２６）に挿入するように構成されている、請求項６に記載のコンピューティング装置。
【請求項８】
前記タスクマネージャ（２７）がさらに、前記複数のサブタスクのうちの一つを前記一又は複数のスレッド（３１）のうちの２番目のスレッドに割り当てて、前記複数のサブタスクのうちの前記一つが再入可能タスクであるか否かを決定するように構成されており、
前記タスクマネージャ（２７）がさらに、前記停止基準が満たされた時に、少なくとも一つの蓄積タスクを実行するように構成されている、請求項６又は７に記載のコンピューティング装置。
【請求項９】
前記タスクマネージャ（２７）がさらに、前記タスクがメインタスクであるか否かを決定する前に、前記タスクが複数のサブタスクに分解可能であるか否かを決定するように構成されており、前記タスクマネージャ（２７）がさらに、前記タスクが分解可能である場合に、前記キューマネージャ（２５）を介して前記タスクの前記複数のサブタスクを前記キュー（２６）に挿入するように構成されており、前記タスクマネージャ（２７）がさらに、前記親タスクを前記同じ一又は複数のスレッド（３１）のうちの前記一つに割り当てられた後で、前記親タスクに関連する少なくとも一つの蓄積タスクを実行するように構成されている、請求項６に記載のコンピューティング装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
本明細書では、ベストモードを含む様々な実施形態を開示する実施例を使用しているため、当業者は任意の装置やシステムの作成ならびに使用、及び組込まれた任意の方法の実行を含め、実施形態を実行することができる。特許性を有する範囲は、特許請求の範囲によって規定され、当業者であれば想起できる他の実施例を含みうる。このような他の実施例は、それらが特許請求の範囲の文字言語から逸脱しない構造要素を有する場合、あるいは、それらが特許請求の範囲の文字言語との有意でない相違を有する等価な構造要素を含んでいる場合は、特許請求の範囲の範囲内にあることを意図している。
また、本願は以下に記載する態様を含む。
（態様１）
少なくとも一つの処理エンジン（２４）によってタスクを実行するために使用するコンピュータによって実行される方法であって、
少なくとも一つの処理エンジン（２４）を有する少なくとも一つのプロセッサ（１４）に関連するタスク配分メトリックを決定するステップであって、前記少なくとも一つの処理エンジン（２４）が一又は複数のスレッド（３１）を有する、決定するステップと、
前記タスクを前記一又は複数のスレッド（３１）のうちの一つに割り当てるステップと、
前記タスク配分メトリックが、前記少なくとも一つのプロセッサ（１４）に関連する負荷バランスが第１閾値を下回ることを示す場合、前記少なくとも一つの処理エンジン（２４）によって、前記タスクが前記少なくとも一つの処理エンジン（２４）に関連する前記一又は複数のスレッド（３１）のうちの任意の一つに以前割り当てられた再入可能タスクであるか否かを決定するステップと、
前記タスクが再入可能タスクである場合、前記少なくとも一つの処理エンジン（２４）によって、停止基準が満たされたか否かを決定するステップと、
前記停止基準が満たされておらず、前記タスクが再入可能タスクである場合に、前記少なくとも一つの処理エンジン（２４）に関連するタスクのキュー（２６）に前記タスクを再入させるステップと、
前記タスク配分メトリックが、前記少なくとも一つのプロセッサ（１４）に関連するコア（２９）アフィニティが第２閾値を下回ることを示す場合、前記少なくとも一つの処理エンジン（２４）によって、前記タスクがメインタスクであるか否かを決定するステップと、
前記タスクがメインタスクでない場合、前記少なくとも一つの処理エンジン（２４）によって停止基準が満たされたか否かを決定するステップと、
前記停止基準が満たされており、前記タスクがメインタスクでない場合、前記タスクに関連する親タスクを前記一又は複数のスレッド（３１）の前記一つにプルするステップ
を含む方法。
（態様２）
前記タスクが再入可能タスクである場合に前記停止基準が満たされたか否かを決定するステップが、前記タスクに従属するマルチプルサブタスクのうちの少なくとも一つが完了したか否かを決定し、前記タスクをタスクのキュー（２６）に再入させた後で、前記一又は複数のスレッド（３１）のうちの前記一つを解放することを含む、態様１に記載の方法。
（態様３）
前記タスクが再入可能タスクでない場合に、前記タスクは複数のサブタスクに分解可能であるか否かを決定し、前記タスクが分解可能である場合に、前記少なくとも一つの処理エンジン（２４）によって前記タスクの複数のサブタスクを前記キュー（２６）に挿入することをさらに含む、態様１又は２に記載の方法。
（態様４）
前記停止基準が満たされた場合に、前記少なくとも一つの処理エンジン（２４）によって少なくとも一つの蓄積タスクを実行し、前記親タスクを前記一又は複数のスレッド（３１）のうちの前記一つにプルした後で、前記親タスクに関連する少なくとも一つの蓄積タスクを実行することをさらに含む、態様１乃至３のいずれか１項に記載の方法。
（態様５）
前記タスクがメインタスクでない場合に前記停止基準が満たされたか否かを決定するステップが、前記タスクに従属するマルチプルサブタスクのそれぞれが完了したか否かを決定することを含み、前記停止基準が満たされておらず、前記タスクがメインタスクでない場合、前記タスクをタスクのキュー（２６）に再入させた後で、前記タスクの状態を完了に設定し、前記一又は複数のスレッド（３１）のうちの前記一つを解放することをさらに含む、態様１乃至４のいずれか１項に記載の方法。
（態様６）
前記タスクがメインタスクか否かを決定する前に、前記タスクが複数のサブタスクに分割可能であるか否かを決定し、前記タスクが分割可能である場合、前記タスクの前記複数のサブタスクをタスクのキュー（２６）に挿入することをさらに含む、態様５に記載の方法。
（態様７）
タスクの実行において使用するコンピューティング装置であって、前記コンピューティング装置は、
タスクのキュー（２６）を記憶するメモリ（１２）装置と、
前記メモリ（１２）装置に結合し、一又は複数のスレッドを有する少なくとも一つの処理エンジン（２４）を含むプロセッサ（１４）であって、前記少なくとも一つの処理エンジン（２４）はタスクマネージャ（２７）とキューマネージャ（２５）を含み、前記キューマネージャ（２５）はタスクの前記キュー（２６）を管理するように構成されており、前記タスクマネージャ（２７）は前記プロセッサ（１４）に関連するタスク配分メトリックを決定し、前記タスクを前記一又は複数のスレッド（３１）のうちの前記一つに割り当てるように構成されている前記プロセッサ（１４）を含み、
前記タスクマネージャ（２７）は、前記タスク配分メトリックが、前記プロセッサ（１４）に関連する負荷バランスが第１閾値を下回ることを示す場合に、前記タスクが、前記一又は複数のスレッド（３１）のうちの任意の一つに以前割り当てられた再入可能タスクであるか否かを決定し、前記タスクが再入可能タスクである場合、停止基準が満たされたか否かを決定し、停止基準が満たされておらず、前記タスクが再入可能タスクである場合に、前記タスクをタスクのキュー（２６）に前記キューマネージャ（２５）を介して再入させるように構成されており、
前記タスクマネージャ（２７）は、タスク配分メトリックが、前記プロセッサ（１４）に関連するコア（２９）アフィニティが第２閾値を下回ることを示す場合に、前記タスクがメインタスクであるか否かを決定し、前記タスクがメインタスクでない場合に、停止基準が満たされたか否かを決定し、停止基準が満たされており、前記タスクがメインタスクではない場合に、前記タスクに関連する親タスクを一又は複数のスレッド（３１）のうちの前記一つにプルするように構成されている、コンピューティング装置。 
（態様８）
前記タスクマネージャ（２７）がさらに、前記タスクが再入可能タスクでない場合に、前記タスクが複数のサブタスクに分解可能であるか否かを決定するようにさらに構成されており、前記タスクマネージャ（２７）がさらに、前記タスクが分解可能である場合に、前記キューマネージャ（２５）を介して、前記タスクの前記複数のサブタスクを前記キュー（２６）に挿入するように構成されている、態様７に記載のコンピューティング装置。
（態様９）
前記タスクマネージャ（２７）がさらに、前記複数のサブタスクのうちの一つを前記一又は複数のスレッド（３１）のうちの２番目のスレッドに割り当てて、前記複数のサブタスクのうちの前記一つが再入可能タスクであるか否かを決定するように構成されており、
前記タスクマネージャ（２７）がさらに、前記停止基準が満たされた時に、少なくとも一つの蓄積タスクを実行するように構成されている、態様７又は８に記載のコンピューティング装置。
（態様１０）
前記タスクマネージャ（２７）がさらに、前記タスクがメインタスクであるか否かを決定する前に、前記タスクが複数のサブタスクに分解可能であるか否かを決定するように構成されており、前記タスクマネージャ（２７）がさらに、前記タスクが分解可能である場合に、前記キューマネージャ（２５）を介して前記タスクの前記複数のサブタスクを前記キュー（２６）に挿入するように構成されており、前記タスクマネージャ（２７）がさらに、前記親タスクを前記一又は複数のスレッド（３１）のうちの前記一つにプルした後で、前記親タスクに関連する少なくとも一つの蓄積タスクを実行するように構成されている、態様７に記載のコンピューティング装置。