JP2003241980A - マルチプロセッサ・コンピュータ・システムのためのスレッド・ディスパッチ機構及び方法 - Google Patents
マルチプロセッサ・コンピュータ・システムのためのスレッド・ディスパッチ機構及び方法Info
- Publication number
- JP2003241980A JP2003241980A JP2003025839A JP2003025839A JP2003241980A JP 2003241980 A JP2003241980 A JP 2003241980A JP 2003025839 A JP2003025839 A JP 2003025839A JP 2003025839 A JP2003025839 A JP 2003025839A JP 2003241980 A JP2003241980 A JP 2003241980A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- processors
- threads
- processor
- additional
- 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
Links
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/505—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 the load
Abstract
ためのスレッド・ディスパッチ機構及び方法を提供す
る。 【解決手段】スレッド・ディスパッチ機構は、どのプロ
セッサがビジーであって更なるスレッドを実行すること
ができないか、どのプロセッサがスレッドに作用してい
るか、及びどのプロセッサがアイドル状態にあるかを決
定する。スレッドがディスパッチされる準備ができる
時、それらは、他のスレッドに既に作用しているプロセ
ッサの代わりに、アイドル・プロセッサに先ずディスパ
ッチされる。アイドル・プロセッサがまったく存在しな
い場合、スレッドは、1つ又は複数のスレッドに作用し
ているが、新たなスレッドも処理することができるプロ
セッサにディスパッチされる。
Description
ンピュータ・システムに関し、更に詳しく云えば、マル
チプロセッサ・コンピュータ・システムに関するもので
ある。
ュータ・システムは極めて複雑な装置に進化してきた
し、数多くの種々なセッティングのコンピュータ・シス
テムを見ることができる。一般に、コンピュータ・シス
テムは、半導体及び回路ボードのようなハートウェア
と、コンピュータ・プログラムとしても知られているソ
フトウェアとの組み合わせを含む。半導体処理及びコン
ピュータ・アーキテクチャにおける進歩は、コンピュー
タ・ハードウェアの性能を更に高度なものに推進するの
で、より複雑なコンピュータ・ソフトウェアがその高性
能のハードウェアを利用するように進化し、その結果、
今日のコンピュータ・システムは数年前のものよりも遙
かに強力なものになっている。
ウェア、ソフトウェア、並びに処理されるプログラムの
総数、ネットワーク・トラフィック・ロード、キャッシ
ュ効率等のような他の動的な考察事項によって決定され
る数多くの要素に依存する。コンピュータ・システムの
性能を高める1つの既知の方法は、1つのコンピュータ
・プログラムにおける種々の部分を処理することができ
る複数の実行スレッド(thread of execution)を提供
することである。コンピュータ・システムの性能を高め
るもう1つの既知の方法は、1つのコンピュータ・プロ
グラム又は個別のコンピュータ・プログラムにおける複
数部分を並行して実行することによって処理負荷を振り
分けることができる複数のプロセッサを設けることであ
る。マルチスレッド及び複数プロセッサという概念は、
性能の更なる向上を得るように結合可能である。従来技
術では、複数のプロセッサは、当初、一時には1つの実
行スレッドしか実行することを許されなかった。しか
し、最近の進歩は、マルチプロセッサ・システムにおけ
る各プロセッサ上での複数の実行スレッドを可能にして
いる。例えば、IBM社によって製造及び販売されてい
る iSeries Condor コンピュータ・システムは、ハード
ウェア・マルチスレッドがイネーブル又はディセーブル
されることを可能にするセットアップ・パラメータを含
んでいる。各プロセッサは、それがイネーブルされる
時、2つのスレッドを実行することができる。しかし、
ハードウェア・マルチスレッドの出現により幾つかの問
題が生じている。
サーバは、一般に、Java(R)をサポートしなけれ
ばならない。サーバがJava(R)を如何に効率的に
サポートするかを測定するために開発された1つの重要
なベンチマークは、SPECJBB2000 として知られている。
SPEC は、最近のコンピュータ・システムの性能評価の
ための関連ベンチマーク及び測定規準の標準化されたセ
ットを確立、維持、及び是認する使命を持った標準機構
である Standard Performance Evaluation Corporation
の頭字語である。JBB200 は、Java(R) Business Bench
mark の頭字語であり、2000年6月に使用可能にさ
れたベンチマークである。SPECJBB2000 は、対処するに
は望ましいベンチマークとして産業界において非常に広
範囲に受け入れられるようになった。しかし、ハードウ
ェア・マルチスレッドをサポートするシステムにおいて
そのハードウェア・マルチスレッドをイネーブルするこ
とは、通常、そのシステムに SPECJBB2000 ベンチマー
クを機能しなくさせるであろう。その機能不全の理由
は、SPECJBB2000 が、「スレッド・スプレッド(thread
spread)」として産業界では一般に知られている種々
のスレッドの実行時間及びトランザクション処理速度の
間の最大変動という仕様を持っていることである。同じ
タスクを行う種々のスレッドの実行時間及びトランザク
ション処理速度が指定の最大スレッド・スプレッドを越
える場合、そのベンチマークは機能しなくなる。ハード
ウェア・マルチスレッドを含む大抵の最近のコンピュー
タ・システムは、過度のスレッド・スプレッドのために
SPECJBB2000 ベンチマークを実行することができな
い。その結果、大抵のコンピュータ・ベンダは、SPECJB
B2000 を実行するときにハードウェア・マルチスレッド
をオフにする。過度のスレッド・スプレッドの原因は、
オペレーティング・システムが使用可能なプロセッサに
スレッドをディスパッチする方法にある。スレッド・ス
プレッドを少なくする改良されたスレッド・ディスパッ
チ機構及び方法がない場合、コンピュータ産業は、ハー
ドウェア・マルチスレッドがディセーブルされない場
合、過度のスレッド・スプレッドを有する(従って、SP
ECJBB2000 ベンチマークに適合し得ない)コンピュータ
・システムからの損害を受け続けるであろう。それは、
そもそもハードウェア・マルチスレッドを提供するとい
う性能上の利点を廃棄するものである。
ば、ハードウェア・マルチスレッドをイネーブルされた
マルチプロセッサ・コンピュータ・システムにおいて、
スレッド・ディスパッチ機構がスレッドをディスパッチ
し、それによって、各プロセッサが複数のスレッドを実
行することを可能にする。スレッド・ディスパッチ機構
は、どのプロセッサがビジーであって更なるスレッドを
実行することができないか、どのプロセッサがスレッド
に作用しているか、及びどのプロセッサがアイドル状態
にあるかを決定する。スレッドがディスパッチされる準
備ができる時、それらは、他のスレッドに既に作用して
いるプロセッサの代わりに、アイドル・プロセッサに先
ずディスパッチされる。アイドル・プロセッサがまった
く存在しない場合、スレッドは、1つ又は複数のスレッ
ドに作用しているが、新たなスレッドも処理することが
できるプロセッサにディスパッチされる。このように、
本発明のスレッド・ディスパッチ機構及び方法は、スレ
ッド間での応答時間における非常に改善された一貫性を
提供し、しかもスレッドをディスパッチする従来技術の
方法に比べて高いスループットを提供する。
付図面に示された本発明の望ましい実施例の更に詳細な
以下の説明から明らかであろう。
たマルチプロセッサ・コンピュータ・システムにおける
スレッドのディスパッチに関するものである。マルチス
レッドされたシステム、マルチプロセッサ・システム、
ハードウェア・マルチスレッド、及び従来技術のスレッ
ド・ディスパッチ機構及び方法に精通していない人にと
って、この概要項は本発明を理解する上で助けとなる背
景情報を提供するであろう。
ることを可能にするコンピュータ・システムが開発され
ている。単一プロセッサ・システムでは、単一のプロセ
ッサしか存在しないので、実際には複数のスレッドが同
時には実行され得ない。しかし、単一プロセッサ・シス
テムにおけるマルチスレッドは、そのシステムがマルチ
タスキングであることを可能にする。単一プロセッサ・
システムにおけるCPUスケジューラは、スレッド間の
切り換えを制御し、それらのスレッドが同時に実行され
ているように見えるようにし、CPUが複数のタスクに
同時に作用することを可能にする。
クに対して同時に作用することができる複数のプロセッ
サを提供することによって高められ得る。初期のマルチ
プロセッサ・システムは、各プロセッサに単一のスレッ
ドを割り当てていたであろう。各プロセッサにおいて単
一のスレッドをサポートする従来から知られているマル
チプロセッサ・システムのためのスレッド・ディスパッ
チャは、多数の異なる方法で動作することができる。最
も一般的な既知の方法は、逐次態様でスレッドをプロセ
ッサに割り当てることである。このタイプのシステム
は、第1のスレッドが第1のプロセッサにディスパッチ
され、第2のスレッドが第2のプロセッサにディスパッ
チされるというようなものである。すべてのプロセッサ
がスレッドを実行していてビジーである場合、ディスパ
ッチされるべき次のスレッドは、1つのプロセッサが使
用可能になるまで待機しなければならないであろう。ス
レッドをディスパッチするためのもう1つの既知の方法
は、プロセッサを無作為に選出し、そのプロセッサが他
のスレッドを実行していてビジーであるということでは
ない場合、そのプロセッサにスレッドを割り当てること
である。スレッドをディスパッチするための更にもう1
つの方法は、そのスレッドを最後に実行したプロセッサ
を選出することである。このタイプのディスパッチは、
そのスレッドを最後に実行したプロセッサがそれのキャ
ッシュに必要な情報を既にロードされているかもしれな
いという望みによるプロセッサ・アフィニティに基づい
ている。これらのスレッド・ディスパッチ方法の各々
は、各プロセッサにおいて単一のスレッドしか実行させ
ないマルチプロセッサ・システムにおいて開発された。
ッサ・システムにおける各プロセッサによって実行され
ることを可能にするハードウェア・マルチスレッドの概
念をもたらした。これらのシステムにおけるスレッド・
ディスパッチャは、ハードウェア・マルチスレッドが存
在しなかった時に従来のシステムにおいて使用された方
法と同じ方法、即ち、逐次的、無作為的、且つプロセッ
サ・アフィニティ的方法を使用する。ハードウェア・マ
ルチスレッドを含むシステムにおいて同じ態様でスレッ
ドをディスパッチした結果は、スレッド間における実行
時間及びトランザクション処理速度の可変性(即ち、ス
レッド・スプレッド)が過度になり得るということであ
る。例えば、第2のスレッドが、既に他のスレッドを実
行しているプロセッサにディスパッチされる場合、第2
のスレッドに対する実行時間は、一般に、如何なるスレ
ッドも実行していないアイドル・プロセッサに第2のス
レッドがディスパッチされた場合よりもかなり長いであ
ろう。スレッド・スプレッドの問題は、幾つかの異なる
理由のために重要である。第1に、過度なスレッド・ス
プレッドは、ばらつきのある応答時間を導く。コンピュ
ータ・オペレータが電話で注文を取り、それらの注文を
コンピュータ・システムに入力する場合、オペレータ
は、注文を処理するための時間が時々広範囲に変動する
場合にフラストレーションを起こすであろう。コンピュ
ータ・システムが注文を1回処理するために1秒を必要
とし、次の回には10分の1秒を必要とし、その次の回
には5秒を必要とする場合、オペレータは、コンピュー
タ・システムのばらつきのある応答時間に屡々フラスト
レーションを起こすであろう。このような状況における
応答時間の一貫性は、その応答時間の値よりも重要であ
る。システムがユーザによる知覚の限度内でいつも同じ
ように活動している限り、ユーザは、コンピュータ・シ
ステムが適正に機能していることに満足する。
重要であるというもう1つの理由は、コンピュータ・シ
ステムが SPECJBB2000 のようなベンチマークに合格す
ることを可能にすることである。SPECJBB2000 は、コン
ピュータ産業における著名なベンチマークであり、製造
業者は、サーバが如何に効率的にJava(R)コード
を処理するかを証明するようにそのベンチマークを適合
させることを望んでいる。
重要であるという更にもう1つの理由は、如何にアプリ
ケーションが徐々に進化してきたかということに関連す
る。インテンシブ(intensive)I/Oを有するアプリ
ケーションにとって、スレッド・スプレッドはクリティ
カルな問題ではない。それは、I/Oオペレーション相
互間のタイム・スライスが比較的小さく、従って、人の
知覚又はシステム・パフォーマンスに大きく影響しない
ためである。しかし、Java(R)アプリケーション
のような数多くの最近のアプリケーションは、I/Oオ
ペレーション当たり更に多くのCPUサイクルを使って
実行し、その結果、ス(R)レッド実行時間における差
がコンピュータ・システムの性能に大きく影響し得るこ
とになる。例えば、企業がバッチ処理を夜間に行うもの
と仮定すると、従業員が仕事に戻ってくる午前8時まで
にそのバッチ処理が終了しなければならない。スレッド
・スプレッドは、1つのスレッドを午前5時に終了させ
ることがあり得るし、一方、別のスレッドは午前9時ま
で終了しないことがある。この場合、それら2つのスレ
ッドの間の平均的な処理時間は、両方のスレッドが午前
7時に終了するという結果になる。しかし、従業員が午
前8時に戻った時に第2のスレッドがバッチ処理を終了
してないため、スレッド・スプレッドは受け入れ難い結
果を生じる。この理由のために、スレッド間の実行時間
及びトランザクション処理速度の一貫性は、多くの最近
のアプリケーションにとって重要なことである。本発明
は、ハードウェア・マルチスレッドを可能にされたマル
チプロセッサ・システムにおけるスレッド・スプレッド
を大きく減少させる。
ッド間の実行時間及びトランザクション処理速度の可変
性)を大きく減少させるハードウェア・マルチスレッド
をイネーブルされたマルチプロセッサ・システムにおい
てスレッドをディスパッチする機構及び方法を提供す
る。これは、どれが、1つ又は複数のスレッドを処理し
ていてビジーであるが依然として他のスレッドを受け付
けることができるアイドル状態にあるか、及び、どれ
が、既に最大数のスレッドを処理していてビジーである
かを決定するために、プロセッサを監視することによっ
て行われる。1つのスレッドがディスパッチされる必要
がある時、それは、アイドル・プロセッサが存在する場
合にはそのアイドル・プロセッサにディスパッチされ
る。アイドル・プロセッサが存在しない場合、そのスレ
ッドは、最も少ないスレッドを実行しているプロセッサ
にディスパッチされる。この方法では、種々のスレッド
を実行するための時間の変動がかなり減少するので、ハ
ードウェア・マルチスレッドをイネーブルされた望まし
い実施例によるマルチプロセッサ・システムが SPECJBB
2000 ベンチマークに合格すること及びスレッド間の更
に一貫した応答時間及びスループットを提供することを
可能にする。
ム100は、本発明の望ましい実施例による装置の1つ
の適当な実施態様である。コンピュータ・システム10
0は、IBM社の iSeries コンピュータ・システムで
あり、特に、ハードウェア・マルチスレッドをサポート
する Condor コンピュータ・システムである。しかし、
コンピュータ・システムが複雑なマルチユーザ・コンピ
ュータ装置、シングル・ユーザ・ワークステーション、
或いは据え置き型コントロール・システムであるかどう
かに関係なく、本発明の機構及び方法が任意のコンピュ
ータ・システムに等しく適用することは当業者には明ら
かであろう。図1に示されるように、コンピュータ・シ
ステム100は、複数のプロセッサ(プロセッサ11
0、112、及び118のような)、メイン・メモリ1
20、大容量記憶装置インターフェース130、ディス
プレイ・インターフェース140、及びネットワーク・
インターフェース150を含む。これらのシステム・コ
ンポーネントは、システム・バス160の使用を通して
相互接続される。大容量記憶装置インターフェース13
0は、大容量記憶装置(ダイレクト・アクセス記憶装置
(DASD)155のような)をコンピュータ・システ
ム100に接続するために使用される。ダイレクト・ア
クセス記憶装置155の1つの特定のタイプは、CD−
ROM195にデータを記憶し且つCD−ROM195
からデータを読み取ることができる読取/書込可能CD
−ROMである。
0は、データ121及びオペレーティング・システム1
22を含む。データ121は、コンピュータ・システム
100における任意のプログラムへの入力又は任意のプ
ログラムからの出力として働く任意のデータを表す。オ
ペレーティング・システム122は、OS/400(商
標)のようなその産業界において知られているマルチタ
スク・オペレーティング・システムと同じである。しか
し、本発明の精神及び技術的範囲がいずれのオペレーテ
ィング・システムにも限定されないことは当業者には明
らかであろう。望ましい実施例のオペレーティング・シ
ステム122は、システム管理者がハードウェア・マル
チスレッドをオン又はオフにすることを可能にするハー
ドウェア・マルチスレッド・イネーブル/ディセーブル
機構123を含む。iSeries Condor コンピュータ・シ
ステムの関係では、ハードウェア・マルチスレッドをイ
ネーブルすることは、各プロセッサが2つのスレッドを
実行することができるということを意味する。ハードウ
ェア・マルチスレッドがディセーブルされることによっ
て、各プロセッサは1つのスレッドしか実行することが
できない。オペレーティング・システム122は、種々
のスレッドを実行する時間の可変性を最小にする方法で
使用可能なプロセッサにスレッドをディスパッチするス
レッド・ディスパッチャ124を含む。オペレーティン
グ・システム122は、更に、そのシステムにおけるす
べてのプロセッサ(例えば、プロセッサ110、11
2、...、118)のステータスを追跡するプロセッ
サ・ステータス・トラッカ125を含む。
ンピュータ・システム100のプログラムが、あたか
も、メイン・メモリ120及びDASD155のような
複数の小型記憶装置をアクセスする代わりに1つの大型
記憶装置だけをアクセスするが如くそのプログラムが動
作することを可能にする周知の仮想アドレシング機構を
利用する。従って、データ121及びオペレーティング
・システム122はメイン・メモリ120内にあるよう
に示されるけれども、必ずしもこれらの項目がすべて完
全にメイン・メモリ120に同時に含まれるものではな
いことは当業者には明らかであろう。本願では、「メモ
リ」という用語が、コンピュータ・システム100の仮
想メモリ全体を一般的に呼ぶために使用され、コンピュ
ータ・システム100に接続された他のコンピュータ・
システムの仮想メモリを含み得ることにも留意すべきで
ある。
0、112、...、118)は、1つ又は複数のマイ
クロプロセッサ及び(又は)集積回路から構成され得
る。各プロセッサは、メイン・メモリ120に記憶され
たプログラム命令を実行する。メイン・メモリ120
は、各プロセッサがアクセスし得るプログラム及びデー
タを記憶する。コンピュータ・システム100が始動す
る時、オペレーティング・システム122を立ち上げる
プログラム命令をそれらのプロセッサの1つが先ず実行
する。オペレーティング・システム122は、コンピュ
ータ・システム100のリソースを管理する複雑なプロ
グラムである。これらのリソースのいくつかは、プロセ
ッサ110、メイン・メモリ120、大容量記憶装置イ
ンターフェース130、ディスプレイ・インターフェー
ス140、ネットワーク・インターフェース150、及
びシステム・バス160である。
ステム・バスしか含まないように示されているけれど
も、複数のバスを有するコンピュータ・システムを使用
して本発明を実施し得ることは当業者には明らかであろ
う。更に、望ましい実施例において使用されるインター
フェースは、それぞれ、個別の完全にプログラムされた
マイクロプロセッサであり、それらのプロセッサは、各
プロセッサから計算主体の処理をオフロードするために
使用される。しかし、同様の機能を遂行するために単に
I/Oアダプタを使用するコンピュータ・システムに本
発明が等しく適用することも当業者には明らかであろ
う。
は、1つ又は複数のディスプレイ165をコンピュータ
・システム100に直接に接続するために使用される。
非インテリジェント(即ち、ダム)端末又は完全にプロ
グラム可能なワークステーションであってもよいこれら
のディスプレイ165は、システム管理者及びユーザが
コンピュータ・システム100とコミュニケーションを
行うことを可能にするために使用される。しかし、ディ
スプレイ・インターフェース140は1つ又は複数のデ
ィスプレイ165とのコミュニケーションをサポートす
るために設けられるけれども、ユーザ及び他のプロセッ
サとの必要なすべての相互作用がネットワーク150を
介して生じ得るので、コンピュータ・システム140は
必ずしもディスプレイ165を必要としないことに留意
してほしい。
は、他のコンピュータ・システム及び(又は)ワークス
テーション(例えば、図1におけるワークステーション
175)をコンピュータ・システム100に接続するた
めに使用される。本発明は、ネットワーク接続線170
が今日のアナログ及び(又は)ディジタル技法、或いは
将来の何らかのネットワーク機構を使用して作られるか
どうかに関係なく、たとえ如何にコンピュータ・システ
ム100が他のコンピュータ・システム及び(又は)ワ
ークステーションに接続されても等しく適用する。更
に、数多くの異なるネットワーク・プロトコルがネット
ワークをインプリメントするために使用され得る。これ
らのプロトコルは、コンピュータがネットワーク接続線
170を介して通信することを可能にする特殊のコンピ
ュータ・プログラムである。TCP/IP(伝送制御プ
ロトコル/インターネット・プロトコル)は適当なネッ
トワーク・プロトコルの一例である。
コンピュータ・システムに関連して説明されたし、説明
を続けられるけれども、本発明がプログラム製品として
種々の形態で分配され得ること及び本発明が、分配を実
際に行うために使用される特定のタイプのコンピュータ
可読信号保持媒体に関係なく、等しく適用することは当
業者には明らかであろう。適当なコンピュータ可読信号
保持媒体の例は、フロッピ・ディスク及びCD−ROM
(例えば、図1におけるCD−ROM195)のような
記録可能なタイプの媒体及びディジタル及びアナログ通
信リンクのような通信タイプの媒体を含む。
ド・ディスパッチャの詳細な機能を説明し、それらの機
能と図1に示されたスレッド・ディスパッチャ124の
機能とを比較する。図1に示されるように、望ましい実
施例のスレッド・ディスパッチャ124は、システムに
おける各プロセッサのステータスを追跡するプロセッサ
・ステータス・トラッカ125によって表されるそれら
プロセッサのステータスに従って動作する。図2を参照
すると、従来技術においては、プロセッサは、(1)そ
のプロセッサが他のスレッドを扱うことができないこと
を意味するビジー状態、又は(2)そのプロセッサがス
レッドを扱うために使用可能であることを意味するスレ
ッド受付可能状態という2つの状態しか持つことができ
ない。これらが相互に排他的な状態であることに留意し
てほしい。プロセッサは、ビジーであるか又はスレッド
受付可能である。ハードウェア・マルチスレッドをディ
セーブルされた従来技術のマルチプロセッサである iSe
ries コンピュータ・システムの場合、プロセッサは、
1つのスレッドを実行している時にはビジーであり、そ
れがスレッドを実行していない場合にはスレッド受付可
能である。ハードウェア・マルチスレッドをイネーブル
された同じ iSeries コンピュータ・システムに対して
は、プロセッサは、それが2つのスレッドを実行してい
る場合にはビジーであり、(1)1つのスレッドを処理
している、又は(2)アイドル状態である場合にはスレ
ッド受付可能である。その従来技術において重要なこと
は、1つのスレッドを処理していること(プロセッサが
もう1つのスレッドを受け付けることができることを意
味する)及びアイドル状態であること(プロセッサが2
つのスレッドを受け付けることができることを意味す
る)の間の区別が行われないことである。両方のケース
とも、図2に示されるように「スレッド受付可能」とい
う状態に統一される。プロセッサ#1(210)は、ビ
ジー212又はスレッド受付可能214というステータ
スを有する。プロセッサ#2(220)は、ビジー22
2又はスレッド受付可能224というステータスを有す
る。プロセッサ#N(290)は、ビジー292又はス
レッド受付可能294というステータスを有する。従来
技術のシステムにおける他のすべてのプロセッサは、同
じ2つのステータス状態を有するであろう。
ピュータ・システムにおいてスレッドをディスパッチす
るための図3における方法300を検討する。方法30
0は、スレッドがディスパッチされる必要がある時に開
始する(ステップ310)。他のスレッドを受け付ける
ことができるプロセッサが使用可能である場合(ステッ
プ330=イエス)、そのスレッドは、他のスレッドを
受け付けることができるプロセッサの1つにディスパッ
チされる(ステップ340)。他のスレッドを受け付け
ることができるプロセッサが使用可能でない場合(ステ
ップ330=ノー)、プロセッサがスレッドの処理を終
了して他のスレッドを受け付けることができるまで(ス
テップ330=イエス)、方法300はループ・バック
する。従来技術の方法300は、従来技術のシステムが
ハードウェア・マルチスレッドをイネーブルされている
又はイネーブルされていない従来技術のシステムを表
す。iSeries コンピュータ・システムに関しては、ハー
ドウェア・マルチスレッドがディセーブルされている場
合、各プロセッサは単一のスレッドしか処理することが
できない。ハードウェア・マルチスレッドがイネーブル
されている場合、各プロセッサは2つのスレッドを処理
することができる。プロセッサがアイドル状態にある場
合、それは2つのスレッドを受け付けることができる。
プロセッサが1つのスレッドを実行している場合でも、
それはもう1つのスレッドを受け付けることができる。
従って、ステップ330の「イエス」ブランチは、1つ
のスレッドを実行しているプロセッサと、いずれのスレ
ッドも実行していないプロセッサとの間の区別を行わな
い。その結果、ステップ340におけるスレッドのディ
スパッチは、プロセッサがもう1つのスレッドを引き受
けることができるかどうかを知ろうとするだけである。
これは、たとえ数多くのアイドル・プロセッサが使用可
能であるとしても、既にスレッドを実行しているプロセ
ッサに対するスレッドのディスパッチを導くことができ
る。
ルされたマルチプロセッサ・コンピュータ・システムに
は、ステップ340においてスレッドをディスパッチす
るために従来技術で使用される3つの既知の方法が存在
する。その第1のものは、プロセッサが他のスレッドを
引き受けることができる場合にそれらのプロセッサにス
レッドを逐次に割り当てる逐次ディスパッチ方式であ
る。その例を説明するために、当初、如何なるスレッド
も実行されてないものと仮定する。この逐次ディスパッ
チ方式では、スレッド・ディスパッチャが第1のスレッ
ドを第1のプロセッサにディスパッチする。スレッド・
ディスパッチャが第2のスレッドを受け取る時、それ
は、第1のプロセッサが依然として他のスレッドを引き
受けることができることを知り、従って、それは第2の
スレッドを第1のプロセッサに割り当てる。この時点
で、第1のプロセッサは第1及び第2のスレッドを実行
していてビジー状態にあり、従って、第3のスレッドは
第2のプロセッサにディスパッチされる。第4のスレッ
ドがディスパッチされる時に最初の3つのスレッドが依
然として実行中であると仮定すると、第4のスレッドは
第2のプロセッサにディスパッチされるであろう。これ
は、各プロセッサが2つのスレッドを受け取った後にそ
のシーケンスにおける次のプロセッサが更なるスレッド
を受け取ることによって継続する。その結果は、過度な
スレッド・スプレッド(即ち、スレッド間の実行時間及
びトランザクション処理速度の可変性)である。
は、もう1つのスレッドを引き受けることができるプロ
セッサを無作為に選択し、そのプロセッサにスレッドを
ディスパッチする。この方式も又、1つのプロセッサが
2つのスレッドを受け取った後にアイドル状態の他のプ
ロセッサが更なるスレッドを受け取るという結果になっ
て過度なスレッド・スプレッドを生じることが多い。
は、プロセッサ・アフィニティに基づくものであり、プ
ロセッサが当該スレッドを処理した最後の時点からキャ
ッシュ内に存在し得るデータを利用することによりパフ
ォーマンス上の利点が得られるかも知れないという期待
を持って当該スレッドを前に処理したことがあるそのプ
ロセッサを選択する。この方式は、1つのプロセッサが
2つのスレッドを受け取った後にアイドル状態の他のプ
ロセッサが更なるスレッドを受け取るという結果になっ
て過度なスレッド・スプレッドを生じることが多いとい
う、上記他の2つの方式と同じ不利益をこうむる。これ
ら3つの既知のディスパッチ方式はいずれも図3のステ
ップ340において使用され得る。これらはすべて、こ
れらが、1つのスレッドを既に処理しているプロセッサ
とアイドル状態にあるプロセッサとの間を区別しないた
めに、過度なスレッド・スプレッドをこうむる。
プロセッサ・ステータス・トラッカ125が各プロセッ
サに対して3つの可能な状態、即ち、(1)プロセッサ
が更なるスレッドを受け付けることができないことを意
味するビジー、(2)プロセッサが既にスレッドを実行
しているが更にもう1つのスレッドを受け付けることが
できる作業中、及び(3)プロセッサが現時点ではいず
れのスレッドも実行していないことを表すアイドル、を
追跡する。従って、図4では、プロセッサ#1(11
0)が、ビジー412、作業中であるがスレッド受付可
能414、又はアイドル416という状態を有し得る。
同様に、プロセッサ#2(112)が同じ3つの状態4
22、424、又は426の1つを有し得るし、プロセ
ッサ#N(118)が同じ3つの状態492、494、
又は496の1つを有し得るし、他の任意のプロセッサ
が同じ3つの状態の1つを有し得る。
125は、アイドル・プロセッサと既に1つのスレッド
を処理しているが他のスレッドを処理し得るプロセッサ
との間の相違を追跡し、スレッド・ディスパッチャ12
4は、スレッド・スプレッドを少なくするように、スレ
ッドをディスパッチする時更にインテリジェントな判断
を行うことができる。図5を参照すると、望ましい実施
例による方法500は、図1に示されたスレッド・ディ
スパッチャ124によって行われることが望ましい。方
法500は、スレッドがディスパッチされる必要がある
時に開始する(ステップ510)。アイドル・プロセッ
サが使用可能である場合(ステップ520)、スレッド
はアイドル・プロセッサにディスパッチされる(ステッ
プ522)。アイドル・プロセッサは使用可能でない
が、他のスレッドを受け付けることができるワーキング
・プロセッサが存在する場合(ステップ530=イエ
ス)、そのスレッドは、他のスレッドを受け付けること
ができるワーキング・プロセッサの1つにディスパッチ
される(ステップ540)。使用可能なアイドル・プロ
セッサが存在せず(ステップ520=ノー)、他のスレ
ッドを受け付けることができるプロセッサがない場合
(ステップ530=ノー)、方法500は、プロセッサ
の1つがそれのスレッドの1つの実行を終了し、従っ
て、他のスレッドを受け付けることができるまでループ
・バックする。
のプロセッサにディスパッチする前にすべてのアイドル
・プロセッサがビジーにされるので、従来技術に対する
大きな改善である。一般に、アイドル・プロセッサは、
同時に2つのスレッドに作用しなければならないプロセ
ッサよりも更に速くスレッドを処理することができる。
このために、スレッド・ディスパッチャ124は、コン
ピュータ・システム100のパフォーマンスを大きく改
善し、コンピュータ・システム100がハードウェア・
マルチスレッドをイネーブルされたことにより SPECJBB
2000 ベンチマーク・テストに合格することができ、し
かもスレッド間の更に一貫性のある実行時間及びトラン
ザクション処理速度を提供することができるポイントま
でスレッド・スプレッドを更に大きく減少させる。スレ
ッド・スプレッドを減少させた結果、ユーザは更に満足
するであろうし、スループット及び応答時間に関するパ
フォーマンスの目標をずっと容易に達成することが可能
である。
は、アイドル・プロセッサとスレッドに作用しているが
依然として他のスレッドを受け付けることができるプロ
セッサとの間を区別することによってスレッドをより効
率的にディスパッチする方法を提供する。スレッドを先
ずアイドル・プロセッサにディスパッチすることによっ
て、スレッド・スプレッドは大きく減少する。それは、
アイドル・プロセッサが存在しない時にスレッドを既に
処理しているプロセッサにだけスレッドがディスパッチ
されるためである。これは、プロセッサ・リソースのよ
り良好な利用を助長してシステム・パフォーマンスを改
善し、スレッド・スプレッドを大きく減少させる。
であることは当業者には明らかであろう。従って、本発
明は望ましい実施例に関して詳細に示され且つ説明され
たけれども、本発明の精神及び技術的範囲から逸脱する
ことなく形式及び詳細におけるこれらの及び別の変更を
行うことが可能であるということは当業者には明らかで
あろう。
の事項を開示する。
力を有する複数のプロセッサと、前記複数のプロセッサ
に接続されたメモリと、前記メモリ内にあり、前記複数
のプロセッサの少なくとも1つによって実行されるスレ
ッド・ディスパッチ機構と、を含み、前記スレッド・デ
ィスパッチ機構は、前記複数のプロセッサのどれがアイ
ドル状態にあるか、前記複数のプロセッサのどれが更な
るスレッドを受け付けることができるか、及び前記複数
のプロセッサのどれが更なるスレッドを受け付けること
ができないかを決定し、アイドル状態のプロセッサが存
在する場合に新たなスレッドを該アイドル状態のプロセ
ッサにディスパッチする、装置。 (2)前記複数のプロセッサのいずれもアイドル状態に
ない場合、及び前記複数のプロセッサの少なくとも1つ
が更なるスレッドを受け付けることができる場合、前記
スレッド・ディスパッチ機構は前記複数のプロセッサの
うちの更なるスレッドを受け付けることができるプロセ
ッサに前記新たなスレッドをディスパッチする、上記
(1)に記載の装置。 (3)前記複数のプロセッサのすべてが更なるスレッド
を受け付けることができない場合、前記スレッド・ディ
スパッチ機構は、前記複数のプロセッサの1つがスレッ
ドの処理を終了し、それによって、更なるスレッドを受
け付けることができるプロセッサになるのを待ち、しか
る後、前記更なるスレッドを受け付けることができるプ
ロセッサに前記更なるスレッドをディスパッチする、上
記(1)に記載の装置。 (4)各々が複数のスレッドを実行することができる複
数のプロセッサを含むコンピュータ・システムにおいて
スレッドをディスパッチするための方法にして、前記複
数のプロセッサ各々のステータスを決定するステップ
と、アイドル・プロセッサが存在する場合、該アイドル
・プロセッサに新たなスレッドをディスパッチするステ
ップと、を含み、プロセッサは、それがいずれのスレッ
ドも実行していない場合にアイドル状態にあり、1つ又
は複数のスレッドに作用していてビジーであるが更なる
スレッドを処理する能力を有する場合に該更なるスレッ
ドを受け付けることができ、該プロセッサは、それが実
行し得る最大数のスレッドに作用していてビジーである
場合に更なるスレッドを受け付けることができない、方
法。 (5)前記複数のプロセッサのいずれもアイドル状態に
ない場合、及び前記複数のプロセッサの少なくとも1つ
が更なるスレッドを受け付けることができる場合、前記
複数のプロセッサのうちの前記更なるスレッドを受け付
けることができる1つのプロセッサに前記新しいスレッ
ドをディスパッチするステップを含む、上記(4)に記
載の方法。 (6)前記複数のプロセッサのすべてが更なるスレッド
を受け付けることができない場合、前記複数のプロセッ
サの1つがスレッドの処理を完了し、それによって、更
なるスレッドを受け付けることができるプロセッサとな
るのを待ち、しかる後、前記更なるスレッドを受け付け
ることができるプロセッサに前記更なるスレッドをディ
スパッチするステップを含む、上記(4)に記載の方
法。 (7)マルチプロセッサ・コンピュータ・システムにお
ける複数のプロセッサのどれがアイドル状態にあるか、
前記複数のプロセッサのどれが更なるスレッドを受け付
けることができるか、及び前記複数のプロセッサのどれ
が更なるスレッドを受け付けることができないかを決定
し、複数のスレッドを実行することができるアイドル・
プロセッサが存在する場合、該アイドル・プロセッサに
新たなスレッドをディスパッチするスレッド・ディスパ
ッチ機構と、前記スレッド・ディスパッチ機構を保持す
るコンピュータ可読信号保持媒体と、を含むコンピュー
タ・プログラム。 (8)前記コンピュータ可読信号保持媒体は記録可能媒
体を含む、上記(7)に記載のコンピュータ・プログラ
ム。 (9)前記コンピュータ可読信号保持媒体は伝送媒体を
含む、上記(7)に記載のコンピュータ・プログラム。 (10)前記複数のプロセッサのいずれもアイドル状態
にない場合、及び前記複数のプロセッサの少なくとも1
つが更なるスレッドを受け付けることができる場合、前
記スレッド・ディスパッチ機構は前記複数のプロセッサ
のうちの前記更なるスレッドを受け付けることができる
プロセッサに前記新たなスレッドをディスパッチする、
上記(7)に記載のコンピュータ・プログラム。 (11)前記複数のプロセッサのすべてが更なるスレッ
ドを受け付けることができない場合、前記複数のプロセ
ッサの1つがスレッドの処理を終了し、それによって、
更なるスレッドを受け付けることができるプロセッサと
なるのを待ち、しかる後、前記更なるスレッドを受け付
けることができるプロセッサに前記更なるスレッドをデ
ィスパッチする、上記(7)に記載のコンピュータ・プ
ログラム。
る。
てプロセッサ・ステータスを追跡する方法を示すブロッ
ク図である。
れたマルチプロセッサ環境においてスレッドをディスパ
ッチするための従来技術の方法の流れ図である。
機構においてプロセッサ・ステータスを追跡する方法を
示すブロック図である。
スレッドをイネーブルされたマルチプロセッサ・システ
ムにおいてスレッドをディスパッチするための方法の流
れ図である。
Claims (11)
- 【請求項1】各々が複数のスレッドを実行する能力を有
する複数のプロセッサと、 前記複数のプロセッサに接続されたメモリと、 前記メモリ内にあり、前記複数のプロセッサの少なくと
も1つによって実行されるスレッド・ディスパッチ機構
と、 を含み、 前記スレッド・ディスパッチ機構は、前記複数のプロセ
ッサのどれがアイドル状態にあるか、前記複数のプロセ
ッサのどれが更なるスレッドを受け付けることができる
か、及び前記複数のプロセッサのどれが更なるスレッド
を受け付けることができないかを決定し、アイドル状態
のプロセッサが存在する場合に新たなスレッドを該アイ
ドル状態のプロセッサにディスパッチする、 装置。 - 【請求項2】前記複数のプロセッサのいずれもアイドル
状態にない場合、及び前記複数のプロセッサの少なくと
も1つが更なるスレッドを受け付けることができる場
合、前記スレッド・ディスパッチ機構は前記複数のプロ
セッサのうちの更なるスレッドを受け付けることができ
るプロセッサに前記新たなスレッドをディスパッチす
る、請求項1に記載の装置。 - 【請求項3】前記複数のプロセッサのすべてが更なるス
レッドを受け付けることができない場合、前記スレッド
・ディスパッチ機構は、前記複数のプロセッサの1つが
スレッドの処理を終了し、それによって、更なるスレッ
ドを受け付けることができるプロセッサになるのを待
ち、しかる後、前記更なるスレッドを受け付けることが
できるプロセッサに前記更なるスレッドをディスパッチ
する、請求項1に記載の装置。 - 【請求項4】各々が複数のスレッドを実行することがで
きる複数のプロセッサを含むコンピュータ・システムに
おいてスレッドをディスパッチするための方法にして、 前記複数のプロセッサ各々のステータスを決定するステ
ップと、 アイドル・プロセッサが存在する場合、該アイドル・プ
ロセッサに新たなスレッドをディスパッチするステップ
と、 を含み、 プロセッサは、それがいずれのスレッドも実行していな
い場合にアイドル状態にあり、1つ又は複数のスレッド
に作用していてビジーであるが更なるスレッドを処理す
る能力を有する場合に該更なるスレッドを受け付けるこ
とができ、該プロセッサは、それが実行し得る最大数の
スレッドに作用していてビジーである場合に更なるスレ
ッドを受け付けることができない、 方法。 - 【請求項5】前記複数のプロセッサのいずれもアイドル
状態にない場合、及び前記複数のプロセッサの少なくと
も1つが更なるスレッドを受け付けることができる場
合、前記複数のプロセッサのうちの前記更なるスレッド
を受け付けることができる1つのプロセッサに前記新し
いスレッドをディスパッチするステップを含む、請求項
4に記載の方法。 - 【請求項6】前記複数のプロセッサのすべてが更なるス
レッドを受け付けることができない場合、前記複数のプ
ロセッサの1つがスレッドの処理を完了し、それによっ
て、更なるスレッドを受け付けることができるプロセッ
サとなるのを待ち、しかる後、前記更なるスレッドを受
け付けることができるプロセッサに前記更なるスレッド
をディスパッチするステップを含む、請求項4に記載の
方法。 - 【請求項7】マルチプロセッサ・コンピュータ・システ
ムにおける複数のプロセッサのどれがアイドル状態にあ
るか、前記複数のプロセッサのどれが更なるスレッドを
受け付けることができるか、及び前記複数のプロセッサ
のどれが更なるスレッドを受け付けることができないか
を決定し、複数のスレッドを実行することができるアイ
ドル・プロセッサが存在する場合、該アイドル・プロセ
ッサに新たなスレッドをディスパッチするスレッド・デ
ィスパッチ機構と、 前記スレッド・ディスパッチ機構を保持するコンピュー
タ可読信号保持媒体と、 を含むコンピュータ・プログラム。 - 【請求項8】前記コンピュータ可読信号保持媒体は記録
可能媒体を含む、請求項7に記載のコンピュータ・プロ
グラム。 - 【請求項9】前記コンピュータ可読信号保持媒体は伝送
媒体を含む、請求項7に記載のコンピュータ・プログラ
ム。 - 【請求項10】前記複数のプロセッサのいずれもアイド
ル状態にない場合、及び前記複数のプロセッサの少なく
とも1つが更なるスレッドを受け付けることができる場
合、前記スレッド・ディスパッチ機構は前記複数のプロ
セッサのうちの前記更なるスレッドを受け付けることが
できるプロセッサに前記新たなスレッドをディスパッチ
する、請求項7に記載のコンピュータ・プログラム。 - 【請求項11】前記複数のプロセッサのすべてが更なる
スレッドを受け付けることができない場合、前記複数の
プロセッサの1つがスレッドの処理を終了し、それによ
って、更なるスレッドを受け付けることができるプロセ
ッサとなるのを待ち、しかる後、前記更なるスレッドを
受け付けることができるプロセッサに前記更なるスレッ
ドをディスパッチする、請求項7に記載のコンピュータ
・プログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/068599 | 2002-02-06 | ||
US10/068,599 US7487504B2 (en) | 2002-02-06 | 2002-02-06 | Thread dispatch for multiprocessor computer systems |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003241980A true JP2003241980A (ja) | 2003-08-29 |
JP4117202B2 JP4117202B2 (ja) | 2008-07-16 |
Family
ID=27659072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003025839A Expired - Fee Related JP4117202B2 (ja) | 2002-02-06 | 2003-02-03 | マルチプロセッサ・コンピュータ・システムのためのスレッド・ディスパッチ機構及び方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7487504B2 (ja) |
JP (1) | JP4117202B2 (ja) |
TW (1) | TWI235952B (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007517322A (ja) * | 2003-12-29 | 2007-06-28 | インテル・コーポレーション | プロセッサにおける同時物理スレッド数からの論理スレッド数のデカップリング |
JP2007317171A (ja) * | 2006-04-27 | 2007-12-06 | Matsushita Electric Ind Co Ltd | マルチスレッド計算機システム、マルチスレッド実行制御方法 |
JP2008047126A (ja) * | 2006-08-15 | 2008-02-28 | Internatl Business Mach Corp <Ibm> | 精密なcpu消費量データを用いてアフィニティをディスパッチする負荷バランサ |
WO2008053789A1 (en) * | 2006-10-31 | 2008-05-08 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device |
JP2008135018A (ja) * | 2006-10-31 | 2008-06-12 | Semiconductor Energy Lab Co Ltd | 半導体装置 |
US8001549B2 (en) | 2006-04-27 | 2011-08-16 | Panasonic Corporation | Multithreaded computer system and multithread execution control method |
JP2013522710A (ja) * | 2010-03-11 | 2013-06-13 | ブル エスエーエス | Itシステムの構成方法、そのコンピュータプログラムおよびitシステム |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7257516B2 (en) * | 2001-09-20 | 2007-08-14 | International Business Machines Corporation | Method, apparatus, and program for eliminating thread skew in multithreaded performance benchmarks |
US7555753B2 (en) * | 2004-02-26 | 2009-06-30 | International Business Machines Corporation | Measuring processor use in a hardware multithreading processor environment |
US7216223B2 (en) * | 2004-04-30 | 2007-05-08 | Hewlett-Packard Development Company, L.P. | Configuring multi-thread status |
FI118167B (fi) * | 2004-10-26 | 2007-07-31 | Konsultointi Martikainen Oy | Menetelmä tehtävien jakamiseksi |
US8195922B2 (en) * | 2005-03-18 | 2012-06-05 | Marvell World Trade, Ltd. | System for dynamically allocating processing time to multiple threads |
US20060212853A1 (en) * | 2005-03-18 | 2006-09-21 | Marvell World Trade Ltd. | Real-time control apparatus having a multi-thread processor |
US7934216B2 (en) * | 2005-10-03 | 2011-04-26 | International Business Machines Corporation | Method and system for load balancing of computing resources |
US7783866B2 (en) | 2006-05-05 | 2010-08-24 | International Business Machines Corporation | Method and apparatus for executing instrumentation code using processor instructions |
US8245199B2 (en) * | 2006-05-05 | 2012-08-14 | International Business Machines Corporation | Selectively marking and executing instrumentation code |
US7814466B2 (en) * | 2006-05-05 | 2010-10-12 | International Business Machines Corporation | Method and apparatus for graphically marking instructions for instrumentation with hardware assistance |
US7865703B2 (en) * | 2006-05-05 | 2011-01-04 | International Business Machines Corporation | Method and apparatus for executing instrumentation code within alternative processor resources |
US20070260849A1 (en) * | 2006-05-05 | 2007-11-08 | Chen Wen-Tzer T | Method and apparatus for executing instrumentation code using a target processor |
US7698540B2 (en) * | 2006-10-31 | 2010-04-13 | Hewlett-Packard Development Company, L.P. | Dynamic hardware multithreading and partitioned hardware multithreading |
US8122449B2 (en) * | 2007-09-07 | 2012-02-21 | International Business Machines Corporation | Determining whether to retain or terminate a thread based on a minimum number of threads in a thread pool and a maximum number of threads allowed waiting on the channel |
US8683471B2 (en) * | 2008-10-02 | 2014-03-25 | Mindspeed Technologies, Inc. | Highly distributed parallel processing on multi-core device |
US9703595B2 (en) * | 2008-10-02 | 2017-07-11 | Mindspeed Technologies, Llc | Multi-core system with central transaction control |
CN101403982B (zh) * | 2008-11-03 | 2011-07-20 | 华为技术有限公司 | 一种多核处理器的任务分配方法和系统 |
US9594599B1 (en) * | 2009-10-14 | 2017-03-14 | Nvidia Corporation | Method and system for distributing work batches to processing units based on a number of enabled streaming multiprocessors |
US8402471B2 (en) * | 2009-12-21 | 2013-03-19 | At&T Intellectual Property I, L.P. | Methods and apparatus to benchmark a computer system based on executing instructions using different numbers of threads |
US8839256B2 (en) * | 2010-06-09 | 2014-09-16 | International Business Machines Corporation | Utilization of special purpose accelerators using general purpose processors |
US9021493B2 (en) | 2012-09-14 | 2015-04-28 | International Business Machines Corporation | Management of resources within a computing environment |
US9182807B2 (en) * | 2012-12-31 | 2015-11-10 | Hewlett-Packard Development Company, L.P. | Systems and methods for predictive power management in a computing center |
CN107430526B (zh) * | 2015-03-24 | 2021-10-29 | 瑞典爱立信有限公司 | 用于调度数据处理的方法和节点 |
US10235736B2 (en) * | 2017-04-21 | 2019-03-19 | Intel Corporation | Intelligent graphics dispatching mechanism |
US10325341B2 (en) | 2017-04-21 | 2019-06-18 | Intel Corporation | Handling pipeline submissions across many compute units |
CN107391866B (zh) * | 2017-07-31 | 2022-03-04 | 北京仿真中心 | 一种基于多处理器的aadl模型的可调度性分析方法 |
CN108363671B (zh) * | 2018-02-07 | 2020-01-14 | 中国平安人寿保险股份有限公司 | 一种接口切换的方法、终端设备及存储介质 |
US11676013B2 (en) * | 2019-12-30 | 2023-06-13 | International Business Machines Corporation | Job-launch time reduction by node pre-configuration |
CN112131008B (zh) * | 2020-09-28 | 2024-04-19 | 芯瞳半导体技术(山东)有限公司 | 一种调度线程束warp的方法、处理器及计算机存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58115569A (ja) * | 1981-12-29 | 1983-07-09 | Fuji Electric Co Ltd | マルチプロセツサ方式 |
JPH01246657A (ja) * | 1988-03-29 | 1989-10-02 | Toshiba Corp | 並列処理システム |
JPH0660043A (ja) * | 1992-08-11 | 1994-03-04 | Nec Corp | 負荷分散制御方式 |
JPH08292932A (ja) * | 1995-02-24 | 1996-11-05 | Matsushita Electric Ind Co Ltd | マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法 |
JPH09293057A (ja) * | 1996-04-26 | 1997-11-11 | Nec Corp | 階層構造型マルチプロセッサシステムにおけるタスク割り当て方法 |
JP2684993B2 (ja) * | 1994-08-10 | 1997-12-03 | 日本電気株式会社 | プロセッサシステムとその制御方法 |
JPH1027168A (ja) * | 1996-07-11 | 1998-01-27 | Nec Corp | メッセージ動的負荷分散方式 |
JPH11212929A (ja) * | 1998-01-27 | 1999-08-06 | Nec Commun Syst Ltd | 負荷分散マルチプロセッサ方式によるプロセッサ決定方式 |
JPH11259318A (ja) * | 1998-03-13 | 1999-09-24 | Hitachi Ltd | ディスパッチ方式 |
JP2954056B2 (ja) * | 1996-12-26 | 1999-09-27 | 日本電気ソフトウェア株式会社 | マルチプロセッサのプロセスディスパッチ方法 |
JP2998648B2 (ja) * | 1995-08-28 | 2000-01-11 | 日本電気株式会社 | 負荷分散ジョブ処理システム |
JP2000181729A (ja) * | 1998-12-16 | 2000-06-30 | Fujitsu Ltd | プロセッサ資源選択方法ならびにそのためのプロセッサ資源選択システムおよびコンピュ−タ読み取り可能なプログラム記録媒体 |
JP2000305906A (ja) * | 1999-04-20 | 2000-11-02 | Hitachi Ltd | 分散トランザクション制御装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4253146A (en) * | 1978-12-21 | 1981-02-24 | Burroughs Corporation | Module for coupling computer-processors |
US4245306A (en) * | 1978-12-21 | 1981-01-13 | Burroughs Corporation | Selection of addressed processor in a multi-processor network |
US4253144A (en) * | 1978-12-21 | 1981-02-24 | Burroughs Corporation | Multi-processor communication network |
US4240143A (en) * | 1978-12-22 | 1980-12-16 | Burroughs Corporation | Hierarchical multi-processor network for memory sharing |
US4924428A (en) * | 1987-12-08 | 1990-05-08 | Northern Telecom Limited | Real time digital signal processor idle indicator |
US5050070A (en) * | 1988-02-29 | 1991-09-17 | Convex Computer Corporation | Multi-processor computer system having self-allocating processors |
EP0403229A1 (en) * | 1989-06-13 | 1990-12-19 | Digital Equipment Corporation | Method and apparatus for scheduling tasks in repeated iterations in a digital data processing system having multiple processors |
US5301324A (en) * | 1992-11-19 | 1994-04-05 | International Business Machines Corp. | Method and apparatus for dynamic work reassignment among asymmetric, coupled processors |
US5907485A (en) * | 1995-03-31 | 1999-05-25 | Sun Microsystems, Inc. | Method and apparatus for flow control in packet-switched computer system |
US6728959B1 (en) * | 1995-08-08 | 2004-04-27 | Novell, Inc. | Method and apparatus for strong affinity multiprocessor scheduling |
US6292822B1 (en) * | 1998-05-13 | 2001-09-18 | Microsoft Corporation | Dynamic load balancing among processors in a parallel computer |
US6505229B1 (en) * | 1998-09-25 | 2003-01-07 | Intelect Communications, Inc. | Method for allowing multiple processing threads and tasks to execute on one or more processor units for embedded real-time processor systems |
US6658449B1 (en) * | 2000-02-17 | 2003-12-02 | International Business Machines Corporation | Apparatus and method for periodic load balancing in a multiple run queue system |
US6629075B1 (en) * | 2000-06-09 | 2003-09-30 | Speechworks International, Inc. | Load-adjusted speech recogintion |
US7178145B2 (en) * | 2001-06-29 | 2007-02-13 | Emc Corporation | Queues for soft affinity code threads and hard affinity code threads for allocation of processors to execute the threads in a multi-processor system |
US6912533B1 (en) * | 2001-07-31 | 2005-06-28 | Oracle International Corporation | Data mining agents for efficient hardware utilization |
-
2002
- 2002-02-06 US US10/068,599 patent/US7487504B2/en not_active Expired - Fee Related
-
2003
- 2003-01-29 TW TW092102054A patent/TWI235952B/zh not_active IP Right Cessation
- 2003-02-03 JP JP2003025839A patent/JP4117202B2/ja not_active Expired - Fee Related
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58115569A (ja) * | 1981-12-29 | 1983-07-09 | Fuji Electric Co Ltd | マルチプロセツサ方式 |
JPH01246657A (ja) * | 1988-03-29 | 1989-10-02 | Toshiba Corp | 並列処理システム |
JPH0660043A (ja) * | 1992-08-11 | 1994-03-04 | Nec Corp | 負荷分散制御方式 |
JP2684993B2 (ja) * | 1994-08-10 | 1997-12-03 | 日本電気株式会社 | プロセッサシステムとその制御方法 |
JPH08292932A (ja) * | 1995-02-24 | 1996-11-05 | Matsushita Electric Ind Co Ltd | マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法 |
JP2998648B2 (ja) * | 1995-08-28 | 2000-01-11 | 日本電気株式会社 | 負荷分散ジョブ処理システム |
JPH09293057A (ja) * | 1996-04-26 | 1997-11-11 | Nec Corp | 階層構造型マルチプロセッサシステムにおけるタスク割り当て方法 |
JPH1027168A (ja) * | 1996-07-11 | 1998-01-27 | Nec Corp | メッセージ動的負荷分散方式 |
JP2954056B2 (ja) * | 1996-12-26 | 1999-09-27 | 日本電気ソフトウェア株式会社 | マルチプロセッサのプロセスディスパッチ方法 |
JPH11212929A (ja) * | 1998-01-27 | 1999-08-06 | Nec Commun Syst Ltd | 負荷分散マルチプロセッサ方式によるプロセッサ決定方式 |
JPH11259318A (ja) * | 1998-03-13 | 1999-09-24 | Hitachi Ltd | ディスパッチ方式 |
JP2000181729A (ja) * | 1998-12-16 | 2000-06-30 | Fujitsu Ltd | プロセッサ資源選択方法ならびにそのためのプロセッサ資源選択システムおよびコンピュ−タ読み取り可能なプログラム記録媒体 |
JP2000305906A (ja) * | 1999-04-20 | 2000-11-02 | Hitachi Ltd | 分散トランザクション制御装置 |
Non-Patent Citations (1)
Title |
---|
RENE AKERET ET AL., AIX 5L ディファレンス・ガイド バージョン5.1版, vol. 第1版, JPN6008016235, January 2002 (2002-01-01), JP, pages 476 - 477, ISSN: 0001019376 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007517322A (ja) * | 2003-12-29 | 2007-06-28 | インテル・コーポレーション | プロセッサにおける同時物理スレッド数からの論理スレッド数のデカップリング |
JP2007317171A (ja) * | 2006-04-27 | 2007-12-06 | Matsushita Electric Ind Co Ltd | マルチスレッド計算機システム、マルチスレッド実行制御方法 |
US8001549B2 (en) | 2006-04-27 | 2011-08-16 | Panasonic Corporation | Multithreaded computer system and multithread execution control method |
JP2008047126A (ja) * | 2006-08-15 | 2008-02-28 | Internatl Business Mach Corp <Ibm> | 精密なcpu消費量データを用いてアフィニティをディスパッチする負荷バランサ |
WO2008053789A1 (en) * | 2006-10-31 | 2008-05-08 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device |
JP2008135018A (ja) * | 2006-10-31 | 2008-06-12 | Semiconductor Energy Lab Co Ltd | 半導体装置 |
US7840188B2 (en) | 2006-10-31 | 2010-11-23 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device |
US8041309B2 (en) | 2006-10-31 | 2011-10-18 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device |
US8396425B2 (en) | 2006-10-31 | 2013-03-12 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device |
US9362984B2 (en) | 2006-10-31 | 2016-06-07 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device |
JP2013522710A (ja) * | 2010-03-11 | 2013-06-13 | ブル エスエーエス | Itシステムの構成方法、そのコンピュータプログラムおよびitシステム |
Also Published As
Publication number | Publication date |
---|---|
JP4117202B2 (ja) | 2008-07-16 |
US7487504B2 (en) | 2009-02-03 |
TWI235952B (en) | 2005-07-11 |
US20030149716A1 (en) | 2003-08-07 |
TW200404253A (en) | 2004-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4117202B2 (ja) | マルチプロセッサ・コンピュータ・システムのためのスレッド・ディスパッチ機構及び方法 | |
JP7313381B2 (ja) | ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング | |
US6895585B2 (en) | Method of mixed workload high performance scheduling | |
US7926062B2 (en) | Interrupt and exception handling for multi-streaming digital processors | |
US8893148B2 (en) | Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks | |
US20170329629A1 (en) | System for selecting a task to be executed according to an output from a task control circuit | |
US7962910B2 (en) | Selective generation of an asynchronous notification for a partition management operation in a logically-partitioned computer | |
US7251814B2 (en) | Yield on multithreaded processors | |
US8127300B2 (en) | Hardware based dynamic load balancing of message passing interface tasks | |
US7543306B2 (en) | Method, system, and program for handling device interrupts in a multi-processor environment | |
US10402223B1 (en) | Scheduling hardware resources for offloading functions in a heterogeneous computing system | |
US20110219373A1 (en) | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform | |
US20090183163A1 (en) | Task Processing Device | |
US20120144146A1 (en) | Memory management using both full hardware compression and hardware-assisted software compression | |
US20190188032A1 (en) | Thread interrupt offload re-prioritization | |
JP6477260B2 (ja) | アプリケーションを実行する方法及びリソースマネジャ | |
US8539491B1 (en) | Thread scheduling in chip multithreading processors | |
CN115878301A (zh) | 一种数据库网络负载性能的加速框架、加速方法及设备 | |
US9158601B2 (en) | Multithreaded event handling using partitioned event de-multiplexers | |
US20040215578A1 (en) | Controlling usage of system resources by a network manager | |
JPH08292932A (ja) | マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法 | |
KR102576443B1 (ko) | 연산 장치 및 그 잡 스케줄링 방법 | |
JP2003084989A (ja) | プライオリティ動的制御方式、プライオリティ動的制御方法およびプライオリティ動的制御用プログラム | |
JP3227069B2 (ja) | 入出力処理システム | |
KR100391513B1 (ko) | 멀티 스레드를 이용한 네트워크의 병목현상 감소 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050901 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050913 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20051014 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20051014 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060926 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20061222 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20061227 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070322 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070619 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070914 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071113 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080206 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080313 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080415 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20080415 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080421 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110425 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110425 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110425 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120425 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130425 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130425 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140425 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |