JP2017535212A - タスクの分配経路を決定する方法、デバイス、及び、システム - Google Patents
タスクの分配経路を決定する方法、デバイス、及び、システム Download PDFInfo
- Publication number
- JP2017535212A JP2017535212A JP2017534884A JP2017534884A JP2017535212A JP 2017535212 A JP2017535212 A JP 2017535212A JP 2017534884 A JP2017534884 A JP 2017534884A JP 2017534884 A JP2017534884 A JP 2017534884A JP 2017535212 A JP2017535212 A JP 2017535212A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- task
- processing elements
- elements
- identified
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/501—Performance criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5013—Request control
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
- Small-Scale Networks (AREA)
Abstract
本発明は、タスクの分配経路を決定する方法であって、タスクを処理することができる1つ以上の処理要素を、複数の処理要素から識別するステップと、識別された1つ以上の処理要素と通信する1つ以上の経路を識別するステップと、識別された処理要素のうちの1つ以上と識別された経路とのサイクル長を予測するステップと、識別された処理要素から好適な処理要素を選択するとともに、識別された経路から好適な経路を選択するステップと、を備えている方法を提供する。本発明はまた、デバイス及びシステムに関する。【選択図】図1
Description
[技術分野]
本発明は、1つ以上のバスと複数の処理要素とを備えているデバイスにおいて、タスクの分配経路を決定する方法に関する。さらに、本発明は、分配経路を決定するように構成されているデバイス及びシステムに関する。
[背景技術]
近頃、急速に発展している通信やコンピュータ技術によって、大きなデータ量が利用可能になっている。異なる種類の処理タスクを効率的に実行するように適合されている、高度に専門化された処理要素が開発されてきた一方で、制御要素から適切な処理要素へ非効率的にタスクが転送されているため、多くのリソースが浪費されている。
本発明は、1つ以上のバスと複数の処理要素とを備えているデバイスにおいて、タスクの分配経路を決定する方法に関する。さらに、本発明は、分配経路を決定するように構成されているデバイス及びシステムに関する。
[背景技術]
近頃、急速に発展している通信やコンピュータ技術によって、大きなデータ量が利用可能になっている。異なる種類の処理タスクを効率的に実行するように適合されている、高度に専門化された処理要素が開発されてきた一方で、制御要素から適切な処理要素へ非効率的にタスクが転送されているため、多くのリソースが浪費されている。
既知のハードウェア/ソフトウェアソリューションのうちのいくつかは、いろいろな方向への改善を与えてくれるものもある。しかしながら、それでもなお、上述の基準のいずれも、または、少なくともほとんどを、改善してはいない。したがって、多数の処理要素でのタスクの処理を最適化するために改善されたハードウェアまたはソフトウェアソリューションが、依然として必要である。
[発明の概要]
したがって、本発明の目的は、従来技術の上述の問題のうちのいくつかを克服する方法、デバイス、及び、サーバーシステムを提供することである。
[発明の概要]
したがって、本発明の目的は、従来技術の上述の問題のうちのいくつかを克服する方法、デバイス、及び、サーバーシステムを提供することである。
具体的には、本発明の利点は、添付の独立請求項によって実現される。本発明のさらなる側面、実施形態、及び、特徴は、添付の従属請求項及び明細書において規定されており、当該利点を達成することにも寄与している。
本発明の一実施形態によれば、タスクの分配経路を決定する方法は、
タスクを処理することができる1つ以上の処理要素を、複数の処理要素から識別するステップと、
識別された1つ以上の処理要素と通信する1つ以上の経路を識別するステップと、
識別された処理要素のうちの1つ以上と、識別された経路とのサイクル長を予測するステップと、
識別された処理要素から好適な処理要素を選択するとともに、識別された経路から好適な経路を選択するステップと、
を備えている。
タスクを処理することができる1つ以上の処理要素を、複数の処理要素から識別するステップと、
識別された1つ以上の処理要素と通信する1つ以上の経路を識別するステップと、
識別された処理要素のうちの1つ以上と、識別された経路とのサイクル長を予測するステップと、
識別された処理要素から好適な処理要素を選択するとともに、識別された経路から好適な経路を選択するステップと、
を備えている。
本発明は、サイクル長予測に基づいて、タスクの最速の処理をもたらす特定の経路と処理要素とが選択される、という考えに基づいている。これにより、本発明の方法は、処理要素との通信に不必要に長い経路を使用することによって、または、理想的には所与のタスクの処理には適してはいない処理要素を使用することによって生じてしまう、リソースの浪費を回避する。
本発明は、特に、少なくとも1つの処理要素に対して、この処理要素と通信する少なくとも2つの経路を使用可能であるバスシステムを用いて実行可能である。特に、本発明は、少なくとも2つの経路の転送時間が異なる場合に有利である。
バスのいくつかの要素は、制御要素と処理要素との両方として機能することができる。例えば、第1制御要素は、タスクを第2制御要素に送信可能であり、よって、第2制御要素は処理要素として機能する。
本発明の一実施形態によれば、1つ以上のバスへのアクセスは、時分割多元接続(time division multiple access:TDMA)方式を用いて管理されている。簡易なTDMA方式では、バスのアクティブな要素は、一定の時間増分で変化する。このようにして、どの要素がいつバスへのアクセスが可能になるのかが、予め判定される。本発明の状況において、これには、1つ以上のバスの将来の可用性に関する正確な予測を行うことができるという利点がある。
本発明の別の実施形態によれば、1つ以上のバスへのアクセスは、トークンパッシング(token passing)方式を用いて管理されている。特に、バスの最初の要素がバスへのアクセスを終了したら、最初の要素から次の要素にアクセストークンが渡され得る。トークンパッシング方式は、使用されていないタイムスロットが回避されるので、簡易なTDMA方式よりも効率的であり得る。一方で、将来のバス可用性の予測は、より複雑になる可能性がある。このため、制御要素は、バスで実行される現在及び将来のタスクのテーブルを保持することができる。これにより、将来のバス可用性の正確な予測と、1つ以上のバスを最も効率的に使用するような処理要素及び転送経路の選択とが可能になる。
本発明の別の実施形態によれば、1つ以上のバスが、トークンリングとして構成されている、つまり、要素に隣接するものは、この要素に物理的に隣接している。
本発明はまた、1つ以上のバスへのアクセスを制御する他のプロトコルとともに使用可能である。これらは、静的及び動的アクセス制御方式、例えば、スケジューリング方法及びランダムアクセス方法を含み得る。
本発明はまた、1つ以上のバスへのアクセスを制御する他のプロトコルとともに使用可能である。これらは、静的及び動的アクセス制御方式、例えば、スケジューリング方法及びランダムアクセス方法を含み得る。
本発明は、異なる種類のトポロジ、特に、線形バス、リングバス、分岐トポロジ、星型ネットワーク、ツリー型トポロジとともに使用可能である。いくつかの実施形態において、本発明の方法は、完全に接続された網状型と併せて使用することさえもできる。
タスクは、1つ以上の命令とデータとを備え得る。
タスクを処理することができる1つ以上の処理要素の識別は、例えば、各処理要素がどの処理能力を有するか、という情報を提供する検索テーブルを使用することによって行われ得る。例えば、グラフィック処理ユニット(graphical processing unit:GPU)を備えた所与の処理要素の場合、このテーブルは、この処理要素が、あるグラフィック処理命令に関係するあるタスクを処理可能であるという情報を備えることもできる。
タスクを処理することができる1つ以上の処理要素の識別は、例えば、各処理要素がどの処理能力を有するか、という情報を提供する検索テーブルを使用することによって行われ得る。例えば、グラフィック処理ユニット(graphical processing unit:GPU)を備えた所与の処理要素の場合、このテーブルは、この処理要素が、あるグラフィック処理命令に関係するあるタスクを処理可能であるという情報を備えることもできる。
識別された1つ以上の処理要素と通信する1つ以上の経路の識別は、所与の処理要素が、どのバスを介してこのタスクの処理を要求している制御要素に接続されるのかを、テーブルで検索することによって実行され得る。この所与の処理要素との通信に使用可能なバスが1つしかないとしても、制御要素がこの処理要素と通信可能な方向として、2方向が使用可能なこともある。この場合、例えば、リングバスを時計回り方向または反時計回り方向で処理要素との通信を行う2つの使用可能な経路が存在し得る。さらに、バスは分岐を備えていてもよく、これによっても、所与の処理要素との通信に使用可能な経路は複数になる。
識別された処理要素のうちの1つ以上と識別された経路とのサイクル長の予測は、2つの検索テーブル、つまり、制御要素と処理要素との間の異なる経路の経路長を保存する第1検索テーブルと、異なるタスクと異なる処理要素との予想処理時間についての情報を保存する第2検索テーブルとを使用していてもよい。例えば、第2検索テーブルは、あるグラフィック処理命令は、第1処理要素で処理するには10クロックサイクルを要するが、第2処理要素で処理するには8クロックサイクルしか要しないという情報を備えることも可能である。
本発明の他の実施形態において、種々の処理要素での異なる種類のタスクの予想処理時間についての情報を備えている検索テーブルは、1つしか存在しない。例えば、このようなテーブルは、ある命令をある処理要素で行う予想処理時間を、この命令に対する入力データ量によって処理時間がどのように変化するのかについての更なる情報とともに備えることができる。
言い換えると、サイクル長は、以下の情報の1つ以上に基づいて予測可能であり、その情報とは、バスがどのように構成されているかについての情報;、現時点で、バス及びまたは処理要素が、どの状態または位置にあるか;、どれくらいのデータ量を有するどのタスクが、処理されることを必要としているかという情報;、所与のタスクについて、使用可能な処理要素への理想的な分配、換言すれば、個々の処理要素及び処理ステップに跨ったSIMD、がなされるよう、該タスクが、1つのベクトルに保存可能である量よりも多いデータセットを備えているのかどうかについての情報、である。
いくつかの場合において、予測は正確な計算に基づいていてもよい。他の場合において、予測は発見に基づいていてもよく、本当の経路時間または処理時間の概算のみであってもよい。
本発明の一実施形態によれば、識別された処理要素と識別された経路とのサイクル長は、
命令と入力データとを識別された経路にある識別された処理要素に転送する、予測された順方向転送時間、
識別された経路にある処理要素からの出力データを転送する、予測された戻り方向転送時間、及び/または、
識別された処理要素でタスクを処理する、予測された処理時間、
に基づいて予測される。
命令と入力データとを識別された経路にある識別された処理要素に転送する、予測された順方向転送時間、
識別された経路にある処理要素からの出力データを転送する、予測された戻り方向転送時間、及び/または、
識別された処理要素でタスクを処理する、予測された処理時間、
に基づいて予測される。
予測された順方向転送時間、及び、予測された戻り方向転送時間は、入力データ全体が処理要素に到着する時間を含んでいてもよい。
本発明の一実施形態によれば、予測されたサイクル長は、予測された順方向転送時間、予測された戻り方向転送時間、及び、予測された処理時間の合計である。
本発明の一実施形態によれば、予測されたサイクル長は、予測された順方向転送時間、予測された戻り方向転送時間、及び、予測された処理時間の合計である。
本実施形態には、予測されたサイクル長は、算出が特に高速で効率的であるという利点がある。いくつかの実施形態において、予測された順方向転送時間、予測された戻り方向転送時間、及び、予測された処理時間の合計は、加重和であってもよい。このことは、これらの予測された時間のうちのいくつかしか正確に計算できない場合に、特に有用になり得る。この場合、正確に計算された時間に、より高い重みづけが与えられる。
本発明の一実施形態によれば、サイクル長の予測は、
1つ以上のバスの、現在の可用性及び/または稼働と、
識別された1つ以上の処理要素の、現在の可用性及び/または稼働と、
のうちの少なくとも1つに基づいている。
1つ以上のバスの、現在の可用性及び/または稼働と、
識別された1つ以上の処理要素の、現在の可用性及び/または稼働と、
のうちの少なくとも1つに基づいている。
バス及び処理要素の現在の可用性及び/または稼働を考慮すると、経路時間と処理時間とを、さらにより精密に予測することが可能になる。
本発明の一実施形態によれば、本方法はさらに、
選択された処理要素でのタスクの処理を開始し、
タスクの予測されたサイクル長を更新して、タスクの予測された残りのサイクル長を取得し、
予測された残りのサイクル長が、異なる処理要素でのタスクの処理における予測されたサイクル長よりも長いと判定された場合は、選択された処理要素でのタスクの処理を取り消し、
タスクをその異なる処理要素に割り当てる。
本発明の一実施形態によれば、本方法はさらに、
選択された処理要素でのタスクの処理を開始し、
タスクの予測されたサイクル長を更新して、タスクの予測された残りのサイクル長を取得し、
予測された残りのサイクル長が、異なる処理要素でのタスクの処理における予測されたサイクル長よりも長いと判定された場合は、選択された処理要素でのタスクの処理を取り消し、
タスクをその異なる処理要素に割り当てる。
タスクの予測されたサイクル長の更新により、タスクの予測された残りのサイクル長を取得することには、タスクの処理の開始後にしか入手可能にならない更なる情報を考慮することができるという利点がある。例えば、あるタスクの処理を既に始めた処理要素について、予想通りに処理速度が低下したという情報が入手可能になった場合、この処理要素でのタスクの処理を取り消して、そのタスクを異なる処理要素に委ねることが決定されてもよい。
本発明のこの実施形態は、所与の処理要素でのタスクの処理が予測よりもはるかに長い時間を要し、このことが、この処理要素での処理が間違って予測されていたことを示す可能性がある場合に、その処理が取り消され得るという更なる利点がある。
本発明の他の実施形態において、制御要素が、選択された処理要素が、優先順位がより高いタスクを処理するために必要であると判断した場合に、該処理要素でのタスクの処理が取り消され得る。このことが特に関連する可能性があるのは、将来発生しそうなタスクが予測された場合である。
本発明のさらに好適な実施形態において、所与の処理要素でのタスクの処理が予測よりも長い時間を要したという情報は、テーブルに保存され、同様のタスクに対する処理要素の予測時に考慮される。特に、あるタスクの処理が所与の処理要素において失敗した場合、この情報はテーブルに保存され得る。極端な場合では、ある種のタスクの処理が所与の処理要素で繰り返し失敗した場合には、この処理要素が、たとえ該処理要素が使用可能であると示していても、同様のタスクがこの処理要素で処理されるべきではないと判定され得る。
本発明の一実施形態によれば、本方法はさらに、
タスクの処理のしきい値時間を決定し、
選択された処理要素でのタスクの処理を開始し、
タスクの実際の処理時間がしきい値時間よりも長いかどうかを確認し、
実際の処理時間がしきい値時間よりも長い場合は、タスクの処理を取り消し、
そのタスクを異なる処理要素に割り当てる。
タスクの処理のしきい値時間を決定し、
選択された処理要素でのタスクの処理を開始し、
タスクの実際の処理時間がしきい値時間よりも長いかどうかを確認し、
実際の処理時間がしきい値時間よりも長い場合は、タスクの処理を取り消し、
そのタスクを異なる処理要素に割り当てる。
本実施形態は、あるタスクの実行が予想よりも大幅に長い時間を要しており、これが処理の失敗が原因である可能性があるということにより、そのタスクの実行が取り消されるべき場合に、簡単な決定手法を提供する。
本発明の別の実施形態によれば、
1つ以上のバスと、
1つ以上の制御要素と、
複数の処理要素と、を備えており、
制御要素のうちの少なくとも1つは、
複数の処理要素から、タスクを処理することができる1つ以上の処理要素を識別することと、
識別された1つ以上の処理要素と通信する1つ以上の経路を識別することと、
識別された処理要素のうちの1つ以上と識別された経路とのサイクル長を予測することと、
識別された処理要素から好適な処理要素を選択するとともに、識別された経路から好適な経路を選択することと、
に基づいて、タスクの分配経路を決定するように適合されている、デバイスが提供される。
1つ以上のバスと、
1つ以上の制御要素と、
複数の処理要素と、を備えており、
制御要素のうちの少なくとも1つは、
複数の処理要素から、タスクを処理することができる1つ以上の処理要素を識別することと、
識別された1つ以上の処理要素と通信する1つ以上の経路を識別することと、
識別された処理要素のうちの1つ以上と識別された経路とのサイクル長を予測することと、
識別された処理要素から好適な処理要素を選択するとともに、識別された経路から好適な経路を選択することと、
に基づいて、タスクの分配経路を決定するように適合されている、デバイスが提供される。
本発明の一実施形態によれば、制御要素のうちの少なくとも1つは、
命令と入力データとを処理要素に転送する、予測された順方向転送時間、
処理要素からの出力データを転送する、予測された戻り方向転送時間、及び/または、
処理要素でタスクを処理する、予測された処理時間、
に基づいて、サイクル長を予測するように適合されている。
命令と入力データとを処理要素に転送する、予測された順方向転送時間、
処理要素からの出力データを転送する、予測された戻り方向転送時間、及び/または、
処理要素でタスクを処理する、予測された処理時間、
に基づいて、サイクル長を予測するように適合されている。
本発明の一実施形態によれば、制御要素のうちの少なくとも1つは、
選択された処理要素でのタスクの実行を開始するステップと、
タスクの予測されたサイクル長を更新して、タスクの予測された残りのサイクル長を取得するステップと、
予測された残りのサイクル長が、異なる処理要素でのタスクの処理における予測されたサイクル長よりも長いと判定された場合は、選択された処理要素でのタスクの処理を取り消すステップと、
そのタスクをその異なる処理要素に再び割り当てるステップと、
を実行するように適合されている。
選択された処理要素でのタスクの実行を開始するステップと、
タスクの予測されたサイクル長を更新して、タスクの予測された残りのサイクル長を取得するステップと、
予測された残りのサイクル長が、異なる処理要素でのタスクの処理における予測されたサイクル長よりも長いと判定された場合は、選択された処理要素でのタスクの処理を取り消すステップと、
そのタスクをその異なる処理要素に再び割り当てるステップと、
を実行するように適合されている。
本発明の一実施形態によれば、本デバイスは、さらに、複数の処理要素の現在の可用性及び/または稼働についての情報を備えたビジーテーブルを備えており、制御要素は、ビジーテーブル内の情報を定期的に更新するように適合されている。
本発明の一実施形態によれば、1つ以上のバスは、1つ以上のリングを備えている。
本発明の更なる実施形態によれば、1つ以上のバスは、命令を転送する第1バスセットと、データを転送する第2バスセットとを備えている。これには、第1バスセットが、命令転送の待ち時間が短くなるように最適化され得ると共に、第2バスセットが、大量になるかもしれないデータを高帯域幅で転送できるように最適化され得るという利点がある。特に、第1及び第2バスセットは、互いに異なる周波数で動作可能であり、例えば、第1バスセットはより高い周波数で動作可能である一方で、第2バスセットはより低い周波数で動作するが、1サイクルにつき、より高い転送能力を提供する。
本発明の更なる実施形態によれば、1つ以上のバスは、命令を転送する第1バスセットと、データを転送する第2バスセットとを備えている。これには、第1バスセットが、命令転送の待ち時間が短くなるように最適化され得ると共に、第2バスセットが、大量になるかもしれないデータを高帯域幅で転送できるように最適化され得るという利点がある。特に、第1及び第2バスセットは、互いに異なる周波数で動作可能であり、例えば、第1バスセットはより高い周波数で動作可能である一方で、第2バスセットはより低い周波数で動作するが、1サイクルにつき、より高い転送能力を提供する。
本発明の更なる実施形態によれば、1つ以上のバスは、一方向性であり、反対方向に向けられている2つのリングを備えている。
このように、本発明は特に効率的な手法で実行可能であり、その理由は、向きが異なる2つのリングバスがより適切に選択されれば、データ転送時間が大きく短縮され得るためである。
このように、本発明は特に効率的な手法で実行可能であり、その理由は、向きが異なる2つのリングバスがより適切に選択されれば、データ転送時間が大きく短縮され得るためである。
本発明の一実施形態によれば、1つ以上のバスは、エレメント インターコネクト バス(Element Interconnect Bus)を備える。
本発明の更なる実施形態によれば、複数の処理要素のうちの少なくとも1つは、1つ以上のバスに接続されており、追加として、一次処理要素への直接接続を備えている。
本発明の更なる実施形態によれば、複数の処理要素のうちの少なくとも1つは、1つ以上のバスに接続されており、追加として、一次処理要素への直接接続を備えている。
本発明の一実施形態によれば、本デバイスはさらに、以前に処理されたタスクに基づいて、将来のタスクを予測するように構成されている予測モジュールを更に備えている。
将来のタスクの予測には、将来のタスクに必要なデータを、タスクが実際に実行される前には既に、予めロードされ得るという利点がある。例えば、以前のタスクが、data1.jpg、data2.jpg、及び、data3.jpgをロードすることを含むことが検出された場合、予測モジュールは、将来のタスクは存在する可能性のあるdata4.jpgのロードをおそらく含み、よって、対応するタスクが開始される前には既に、data4.jpgを予めロードするということが予測できる。好適な実施形態では、このようにしてデータを予めロードすることは、システムが低負荷の状態である場合、例えば、制御要素の現在の負荷が、所定のしきい値よりも低い場合にのみ行われる。
将来のタスクの予測には、将来のタスクに必要なデータを、タスクが実際に実行される前には既に、予めロードされ得るという利点がある。例えば、以前のタスクが、data1.jpg、data2.jpg、及び、data3.jpgをロードすることを含むことが検出された場合、予測モジュールは、将来のタスクは存在する可能性のあるdata4.jpgのロードをおそらく含み、よって、対応するタスクが開始される前には既に、data4.jpgを予めロードするということが予測できる。好適な実施形態では、このようにしてデータを予めロードすることは、システムが低負荷の状態である場合、例えば、制御要素の現在の負荷が、所定のしきい値よりも低い場合にのみ行われる。
本発明の更なる実施形態によれば、デバイスは、1つ以上の予測された将来のタスクの実行開始後に、1つ以上の新たなタスクが届いた場合には、現在のタスクの実行のため、1つ以上の予測された将来のタスクを取り消すように適合されている。例えば、予測が正確ではなく、予測された将来のタスクの代わりに、新たなタスクが実行されるべきであることが判明した可能性がある。
本発明の更なる実施形態によれば、上述の実施形態のうちの1つに準じたデバイスを備えているサーバーシステムが提供される。
このようにして、サーバーシステムもまた、本出願に記載されている有益な効果の全てを提供するように好ましくは構成されている。さらに、既存のデータセンターの基礎施設/構成部/モジュール/要素の導入及び/または使用を、同時に行うことが可能になる。
このようにして、サーバーシステムもまた、本出願に記載されている有益な効果の全てを提供するように好ましくは構成されている。さらに、既存のデータセンターの基礎施設/構成部/モジュール/要素の導入及び/または使用を、同時に行うことが可能になる。
本発明の一実施形態によれば、上記で概略が説明され、詳細は以下で説明されるような方法を実行するように適合されているASICまたはFPGAが提供される。
本発明の更なる側面によれば、1つ以上のバスと、1つ以上の制御要素と、複数の処理要素のうちの少なくともいくつかとは、同一のチップのハウジング内に位置している。これには、同じハウジング内に位置している構成部の通信を、特に高い帯域幅にすることができるという利点がある。さらに、この構成によって、量産時にコスト削減がもたらされる。
本発明の更なる側面によれば、1つ以上のバスと、1つ以上の制御要素と、複数の処理要素のうちの少なくともいくつかとは、同一のチップのハウジング内に位置している。これには、同じハウジング内に位置している構成部の通信を、特に高い帯域幅にすることができるという利点がある。さらに、この構成によって、量産時にコスト削減がもたらされる。
本発明の更なる実施形態によれば、演算処理デバイスによる実行時に、上記で概略が説明され、詳細は以下で説明されるような方法を、演算処理デバイスに行わせるプログラムコードを備えているコンピュータ可読媒体が提供される。
さらなる効果及び好適な実施形態は従属請求項に含まれており、また、添付図面を参照した以下の好適な実施形態の説明から、より十分に理解されるであろう。
[発明の詳細な説明]
図1は、リングトポロジを有するバスシステム110の略図を示したものである。特に、バスシステム110は、デバイスDの一部を構成している。バスシステム110は、命令及びデータを反時計回り方向に転送するように適合されている第1リングバス112と、命令及びデータを時計回り方向に転送するように適合されている第2リングバス114とを備えている。つまり、第1リングバス112及び第2リングバス114は、命令及びデータを反対の方向に転送するように構成されている。バス112,114には、プロセッシングコア120が取り付けられており、制御要素として機能している。さらに、様々な機能を持つ複数の要素122〜134が、バス112,114に接続されて存在する。要素122〜134は、ランダムアクセスメモリ(RAM)122、フラッシュメモリ124、大容量記憶装置コントローラ126、ネットワークインターフェースコントローラ128、I2Cバス130、PCI Express(Peripheral Component Interconnect Express:PCIe)バス132、及び、更なる種々のデバイス134を備えている。
図1は、リングトポロジを有するバスシステム110の略図を示したものである。特に、バスシステム110は、デバイスDの一部を構成している。バスシステム110は、命令及びデータを反時計回り方向に転送するように適合されている第1リングバス112と、命令及びデータを時計回り方向に転送するように適合されている第2リングバス114とを備えている。つまり、第1リングバス112及び第2リングバス114は、命令及びデータを反対の方向に転送するように構成されている。バス112,114には、プロセッシングコア120が取り付けられており、制御要素として機能している。さらに、様々な機能を持つ複数の要素122〜134が、バス112,114に接続されて存在する。要素122〜134は、ランダムアクセスメモリ(RAM)122、フラッシュメモリ124、大容量記憶装置コントローラ126、ネットワークインターフェースコントローラ128、I2Cバス130、PCI Express(Peripheral Component Interconnect Express:PCIe)バス132、及び、更なる種々のデバイス134を備えている。
リングバス112,114は、接続されている要素120〜134の間に直接接続するよう構成されており、時間をずらして動作する。図1のシステムの場合、要素120〜134は、両方のバス112,114に接続されている。しかし、バス112,114の間には、直接接続は存在していない。同様に、図2及び図5に示されているシステムも、バスの間には、直接接続を備えていない。本発明の他の実施形態では、バス同士が直接接続を備えることもできる。
次に、接続された要素120〜134は、書き込みが可能であり、つまり、アクティブな状態が、ある要素から次の要素に渡され、読み出し又は書き込み動作は、所与の時点でアクティブな要素のみにより実行され得る。いくつかの実施形態において、2つ以上のタスクが1つのクロックサイクルで転送され得る。また、2つ以上のデータセットが、1つのタスクに添付され得る(SIMD)。バスリング数、接続されている要素120〜134の数、及び、ポインタの開始位置並びに方向に応じて、1時点において、2つ以上のリングが偶然に同じ要素をアドレス指定することが起こり得る。この場合、追加の命令及びデータを吸収するFIFOバッファが設けられ得る。図1では、FIFOバッファ135は、他の種々の要素134にのみ図示されているが、同様にして、FIFOバッファを全ての処理要素120〜134に対して設けられ得る。
図2は、プロセッシングコア220とRAM222とが接続されているリングバス212,214を備えている非排他的バスシステム210の略図を示したものである。さらに、プロセッシングコア220とRAM222とは、直接接続221を介して接続されている。さらなる要素がリングバス212,214に接続され得るが、図2には示されていない。図1のバスシステム110と同様に、図2のバスシステムは、命令及びデータを反時計回り方向に転送するように適合されている第1リングバス212と、命令及びデータを時計回り方向に転送するように適合されている第2リングバス214とを備えている。
本発明の他の実施形態において、図1及び図2に示されているリングバス112,114;212,214は、最初の要素がバスにアクセスして終了された時に、アクティブなタイムスロットを最初の要素から次の要素に渡す、アクセスプロトコルでも実行され得ることに注目されたい。これは、例えば、ある要素120〜134,220,222が、バスへのアクセスを終了したら、トークンを次の要素120〜134,220,222に渡す、トークンリングアクセス方式として実行され得る。
図3は、2つのリング312,314を備えているバスシステム310の略図を示しており、ここでは、第1リング312も第2リング314も、処理要素320〜334の全てには接続してはいない。図1のバスシステム110と同様に、図3のバスシステムは、命令及びデータを反時計回り方向に転送するように適合されている第1リングバス312と、命令及びデータを時計回り方向に転送するように適合されている第2リングバス314とを備えている。図3の実施形態では、プロセッシングコア320のみが、第1リング312と第2リング314との両方に接続されている。本発明の他の実施形態において、第1リング312と第2リング314との両方に接続されている1つ以上の要素は、チップの外側にある要素に接続しているRAMまたはコントローラでもあり得る。チップの外側に位置し得る他のデバイス334は、FIFOバッファ335を介して2つのリング312,314に接続され得る。
図4は、リングバス412を有しているバスシステム410の略図を示したものであり、ここでは、現在アクティブな要素へのポインタをP0で表し、次のアクティブな要素をP1〜P7で表している。本実施形態において、制御要素として機能しているプロセッシングコア420、RAM422、フラッシュメモリ424、記憶装置426、NIC428、I2Cバス430、PCIe432、及び、他の要素434は、リングバス412に接続されており、他の要素434は、FIFOバッファ435を介してリングバス412に接続されている。リングバス412は、データを時計回り方向で転送するように構成されており、ポインタも、リングを時計回り方向に通過する。示されている例では、要素420〜434は、1クロックサイクルの間隔で隔てられている。他の実施形態では、ポインタ位置は、長さが均一であってもなくてもよい様々な時間増分で、リングを通過すると規定され得る。ポインタの転送は、例えば、異なる要素に割り当てられている静的優先度に基づいて決定され得る。
図5は、本発明の一実施形態に従った更なるバスシステム510の略図を示したものである。
本発明の実施形態に準じた動作モードが、以下の例を用いて説明される。一次処理要素520aが、制御要素として機能していて、二次処理要素536〜550のうちの1つに対して処理可能なタスクを送信すると仮定すると、検索テーブルのうちの1つに保存されている、以前に成功した結果に基づく従来技術の処理方法によれば、タスクは、第1リング512を用いて二次処理要素540に送信されるが、これには、14クロックサイクルが必要である。4クロックサイクルを必要とする二次処理要素540内での処理の後、出力データは、第1リング512の一次処理要素520aに戻されるが、これには、別に3クロックサイクルを要する。アクティブなスロットが一次処理要素520aに戻される前には、さらに13クロックサイクルを要する。これは、総サイクルタイムとして、14+4+13+3=34クロックサイクルをもたらす。本発明によれば、設定により、リング514は、リング512に対して正確に整合しているオフセットを有し得るので、タスクが第2リング514を介して二次処理要素540に送信され、バス待機時間がなく第1リング512を介して一次処理要素520aに戻される場合には、理想的には、予測されるサイクルタイムは、わずか3+4+0+3=10クロックサイクルであると判定されるであろう。この例では、本発明に準じた方法が、従来技術の手法でのサイクルタイムの3分の1未満となるサイクルタイムの減少をもたらす。
本発明の実施形態に準じた動作モードが、以下の例を用いて説明される。一次処理要素520aが、制御要素として機能していて、二次処理要素536〜550のうちの1つに対して処理可能なタスクを送信すると仮定すると、検索テーブルのうちの1つに保存されている、以前に成功した結果に基づく従来技術の処理方法によれば、タスクは、第1リング512を用いて二次処理要素540に送信されるが、これには、14クロックサイクルが必要である。4クロックサイクルを必要とする二次処理要素540内での処理の後、出力データは、第1リング512の一次処理要素520aに戻されるが、これには、別に3クロックサイクルを要する。アクティブなスロットが一次処理要素520aに戻される前には、さらに13クロックサイクルを要する。これは、総サイクルタイムとして、14+4+13+3=34クロックサイクルをもたらす。本発明によれば、設定により、リング514は、リング512に対して正確に整合しているオフセットを有し得るので、タスクが第2リング514を介して二次処理要素540に送信され、バス待機時間がなく第1リング512を介して一次処理要素520aに戻される場合には、理想的には、予測されるサイクルタイムは、わずか3+4+0+3=10クロックサイクルであると判定されるであろう。この例では、本発明に準じた方法が、従来技術の手法でのサイクルタイムの3分の1未満となるサイクルタイムの減少をもたらす。
n個の接続要素は、n個の異なるポインタ位置に相当する。
図6は、本発明のある側面に従った、更なるバスシステム610の略図を示したものである。バスシステム610は、線形トポロジを有し、時分割多元接続方式である2つの双方向バス612,614で構成されている。図6は、線形バス612,614の両方に接続されている3つの要素620,622,640を示している。一般に、両方のバスに接続されているn個のこのような要素は、多数存在する可能性がある。これらの要素620,622,640のうちの数個は、制御要素として機能することができ、処理要素として機能する他の要素は、制御要素によって制御されている状態である。制御及び処理要素に加えて、他の要素、例えばRAM制御器も、バス612,614に接続され得る。
図6は、本発明のある側面に従った、更なるバスシステム610の略図を示したものである。バスシステム610は、線形トポロジを有し、時分割多元接続方式である2つの双方向バス612,614で構成されている。図6は、線形バス612,614の両方に接続されている3つの要素620,622,640を示している。一般に、両方のバスに接続されているn個のこのような要素は、多数存在する可能性がある。これらの要素620,622,640のうちの数個は、制御要素として機能することができ、処理要素として機能する他の要素は、制御要素によって制御されている状態である。制御及び処理要素に加えて、他の要素、例えばRAM制御器も、バス612,614に接続され得る。
あるいは、バスシステム610は、トークンをある局から次の局へ渡すトークンパッシング方式を用いても構成され得、ここにおいて、「次の」局は、バスに接続された要素のバスインターフェースのアドレスに基づいて規定されている。
本発明の更なる実施形態において、他の接続要素とデータの受信または送信をするため、ポインタは、接続されている制御要素によって、プッシュ(push)またはプル(pull)され得る。
図7は、双方向バスであり、分岐713を介して接続されている3つの直線部712a,712b,712cを備えている、非排他的バスシステム710の略図を示したものである。バスシステム710には、第1直線部712aに接続されている2つの制御要素720a,720b及びRAM722と、第2直線部712bに接続されている2つの処理要素730,732と、バスシステム710の第3直線部712cに接続されている2つの処理要素740,742と、が接続されている。図7に示されている第2及び第3直線部712b,712cに加えて、第1直線部712aに接続された任意の数の追加直線部も存在し得る。これらの追加直線部は、同数の接続要素を備え得る。
例えば、RAM構成部722は、合計で3つ物理的隣接部、つまり、制御要素720bと、第2部712bの処理要素730と、第3部712cの処理要素740とを有している。したがって、このバスシステム710へのアクセスは、隣接関係が接続要素のアドレスに基づいて規定されているトークンパッシング方式で管理されるべきである。直線部712b,712cは、同時にアクティブになり得ることに注目されたい。1つの直線部でアクティブなスロットを割り当てるには、一時的あるいは第2レベルトークンが用いられる。直線部712a,712b,712cの現在の状況、及び、将来の可用性予測に関する知識が、サイクル予測方法、及び、どの処理要素にタスクが割り当てられるかの決定により用いられ得る。
効果的な実施形態において、バス712a,b,cにつき2つ以上のトークンを使用できるようにするために、1つの一次分岐部と複数の二次分岐部とが存在する。これは、図7a及び図7bに図示されており、ここでは、第1直線部712aが一次分岐を構成し、第2及び第3直線部712b,712cが二次分岐部を構成している。
競合を避けるために、常に横断的な優先権を有するグローバルトークン750は、1つだけ存在し得る。図7a及び図7bには、グローバルトークン750が大きな星印で、ローカルトークン752が小さな星印で図示されている。図7aに示されているように、グローバルトークン750が一次分岐部にある場合、ローカルトークンは二次分岐部のいずれにも存在できない。しかし、図7bに示されているように、グローバルトークン750が二次分岐部のうちの1つにある場合は、他の二次分岐部のうちの全てまたはいくつかに、個々の二次分岐部から離れることができないローカルトークン752を置くことができる。
図8は、2つの双方向バス812,814を備えている非排他的バスシステム810の略図を示している。第1制御要素820a、第2制御要素820b、及び、RAM822は、第1バス812と第2バス814との両方に接続されている。多数のn個の処理要素830,832が、第2バス814のみに接続されており、また、多数のn個の処理要素840,842が、第1バス812のみに接続されている。この構成は、バスシステム810に接続されている処理要素が合計でm×n個存在するよう、n回繰り返えされ得る。図8に示されている構成には、例えば制御要素820a,820bとRAM822との間の通信が、第1バス812と第2バス814との両方を介して発生するという利点がある。これは、RAM822よりも少ない頻度でアクセスされ得る処理要素830,832,840,842との通信の帯域幅と比較して、2倍の総帯域幅を可能とする。このようにして、このアーキテクチャは、標準的な負荷想定に適合されている。2つ以上のSPEとの通信が同時に発生し得るという、別の利点もある。
バス812,814へのアクセスは、簡易な時分割多元接続方式で実行され得る。あるいは、例えばトークンパッシング方式、又は、この2つの方式の組み合わせが使用され得る。
上記で説明された実施形態に関して、上記実施形態は、互いに組み合わせられ得ることを言及しておく。さらに、図面に示されたバスシステムは、図面には示されていない更なる要素、及び、更なるバスを備え得ることを理解されたい。特に、図7に示された分岐は、リングバスを直線部に接続することもできる。さらに、ブリッジ(bridge)を介して接続される種々のバス、又は、少なくとも1つの要素を共有する種々のバスは、別々のアクセス方式を用いることもできる。
バスシステム110,210,310,410,510,610,710,810は、特に、デバイスDの一部を構成している。したがって、本デバイスは、1つ以上のバス112,114,212,214,312,314,412,512,514,612,614,712a,712b,712c,812,814と、1つ以上の制御要素120,220,320,420,520a,520b,620,720a,720bと、複数の処理要素122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842とを備えている。このデバイスDにおいて、制御要素120,220,320,420,520a,520b,620,720a,720bのうちの少なくとも1つは、
複数の処理要素から、タスクを処理することができる1つ以上の処理要素122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842を識別し、
識別された1つ以上の処理要素122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842と通信する1つ以上の経路を識別し、
識別された処理要素122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842のうちの1つ以上と、識別された経路と、のサイクル長を予測し、識別された処理要素から、好適な処理要素122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842を選択するとともに、識別された経路から好適な経路を選択する
ことに基づいて、タスクの分配経路を決定するように適合されている。
複数の処理要素から、タスクを処理することができる1つ以上の処理要素122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842を識別し、
識別された1つ以上の処理要素122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842と通信する1つ以上の経路を識別し、
識別された処理要素122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842のうちの1つ以上と、識別された経路と、のサイクル長を予測し、識別された処理要素から、好適な処理要素122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842を選択するとともに、識別された経路から好適な経路を選択する
ことに基づいて、タスクの分配経路を決定するように適合されている。
さらに、説明された各態様に従って構成されている少なくとも1つのデバイスDを備えているサーバーシステムが存在する。
Claims (19)
- 1つ以上のバス(112,114,212,214,312,314,412,512,514,612,614,712a,712b,712c,812,814)と複数の処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)とを備えているデバイスにおいて、タスクの分配経路を決定する方法であって、
前記複数の処理要素から、前記タスクを処理することができる1つ以上の処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)を識別するステップと、
識別された前記1つ以上の処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)と通信する1つ以上の経路を識別するステップと、
前記識別された処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)のうちの1つ以上と、前記識別された経路とのサイクル長を予測するステップと、
前記識別された処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)から好適な処理要素を選択するとともに、前記識別された経路から好適な経路を選択するステップと、
を備えている方法。 - 識別された処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)と、識別された経路とのサイクル長は、
命令と入力データとを、前記識別された経路にある前記識別された処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)に転送する、予測された順方向転送時間と、
前記識別された経路にある前記識別された処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)からの出力データを転送する、予測された戻り方向転送時間、及び/または、前記識別された処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)で前記タスクを処理する、予測された処理時間と、
に基づいて予測される、請求項1記載の方法。 - 前記予測されたサイクル長は、前記予測された順方向転送時間、前記予測された戻り方向転送時間、及び、前記予測された処理時間の合計である、請求項2記載の方法。
- 前記サイクル長の予測は、
前記1つ以上のバス(112,114,212,214,312,314,412,512,514,612,614,712a,712b,712c,812,814)の、現在の可用性及び/または稼働と、
識別された前記1つ以上の処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)の、現在の可用性及び/または稼働と、
のうちの少なくとも1つに基づいている、先行する請求項のいずれか1項に記載の方法。 - さらに、
前記選択された処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)での前記タスクの処理を開始し、
前記タスクの前記予測されたサイクル長を更新して、前記タスクの予測された残りのサイクル長を取得し、
前記予測された残りのサイクル長が、異なる処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)での前記タスクの処理における予測されたサイクル長よりも長いと判定された場合は、前記選択された処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)での前記タスクの処理を取り消し、
前記タスクを前記異なる処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)に割り当てる、先行する請求項のいずれか1項に記載の方法。 - さらに、
前記タスクの処理のしきい値時間を決定し、
前記選択された処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)での前記タスクの処理を開始し、
前記タスクの実際の処理時間が、前記しきい値時間よりも長いかどうかを確認し、
前記実際の処理時間が前記しきい値時間よりも長い場合は、前記タスクの処理を取り消し、
前記タスクを異なる処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)に割り当てる、先行する請求項のいずれか1項に記載の方法。 - 1つ以上のバス(112,114,212,214,312,314,412,512,514,612,614,712a,712b,712c,812,814)と、
1つ以上の制御要素(120,220,320,420,520a,520b,620,720a,720b)と、
複数の処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)と、を備えており、
前記制御要素(120,220,320,420,520a,520b,620,720a,720b)のうちの少なくとも1つは、
前記複数の処理要素から、前記タスクを処理することができる1つ以上の処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)を識別することと、
識別された前記1つ以上の処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)と通信する1つ以上の経路を識別することと、
前記識別された処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)のうちの1つ以上と前記識別された経路とのサイクル長を予測し、前記識別された処理要素から好適な処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)を選択するとともに、前記識別された経路から好適な経路を選択することと、
に基づいて、タスクの分配経路を決定するように適合されている、デバイス。 - 前記制御要素(120,220,320,420,520a,520b,620,720a,720b)のうちの少なくとも1つは、
命令と入力データとを前記処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)に転送する、予測された順方向転送時間、
前記処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)からの出力データを転送する、予測された戻り方向転送時間、及び/または、
処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)で前記タスクを処理する、予測された処理時間、
に基づいて、前記サイクル長を予測するように適合されている、請求項7記載のデバイス。 - 前記制御要素(120,220,320,420,520a,520b,620,720a,720b)のうちの少なくとも1つは、
前記選択された処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)での前記タスクの実行を開始するステップと、
前記タスクの前記予測されたサイクル長を更新して、前記タスクの予測された残りのサイクル長を取得するステップと、
前記予測された残りのサイクル長が、異なる処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)での前記タスクの処理における予測されたサイクル長よりも長いと判定された場合は、前記選択された処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)での前記タスクの処理を取り消すステップと、
前記タスクを前記異なる処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)に再び割り当てるステップと、
を実行するように適合されている、請求項7または8に記載のデバイス。 - 前記デバイスはさらに、複数の処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)の能力、及び/または、現在の可用性、及び/または、稼働についての情報を備えた1つ以上のビジーテーブルを備えており、前記制御要素(120,220,320,420,520a,520b,620,720a,720b)のうちの少なくとも1つは、前記1つ以上のビジーテーブル内の情報を定期的に更新するように適合されている、請求項7から9のいずれか1項に記載のデバイス。
- 前記1つ以上のバス(112,114,212,214,312,314,412,512,514)は、1つ以上のリングを備えている、請求項7から10のいずれか1項に記載のデバイス。
- 前記1つ以上のバス(112,114,212,214,312,314,412,512,514,612,614,712a,712b,712c,812,814)は、命令を転送する第1バスセットと、データを転送する第2バスセットとを備えている、請求項7から11のいずれか1項に記載のデバイス。
- 前記1つ以上のバス(112,114,212,214,312,314)は、一方向性であり、反対方向に向けられている、2つのリング(112,114,212,214,312,314)を備えている、請求項7から12のいずれか1項に記載のデバイス。
- 前記1つ以上のバス(112,114,212,214,312,314,412,512,514)は、エレメント インターコネクト バス(Element Interconnect Bus)で構成されている、請求項7から13のいずれか1項に記載のデバイス。
- 前記複数の要素(220,222)のうちの少なくとも1つは、前記1つ以上のバス(212,214)に接続されており、追加として、少なくとも1つの他の要素(212,214)への直接接続(221)を備えている、請求項7から14のいずれか1項に記載のデバイス。
- さらに、以前に処理されたタスクに基づいて、将来のタスクを予測するように構成されている予測モジュールを備えている、請求項7から15のいずれか1項に記載のデバイス。
- 前記デバイスは、1つ以上の予測された将来のタスクの実行開始後に、1つ以上の新たなタスクが届いた場合には、現在のタスクの実行のため、1つ以上の予測された将来のタスクを取り消すように適合されている、請求項16記載のデバイス。
- 前記1つ以上のバス(112,114,212,214,312,314,412,512,514,612,614,712a,712b,712c,812,814)と、前記1つ以上の制御要素(120,220,320,420,520a,520b,620,720a,720b)と、複数の処理要素(122〜134,222,322〜334,422〜434,522〜550,620〜640,720a〜742,822〜842)のうちの少なくともいくつかとは、同一のチップのハウジング内に位置している、請求項7から17のいずれか1項に記載のデバイス。
- 請求項7から18のうちの少なくとも1項に記載のデバイスを備えている、サーバーシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14185007.3 | 2014-09-16 | ||
EP14185007.3A EP2998864B1 (en) | 2014-09-16 | 2014-09-16 | Method, device and system for deciding on a distribution path of a task |
PCT/EP2015/070382 WO2016041804A1 (en) | 2014-09-16 | 2015-09-07 | Method, device and system for deciding on a distribution path of a task |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017535212A true JP2017535212A (ja) | 2017-11-24 |
Family
ID=51589107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017534884A Pending JP2017535212A (ja) | 2014-09-16 | 2015-09-07 | タスクの分配経路を決定する方法、デバイス、及び、システム |
Country Status (10)
Country | Link |
---|---|
US (1) | US20170168873A1 (ja) |
EP (1) | EP2998864B1 (ja) |
JP (1) | JP2017535212A (ja) |
KR (1) | KR20170055964A (ja) |
CN (1) | CN106687930A (ja) |
CA (1) | CA2957150A1 (ja) |
HK (1) | HK1223429A1 (ja) |
IL (1) | IL250346A0 (ja) |
TW (1) | TW201626222A (ja) |
WO (1) | WO2016041804A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI616754B (zh) * | 2016-07-29 | 2018-03-01 | 百利通亞陶科技股份有限公司 | 快捷外設互聯標準(PCIe)資料交換裝置及傳輸系統 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6931559B2 (en) * | 2001-12-28 | 2005-08-16 | Intel Corporation | Multiple mode power throttle mechanism |
US7730456B2 (en) * | 2004-05-19 | 2010-06-01 | Sony Computer Entertainment Inc. | Methods and apparatus for handling processing errors in a multi-processing system |
US8707314B2 (en) * | 2011-12-16 | 2014-04-22 | Advanced Micro Devices, Inc. | Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations |
-
2014
- 2014-09-16 EP EP14185007.3A patent/EP2998864B1/en not_active Not-in-force
-
2015
- 2015-09-07 WO PCT/EP2015/070382 patent/WO2016041804A1/en active Application Filing
- 2015-09-07 JP JP2017534884A patent/JP2017535212A/ja active Pending
- 2015-09-07 CA CA2957150A patent/CA2957150A1/en not_active Abandoned
- 2015-09-07 KR KR1020177006601A patent/KR20170055964A/ko unknown
- 2015-09-07 CN CN201580049807.7A patent/CN106687930A/zh active Pending
- 2015-09-15 TW TW104130455A patent/TW201626222A/zh unknown
-
2016
- 2016-09-22 HK HK16111113.1A patent/HK1223429A1/zh unknown
-
2017
- 2017-01-30 IL IL250346A patent/IL250346A0/en unknown
- 2017-02-28 US US15/444,965 patent/US20170168873A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20170168873A1 (en) | 2017-06-15 |
HK1223429A1 (zh) | 2017-07-28 |
EP2998864A1 (en) | 2016-03-23 |
CN106687930A (zh) | 2017-05-17 |
WO2016041804A1 (en) | 2016-03-24 |
CA2957150A1 (en) | 2016-03-24 |
KR20170055964A (ko) | 2017-05-22 |
IL250346A0 (en) | 2017-03-30 |
EP2998864B1 (en) | 2018-12-12 |
TW201626222A (zh) | 2016-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8588228B1 (en) | Nonvolatile memory controller with host controller interface for retrieving and dispatching nonvolatile memory commands in a distributed manner | |
US20190028378A1 (en) | Information processing apparatus, method and non-transitory computer-readable storage medium | |
EP3082038A1 (en) | Method, device and system for creating a massively parallelized executable object | |
CN109408257B (zh) | 用于片上网络noc的数据传输方法、装置及电子设备 | |
WO2014113646A1 (en) | Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of ip cores using high level specification | |
US10360267B2 (en) | Query plan and operation-aware communication buffer management | |
CN111382115B (zh) | 一种用于片上网络的路径创建方法、装置及电子设备 | |
KR20200136468A (ko) | 작업 스케줄링 | |
CN103914556A (zh) | 大规模图数据处理方法 | |
US20170177509A1 (en) | Host controller and program executed by host controller | |
CN108347377B (zh) | 数据转发方法及装置 | |
US11093291B2 (en) | Resource assignment using CDA protocol in distributed processing environment based on task bid and resource cost | |
JP2017535212A (ja) | タスクの分配経路を決定する方法、デバイス、及び、システム | |
US9203733B2 (en) | Method of pseudo-dynamic routing in a cluster comprising static communication links and computer program implementing that method | |
US9015717B2 (en) | Method for processing tasks in parallel and selecting a network for communication | |
US9838324B2 (en) | Information processing system, information management apparatus, and data transfer control method | |
JP2013005145A (ja) | パケット転送装置及びパケット転送方法 | |
JP2007214981A (ja) | データ転送回路、それを利用したマルチプロセッサシステム、及びデータ転送方法 | |
JP4833911B2 (ja) | プロセッサユニットおよび情報処理方法 | |
JP6805562B2 (ja) | データ処理システム | |
US9778958B2 (en) | Management method, management apparatus, and information processing system for coordinating parallel processing in a distributed computing environment | |
JP6303584B2 (ja) | データ処理装置、計算機システム、データ処理方法およびデータ処理プログラム | |
JP2016144133A (ja) | 制御装置、制御プログラム、および、通信システム | |
JP2009004908A (ja) | 通信装置、通信方法、及びプログラム |