JP2013506179A - 命令スレッドを組み合わせた実行の管理システムおよび管理方法 - Google Patents

命令スレッドを組み合わせた実行の管理システムおよび管理方法 Download PDF

Info

Publication number
JP2013506179A
JP2013506179A JP2012530310A JP2012530310A JP2013506179A JP 2013506179 A JP2013506179 A JP 2013506179A JP 2012530310 A JP2012530310 A JP 2012530310A JP 2012530310 A JP2012530310 A JP 2012530310A JP 2013506179 A JP2013506179 A JP 2013506179A
Authority
JP
Japan
Prior art keywords
instruction
execution
type
central processing
processing unit
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.)
Granted
Application number
JP2012530310A
Other languages
English (en)
Other versions
JP6294586B2 (ja
Inventor
クヴェー,フィリップ
ジャウゲイ,シルヴァイン
デル,シモン
Original Assignee
ブル エスエイエス
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 ブル エスエイエス filed Critical ブル エスエイエス
Publication of JP2013506179A publication Critical patent/JP2013506179A/ja
Application granted granted Critical
Publication of JP6294586B2 publication Critical patent/JP6294586B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5044Allocation 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

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)
  • Debugging And Monitoring (AREA)

Abstract


命令スレッドの実行を管理する本コンピュータシステム(18)は、同じ中央処理装置に属する複数の仮想プロセッサ(24C、24S、26C、26S)上で複数の命令スレッドを組み合わせて実行する少なくとも1つの中央処理装置(24、26)と、仮想プロセッサに命令スレッドの実行を分散する少なくとも1つのマネージャ(38)とを有する。本コンピュータシステムはさらに、実行する前記命令スレッドを複数の所定のタイプ(C、S)に応じて分類する分類手段(36)を有し、前記命令スレッドの実行を分散する前記マネージャ(38)は、実行する前記命令スレッドをそれぞれタイプに応じて前記仮想プロセッサ(24C、24S、26C、26S)に方向付けるように設計する。
【選択図】図1

Description

本発明は、命令スレッドの実行を管理するコンピュータシステムであって、同じ中央処理装置に属する複数の仮想プロセッサ上で複数の命令スレッドを組み合わせて実行する少なくとも1つの中央処理装置と、命令スレッドの実行を仮想プロセッサに分散する少なくとも1つのマネージャとを有するコンピュータシステムに関する。本発明はまた、その方法、サーバクラスタへの本方法の適用、および本方法を実行するための命令を含むコンピュータプログラムにも係る。
以下の説明文において、「コンピュータシステム」とは、コンピュータプログラムの命令を実行することができ、そのために少なくとも1つの中央処理装置でプロセッサの計算コアまたはCPU(英語の「Central Processing Unit」)とも呼ばれるものを有する少なくとも1つのプロセッサを備えるあらゆるシステムを指す。プロセッサには、単一の計算コアのみ、または複数の計算コアを備えることができることがわかるであろう。本発明によるコンピュータシステムは、複雑性が増す順に、1つまたは複数の計算コアを有するマイクロプロセッサ、1つまたは複数のマイクロプロセッサを有する単純なマイクロコンピュータ、または複数のマイクロコンピュータを、データ転送ネットワークを介して相互接続したさらに複雑なシステムで構成することができる。本発明を実装することができるコンピュータシステムの複雑性は、原則として目的とする適用例によって異なる。
「コンピュータプロセス」とは、より一般には「プロセス」と呼ばれ、プロセッサの中央処理装置(すなわち計算コア)によって、場合よってはその他の資源を用いて、特別に割り当てたメモリ空間で実行する命令の集合を指す。コンピュータプログラム自体は命令を構造化した集合で構成されるため、コンピュータプロセスをコンピュータプログラムまたはコンピュータプログラムの一部分を実行するインスタンスと考えることができる。同じ1つのプログラムを(同じ1つのプロセッサまたはさまざまなプロセッサ上で平行かつ連続的に)複数回実行することができるため、このプログラムは複数のコンピュータプロセスを生成することができる。
コンピュータプロセスは、必ずしも単一の線形的な命令系列を備えている必要はなく、非同期に複数の系列を要求することができる。そのため、より一般に「スレッド」と呼ばれる「命令スレッド」とは、コンピュータプロセスの実行に参加するこのような線形的な命令系列を指す。その結果、命令実行の観点から、コンピュータプロセスとは常に命令スレッドまたは命令スレッドの集合であると考えてよい。
「同じ中央処理装置に属する複数の仮想プロセッサ上で複数の命令スレッドを組み合わせて実行する中央処理装置」とは、命令スレッド実行の並列処理を、中央処理装置の内部資源(とりわけ実行の「パイプライン」、レジスタおよびキャッシュメモリ)のいくつかを共有することによって増進させるメカニズムを備える中央処理装置のことである。このような中央処理装置には、資源を同時に共有することができる命令スレッドと同じだけ仮想プロセッサがある。ユーザから見れば、単一の中央処理装置ではなく、複数、さらに正確にはこの中央処理装置にある仮想プロセッサの数だけ中央処理装置があるかのように見える。
このメカニズムは一般に、「ハイパースレッディング」または「同時マルチスレッディング」と呼ばれる。このメカニズムを実装している中央処理装置の目的は、命令スレッドの共有メモリ空間からくるデータを待つことで生じる非アクティブな時間を活用することである。具体的には、命令スレッドがこのような待機状態にあるとき、この命令スレッドを実行する中央処理装置は自動的に別の命令スレッドの実行に進むため、複数の異なる仮想プロセッサがあるかのような印象を与える。
オペレーティングシステムLinux(登録商標)は、現在このようなメカニズムをサポートしており、ハイパースレッディングメカニズムを搭載したマイクロプロセッサ上でこのオペレーティングシステムを実行すると、このメカニズムがアクティブのときにはこのマイクロプロセッサに属するN個の仮想プロセッサがあるようにユーザには見える。またこのオペレーティングシステムは、有利なように命令スレッドを実行する際にロードバランシングアルゴリズムも実行するため、この命令スレッドには仮想プロセッサの特性を考慮する必要がある。特に、このオペレーティングシステムは、同じ中央処理装置の別の仮想プロセッサに命令スレッドを切り替えて仮想プロセッサをアンロードすることはない。この制約により、ロードバランシングアルゴリズムが非常に重くなる。
具体的には、この制約は、例えば携帯電話のアプリケーションに内蔵するマイクロプロセッサなどに用いるリアルタイム計算およびオンボード処理のアプリケーションでとりわけ問題が起こる。
具体的な第2の例によれば、サーバクラスタに組織した複数の処理ノードを有するHPC(英語の「High Performance Computing」)タイプのスーパーコンピュータの環境では、ユーザは中央処理装置上でのアプリケーションの配置を細かくコントロールすることを望み、例えばそれぞれの通信メカニズムに有利に働く共有キャッシュを利用することもある。
これらの命令スレッドを管理するアプリケーションプログラミングインターフェースのシステムを呼び出すことによって、命令スレッドを細かく配置できる可能性があり、それによってユーザ(すなわちプログラマ)は、命令スレッドに対するオペレーティングシステムタスクのスケジューラの挙動を明示することができるが、これには関連するアプリケーションに対して、コンピュータシステムのトポロジーの知識およびソフトウェア層との競合が生じるおそれのある配置作業が必要になる。
仮想プロセッサの特性を考慮することは、実際には複雑である。それによって実際に問題が起こり、HPCスーパーコンピュータのアプリケーションで自動的な管理ができなくなることさえある。
そのため、前述の問題および制約を少なくとも部分的に緩和することができる、命令スレッドを組み合わせた実行の管理システムを備えることが望まれる。
よって本発明は、命令スレッドの実行を管理するコンピュータシステムであって、同じ中央処理装置に属する複数の仮想プロセッサ上で複数の命令スレッドを組み合わせて実行する少なくとも1つの中央処理装置と、命令スレッドの実行を仮想プロセッサに分散する少なくとも1つのマネージャとを有するコンピュータシステムにおいて、実行する命令スレッドを複数の所定のタイプに応じて分類する分類手段を有することと、命令スレッドの実行を分散するマネージャを、実行する命令スレッドをそれぞれタイプに応じて仮想プロセッサに方向付けるように設計することを特徴とするコンピュータシステムを目的とする。
したがって、命令スレッドをタイプごとに分類し、これをタイプに応じて命令スレッドの実行を分散するマネージャを用いて体系的にそれぞれの仮想プロセッサに方向付けることによって、計算資源を保護する。その結果、中央処理装置を最適な形で使用することになり、関連するアプリケーションの実行が加速する。さらに、ハイパースレッディングメカニズムによりユーザ(プログラマ)が原因となることもあるエラーのリスクが抑えられる。
選択的に、本発明によるコンピュータシステムはさらに、この同じ中央処理装置の各仮想プロセッサをこれらの所定のタイプの1つに関連付ける手段を備えることができ、命令スレッドの実行を分散するマネージャを、実行する命令スレッドをそれぞれこのスレッドと同じタイプの仮想プロセッサに方向付けるように設計することができる。
したがって、命令スレッドを分散するマネージャは、場合によっては命令スレッドに対して中央処理装置を選択するのに関わるだけでよく、仮想プロセッサの正確な選択は命令スレッドのタイプによって自動的に決まる。その結果、ハイパースレッディングメカニズムはユーザから隠すことができる。よって、ユーザがこのメカニズムを理解していないためにエラーが生じるリスクは一切なくなる。さらに、命令スレッドは自動的に正しい仮想プロセッサに方向付けられるため、パフォーマンスは一層改善される。
同じく選択的に、中央処理装置は2つの仮想プロセッサを有し、1つは命令スレッドの第1のタイプに関連付け、もう1つは命令スレッドの第2のタイプに関連付け、実行するコンピュータプロセスはそれぞれ第1のタイプか第2のタイプとする。
同じく選択的に、
− 「計算」と呼ぶ命令スレッドの第1のタイプは、結果を供給するようにコンピュータシステムが実行するようになっているプログラムに対して、このプログラムの実行に参加して結果を直接生成する命令スレッドに関係し、
− 「サービス」と呼ぶプロセスの第2のタイプは、このプログラムの実行に参加して「計算」タイプの命令スレッドに付属サービスを供給する命令スレッドに関係する。
同じく選択的に、本発明によるコンピュータシステムは、少なくとも2つの中央処理装置を備えることができ、それぞれがこの同じ中央処理装置に属する複数の仮想プロセッサ上で複数の命令スレッドを組み合わせて実行し、命令スレッドの実行を分散するマネージャを、中央処理装置が備える仮想プロセッサとは独立して、実行する命令スレッドそれぞれに対して中央処理装置を選択するように設計することができる。
本発明はまた、コンピュータシステムの同じ中央処理装置に属する複数の仮想プロセッサ上で複数の命令スレッドを組み合わせて実行するのを管理する方法であって、仮想プロセッサに命令スレッドの実行を分散するステップを含む方法において、複数の所定のタイプに応じて実行する命令スレッドを分類する予備ステップを含むことと、命令スレッドの実行を分散するステップで、実行する命令スレッドそれぞれをタイプに応じて仮想プロセッサに方向付けることとを特徴とする方法も目的とする。
選択的に、分類ステップで、命令スレッドを管理するアプリケーションプログラミングインターフェースの関数でタイプを識別するパラメータに基づいて、命令スレッドをそれぞれタイプで分類する。
同じく選択的に、分類ステップで、命令スレッドの実行を含むプログラムの実行コマンドでタイプを識別するパラメータに基づいて、この命令スレッドをそれぞれこのタイプで分類する。
本発明はまた、スーパーコンピュータタイプのサーバクラスタの複数の処理ノード上で複数の命令スレッドを実行することの管理に対する上記のように定義した方法の適用であって、各処理ノードが、同じ中央処理装置に属する複数の仮想プロセッサ上で複数の命令スレッドを組み合わせて実行する少なくとも1つの中央処理装置を有する適用も目的とする。
最後に、本発明はまた、通信ネットワークからダウンロード可能なコンピュータプログラムおよび/またはコンピュータで再生可能な媒体に記録したコンピュータプログラムおよび/またはプロセッサのなかでもとりわけコンピュータのオペレーティングシステムで実行可能なコンピュータプログラムであって、前記プログラムをコンピュータ上で実行した場合に、上記のように定義した複数の命令スレッドを組み合わせた実行の管理方法のステップを実行するプログラムコードの命令を含むことを特徴とするコンピュータプログラムも目的とする。
本発明は、添付の図を参照しながら例のみを目的として挙げた以下の説明文を読めばよりよく理解できるであろう。
本発明の一実施形態による少なくとも1つのコンピュータシステムを有する設備の全体構造の概略図である。 本発明の一実施形態による、図1の設備で実施することのできる複数のコンピュータプロセスを組み合わせた実行の管理方法を示す一連のステップの全体図である。
本発明はどのようなアプリケーションからも独立して、同じ中央処理装置に属する複数の仮想プロセッサ上で複数の命令スレッドを組み合わせて実行する少なくとも1つの中央処理装置と、仮想プロセッサに命令スレッドの実行を分散する少なくとも1つのマネージャとを備えるあらゆるコンピュータシステムに実装することができ、以下に一実施形態を詳細に説明する。
最も単純な事例では、本発明は、ハイパースレッディングメカニズムを搭載したマイクロプロセッサを備えれば実装することができる。リアルタイム計算および/またはオンボードのアプリケーションが本発明から利益を引き出すことができる。
ネットワーク接続したコンピューティングデバイスまたはHPCスーパーコンピュータの最も複雑なアプリケーションでは、少なくとも1つのマイクロプロセッサを有する各装置が本発明を実装できることが有利である。
図1に示す実施形態はHPCコンピュータの適用例であり、以下に本発明の一実施形態を詳細に説明する。実際にこれは本発明の特に重要な産業上の適用例である。ただし、前述したとおり、本発明はこのようなHPCコンピュータの設備に限定されるものではないことは明らかである。
図1に示すコンピューティングデバイス12、14、16、18の設備10は、例えば帯域がきわめて広いデータ伝送ネットワーク20を少なくとも1つ介して相互接続したサーバクラスタで組織したHPCコンピュータを非常に簡略化した不完全な例である。この設備10は、例えばとりわけ計算ノードを形成する符号12、14、16および18で示したコンピューティングデバイスと、サービスノード、管理ノードまたは格納ノードを形成するコンピューティングデバイス(図示せず)とを有する。計算ノード12、14、16および18の全体構造は同じであってもよいが、コンピューティングデバイス18の構造のみを以下に詳述する。
例えばマイクロコンピュータタイプの計算サーバであるコンピューティングデバイス18は、
− 第1の中央処理装置24および第2の中央処理装置26が接続する通信バスであって、コンピュータプログラム、さらに詳細には命令スレッドにより生じるコンピュータプロセスを実行するための通信バス22と、
− ROM28(英語の「Read Only Memory」)タイプの読み出し専用メモリ、および処理データおよび/または起動プログラム(例えばBIOSタイプのアプリケーション)を格納し、周辺機器を管理するためのRAM30(英語の「Random Access Memory」)タイプの書き込み可能なメモリと、
− 少なくとも1つのハードディスク32と
を有する。
このコンピューティングデバイス18は、場合によってはさらに(この図には示していないが)従来のように、以下の素子:スクリーン、キーボード、マウス、ネットワーク20との通信インターフェース、およびCD−ROMまたはDVDのリーダ/レコーダなどの交換可能な媒体へのデータのリーダ/レコーダを1つまたは複数有する。
ハードディスク32は、コンピューティングデバイス18の起動時にBIOSアプリケーションをロードしたLinuxシステムなどのオペレーティングシステム34をファイルの形態で格納する。同じ中央処理装置の複数の仮想プロセッサ上で命令スレッドを組み合わせて実行するメカニズムが、このオペレーティングシステムに対してアクティブになる。例えばこのメカニズムは、中央処理装置24および26にそれぞれ2つの仮想プロセッサがあるようなものである。つまり、仮想プロセッサ24Cおよび24Sは第1の中央処理装置24に、仮想プロセッサ26Cおよび26Sは第2の中央処理装置26に対するものである。
変形例では、オペレーティングシステム34を外部の格納手段(ハードディスクタイプの外部媒体、ネットワーク等)に格納することができる。この変形例では、リーダ/レコーダおよびコンピューティングデバイス18の通信インターフェースは、外部媒体からハードディスク32へデータを転送してオペレーティングシステム34をロードすることができる。
どのような場合においても、オペレーティングシステム34は、通信ネットワークからダウンロード可能なコンピュータプログラムおよび/またはコンピュータで再生可能な媒体に記録したコンピュータプログラムおよび/またはプロセッサムで実行可能なコンピュータプログラムであって、複数の命令スレッドを組み合わせて実行する管理方法のステップを実行するためのプログラムコードの命令を含むコンピュータプログラムであり、これについては図2を参照しながら説明する。
より一般に、前述の構造は、コンピューティングデバイスのあらゆるタイプのネットワークに適しているためHPCタイプである必要はなく、この構造では各コンピューティングデバイスのオペレーティングシステムは、仮想プロセッサ上で命令スレッドを組み合わせて実行するメカニズムを利用する。
つまり、先ほど構造的に説明したようなコンピューティングデバイス18は、本発明を実装することができる装置の非限定的な一例にすぎないことがわかるであろう。コンピューティングデバイスの構想には多種多様なアーキテクチャがあり、同じ中央処理装置に属する複数の仮想プロセッサ上で複数の命令スレッドを組み合わせて実行する中央処理装置を最低1つ備える装置はすべて適切である。
本発明の一実施形態によれば、コンピューティングデバイス18は、複数の所定のタイプに応じて、また特に、
− 「計算」と呼ぶ命令スレッドの第1のタイプは、結果を供給するようにコンピューティングデバイス18が実行するようになっているプログラムに対して、このプログラムの実行に参加して結果を直接生成する命令スレッドに関係し、
− 「サービス」と呼ぶプロセスの第2のタイプは、このプログラムの実行に参加して「計算」タイプの命令スレッドに付属サービスを供給する命令スレッドに関係する
という2つのタイプの命令スレッドに応じて、実行する命令スレッドを分類する分類手段36を有する。
サービスの命令スレッドは、例えば結果の保存、メモリの管理、出入力の管理、データの通信、モニタリング、ファイルへのアクセスなどに係る。
アプリケーションに応じて、分類手段36はさまざまな形態を取ることができる。
第1の適用例では、実行するプログラムが複数の命令スレッドの実行を要求し、そのうちのいくつかの命令スレッドが計算に参加し、残りの命令スレッドが付属サービスに参加する。この場合、このプログラムは、命令スレッドを管理するアプリケーションプログラミングインターフェースの関数である、例えばアプリケーションプログラミングインターフェースPOSIXの関数sched_setscheduler()を、計算タイプ(HTCALCUL)かサービスタイプ(HT_SERVICE)かを識別するパラメータに基づいて呼び出すように設計する。したがって、オペレーティングシステム34によって実装する命令スレッドの分類手段36は、このパラメータを自動的に認識して仮想プロセッサに方向付ける命令スレッドのタイプを識別することからなる。
第2の適用例では、複数のプログラムを実行する必要があり、そのうちのいくつかは計算プログラム、残りはサービスプログラムである。この場合、ユーザは、計算かサービスかのタイプをパラメータで識別するコマンドを用いてプログラムの実行を開始するようにする。例えばこれは、コマンドht_sched−[CALCULまたはSERVICE]<プログラム名>である。このようにオペレーティングシステム34で実装した命令スレッドの分類手段36は、このパラメータを自動的に認識してプログラムが要求する命令スレッドのタイプを識別することからなる。
第3の適用例では、並列計算プログラムに広く使用されるMPI(英語の「Message Passing Interface」)ライブラリが、計算モードで開始される主要プログラムの枠組みでのサービスに向けた固有の命令スレッドを生成する(第2の適用例を参照)。この場合、このライブラリは、サービスタイプ(HT_SERVICE)を識別するパラメータに基づいて関数setscheduler()を呼び出すことができる。したがって、オペレーティングシステム34によって実装する命令スレッドの分類手段36は、このパラメータを自動的に認識してこのMPIライブラリが生成する命令スレッドのタイプを識別することからなる。
命令スレッドのタイプが前述したように先験的に明示されない第4の適用例では、オペレーティングシステム34の分類手段36を、自動的に、その上簡潔に、とりわけこれらの命令スレッドの起動元であるアプリケーションを自動的に認識することによってタイプを決定するように設計することができる。
その上、コンピューティングデバイス18は、同じ中央処理装置の各仮想プロセッサを前述した2つのタイプの一方に関連付ける手段を有する。図1に示すように、この関連付け手段は、例えば計算タイプかサービスタイプかをそれぞれ識別するパラメータCおよびSである。この関連付け手段は、例えば該当する中央処理装置24、26、または変形例ではオペレーティングシステム34によって明示的または暗黙的に管理される。したがって、図1に概略的に示した例では、第1の中央処理装置24の仮想プロセッサ24Cは計算タイプであり、第1の中央処理装置24の仮想プロセッサ24Sはサービスタイプであり、第2の中央処理装置26の仮想プロセッサ26Cは計算タイプであり、第2の中央処理装置26の仮想プロセッサ26Sはサービスタイプである。
オペレーティングシステム34は、仮想プロセッサ24C、24S、26Cおよび26Sに命令スレッドの実行を分散するマネージャ38を有する。さらに正確には、この分散マネージャ38は、実行する命令スレッドをそれぞれタイプに応じて1つの仮想プロセッサに方向付けし、さらに正確にはタイプが同じ仮想プロセッサにも方向付けするように設計する。したがって、仮想プロセッサ24Cまたは26Cには計算タイプの命令スレッドしか方向付けできず、仮想プロセッサ24Sまたは26Sにはサービスタイプの命令スレッドしか方向付けできない。
具体的には、分散マネージャ38は、
− 実行する命令スレッドそれぞれに対して、中央処理装置にある仮想プロセッサ24C、24Sまたは26C、26Sとは独立して中央処理装置24または26を選択する第1のソフトウェア手段40と、
− 選択した中央処理装置の仮想プロセッサのうち、実行する命令スレッドと同じタイプのものを自動的に割り当てる第2のソフトウェア手段42と
を有する。
次に、図1のコンピューティングデバイス18が実装する複数のコンピュータプロセスを組み合わせた実行の管理方法を図2を参照して詳述する。
第1の分類ステップ100では、実行待機状態にある命令スレッドT1、T2およびT3を計算タイプ(右斜線)かサービスタイプ(左斜線)であるかによって分類する。このタイプは、コマンドのパラメータまたはアプリケーションプログラミングインターフェースの関数のパラメータで先験的に定義し、前述したようにオペレーティングシステム34のソフトウェア手段36によって自動的に認識することができる。このタイプは、オペレーティングシステム34のソフトウェア手段36によって直接、自動的に定義することもできる。
次のステップ102では、オペレーティングシステム34の分散マネージャ38は、ソフトウェア手段40を用いて各命令スレッドに対して中央処理装置24または26を選択し、選択した中央処理装置の待ち行列にこの命令スレッドを配置する。
その後、各命令スレッドをソフトウェア手段42が実行する仮想プロセッサに割り当てるステップ104では、中央処理装置24または26の待ち行列に配置した各命令スレッドが、実際にはこの命令スレッドと同じタイプのこの中央処理装置24または26の仮想プロセッサの待ち行列に自動的に配置される。
最後に、実行ステップ106では、前のステップで割り当てられた仮想プロセッサによって各命令スレッドを実行する。
前述したようなコンピューティングデバイス18によって、複数の仮想プロセッサ上での命令スレッドの実行管理が容易になることは明らかである。
先行技術では、仮想プロセッサ上で命令スレッドを組み合わせて実行するメカニズムを実装することができるコンピューティングデバイスにロードしたオペレーティングシステムは、一般の計算媒体と同じようにあらゆる仮想プロセッサを備えているため、命令スレッドの分散が一層複雑になっている。
本発明によれば、オペレーティングシステムによる命令スレッドの分散が簡略化し、とりわけHPCスーパーコンピュータまたはリアルタイム計算のアプリケーションを実装するプロセッサなど計算が強く求められる環境で、命令スレッドを組み合わせて実行するメカニズムから多くの利益が引き出される。さらに正確には、前述した実施形態では、同じ1つの中央処理装置にある2つの仮想プロセッサを、相互に交換可能な2つの計算媒体ではなく、計算に対する1つの主要な実行媒体および付属サービスに対する1つの二次的な実行媒体として示した。したがって、N個の中央処理装置がある一般化したコンピューティングデバイス18では、命令スレッドを組み合わせて実行するメカニズムを実装したとしても、実際にはユーザ(およびオペレーティングシステム)にはN個の中央処理装置しか見えず、このメカニズムを実装していないかのように見える。その結果、命令スレッドの分散で起こる管理上の制約を受けることなくこのメカニズムから利益が引き出される。
選択した中央処理装置の仮想プロセッサに命令スレッドを自動的に割り当てることによって、命令スレッドはその役割および制約に応じて仮想プロセッサに分配され、ユーザまたはオペレーティングシステムがこの分配に介入することはない。
命令スレッドが分配されると、同じ1つの中央処理装置にある2つの仮想プロセッサ上で実行メカニズムを平行に実装することの利点が、以下の点にあることがわかる。
− 中央処理装置は2つの異なる待ち行列を管理するため、1つの命令スレッドから別の命令スレッドへの移行を管理する必要がなくなり、この同時の実行はハードウェアが管理する。
− 特に、仮想プロセッサが実行する命令スレッドが1つしか残っていないとき、中央処理装置は仮想プロセッサに割り込むことなく仮想プロセッサにコードを実行させることができる。
− 1つのプログラムから別のプログラムへの移行は、命令ごとに行われる。
この非常に細かい粒度は、とりわけ支障を来すおそれのあるデーモンの場合に明確に有益になり得る。実際、同じ1つの中央処理装置にある計算の仮想プロセッサは減速するが、一定時間の間サービスの仮想プロセッサからブロックされることはない。支障(デーモンおよび割り込み)による影響は、計算の仮想プロセッサによって著しく減少する。
HPC環境では、計算コードを計算の仮想プロセッサに配置し、付属サービスをサービスの仮想プロセッサに配置することができ、これはバッチマネージャなどの使用ツールに対して明白な方法で行う。リアルタイム環境では、これによって重要な命令スレッドを他のすべてのサービス命令スレッドから自動的に隔離し、スケジューリングのために起こる割り込みは一切なく、選択した中央処理装置で利用可能な実行時間の最低50%をこの重要な命令スレッドのために確保することができる。
最後に、コンピューティングデバイス18と、各命令スレッドに1つのタイプを先験的に割り当てるこの機能性を考慮していないプログラムとの互換性に関しては、デフォルトとして命令スレッドを1つのサービスの仮想プロセッサに方向付ける必要があることは明らかである。実際、オペレーティングシステムが開始するデーモンはすべて、計算に支障を来さないようにサービスの仮想プロセッサで実行する必要がある。そのため、命令スレッドを計算の仮想プロセッサに方向付けるために計算コードのみを特別に適合させる必要がある。この適合は、必ずしもプログラム自体から行う必要はなく、例えば前述のMPIライブラリなど外部のツールで実行してもよい。
さらに、本発明は前述した実施形態に限定されるものではないことがわかるであろう。とりわけ、各中央処理装置が3つ以上の仮想プロセッサを備えられるメカニズムを実装することができる場合、3つ以上のタイプの命令スレッドを定義することが有利になり得る。
また、何度も前述して示唆したように、図1に示すHPCスーパーコンピュータの設備が本発明を実装できる唯一のものではない。例えばリアルタイム計算および/またはオンボード処理などこれよりも遙かに簡易なコンフィギュレーションでは、複数の仮想プロセッサ上で複数の命令スレッドを組み合わせて実行する少なくとも1つの中央処理装置を有する単一のプロセッサ(またはこのようなプロセッサを備えるコンピュータ)を備えていれば、本発明を実装することができる。
さらに一般的には、ここに開示した教示に照らし合わせて、上に記載した実施形態にさまざまな修正を加えてもよいことは当業者には明らかであろう。以下の特許請求の範囲では、使用した用語が請求項を本明細書で明らかにした実施形態に限定するものと解釈してはならず、本文の記載およびそこから予見される内容は、ここに開示した教示の実装に一般知識を応用することによって当業者が到達しうる範囲内であることから、請求項が範囲に含めると想定するあらゆる同等のものも含まれると解釈すべきである。

Claims (10)

  1. 命令スレッドの実行を管理するコンピュータシステム(18)であって、同じ中央処理装置に属する複数の仮想プロセッサ(24C、24S、26C、26S)上で複数の命令スレッドを組み合わせて実行する少なくとも1つの中央処理装置(24、26)と、前記仮想プロセッサに命令スレッドの実行を分散する少なくとも1つのマネージャ(38)とを有するコンピュータシステムにおいて、実行する前記命令スレッドを複数の所定のタイプに応じて分類する分類手段(36)を有することと、前記命令スレッドの実行を分散する前記マネージャ(38)を、実行する前記命令スレッドをそれぞれタイプに応じて前記仮想プロセッサ(24C、24S、26C、26S)に方向付けるように設計することを特徴とするコンピュータシステム。
  2. 前記同じ中央処理装置(24、26)の各仮想プロセッサ(24C、24S、26C、26S)を前記所定のタイプの1つに関連付ける手段(C、S)を備える、請求項1に記載のコンピュータシステムにおいて、前記命令スレッドの実行を分散する前記マネージャ(38)を、実行する前記命令スレッドをそれぞれ該スレッドと同じタイプの仮想プロセッサ(24C、24S、26C、26S)に方向付けるように設計するコンピュータシステム。
  3. 前記中央処理装置(24、26)は2つの仮想プロセッサ(24C、24S、26C、26S)を有し、1つは命令スレッドの第1のタイプ(C)に関連付け、もう1つは命令スレッドの第2のタイプ(S)に関連付け、実行するコンピュータプロセスはそれぞれ前記第1のタイプか前記第2のタイプである、請求項1または2に記載のコンピュータシステム。
  4. − 「計算」と呼ぶ命令スレッドの前記第1のタイプ(C)は、結果を供給するように前記コンピュータシステムが実行するようになっているプログラムに対して、該プログラムの実行に参加して結果を直接生成する命令スレッドに関係し、
    − 「サービス」と呼ぶプロセスの前記第2のタイプ(S)は、該プログラムの実行に参加して「計算」タイプの前記命令スレッドに付属サービスを供給する命令スレッドに関係する、
    請求項3に記載のコンピュータシステム。
  5. 少なくとも2つの中央処理装置(24、26)を有し、それぞれが複数の仮想プロセッサ(24C、24S、26C、26S)を備え、仮想プロセッサ上で複数の命令スレッドを組み合わせて実行する、請求項1から4のいずれか一項に記載のコンピュータシステムにおいて、前記命令スレッドの実行を分散する前記マネージャ(38)を、中央処理装置にある仮想プロセッサとは独立して、実行する命令スレッドそれぞれに対して中央処理装置を選択するように設計するコンピュータシステム。
  6. コンピュータシステム(18)の同じ中央処理装置(24、26)に属する複数の仮想プロセッサ(24C、24S、26C、26S)上で複数の命令スレッドを組み合わせて実行するのを管理する方法であって、前記仮想プロセッサに前記命令スレッドの実行を分散するステップ(104)を含む方法において、複数の所定のタイプに応じて実行する前記命令スレッドを分類する予備ステップ(100)を含むことと、前記命令スレッドの実行を分散するステップ(104)で、実行する命令スレッドそれぞれをタイプに応じて仮想プロセッサに方向付けることとを特徴とする方法。
  7. 前記分類ステップ(100)で、命令スレッドを管理するアプリケーションプログラミングインターフェースの関数でタイプを識別するパラメータに基づいて、前記命令スレッドをそれぞれタイプで分類する、請求項6に記載の方法。
  8. 前記分類ステップ(100)で、命令スレッドの実行を含むプログラムの実行コマンドでタイプを識別するパラメータに基づいて、前記命令スレッドをそれぞれこのタイプで分類する、請求項6に記載の方法。
  9. スーパーコンピュータタイプのサーバクラスタ(10)の複数の処理ノード上で複数の命令スレッドを実行することの管理に対する請求項6から8のいずれか一項に記載の方法の適用であって、各処理ノード(18)が、同じ中央処理装置に属する複数の仮想プロセッサ(24C、24S、26C、26S)上で複数の命令スレッドを組み合わせて実行する少なくとも1つの中央処理装置(24、26)を有する適用。
  10. 通信ネットワークからダウンロード可能なコンピュータプログラムおよび/またはコンピュータで再生可能な媒体に記録したコンピュータプログラムおよび/またはプロセッサのなかでもとりわけコンピュータのオペレーティングシステム(34)で実行可能なコンピュータプログラムであって、前記プログラムをコンピュータ上で実行した場合に、請求項6から8のいずれか一項に記載の複数の命令スレッドを組み合わせた実行の管理方法のステップを実行するプログラムコードの命令を含むことを特徴とするコンピュータプログラム。
JP2012530310A 2009-09-25 2010-09-15 命令スレッドを組み合わせた実行の管理システムおよび管理方法 Expired - Fee Related JP6294586B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0956660 2009-09-25
FR0956660A FR2950714B1 (fr) 2009-09-25 2009-09-25 Systeme et procede de gestion de l'execution entrelacee de fils d'instructions
PCT/FR2010/051918 WO2011036377A1 (fr) 2009-09-25 2010-09-15 Systeme et procede de gestion de l'execution entrelacee de fils d'instructions

Publications (2)

Publication Number Publication Date
JP2013506179A true JP2013506179A (ja) 2013-02-21
JP6294586B2 JP6294586B2 (ja) 2018-03-14

Family

ID=42153843

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012530310A Expired - Fee Related JP6294586B2 (ja) 2009-09-25 2010-09-15 命令スレッドを組み合わせた実行の管理システムおよび管理方法

Country Status (6)

Country Link
US (1) US9436510B2 (ja)
EP (1) EP2480969B1 (ja)
JP (1) JP6294586B2 (ja)
BR (1) BR112012006636A2 (ja)
FR (1) FR2950714B1 (ja)
WO (1) WO2011036377A1 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120096290A1 (en) * 2010-10-14 2012-04-19 Keynetik, Inc. Distributed Architecture for Situation Aware Sensory Application
US10187452B2 (en) * 2012-08-23 2019-01-22 TidalScale, Inc. Hierarchical dynamic scheduling
US9195493B2 (en) 2014-03-27 2015-11-24 International Business Machines Corporation Dispatching multiple threads in a computer
US9223574B2 (en) 2014-03-27 2015-12-29 International Business Machines Corporation Start virtual execution instruction for dispatching multiple threads in a computer
GB2546308B (en) * 2016-01-15 2019-04-03 Advanced Risc Mach Ltd Data processing systems
CN106293981A (zh) * 2016-07-29 2017-01-04 浪潮电子信息产业股份有限公司 一种服务器cpu超线程技术的检测方法
US10579421B2 (en) 2016-08-29 2020-03-03 TidalScale, Inc. Dynamic scheduling of virtual processors in a distributed system
US10152341B2 (en) 2016-08-30 2018-12-11 Red Hat Israel, Ltd. Hyper-threading based host-guest communication
US10713276B2 (en) 2016-10-03 2020-07-14 Ocient, Inc. Data transition in highly parallel database management system
US10706031B2 (en) 2016-12-14 2020-07-07 Ocient, Inc. Database management systems for managing data with data confidence
EP3555756A4 (en) 2016-12-14 2020-09-23 Ocient, Inc. SYSTEM AND METHOD OF USING A DETAILED LEADER IN A DATABASE MANAGEMENT SYSTEM
WO2018187229A1 (en) * 2017-04-03 2018-10-11 Ocient, Inc Database management system using hybrid indexing list and hierarchical query processing architecture
US10754856B2 (en) 2017-05-30 2020-08-25 Ocient Inc. System and method for optimizing large database management systems using bloom filter
US10671430B2 (en) * 2017-06-04 2020-06-02 Apple Inc. Execution priority management for inter-process communication
US11023135B2 (en) 2017-06-27 2021-06-01 TidalScale, Inc. Handling frequently accessed pages
US10817347B2 (en) 2017-08-31 2020-10-27 TidalScale, Inc. Entanglement of pages and guest threads
US11182125B2 (en) 2017-09-07 2021-11-23 Ocient Inc. Computing device sort function
US11709835B2 (en) 2018-10-15 2023-07-25 Ocient Holdings LLC Re-ordered processing of read requests
US11249916B2 (en) 2018-10-15 2022-02-15 Ocient Holdings LLC Single producer single consumer buffering in database systems
US11880368B2 (en) 2018-10-15 2024-01-23 Ocient Holdings LLC Compressing data sets for storage in a database system
US11886436B2 (en) 2018-10-15 2024-01-30 Ocient Inc. Segmenting a partition of a data set based on a data storage coding scheme
US11256696B2 (en) 2018-10-15 2022-02-22 Ocient Holdings LLC Data set compression within a database system
US11093500B2 (en) 2019-10-28 2021-08-17 Ocient Holdings LLC Enforcement of minimum query cost rules required for access to a database system
US11106679B2 (en) 2019-10-30 2021-08-31 Ocient Holdings LLC Enforcement of sets of query rules for access to data supplied by a plurality of data providers
US11609911B2 (en) 2019-12-19 2023-03-21 Ocient Holdings LLC Selecting a normalized form for conversion of a query expression
US11061910B1 (en) 2020-01-31 2021-07-13 Ocient Holdings LLC Servicing concurrent queries via virtual segment recovery
US11853364B2 (en) 2020-01-31 2023-12-26 Ocient Holdings LLC Level-based queries in a database system and methods for use therewith
US11599463B2 (en) 2020-03-25 2023-03-07 Ocient Holdings LLC Servicing queries during data ingress
US11238041B2 (en) 2020-03-25 2022-02-01 Ocient Holdings LLC Facilitating query executions via dynamic data block routing
US11580102B2 (en) 2020-04-02 2023-02-14 Ocient Holdings LLC Implementing linear algebra functions via decentralized execution of query operator flows
US11294916B2 (en) 2020-05-20 2022-04-05 Ocient Holdings LLC Facilitating query executions via multiple modes of resultant correctness
US11775529B2 (en) 2020-07-06 2023-10-03 Ocient Holdings LLC Recursive functionality in relational database systems
US11321288B2 (en) 2020-08-05 2022-05-03 Ocient Holdings LLC Record deduplication in database systems
US11880716B2 (en) 2020-08-05 2024-01-23 Ocient Holdings LLC Parallelized segment generation via key-based subdivision in database systems
US11755589B2 (en) 2020-08-05 2023-09-12 Ocient Holdings LLC Delaying segment generation in database systems
US11822532B2 (en) 2020-10-14 2023-11-21 Ocient Holdings LLC Per-segment secondary indexing in database systems
US11507578B2 (en) 2020-10-19 2022-11-22 Ocient Holdings LLC Delaying exceptions in query execution
US11675757B2 (en) 2020-10-29 2023-06-13 Ocient Holdings LLC Maintaining row durability data in database systems
US11297123B1 (en) 2020-12-11 2022-04-05 Ocient Holdings LLC Fault-tolerant data stream processing
US11314743B1 (en) 2020-12-29 2022-04-26 Ocient Holdings LLC Storing records via multiple field-based storage mechanisms
US11645273B2 (en) 2021-05-28 2023-05-09 Ocient Holdings LLC Query execution utilizing probabilistic indexing
US11803544B2 (en) 2021-10-06 2023-10-31 Ocient Holdings LLC Missing data-based indexing in database systems
US11983172B2 (en) 2021-12-07 2024-05-14 Ocient Holdings LLC Generation of a predictive model for selection of batch sizes in performing data format conversion

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004220608A (ja) * 2003-01-16 2004-08-05 Internatl Business Mach Corp <Ibm> スレッド型に基づくコンピュータ・リソースの動的割り付け
JP2004348462A (ja) * 2003-05-22 2004-12-09 Mitsubishi Electric Corp 分散シミュレーションシステム
JP2007522561A (ja) * 2004-02-06 2007-08-09 インテル・コーポレーション 同時マルチスレッディングプロセッサを用いてバッファ型アプリケーションのエネルギー消費を低減する方法
JP2007328782A (ja) * 2006-06-07 2007-12-20 Internatl Business Mach Corp <Ibm> カーネル間でカーネル・サービスを共用するための方法、装置、およびコンピュータ・プログラム
JP2008527501A (ja) * 2004-12-30 2008-07-24 インテル・コーポレーション 複数の命令シーケンサでのスレッド実行に基づく命令セットのためのメカニズム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5951653A (en) * 1997-01-29 1999-09-14 Microsoft Corporation Method and system for coordinating access to objects of different thread types in a shared memory space
US6216173B1 (en) * 1998-02-03 2001-04-10 Redbox Technologies Limited Method and apparatus for content processing and routing
US6901522B2 (en) * 2001-06-07 2005-05-31 Intel Corporation System and method for reducing power consumption in multiprocessor system
US7389506B1 (en) * 2002-07-30 2008-06-17 Unisys Corporation Selecting processor configuration based on thread usage in a multiprocessor system
US7233335B2 (en) * 2003-04-21 2007-06-19 Nividia Corporation System and method for reserving and managing memory spaces in a memory resource
JP4057989B2 (ja) * 2003-09-26 2008-03-05 株式会社東芝 スケジューリング方法および情報処理システム
US7454748B2 (en) * 2004-07-27 2008-11-18 Nokia Corporation System and method for specifying virtual machines
US20060130062A1 (en) * 2004-12-14 2006-06-15 International Business Machines Corporation Scheduling threads in a multi-threaded computer
JP4448784B2 (ja) * 2005-03-15 2010-04-14 株式会社日立製作所 並列計算機の同期方法及びプログラム
US7865895B2 (en) * 2006-05-18 2011-01-04 International Business Machines Corporation Heuristic based affinity dispatching for shared processor partition dispatching
US8108872B1 (en) * 2006-10-23 2012-01-31 Nvidia Corporation Thread-type-based resource allocation in a multithreaded processor
US8032884B2 (en) * 2006-10-31 2011-10-04 Hewlett-Packard Development Company, L.P. Thread hand off
US8028286B2 (en) * 2006-11-30 2011-09-27 Oracle America, Inc. Methods and apparatus for scheduling threads on multicore processors under fair distribution of cache and other shared resources of the processors
US7926058B2 (en) * 2007-02-06 2011-04-12 Mba Sciences, Inc. Resource tracking method and apparatus
US7853950B2 (en) * 2007-04-05 2010-12-14 International Business Machines Corporarion Executing multiple threads in a processor
US9043801B2 (en) * 2008-01-15 2015-05-26 International Business Machines Corporation Two-tiered dynamic load balancing using sets of distributed thread pools
DE102008005124A1 (de) * 2008-01-18 2009-07-23 Kuka Roboter Gmbh Computersystem, Steuerungsvorrichtung für eine Maschine, insbesondere für einen Industrieroboter, und Industrieroboter
US8245236B2 (en) * 2008-02-27 2012-08-14 International Business Machines Corporation Lock based moving of threads in a shared processor partitioning environment
US8214424B2 (en) * 2009-04-16 2012-07-03 International Business Machines Corporation User level message broadcast mechanism in distributed computing environment
US8745622B2 (en) * 2009-04-22 2014-06-03 International Business Machines Corporation Standalone software performance optimizer system for hybrid systems
US8527988B1 (en) * 2009-07-31 2013-09-03 Hewlett-Packard Development Company, L.P. Proximity mapping of virtual-machine threads to processors
US8745618B2 (en) * 2009-08-25 2014-06-03 International Business Machines Corporation Cache partitioning with a partition table to effect allocation of ways and rows of the cache to virtual machine in virtualized environments
US8443376B2 (en) * 2010-06-01 2013-05-14 Microsoft Corporation Hypervisor scheduler

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004220608A (ja) * 2003-01-16 2004-08-05 Internatl Business Mach Corp <Ibm> スレッド型に基づくコンピュータ・リソースの動的割り付け
JP2004348462A (ja) * 2003-05-22 2004-12-09 Mitsubishi Electric Corp 分散シミュレーションシステム
JP2007522561A (ja) * 2004-02-06 2007-08-09 インテル・コーポレーション 同時マルチスレッディングプロセッサを用いてバッファ型アプリケーションのエネルギー消費を低減する方法
JP2008527501A (ja) * 2004-12-30 2008-07-24 インテル・コーポレーション 複数の命令シーケンサでのスレッド実行に基づく命令セットのためのメカニズム
JP2007328782A (ja) * 2006-06-07 2007-12-20 Internatl Business Mach Corp <Ibm> カーネル間でカーネル・サービスを共用するための方法、装置、およびコンピュータ・プログラム

Also Published As

Publication number Publication date
FR2950714B1 (fr) 2011-11-18
EP2480969A1 (fr) 2012-08-01
JP6294586B2 (ja) 2018-03-14
BR112012006636A2 (pt) 2020-08-11
EP2480969B1 (fr) 2020-01-08
WO2011036377A1 (fr) 2011-03-31
US9436510B2 (en) 2016-09-06
FR2950714A1 (fr) 2011-04-01
US20120185866A1 (en) 2012-07-19

Similar Documents

Publication Publication Date Title
JP6294586B2 (ja) 命令スレッドを組み合わせた実行の管理システムおよび管理方法
US10241831B2 (en) Dynamic co-scheduling of hardware contexts for parallel runtime systems on shared machines
US9454389B2 (en) Abstracting a multithreaded processor core to a single threaded processor core
US8752055B2 (en) Method of managing resources within a set of processes
JP5367816B2 (ja) オペレーションの保護モードスケジューリング
KR20180053359A (ko) 다중-버전형 태스크들의 효율적 스케줄링
US9875139B2 (en) Graphics processing unit controller, host system, and methods
JP2005536791A (ja) 動的多重レベルタスク管理方法及び装置
US8321874B2 (en) Intelligent context migration for user mode scheduling
CN110308982B (zh) 一种共享内存复用方法及装置
US11366689B2 (en) Hardware for supporting OS driven observation and anticipation based on more granular, variable sized observation units
KR20110075296A (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
Puthoor et al. Oversubscribed command queues in GPUs
CN111459622B (zh) 调度虚拟cpu的方法、装置、计算机设备和存储介质
CN111597044A (zh) 任务调度方法、装置、存储介质及电子设备
US20150212859A1 (en) Graphics processing unit controller, host system, and methods
US11061730B2 (en) Efficient scheduling for hyper-threaded CPUs using memory monitoring
EP3702911B1 (en) Hardware for supporting os driven load anticipation based on variable sized load units
Hoffmann et al. Dynamic task scheduling and load balancing on cell processors
Chen et al. Gemini: Enabling multi-tenant gpu sharing based on kernel burst estimation
JP7346649B2 (ja) 同期制御システムおよび同期制御方法
CN115098230A (zh) 管理线程的方法及装置
US9619277B2 (en) Computer with plurality of processors sharing process queue, and process dispatch processing method
KR20180082560A (ko) 태스크의 시간-기반 스케줄링을 위한 방법 및 장치
Walters et al. Enabling interactive jobs in virtualized data centers

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131105

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140131

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140207

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140305

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140320

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140331

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140902

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150108

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150202

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20150403

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20150821

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180216

R150 Certificate of patent or registration of utility model

Ref document number: 6294586

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees