JP5946068B2 - 演算コア上で複数の演算処理単位が稼働可能なコンピュータ・システムにおける応答性能を評価する計算方法、計算装置、コンピュータ・システムおよびプログラム - Google Patents

演算コア上で複数の演算処理単位が稼働可能なコンピュータ・システムにおける応答性能を評価する計算方法、計算装置、コンピュータ・システムおよびプログラム Download PDF

Info

Publication number
JP5946068B2
JP5946068B2 JP2013259975A JP2013259975A JP5946068B2 JP 5946068 B2 JP5946068 B2 JP 5946068B2 JP 2013259975 A JP2013259975 A JP 2013259975A JP 2013259975 A JP2013259975 A JP 2013259975A JP 5946068 B2 JP5946068 B2 JP 5946068B2
Authority
JP
Japan
Prior art keywords
computer system
arithmetic processing
core
processing units
arithmetic
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.)
Expired - Fee Related
Application number
JP2013259975A
Other languages
English (en)
Other versions
JP2015118434A (ja
Inventor
拓 井上
拓 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2013259975A priority Critical patent/JP5946068B2/ja
Priority to US14/570,203 priority patent/US9600290B2/en
Publication of JP2015118434A publication Critical patent/JP2015118434A/ja
Application granted granted Critical
Publication of JP5946068B2 publication Critical patent/JP5946068B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、演算コア上で複数の演算処理単位が稼働可能なコンピュータ・システムに関し、より詳細には、演算コア上で複数の演算処理単位が稼働可能なコンピュータ・システムにおける応答性能を評価する計算方法、計算装置、コンピュータ・システムおよびコンピュータを実現するためのプログラムに関する。
現在、多くの高性能プロセッサは、同時マルチ・スレッド(SMT:Simultaneous Multi-Threading)技術を用いて各演算コア上で複数のハードウェア・スレッドをスレッド・レベルで並列化させる機能を有している。上記SMT機能により、プロセッサにおけるハードウェア資源の利用率を高めることで、サーバのピークスループットを向上させることができる。
アプリケーションを実システム上で稼働させる場合、システムに必要なCPU数を見積もったり、所与のシステムで予測される時間性能を評価したりすることが行われる。例えば、特開2012−128771号公報(特許文献1)は、1つのシステムの中に同時並行して複数のユーザのサービスのプログラムが動作するマルチテナント環境における性能の予測方法を開示する。特開2004−213624号公報(特許文献2)は、スレッド・プールのスレッド数を調整する目的で待ち行列時間を計算する技術を開示する。さらに、特開2000−298593号公報(特許文献3)は、マルチタスク環境における並列計算機の並列度に対する性能の向上度や性能指標を正しく予測することを目的として、複数のタスクによるプロセッサ競合を考慮した待ち行列モデルを開示する。
特開2012−128771号公報 特開2004−213624号公報 特開2000−298593号公報
上述したように、システムでの時間性能の評価などを行う上で、待ち行列理論がしばしば利用される。しかしながら、従来技術の待ち行列理論では、上記SMT機能を有するようなコンピュータ・システムにおいては、その挙動を適切に予測することができなかった。例えば、システムにおける論理CPU数(コア数×単位コアあたりのスレッド数)を窓口数とした待ち行列モデルでは、実際のシステムの振る舞いに整合する予測結果を与えることができなかった。
これは、SMT技術では、論理CPU数が増えるが、複数ハードウェア・スレッドが同時並列に実行されることにより、単一スレッド性能が、他のスレッドとの内部ハードウェア資源の競合により、低下する可能性があるためであると考えられる。また、オペレーティング・システムのタスクスケジューラのはたらきの影響も受ける可能性がある。
特にWebアプリケーションのような短時間タスクが多数発生する用途では、ピークスループットに加えて、応答時間も重要となる。応答時間を改善することにより、ユーザ・エクスペリエンスを大きく向上させることができるためである。通常、同時実行されるハードウェア・スレッド数を最大化する方が、スループットの向上には良いと考えられる。しかしながら、本発明者が鋭意検討した結果、特に複数の演算コアが含まれる場合において、全体のCPUの利用率が低い場合に、SMTによるピークスループットの向上の利点よりも、スレッド間競合による単一スレッド性能の低下が大きく影響し、上述した応答時間が悪化することが見出された。
上記特許文献1および特許文献3の従来技術は、待ち行列を用いて、複数のソフトウェアを1つのシステムで同時に実行した際の性能を評価するという技術であり、特許文献2の従来技術は、マルチ・スレッド・プログラミングにおけるスレッド・プールのスレッド数を動的に調整するために待ち行列を用いるというものである。上記特許文献1〜3の従来技術は、各演算コア上で複数のハードウェア・スレッドを並列化させるSMT環境における上記単一スレッド性能の低下を考慮しているものではない。
このような背景から、演算コア各々上で複数の演算処理単位が内部ハードウェア資源を共有しながら並列に稼働可能なコンピュータ・システムにおいて、その応答性能を予測できる新規なモデルの構築が望まれていた。そして、このような新規なモデルに基づき、コンピュータ・システムの負荷状況に応じて、最適な演算処理単位の並列状態を決定し、スループットの向上および応答時間の改善を両立することができる新たな技術の開発が望まれていた。
本発明は、上記従来技術における不充分な点に鑑みてなされたものであり、本発明は、演算コア各々上で複数の演算処理単位が内部ハードウェア資源を共有しながら並列に稼働可能なコンピュータ・システムにおいて、演算処理単位間の競合を考慮して所定演算処理単位の並列状態での応答性能を評価することができる、計算方法を提供することを目的とする。
本発明の他の目的は、演算コア各々上で複数の演算処理単位が内部ハードウェア資源を共有しながら並列に稼働可能なコンピュータ・システムにおいて、演算処理単位間の競合を考慮して、所定演算処理単位の並列状態での応答性能を評価することができる、計算装置およびプログラムを提供することである。
さらに本発明の他の目的は、演算コア各々上で複数の演算処理単位が内部ハードウェア資源を共有しながら並列に稼働可能なコンピュータ・システムにおいて、システムにかかる負荷に応じて演算処理単位の並列状態を決定し、特に低負荷時における応答性能を改善することができる、コンピュータ・システムを提供することである。
本発明では、上記従来技術における課題を解決するために、演算コア各々上で複数の演算処理単位が内部ハードウェア資源を共有しながら並列に稼働可能なコンピュータ・システムにおける応答性能を評価する、下記特徴を有した計算方法を提供する。すなわち、本計算方法は、コンピュータが、上記コンピュータ・システムの利用状況を、演算処理単位の並列状態で正規化して評価するステップと、コンピュータが、正規化された利用状況から、求めようとする演算処理単位の並列状態での応答性能の期待値を、並列稼働状況に応じた演算処理単位の平均的な単一性能の変化を考慮した待ち行列理論に基づいて計算するステップとを含む。
また、本発明によれば、下記特徴を有するコンピュータ・システムを提供することができる。本コンピュータ・システムは、当該コンピュータ・システムの現在の利用状況を、演算処理単位の並列状態で正規化して評価する利用状況評価部と、正規化された現在の利用状況から、利用状況に対し使用する演算処理単位の並列状態を対応付ける対応付け情報に基づき、使用する演算処理単位の並列状態の設定を更新する設定更新部とを含む。上記対応付け情報は、並列稼働状況に応じた演算処理単位の平均的な単一性能の変化を考慮した待ち行列理論に基づき計算される応答性能の期待値が最適化される並列状態を、利用状況各々に対応付ける情報であることを特徴とする。
さらに、本発明によれば、上記コンピュータ・システムにおける応答性能を評価する計算装置、および、該計算装置としてコンピュータを実現するためのプログラムが提供される。
上記構成により、演算コア各々上で複数の演算処理単位が内部ハードウェア資源を共有しながら並列に稼働可能なコンピュータ・システムにおいて、演算処理単位間の競合を考慮して所定演算処理単位の並列状態での応答性能を評価することができる。
本発明の実施形態による有効スレッド数調整方法を実行するコンピュータ・システムのハードウェア構成図。 本発明の実施形態によるコンピュータ・システムのソフトウェア構成図。 本発明の実施形態による有効スレッド調整部の詳細な機能ブロック図。 (A)同一演算コア内のスレッド間の内部ハードウェア資源の競合および(B)タスクスケジューラによる演算コア間のタスク・マイグレーションを説明する図。 本実施形態によるコンピュータ・システムが実行する有効スレッド数調整方法を示すフローチャート。 コンピュータ・システムでのアプリケーションの平均応答時間を、スループットを横軸としてプロットしたグラフ。
以下、本発明の実施形態について説明するが、本発明の実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下に説明する実施形態では、コンピュータ・システムにおける応答性能を評価する計算方法として、SMT機能を有するコンピュータ・システムで実行され、現在の利用状況の下、各ハードウェア・スレッド数でSMT機能を有効化した場合の応答性能を評価するとともに、最適な有効スレッド数の設定に調整する、有効スレッド数調整方法を一例として説明する。
図1は、本発明の実施形態による有効スレッド数調整方法を実行するコンピュータ・システムのハードウェア構成を示す図である。図1に示すコンピュータ・システム10は、サーバ・コンピュータ、ワークステーション、パーソナル・コンピュータなどの汎用コンピュータとして構成される。
コンピュータ・システム10は、1または複数のプロセッサ12−1…12−nと、メモリ16と、ストレージ・システム18とを含み構成される。プロセッサ12は、特に限定されるものではないが、典型的には、POWER7(登録商標)、POWER8(登録商標)、XEON(登録商標)といったSMP(Symmetric Multi-Processing)構成のマルチコア・プロセッサである。プロセッサ12は、さらに、演算コア14各々の上で所定最大数のハードウェア・スレッド(以下、単にスレッドと参照する。)を稼働可能とするSMT機能をサポートする。なお、説明する実施形態では、演算コア14各々上で複数のスレッドを並列に同時稼働させることができる、SMT機能を有するプロセッサを含んだコンピュータ・システムを評価対象とすることができる。ハードウェア・スレッドは、本実施形態における演算処理単位を構成する。
メモリ16は、DRAM(Dynamic Random Access Memory)などで構成され、プロセッサ12に対して作業空間を提供する。ストレージ・システム18は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などで構成され、オペレーティング・システム、アプリケーション、本実施形態による有効スレッド数調整方法を実行するソフトウェア・コンポーネントなどの各種プログラムを格納する。
コンピュータ・システム10は、さらに、ネットワーク・アダプタ20を含むことができる。ネットワーク・アダプタ20は、LAN(Local Area Network)、WAN(Wide Area Network)や公衆ネットワーク(例えばインターネット)などのネットワークにコンピュータ・システム10を接続する。コンピュータ・システム10は、さらに、I/Oインタフェース22を介して、キーボードやポインティング・デバイスなどの周辺機器24やディスプレイ26といった機器と通信していてもよい。
上述したコンピュータ・システム10を構成するコンポーネント12〜24は、ファブリックバス、メモリ・バス、I/Oバスなどを含む各種バスを介して接続される。本実施形態によるコンピュータ・システム10では、プロセッサ12が、ストレージ・システム18から各プログラムを読み出し、メモリ16が提供する作業空間に展開することによって、後述する各機能部および各処理を実現する。
図2は、本発明の実施形態によるコンピュータ・システムのソフトウェア構成を示す図である。図2(A)は、オペレーティング・システム(以下、OSと参照する。)カーネル102上で動作するユーザ空間デーモン108として、本発明の実施形態による有効スレッド数調整方法が実装される実施形態を示している。これに対して、図2(B)は、OSカーネル102を構成しているタスクスケジューラ104として、直接、本発明の実施形態による有効スレッド数調整方法が実装される他の実施形態を示す。
OSカーネル102は、特に限定されるものではないが、RedHat Enterprise Linux(登録商標)などのLINUX(登録商標)系、AIX(登録商標)などのUNIX(登録商標)系、Windows Server(登録商標)などのWindows(登録商標)系のサーバOS、またはクライアントOSの中核部分である。両方の実施形態において、OSカーネル102は、演算コア14各々の上で稼働する各ハードウェア・スレッドを論理CPUとして認識し、これらCPUの利用状況を計測し、記録している。また、OSカーネル102は、有効スレッド数を設定するためのインタフェースを提供する。説明する実施形態において、各演算コア14上で有効化されるスレッド数は、SMTを無効化した場合に対応する1から、プロセッサ12が対応している最大数までの範囲で指定可能である。また、説明する実施形態では、説明の便宜上、すべての演算コア14に対して同一の有効スレッド数が指定されるものとして説明するが、他の実施形態では、演算コア14毎に独立した有効スレッド数が指定されるように有効スレッド数調整方法を構成してもよい。
OSカーネル102に含まれるタスクスケジューラ104は、リアルタイム・タスクへの応答時間の最小化、および、全体のCPU利用効率の最大化を目標とし、プロセス実行に必要なCPUリソースの割り当てを行う。タスクスケジューラ104は、例えば、Linux(登録商標)カーネル2.6.23以降では、CFS(Completely Fair Scheduler)が用いられる。
両方の実施形態において、アプリケーション106は、Webアプリケーション、データベース・アプリケーションなど、OS上で稼働する如何なるアプリケーションまたはこれらの組み合わせとして構成されている。アプリケーション106は、プロセッサ12が提供する複数のスレッドを利用して、クライアントからのリクエストを処理する。
本発明の実施形態による有効スレッド数調整方法は、図2(A)に示すように、OSカーネル102とインタフェースを介してSMT機能にアクセスするユーザ空間デーモン108の有効スレッド調整部110として実装されてもよい。あるいは、他の実施形態では、図2(B)に示すように、OSカーネル102を構成するタスクスケジューラ104内に直接、有効スレッド調整部110が実装されてもよい。
以下、図3〜図5を参照しながら、本発明の実施形態による有効スレッド数調整方法について、より詳細に説明する。上述したように、SMT技術では、複数スレッドが同時並列に実行されることによりスループットを向上できる反面、単一スレッド性能が、他のスレッドとの内部ハードウェア資源の競合により、低下する可能性がある。特に複数の演算コアが含まれる場合であって、全体のCPUの利用率が低いときに、スレッド間競合による単一スレッド性能の低下が大きく影響し、応答性能が悪化する。つまり、コンピュータ・システム10においては、負荷によって適切な有効スレッド数が異なり、システムで使用する有効スレッド数を常にプロセッサでサポートされる最大値に固定してしまことが適切ではない可能性がある。
そこで、本実施形態による有効スレッド調整部110は、現在のCPUの利用状況に応じて、各有効スレッド数とした場合の応答性能を予測評価し、その予測の下、最適な有効スレッド数に設定を動的に調整する制御を行う。
図3は、本発明の実施形態による有効スレッド調整部の詳細な機能ブロックを示す図である。本実施形態による有効スレッド調整部110は、利用状況評価部112と、応答性能計算部114と、有効スレッド設定更新部120とを含み構成される。
利用状況評価部112は、OSカーネル102からCPU利用情報を定期的に取得し、当該コンピュータ・システム10の全CPUの現在の利用状況を、スレッドの並列度で正規化して評価する。コンピュータ・システム10は、ある有効スレッド数(SMT無効も含まれる。)またはその組み合わせが設定された状態で動作しているところ、利用状況評価部112は、このような使用するスレッドの並列状態によらない形で、現在の全CPUにかかる利用状況を評価する。典型的には、正規化された利用状況は、SMT機能を無効とした場合(つまり有効スレッド数が1である場合)に、現在の負荷を処理するために必要であると推定されるCPU利用率(CPU Utilization)として評価される。
応答性能計算部114は、正規化して評価された現在の利用状況から、求めようとするスレッド並列状態での応答性能の期待値を、スレッドの並列稼働状況に応じた平均的な単一スレッド性能の変化を考慮した待ち行列理論に基づいて計算する。典型的には、全演算コアに同一の有効スレッド数が設定されるものとして、各有効スレッド数(1≦t≦tmax;tmaxは、サポートされる最大スレッド数)について、応答性能の期待値が計算される。
有効スレッド設定更新部120は、インタフェースを介してOSカーネル102にアクセスし、算出された応答性能の期待値に基づき、使用する有効スレッド数の設定を更新する。典型的には、応答性能の期待値が最適化される有効スレッド数が、現在の利用状況下で使用する有効スレッド数として決定される。評価される応答性能は、説明する実施形態では、平均応答時間であり、したがって、平均応答時間の期待値が最小となる有効スレッド数に設定更新される。
より詳細に説明すると、応答性能計算部114は、コア内モデル計算部116と、コア間モデル計算部118とを含み構成される。
図4(A)には、同一演算コア内で並列稼働する複数のスレッド130−x1,130−x2が、実行ユニット132−xやキャッシュ134−xなどのプロセッサ12内部のハードウェア資源を共有している様子が表されている。同一演算コア上の複数のスレッド130−x1,130−x2は、内部ハードウェア資源を共有することで、資源利用効率を高めて、全体としての性能向上を図っているが、スレッド130間では、内部ハードウェア資源の競合が生じる。このため、ソフトウェアからはスレッド数に応じた論理CPUとして認識されるが、同時稼働するスレッドの並列度によって、各論理CPU(スレッド)の単一性能は低下する。
例えば、POWER7(登録商標)プロセッサでは、有効スレッド数を2とした場合、150%程度まで全体性能を向上できるが、それぞれの単一スレッド性能は、SMT機能を無効化した場合の75%程度まで低下する可能性がある。有効スレッド数をサポートされる最大値4とした場合は、180%程度まで全体性能を向上できるが、それぞれの単一スレッド性能は、45%程度まで低下する可能性がある。
そこで、コア内モデル計算部116は、図4(A)に示すような演算コア内のスレッド間競合をモデル化した待ち行列モデルを用いて計算する。ここでは、他の演算コアからの影響を考えず、コア内モデル計算部116は、演算コア14毎の有効スレッド数を窓口数とした待ち行列での待ち時間を計算する。このとき、ある瞬間の演算コア14内での窓口の埋まり方(スレッド同時稼働数)に応じて、平均的な単一スレッド性能が変化することになる。コア内モデル計算部116は、この平均単一スレッド性能の変化を、平均サービス率の変動として取り込んで、待ち行列における待ち時間を計算する。
また、図4(B)には、タスクスケジューラ104が、ある演算コアに割り当てたタスク数が有効スレッド数を超えて空き待ちになる場合に、負荷が低い他の演算コアへタスク142を移行させる動作が表されている。典型的なOSのタスクスケジューラ104は、演算コア14内では、負荷分散のためタスクを積極的に移動させるが、各演算コア14での実行可能なタスク数に大きな偏りが生じない限りは、他のコアへのタスクの移行は消極的である。そのため、タスクスケジューラ104が、単純にタスクを各スレッドに分け隔てなく移動させると仮定し、複数の演算コアにわたるスレッド総数(コア数×コアあたりの有効スレッド数)を窓口数とする待ち行列モデルを用いても、挙動を正しく予測できない。
そこで、本実施形態では、コア間モデル計算部118は、さらに、コア内モデル計算部116の計算結果に基づいて、図4(B)に示すようなタスクスケジューラ104による演算コア14間のタスク・マイグレーションをモデル化した待ち行列モデルを用いて計算する。コア間モデル計算部118は、複数の演算コア14にわたる窓口数の待ち行列で、他の演算コアからのタスクを受け入れ可能な演算コア(図4(B)に示す実行可能なタスクがない演算コア14−2のようなコア)が存在する確率を計算し、タスクがコア間で移行させられる可能性を加味して応答性能の期待値を計算する。
以下、コア内モデル計算部116およびコア間モデル計算部118で実行される処理内容について、図5を参照しながら、より詳細に説明する。図5は、本実施形態によるコンピュータ・システム10が実行する有効スレッド数調整方法を示すフローチャートである。図5に示す処理は、コンピュータ・システム10が起動したことに応答して、ステップS100から開始される。
ステップS101では、コンピュータ・システム10は、利用状況評価部112により、全CPUでの全スレッドの利用状況を計測する。OSは、典型的には、論理CPU(スレッド)毎のCPU利用情報(例えばシステムが消費した時間や利用率自体)を保持しており、これらの情報から、論理CPU毎の利用率が求められる。
ステップS102では、コンピュータ・システム10は、利用状況評価部112により、計測された論理CPU毎の利用率に基づいて、有効スレッド数が1である場合を基準とした、正規化された利用率utilnormを計算する。ここでは、正規化された利用率utilnormを計算するために、n個のスレッドで同時にプログラムが実行されている際の単一スレッド性能を、SMT機能を無効化した場合の値との比率で表した、単一スレッド性能threadPerf[n]を定義する。1個のスレッドでの単一スレッド性能threadPerf[1]は、1.0であり、n>1の場合は、0<threadPerf[n]≦1.0となる。そして、演算コア上で動作する全スレッドを合わせた全体性能は、threadPerf[n]×nとなる。
例えば、threadPerf[2]が0.8であれば、各スレッドの単一性能が80%になる代わりに、2個のスレッドが並列稼働できるので、演算コアの全体性能としては、1.6倍に向上する可能性がある。単一スレッド性能threadPerf[n]の値は、現在の負荷に対する値をパフォーマンスカウンタなどの計測手段を用いて動的に求めてもよいし、典型的な値を静的に定めてもよい。複数スレッドを走らせたときに単一性能がどの程度低下するかは、アプリケーションに依存すると考えられるので、好適な実施形態では、ThreadPerf[n]を実行時に求めてモデルの考慮に入れることで精度を高めることができる。
ステップS102においては、利用状況評価部112は、より具体的には、単一スレッド性能threadPerf[n]を用いて、演算コアで計測された各論理CPUの利用率util[n](1≦n≦tmax)から、正規化された利用率utilnormを計算する。スレッド数2以上では、正規化された利用率utilnormは、1を超える可能性がある。なお、ここでは、コア内をモデルとしているので、演算コア当たりの平均利用率utilnormとして計算するものとする。
例えば、POWER7(登録商標)プロセッサでは、CFS(Linux(登録商標)カーネル2.6.23以降の場合)は、演算コア内では、非対称SMTスケジューリングにより、論理CPU識別番号が若いスレッドから順に稼働させるので、n<nについてutil[n]>util[n]となる。このとき、util[n]−util[n+1]が、スレッド数(並列度)nで消費されたものと考えることができる。例えば、util[1]が80%でutil[2]が50%であり、有効スレッド数が2であるとすると、30%がスレッド数1で消費され、50%がスレッド数2で消費されたとみなすことができる。したがって、正規化された利用率utilnorm=(threadPerf[1]×1)×30%+(threadPerf[2]×2)×50%となる。
一方で、非対称SMTスケジューリングが使用されないプロセッサでは、上記と同様の条件では、40%(=util[1]×util[2])がスレッド数2で消費され、50%(=util[1]+util[2]−2×util[1]×util[2])が、スレッド数1で消費されたとみなすことができる。したがって、utilnorm=(threadPerf[1]×1)×50%+(threadPerf[2]×2)×40%となる。
利用状況が評価された後、ステップS103〜ステップS114のループでは、仮定する各有効スレッド数t(1≦t≦tmax)のそれぞれについて、ステップS104〜ステップS113で示す処理を実行する。
ステップS104では、仮定した有効スレッド数tが1であるか否かに応じて処理が分岐される。ステップS104で、仮定した有効スレッド数tが1であると判定された場合(t>1;NO)は、ステップS105へ処理が分岐される。この場合は、SMTによるスレッド競合が起こらないので、ステップS105では、窓口数cのいわゆるM/M/cの待ち行列として、平均応答時間の期待値W[1]を計算する。平均応答時間の期待値W[1]は、到着してからサービスを受けるまでの平均待ち時間Wに、窓口の平均サービス時間1/μを加算した値として求められる。ここでは、応答時間が相対的にもっともよいものを選ぶことを趣旨としているので、平均サービス率μ=1.0を仮定する。ステップS104で、仮定した有効スレッド数tが1を超えると判定された場合(t>1;YES)は、ステップS106へ処理が分岐される。
ステップS106〜ステップS110では、コア内モデル計算部116により、他の演算コアからの影響を考慮せず、演算コア内での有効スレッド数tについて、適当な平均的な単一スレッド性能avgThreadPerfを仮定し、複数窓口モデルを用いて待ち行列の計算を行い、その結果に応じて平均単一スレッド性能の仮定を反復更新する。
ここで、SMT機能を用いて現在の負荷を実行した際の平均的な単一スレッド性能を、SMT機能を用いない場合の単一スレッド性能との比率で表し、avgThreadPerfとする。有効スレッド数tの場合、単一スレッド性能avgThreadPerfは、threadPerf[t]≦avgThreadPerf≦1.0となる。これは、t個のスレッドが有効とされていても、実際には、t個以下のタスクしか実行可能ではないため、より少ない数のスレッドのみが稼働している状況の時間があるためである。したがって、実際にt個のスレッドで同時にプログラムが実行されている際の単一スレッド性能threadPerf[t]よりも、平均単一スレッド性能avgThreadPerfの方が高くなる可能性がある。
ステップS106では、コンピュータ・システム10は、コア内モデル計算部116により、まず平均単一スレッド性能にある初期値を設定する。ここでは、SMT機能による性能劣化がないと仮定し、avgThreadPerf=1.0を設定することができる。ステップS107では、コンピュータ・システム10は、コア内モデル計算部116により、現在の単一スレッド性能avgThreadPerfの仮定の下、正規化された演算コアあたりの利用率utilnormから、t個のスレッドを使用した場合の平均利用率ρを計算する。平均利用率ρは、下記式(1)により計算することができる。
ステップS108では、コンピュータ・システム10は、コア内モデル計算部116により、窓口数t、平均利用率ρ、平均サービス率μ=avgThreadPerfの待ち行列として、演算コア(系)内にn個のタスクが存在する確率π[n]および平均待ち時間Wを計算する。M/M/tの待ち行列とすると、確率π[n]および平均待ち時間Wは、下記式(2)〜(4)で計算することができる。平均待ち時間Wは、タスク数がスレッド数を超えた場合に実行権を得るまでの待ち時間を意味する。
ステップS109では、コンピュータ・システム10は、コア内モデル計算部116により、所与の単一スレッド性能threadPerf[n]および計算されたタスク数nの確率π[n]の分布に基づき、平均単一スレッド性能の期待値を計算し、avgThreadPerfを更新する。平均単一スレッド性能の期待値は、下記式(5)により計算することができる。なお、有効スレッド数tにおけるπ[t]は、窓口がすべてふさがっている確率π[n≧t]となる。
ステップS110では、コンピュータ・システム10は、コア内モデル計算部116により、収束条件が成立したか否かを判定する。ステップS110で、収束条件が成立していないと判定された場合(NO)は、ステップS107へループさせ、更新された平均単一スレッド性能avgThreadPerfの下、再計算する。一方で、ステップS110で、収束条件が成立したと判定された場合(YES)は、ステップS111へ処理を分岐させる。
収束条件は、前回の平均単一スレッド性能からの差分の大きさや二乗誤差が所定閾値以下となった場合に成立したものと判定される。あるいは、反復計算に対する一定の打ち切り回数を設けて、誤差等が所定以下とならない場合でも、一定回数以上反復した場合に、収束条件が成立したものと判定し、終了してもよい。なお、コア内モデル計算部116は、本実施形態における初期値設定部、コア内タスク分布計算部、単一性能更新部および終了条件判定部を構成する。
引き続いて、ステップS111〜ステップS113では、コア間モデル計算部118により、収束した平均単一スレッド性能avgThreadPerfの下、複数の演算コアにわたる窓口数の待ち行列モデルを用いて、タスクがコア間を移行可能な確率を見積もり、最終的な平均応答時間の期待値を計算する。
ステップS111では、コンピュータ・システム10は、コア間モデル計算部118により、演算コア数をcとして、複数の演算コアにわたるスレッド総数c×tを窓口数とし、平均利用率ρ、平均サービス率μ=avgThreadPerfの待ち行列として、系(複数の演算コア)内にn個のタスクが存在する確率π[n]を計算する。なお、π[n]は、窓口数がc×tとである点を除き、上述したπ[n]と同様の計算方法で算出することができる。
ステップS112では、コンピュータ・システム10は、コア間モデル計算部118により、系内に存在するタスク数の確率π[n]の分布に基づき、n個のタスクが各コアにランダムに配置された場合に、c個の演算コアのうち、少なくとも1つの演算コアでタスク数が閾値以下である確率を、移行可能確率migratableRatioとして計算する。ここでは、まず、ある演算コアでs個(1≦s≦t)のタスクが実行されている確率a[s]を下記式(6)および(7)で計算する。
上記式中、C(k,s)は、k個からs個を取り出す組合せの数である。上記式(6)は、n個のタスクのうちのどのs個が現在注目している演算コアに存在するかの組み合わせの数に、全n個のタスクがc個のうちのどのコアに存在するか、選ばれなかったn−s個のタスクが、注目しているコア以外のc−1個のコアのうちどのコアに存在するかの場合の数から、タスク数がn個の場合にs個が注目するコアに存在する確率を求め、これをπ[n]で重み付き平均することで、a[s]を計算している。
移行可能な確率migratableRatioは、注目するコア以外のc−1個の全てコアで、受け入れ可能かの閾値thresholdを超えたタスクが実行されている確率(つまり、受け入れ可能なコアが存在しない確率)を、1.0から引いた確率として、下記式(8)により計算される。閾値thresholdは、例えば、実行可能なタスクが無い場合のみマイグレーションを受け入れるとした場合は、0とすればよい。
ステップS113では、コンピュータ・システム10は、コア間モデル計算部118により、計算された移行可能確率migratableRatioと、ステップS108で最終的に求めた待ち時間Wとから、下記式(9)により、有効スレッド数tにおける平均応答時間の期待値W[t]を計算する。平均サービス率μは、avgThreadPerfである。下記式(9)は、タスクスケジューラ104が、混雑した演算コアの待ち行列から、アイドルのコアにタスクを移行することを考慮して、平均待ち時間を与える。
ステップS103〜ステップS114のループがすべての有効スレッド数t(1≦t≦tmax)について行われると、すべての有効スレッド数t各々における平均応答時間の期待値W[t]がそろう。
ステップS115では、コンピュータ・システム10は、有効スレッド設定更新部120により、期待値W[t]が最小となるtを使用する有効スレッド数とし、インタフェースを介して、OSカーネル102の有効スレッド数の設定を更新する。ステップS116では、所定のインターバル時間を待機し、ステップS101へ処理をループさせる。ステップS101〜ステップS116の処理は、所定インターバル(定期的に行われてもよいし、イベント駆動で不定期に行われてもよい)毎に繰り返されることになる。
[実験例:コンピュータにおける実装]
クロック数3.55GHzのPOWER7(登録商標)プロセッサを2機、128GBメモリを用いて、コンピュータ・システム10を構成した。OSとしては、ReadHat(登録商標)Enterprise Linux(登録商標)6.4(Kernel 2.6.32−358.2.1.el6)を用いた。各プロセッサは、8コアを有し、4−wayのSMT機能を有する。したがって、プロセッサ・コア数は、合計16個であり、SMTスレッド数(論理CPU数)は、最大で64である。動的周波数スケーリング機能は、再現性を高めるため無効とした。
上述した有効スレッド調整部110を、上記Linux(登録商標)上で、ユーザ空間のプログラムとして実装し、/proc/StatからCPU利用率データを取得し、Sysfsインタフェース(/sys/devices/system/cpu/cpuN/online)を用いて、各論理CPUの有効または無効を切り替え、各演算コアで指定数のSMTスレッドのみが有効となるように制御した。実験では、すべてのコアで、有効スレッド数を同一とした。
CPU利用率データの取得は、5秒毎に行い、過剰な有効スレッド数の変更を避けるため、過去60秒間におけるピークCPU利用率を用いて利用状況を評価し、最適な有効スレッド数を計算した。SMTでの各並列度での実行効率は、典型的なアプリケーションでの観測結果に基づき、プロセッサの典型的な値を静的に用いた、threadPerf[1−4]={1.0,0.75,0.57,0.45}とした。したがって、SMTスレッドの合計性能としては、{1.0,1.5,1.7,1.8}となる。
また、アプリケーションとして、データベースに格納されたビジネスデータを分析および視覚化するIBM(登録商標)Cognos(登録商標)Business Intelligence(BI)v10.2を、IBM(登録商標)WebSphere(登録商標)Application Server v8.5上で稼働させた。
図6は、上記コンピュータ・システムでのCognos(登録商標)BIの平均応答時間を、スループットを横軸としてプロットしたグラフである。負荷は、指数分布の乱数値で規定される待ち時間の間隔でリクエストを送信する模擬的なクライアントを用いて発生させた。図6中、実験例1は、上述した有効スレッド数調整法を実行する場合の応答時間を示し、実験例2および実験例3は、それぞれ、有効スレッド数を4および1で固定した場合の応答時間を示す。
図6を参照すると、実験例2は、有効スレッド数が最大の場合であるが、負荷が低い場合に対応する低スループットの領域では、SMT機能を無効(SMT=1)の場合よりも、応答時間が劣化していることが理解される。一方、実験例3では、負荷が低い場合に対応する低スループットの領域では、最大スレッド数の場合(SMT=4)よりも応答時間が改善されているが、高スループットに対応しきれていないことが理解される。
これに対して、有効スレッド数調整法を実行する実験例1では、図6を参照すると明らかなように、全域のスループット領域で、最大スレッド数の場合(SMT=4)よりも応答時間が改善されたことが理解される。このとき、低スループットの領域では、SMTスレッド数が、最大値4から1に減らされており、応答時間は最大で12%向上した。そして、負荷が増加するにしたがって、段階的に多くのSMTスレッドが使用されるようになり、最終的に最大スレッド数の場合と同等となった。
よって、本有効スレッド数調整法により、最適な有効スレッド数を成功裏に選択し、応答時間を改善できることが示された。なお、Cognos(登録商標)BI以外のアプリケーションでも、同様の傾向が観測され、広くアプリケーションに適用できるといえる。また、本有効スレッド数調整法の計算によるオーバーヘッドは、計算の頻度が低いため、パフォーマンス上無視できる程度であった。また、単純な論理CPU数を窓口数とした待ち行列理論に基づき、有効スレッド数を調整する同様なアルゴリズムを構成しても、有効スレッド数は最大値を強く指向し、応答時間を改善する効果は見られなかった。
また、AIX(登録商標)7.1以降では、各コアの複数のスレッドのうち最初のスレッドの利用率が50%になるまでは、他のスレッドを使用しないモードも知られている。しかしながら、このような単純な静的閾値に基づく調整方法では、必ずしも応答時間が最小となるスレッド数を選択できるものではなかった。
以上説明したように、本発明の実施形態によれば、複数の演算コア各々上で複数の演算処理単位が内部ハードウェア資源を共有しながら並列に稼働可能なコンピュータ・システムにおいて、演算処理単位間の競合を考慮して、所定演算処理単位の並列状態での応答性能を評価する計算方法、計算装置およびプログラムを提供することができる。また、本発明の実施形態によれば、システムにかかる負荷に応じて、使用する演算処理単位の並列状態を決定し、特に低負荷時における応答性能を改善することができる、コンピュータ・システムを提供することができる。
実際に稼働しているサーバシステムでは、通常時のCPU利用率が必ずしも高くないことが知られている。このため、多くの実システムにおいて、応答性能の悪化が生じていると予測される。また、Webアプリケーションなどのアプリケーションは、クライアントからの要求に応答して処理を実行するという比較的短時間なタスクが多数あるという特徴がある。したがって、本実施形態による計算方法は、このような短時間タスクが多数発生する用途において、好適に適用することができるといえる。
なお、説明までの実施形態では、コンピュータ・システムを構成するすべての演算コアは、同一の有効スレッド数t(1≦t≦tmax)にあるものとして、最適な並列状態を決定していた。しかしながら、他の実施形態では、コンピュータ・システムを構成する複数の演算コアにおける各並列度(各有効スレッド数)の組み合わせ各々について評価し、最適な並列度の組み合わせを決定することができる。また、システム中のコア数は、稼働中変動がないものとしているが、変更されることを妨げない。また、演算コアの動作周波数は、稼働中変動がないものとしているが、動的周波数スケーリング機能を有効化することにより、動作周波数が変更されることを妨げない。
また、上述した実施形態では、コア内モデルにおいて、反復計算により平均単一スレッド性能を更新するものとした。しかしながら、他の実施形態では、収束計算なしで待ち時間の計算を行うモデルを構築し、それを用いて単一スレッド性能と待ち時間を求めてもよい。
さらに、上述した実施形態では、SMT機能を有するコンピュータ・システム自身が、現在の利用状況の下、各スレッド数でSMT機能を有効化した場合の応答性能を評価するとともに、最適な有効スレッド数に設定を更新するものとして説明した。しかしながら、他の実施形態では、評価対象のコンピュータ・システムから分離された別のコンピュータで、評価対象のコンピュータ・システムの複数の利用状況を仮定し、それぞれ、仮定された複数の利用状況各々に対して、最適な有効スレッド数を決定し、正規化されたCPU利用率またはその範囲に対応して、最適な有効スレッド数の設定をテーブル化して記録するようにしてもよい。この場合、このテーブルを実装したコンピュータ・システムは、当該コンピュータ・システムの現在の利用状況を正規化して評価する利用状況評価部112と、当該コンピュータ・システムの有効スレッド数の設定を更新する有効スレッド設定更新部とを備え、応答性能計算部114の代わりに、上記記録されたテーブルを参照して、正規化された利用率が該当する最適な有効スレッド数を読み出し、有効スレッド設定更新部がその有効スレッド数に設定するように構成すればよい。また、上記テーブルは、複数の演算コアを有する任意のコンピュータ・システムに一般化して、コア数およびCPU利用率またはその範囲に対応して、最適な有効スレッド数の設定を対応付ける情報であってもよい。
本発明の上記機能は、アセンブラ、C、C++、C#、Java(登録商標)などのレガシープログラミング言語またはオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布または伝送して頒布することができる。
これまで本発明を、特定の実施形態をもって説明してきたが、本発明は、実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
10…コンピュータ・システム、12…プロセッサ、14…コア、16…メモリ、18…ストレージ・システム、20…ネットワーク・アダプタ、22…IOインタフェース、26…ディスプレイ、24…周辺機器、100…ソフトウェア構成、102…OSカーネル、104…タスクスケジューラ、106…アプリケーション、108…デーモン、110…有効スレッド調整部、112…利用状況評価部、114…応答性能計算部、116…コア内モデル計算部、118…コア間モデル計算部、120…有効スレッド設定更新部、130…スレッド、132…実行ユニット、134…キャッシュ、136…キュー、142…タスク

Claims (18)

  1. 演算コア各々上で複数の演算処理単位が内部ハードウェア資源を共有しながら並列に稼働可能なコンピュータ・システムにおける応答性能を評価する計算方法であって、コンピュータが、
    前記コンピュータ・システムの利用状況を、演算処理単位の並列状態で正規化して評価するステップと、
    正規化された前記利用状況から、求めようとする演算処理単位の並列状態での応答性能の期待値を、並列稼働状況に応じた前記演算処理単位の平均的な単一性能の変化を考慮した待ち行列理論に基づいて計算するステップと
    を含む、計算方法。
  2. 前記平均的な単一性能の変化を考慮するとは、ある瞬間の演算コア内での演算処理単位の同時稼働数に応じた平均的な単一性能の変化を平均サービス率の変動として取り込んで待ち行列における待ち時間を計算することである、請求項1に記載の計算方法。
  3. 前記コンピュータ・システムは、複数の演算コアを含み、前記応答性能の期待値を計算するステップは、前記コンピュータが、
    演算コア毎の演算処理単位数を窓口数とした待ち行列での待ち時間を計算するステップと、
    前記複数の演算コアにわたる窓口数の待ち行列で、他の演算コアからタスクを受け入れ可能な少なくとも1つ演算コアが存在する移行可能な確率を計算するステップと、
    前記待ち時間および前記移行可能な確率に基づき、前記応答性能として平均応答時間の期待値を計算するステップと
    を含む、請求項1または2に記載の計算方法。
  4. 前記待ち時間を計算するステップは、前記コンピュータが、演算コア上で同時稼働可能な演算処理単位の2以上の並列度に関して、
    前記演算処理単位の平均的な単一性能の初期値を与えるステップと、
    前記演算処理単位の平均的な単一性能が平均サービス率であるとして、演算コア毎の演算処理単位数を窓口数とした待ち行列で、各演算コア内に存在するタスク数の確率の分布を計算するステップと、
    前記各演算コア内に存在するタスク数の確率の分布に基づき、前記演算処理単位の平均的な単一性能を更新するステップと、
    前記確率の分布を計算するステップおよび前記更新するステップの繰り返しの終了条件を判定するステップと
    を含む、請求項3に記載の計算方法。
  5. 前記移行可能な確率を計算するステップは、前記コンピュータが、
    前記演算処理単位の平均的な単一性能が平均サービス率であるとして、前記複数の演算コアにわたる演算処理単位の総数を窓口数とした待ち行列で、前記複数の演算コア内に存在するタスク数の確率の分布を計算するステップと、
    前記複数の演算コア内に存在するタスク数の確率の分布に基づき、前記複数の演算コアのうちの少なくとも1つの演算コアで閾値以下のタスク数である確率を前記移行可能な確率として計算するステップと
    を含む、請求項3または4に記載の計算方法。
  6. 前記応答性能の期待値を計算するステップは、演算コアの並列度または複数の演算コアでの並列度の組み合わせの各々について、応答性能の期待値を計算するステップであり、前記計算方法は、前記コンピュータが、
    算出された前記応答性能の期待値が最適化される並列度または並列度の組み合わせを、前記利用状況下で使用する演算処理単位の並列状態として決定するステップ
    をさらに含む、請求項1〜5のいずれか1項に記載の計算方法。
  7. 前記評価するステップは、各並列度での演算処理単位の単一性能と、各演算処理単位の利用率とに基づいて、前記コンピュータ・システムの正規化されたCPU利用率を計算するステップである、請求項1〜6のいずれか1項に記載の計算方法。
  8. 前記コンピュータが前記コンピュータ・システムに含まれ、
    前記評価するステップは、当該コンピュータ・システムで取得される現在のCPU利用情報に基づき、正規化された現在の利用状況を評価するステップであり、前記計算方法は、前記コンピュータが、
    計算された並列状態での応答性能の期待値の結果に基づき、使用する演算処理単位の並列状態の設定を更新するステップ
    をさらに含む、請求項1〜7のいずれか1項に記載の計算方法。
  9. 前記コンピュータが、評価対象のコンピュータ・システムから分離されたものであり、
    前記評価するステップは、前記コンピュータ・システムの複数の利用状況を仮定するステップであり、前記計算方法は、前記コンピュータが、
    仮定された前記複数の利用状況各々に対応付けて、決定された使用する演算処理単位の並列状態の設定を記録するステップ
    をさらに含む、請求項1〜7のいずれか1項に記載の計算方法。
  10. 前記コンピュータ・システムは、同時マルチスレッディング環境を提供するものであり、前記演算処理単位は、ハードウェア・スレッドである、請求項1〜9のいずれか1項に記載の計算方法。
  11. 演算コア各々上で複数の演算処理単位が内部ハードウェア資源を共有しながら並列に稼働可能なコンピュータ・システムにおける応答性能を評価する計算装置であって、
    前記コンピュータ・システムの利用状況を、演算処理単位の並列状態で正規化して評価する利用状況評価部と、
    正規化された前記利用状況から、求めようとする並列状態での応答性能の期待値を、並列稼働状況に応じた前記演算処理単位の平均的な単一性能の変化を考慮した待ち行列理論に基づいて計算する応答性能計算部と
    を含む、計算装置。
  12. 前記コンピュータ・システムは、複数の演算コアを含み、前記応答性能計算部は、
    演算コア毎の演算処理単位数を窓口数とした待ち行列での待ち時間を計算するコア内モデル計算部と、
    前記複数の演算コアにわたる窓口数の待ち行列で、他の演算コアからタスクを受け入れ可能な少なくとも1つ演算コアが存在する移行可能な確率を計算し、前記待ち時間および前記移行可能な確率に基づき前記応答性能として平均応答時間の期待値を計算するコア間モデル計算部と
    を含む、請求項11に記載の計算装置。
  13. 前記コア内モデル計算部は、演算コア上で同時稼働可能な演算処理単位の2以上の並列度に関して、
    前記演算処理単位の平均的な単一性能の初期値を与える初期値設定部と、
    前記演算処理単位の平均的な単一性能がサービス率であるとして、演算コア毎の演算処理単位数を窓口数とした待ち行列で、各演算コア内に存在するタスク数の確率の分布を計算するコア内タスク分布計算部と、
    前記各演算コア内に存在するタスク数の確率の分布に基づき、前記演算処理単位の平均的な単一性能を更新する単一性能更新部と、
    前記確率の分布の計算および前記更新を繰り返す終了条件を判定する終了条件判定部と
    を含む、請求項12に記載の計算装置。
  14. 前記コア間モデル計算部は、
    前記演算処理単位の平均的な単一性能が平均サービス率であるとして、前記複数の演算コアの演算処理単位総数を窓口数とした待ち行列で、前記複数の演算コア内に存在するタスク数の確率の分布を計算するシステム内タスク分布計算部と、
    前記複数の演算コア内に存在するタスク数の確率の分布に基づき、前記複数の演算コアのうちの少なくとも1つの演算コアで閾値以下のタスク数である確率を前記移行可能な確率として計算する移行可能確率計算部と
    を含む、請求項12または13に記載の計算装置。
  15. 前記計算装置は、前記コンピュータ・システムであり、
    前記利用状況評価部は、当該コンピュータ・システムで取得される現在の演算装置利用情報に基づき、正規化された現在の利用状況を評価することを特徴とし、前記計算装置は、
    計算された並列状態での応答性能の期待値の結果に基づき、使用する演算処理単位の並列状態の設定を更新する設定更新部
    をさらに含む、請求項11〜14のいずれか1項に記載の計算装置。
  16. 前記計算装置は、評価対象の前記コンピュータ・システムから分離されたものであり、
    前記利用状況評価部は、前記コンピュータ・システムの複数の利用状況を仮定するものであり、前記計算装置は、
    仮定された前記複数の利用状況各々に対応付けて、決定された使用する演算処理単位の並列状態の設定を記録する記録部
    をさらに含む、請求項11〜14のいずれか1項に記載の計算装置。
  17. 演算コア各々上で複数の演算処理単位が内部ハードウェア資源を共有しながら並列に稼働可能なコンピュータ・システムであって、
    前記コンピュータ・システムの現在の利用状況を、演算処理単位の並列状態で正規化して評価する利用状況評価部と、
    正規化された前記現在の利用状況から、前記利用状況に対し使用する演算処理単位の並列状態を対応付ける対応付け情報に基づき、使用する演算処理単位の並列状態の設定を更新する設定更新部と
    を含み、前記対応付け情報は、並列稼働状況に応じた前記演算処理単位の平均的な単一性能の変化を考慮した待ち行列理論に基づき計算される応答性能の期待値が最適化される並列状態を、前記利用状況各々に対応付ける情報である、コンピュータ・システム。
  18. 演算コア各々上で複数の演算処理単位が内部ハードウェア資源を共有しながら並列に稼働可能なコンピュータ・システムにおける応答性能を評価するコンピュータを実現するためのプログラムであって、コンピュータに、
    前記コンピュータ・システムの利用状況を、演算処理単位の並列状態で正規化して評価するステップ、および
    正規化された前記利用状況から、求めようとする演算処理単位の並列状態での応答性能の期待値を、並列稼働状況に応じた前記演算処理単位の平均的な単一性能の変化を考慮した待ち行列理論に基づいて計算するステップ
    を実行させるためのプログラム。
JP2013259975A 2013-12-17 2013-12-17 演算コア上で複数の演算処理単位が稼働可能なコンピュータ・システムにおける応答性能を評価する計算方法、計算装置、コンピュータ・システムおよびプログラム Expired - Fee Related JP5946068B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013259975A JP5946068B2 (ja) 2013-12-17 2013-12-17 演算コア上で複数の演算処理単位が稼働可能なコンピュータ・システムにおける応答性能を評価する計算方法、計算装置、コンピュータ・システムおよびプログラム
US14/570,203 US9600290B2 (en) 2013-12-17 2014-12-15 Calculation method and apparatus for evaluating response time of computer system in which plurality of units of execution can be run on each processor core

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013259975A JP5946068B2 (ja) 2013-12-17 2013-12-17 演算コア上で複数の演算処理単位が稼働可能なコンピュータ・システムにおける応答性能を評価する計算方法、計算装置、コンピュータ・システムおよびプログラム

Publications (2)

Publication Number Publication Date
JP2015118434A JP2015118434A (ja) 2015-06-25
JP5946068B2 true JP5946068B2 (ja) 2016-07-05

Family

ID=53368556

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013259975A Expired - Fee Related JP5946068B2 (ja) 2013-12-17 2013-12-17 演算コア上で複数の演算処理単位が稼働可能なコンピュータ・システムにおける応答性能を評価する計算方法、計算装置、コンピュータ・システムおよびプログラム

Country Status (2)

Country Link
US (1) US9600290B2 (ja)
JP (1) JP5946068B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9921870B2 (en) * 2014-09-25 2018-03-20 Oracle International Corporation System and method for supporting a scalable thread pool in a distributed data grid
US20170031724A1 (en) * 2015-07-31 2017-02-02 Futurewei Technologies, Inc. Apparatus, method, and computer program for utilizing secondary threads to assist primary threads in performing application tasks
US11218322B2 (en) * 2017-09-28 2022-01-04 Intel Corporation System and method for reconfiguring and deploying soft stock-keeping units
JP6897524B2 (ja) 2017-11-29 2021-06-30 トヨタ自動車株式会社 ソフトウェア品質判定装置、ソフトウェア品質判定方法、及びソフトウェア品質判定プログラム
JP6891780B2 (ja) * 2017-11-29 2021-06-18 トヨタ自動車株式会社 ソフトウェア品質判定装置、ソフトウェア品質判定方法、及びソフトウェア品質判定プログラム
US10572748B2 (en) * 2017-12-06 2020-02-25 GM Global Technology Operations LLC Autonomous vehicle adaptive parallel image processing system
US10509671B2 (en) * 2017-12-11 2019-12-17 Afiniti Europe Technologies Limited Techniques for behavioral pairing in a task assignment system
US10491668B1 (en) * 2018-07-03 2019-11-26 EMC IP Holding Company LLC Intelligent service distributor and controller with real time service calibration
CN109597680B (zh) * 2018-10-22 2023-07-07 创新先进技术有限公司 任务排队响应参数估算方法及装置
CN109918195B (zh) * 2019-01-18 2023-06-20 华南理工大学 基于热感知动态任务迁移的众核系统处理器资源调度方法
CN110119311B (zh) * 2019-04-12 2022-01-04 华中科技大学 一种基于fpga的分布式流计算系统加速方法
CN110362457B (zh) * 2019-05-08 2023-03-28 阜阳师范学院 一种基于休假排队的三值光学计算机性能评价方法及系统
US11892924B2 (en) * 2020-03-20 2024-02-06 UncommonX Inc. Generation of an issue detection evaluation regarding a system aspect of a system
CN112749070B (zh) * 2020-12-28 2024-01-23 中国人寿保险股份有限公司上海数据中心 一种jvm负载状态的评估方法、设备及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3663968B2 (ja) 1999-04-14 2005-06-22 日本電気株式会社 マルチタスクシステムの性能予測システム及び予測方法並びにその方法プログラムを記録した記録媒体
US7237242B2 (en) 2002-12-31 2007-06-26 International Business Machines Corporation Dynamic thread pool tuning techniques
US8230426B2 (en) * 2004-10-06 2012-07-24 Digipede Technologies, Llc Multicore distributed processing system using selection of available workunits based on the comparison of concurrency attributes with the parallel processing characteristics
US8788986B2 (en) * 2010-11-22 2014-07-22 Ca, Inc. System and method for capacity planning for systems with multithreaded multicore multiprocessor resources
US8010822B2 (en) * 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
US20100070730A1 (en) * 2008-09-17 2010-03-18 Sebastian Pop Minimizing memory access conflicts of process communication channels
US20100077403A1 (en) * 2008-09-23 2010-03-25 Chaowei Yang Middleware for Fine-Grained Near Real-Time Applications
US8131843B2 (en) * 2009-03-31 2012-03-06 International Business Machines Corporation Adaptive computing using probabilistic measurements
US8289975B2 (en) * 2009-06-22 2012-10-16 Citrix Systems, Inc. Systems and methods for handling a multi-connection protocol between a client and server traversing a multi-core system
US8285950B2 (en) * 2010-06-03 2012-10-09 International Business Machines Corporation SMT/ECO mode based on cache miss rate
JP2012128771A (ja) 2010-12-17 2012-07-05 Mitsubishi Electric Corp 情報処理装置及びプログラム
US8812825B2 (en) * 2011-01-10 2014-08-19 Dell Products L.P. Methods and systems for managing performance and power utilization of a processor employing a fully multithreaded load threshold
US8683468B2 (en) * 2011-05-16 2014-03-25 Advanced Micro Devices, Inc. Automatic kernel migration for heterogeneous cores
US9602426B2 (en) * 2013-06-21 2017-03-21 Microsoft Technology Licensing, Llc Dynamic allocation of resources while considering resource reservations

Also Published As

Publication number Publication date
JP2015118434A (ja) 2015-06-25
US20150169380A1 (en) 2015-06-18
US9600290B2 (en) 2017-03-21

Similar Documents

Publication Publication Date Title
JP5946068B2 (ja) 演算コア上で複数の演算処理単位が稼働可能なコンピュータ・システムにおける応答性能を評価する計算方法、計算装置、コンピュータ・システムおよびプログラム
US10089140B2 (en) Dynamically adaptive, resource aware system and method for scheduling
CN107003887B (zh) Cpu超载设置和云计算工作负荷调度机构
US20190303200A1 (en) Dynamic Storage-Aware Job Scheduling
US7711821B2 (en) Multiple resource control-advisor for management of distributed or web-based systems
Li et al. Work stealing for interactive services to meet target latency
US9910892B2 (en) Managing execution of database queries
US8424007B1 (en) Prioritizing tasks from virtual machines
Jeon et al. Adaptive parallelism for web search
Zhang et al. An effective data locality aware task scheduling method for MapReduce framework in heterogeneous environments
US9934071B2 (en) Job scheduler for distributed systems using pervasive state estimation with modeling of capabilities of compute nodes
US9870269B1 (en) Job allocation in a clustered environment
Jeon et al. TPC: Target-driven parallelism combining prediction and correction to reduce tail latency in interactive services
US20120297216A1 (en) Dynamically selecting active polling or timed waits
US10089155B2 (en) Power aware work stealing
JP2016042284A (ja) 並列計算機システム、管理装置、並列計算機システムの制御方法及び管理装置の制御プログラム
US20220195434A1 (en) Oversubscription scheduling
US20170116030A1 (en) Low latency scheduling on simultaneous multi-threading cores
Sfakianakis et al. Quman: Profile-based improvement of cluster utilization
Varga et al. Deadline scheduling algorithm for sustainable computing in Hadoop environment
JP5987987B2 (ja) リソース管理システム、リソース管理方法、およびプログラム
US10817401B1 (en) System and method for job-to-queue performance ranking and resource matching
Anselmi et al. Stability and optimization of speculative queueing networks
HoseinyFarahabady et al. Data-intensive workload consolidation in serverless (Lambda/FaaS) platforms
Ogden et al. Layercake: Efficient Inference Serving with Cloud and Mobile Resources

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160422

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: 20160502

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20160506

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160524

R150 Certificate of patent or registration of utility model

Ref document number: 5946068

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees