JP5181121B2 - タスク数制御装置、タスク数制御方法、及びコンピュータプログラム - Google Patents

タスク数制御装置、タスク数制御方法、及びコンピュータプログラム Download PDF

Info

Publication number
JP5181121B2
JP5181121B2 JP2008068404A JP2008068404A JP5181121B2 JP 5181121 B2 JP5181121 B2 JP 5181121B2 JP 2008068404 A JP2008068404 A JP 2008068404A JP 2008068404 A JP2008068404 A JP 2008068404A JP 5181121 B2 JP5181121 B2 JP 5181121B2
Authority
JP
Japan
Prior art keywords
tasks
throughput
task
added
predetermined number
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
JP2008068404A
Other languages
English (en)
Other versions
JP2009223689A (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 JP2008068404A priority Critical patent/JP5181121B2/ja
Priority to US12/405,186 priority patent/US8555290B2/en
Publication of JP2009223689A publication Critical patent/JP2009223689A/ja
Application granted granted Critical
Publication of JP5181121B2 publication Critical patent/JP5181121B2/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc

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

本発明は、同時並列処理することが可能なタスク数を動的に制御することができるタスク数制御装置、タスク数制御方法、及びコンピュータプログラムに関する。
近年のコンピュータ技術の急速な進展に伴い、プロセッサ単位で処理可能なデータ量は急速に増大している。しかし、あらゆる産業において情報処理技術が適用される昨今では、プロセッサの能力向上速度よりもデータ処理能力に対する需要の方が大きく上回る結果となっており、パイプライン処理等の並列処理により処理のスループットを改善する必要性が高い。
例えば、あらゆるデータ処理で用いられる機会が多いデータベースに対するレコードの挿入・削除の繰り返しにより生じるフラグメンテーションを解消するための再編成処理は、レコードの挿入・削除を繰り返す限り回避することはできない。そして、再編成処理には相当の時間を要することから、複数の再編成処理用のタスクを同時に並列処理する必要性は特に高い。
しかし、一般にデータベースが構築されているコンピュータ上では、様々なタスクが並列して処理されており、演算処理負荷はタスクの軽重、タスクの起動・終了タイミング等によって時々刻々変化している。したがって、再編成処理を同時に並列処理するタスク数が最適になるよう制御する必要がある。
例えば特許文献1では、一定時間間隔にてタスクの稼働状況をスループット、資源の使用量、及びCPUの使用率として取得し、これらを事前に設定した基準値と比較することにより最適なタスク数を算出するタスク数自動制御方法が開示されている。特許文献1では、基準値を超えないようにタスク数を自動制御するようになっている。
特開2002−259143号公報
しかし、一般にデータベースが構築されているコンピュータ上では、様々なタスクが並列処理されており、演算処理負荷は時々刻々変化している。したがって、再編成処理を同時並列処理するタスク数を定めるための基準値を、特許文献1のように事前に定めておくことは現実には不可能であり、せいぜいタスク起動時のスループット、資源の使用量、及びCPUの使用率に基づいて静的に定めた基準値に基づいてタスク数を制御するに留まる。これでは、タスク数を制御するための基準値そのものの信頼度が低く、実際に最適なタスク数となっているか否かは基準値を定める使用者の経験に頼らざるを得ないという問題点があった。
一方、スループット、資源の使用量、及びCPUの使用率を動的に取得するためには、オペレーティングシステムに対して一定時間間隔で問い合わせをする必要があり、却って演算処理負荷を増大させ、本来の目的である再編成処理を同時並列処理するためのタスク数を減少させてしまうおそれがあるという問題点もあった。
本発明は斯かる事情に鑑みてなされたものであり、演算処理負荷を増大させることなく、同時並列処理することが可能なタスク数を動的に制御することができるタスク数制御装置、タスク数制御方法、及びコンピュータプログラムを提供することを目的とする。
上記目的を達成するために第1発明に係るタスク数制御装置は、並列処理により複数のタスクを同時に実行する場合に、同時に実行することが可能なタスク数を制御するタスク数制御装置において、同時に実行するタスクを所定数ずつ追加するタスク追加手段と、該タスク追加手段でタスクを追加する都度、タスクごとに一作業単位でのスループットを計測するスループット計測手段と、該スループット計測手段で計測されたスループットの総和を算出する総和算出手段と、該総和算出手段で算出されたスループットの総和が、タスクが所定数追加される直前のスループットの総和より大きいか否かを判断する第1の判断手段とを備え、前記タスク追加手段は、前記第1の判断手段が、タスクが所定数追加される直前のスループットの総和より大きいと判断した場合、タスクの追加を継続し、タスクが所定数追加される直前のスループットの総和以下であると判断した場合、タスクの追加を停止するようにしてあることを特徴とする。
また、第2発明に係るタスク数制御装置は、第1発明において、前記第1の判断手段が、タスクが所定数追加される直前のスループットの総和以下であると判断した場合、算出されたスループットの総和が、タスクが所定数追加される直前よりさらに1回前にタスクが所定数追加されたときのスループットの総和より大きいか否かを判断する第2の判断手段と、該第2の判断手段が、タスクが所定数追加される直前よりさらに1回前にタスクが所定数追加されたときのスループットの総和より大きいと判断した場合、最後に追加した所定数のタスクを識別する情報を記憶し、最後に追加した所定数のタスクの実行を休止させる休止手段とをさらに備えることを特徴とする。
また、第3発明に係るタスク数制御装置は、第2発明において、前記第2の判断手段が、タスクが所定数追加される直前よりさらに1回前にタスクが所定数追加されたときのスループットの総和以下であると判断した場合、最後に追加した所定数のタスクを識別する情報及び再実行するために必要な情報を記憶し、最後に追加した所定数のタスクの実行を終了させる終了手段をさらに備えることを特徴とする。
また、第4発明に係るタスク数制御装置は、第1乃至第3発明のいずれか1つにおいて、前記所定数は1であることを特徴とする。
次に、上記目的を達成するために第5発明に係るコンピュータプログラムは、並列処理により複数のタスクを同時に実行する場合に、同時に実行することが可能なタスク数を制御するタスク数制御装置で実行することが可能なコンピュータプログラムにおいて、前記タスク数制御装置を、同時に実行するタスクを所定数ずつ追加するタスク追加手段、該タスク追加手段でタスクを追加する都度、タスクごとに一作業単位でのスループットを計測するスループット計測手段、該スループット計測手段で計測されたスループットの総和を算出する総和算出手段、及び該総和算出手段で算出されたスループットの総和が、タスクが所定数追加される直前のスループットの総和より大きいか否かを判断する第1の判断手段として機能させ、前記タスク追加手段を、前記第1の判断手段が、タスクが所定数追加される直前のスループットの総和より大きいと判断した場合、タスクの追加を継続し、タスクが所定数追加される直前のスループットの総和以下であると判断した場合、タスクの追加を停止する手段として機能させることを特徴とする。
次に、上記目的を達成するために第6発明に係るタスク数制御方法は、並列処理により複数のタスクを同時に実行する場合に、同時に実行することが可能なタスク数を制御するコンピュータで実行することが可能なタスク数制御方法において、同時に実行するタスクを所定数ずつ追加し、所定数タスクを追加する都度、タスクごとに一作業単位でのスループットを計測し、計測されたスループットの総和を算出し、算出されたスループットの総和が、タスクが所定数追加される直前のスループットの総和より大きいか否かを判断し、タスクが所定数追加される直前のスループットの総和より大きいと判断した場合、タスクの追加を継続し、タスクが所定数追加される直前のスループットの総和以下であると判断した場合、タスクの追加を停止することを特徴とする。
第1発明、第5発明、及び第6発明では、同時に実行するタスクを所定数ずつ追加し、所定数タスクを追加する都度、タスクごとに一作業単位でのスループットを計測する。計測されたスループットの総和を算出し、算出されたスループットの総和が、タスクが所定数追加される直前のスループットの総和より大きいか否かを判断する。タスクが所定数追加される直前のスループットの総和より大きいと判断した場合、タスクの追加を継続し、タスクが所定数追加される直前のスループットの総和以下であると判断した場合、タスクの追加を停止する。演算処理能力に余裕がある場合、一般にタスク数の増加に伴ってスループットは向上する。しかし、演算処理能力に余裕がなくなるにつれてスループットの向上率は低下し、余裕がほとんどなくなった時点でスループットは急激に低下する。斯かるスループットの特性を利用し、タスクを所定数追加する前と後とでスループットの計測値の総和を比較して、タスクを所定数追加した後の方がスループットが低下しているか否かを判断することにより、演算処理能力に余裕があるか否かを判断することができ、同時に並列処理することができるタスク数の上限を定めることが可能となる。
ここで、「一作業単位」とは、タスクに含まれる複数の作業単位のうちの一つを意味しており、タスク全体の処理が完了した時点でのスループットではなく、作業単位の一つの処理のスループットを計測する趣旨である。また、「スループット」とは、単位時間当たりのデータ処理数により処理効率を示す指標である。「タスクが所定数追加される直前のスループットの総和」とは、例えば直近に計測されたスループットの総和がタスクn個に対するスループットである場合、タスク(n−m)個(ただし、mは所定数)に対するスループットの総和を意味する。すなわち、所定数ずつタスクを追加し、その都度計測されたスループットの総和のうち、1回前に算出されたスループットの総和を示す。
第2発明では、タスクが所定数追加される直前のスループットの総和以下であると判断した場合、算出されたスループットの総和が、タスクが所定数追加される直前よりさらに1回前にタスクが所定数追加されたときのスループットの総和より大きいか否かを判断する。タスクが所定数追加される直前よりさらに1回前にタスクが所定数追加されたときのスループットの総和より大きいと判断した場合、最後に追加した所定数のタスクを識別する情報を記憶し、最後に追加した所定数のタスクの実行を休止させる。タスクが所定数追加される直前よりさらに1回前にタスクが所定数追加されたときのスループットの総和まではスループットの総和が低下していない場合には、新たなタスクを追加することはできない程度にまで演算処理能力の限界に近づいている途上であると判断することができる。したがって、直近に追加したタスクを、他のタスクが終了した時点で即座に再実行することができるよう休止させることにより、全体のスループットをこれ以上低下させることなく、再実行するまでの時間も短縮することが可能となる。
ここで、「タスクが所定数追加される直前よりさらに1回前にタスクが所定数追加されたときのスループット」とは、例えば計測されたスループットがタスクn個に対するスループットである場合、タスク(n−m×2)個(ただし、mは所定数)に対するスループットを意味する。すなわち、所定数ずつタスクを追加し、その都度計測されたスループットの総和について、2回前に算出されたスループットの総和を示す。また、「タスクの実行を休止」とは、実行中のタスクを停止させるが、メモリ等の計算機資源を解放しない状態を意味する。
第3発明では、タスクが所定数追加される直前よりさらに1回前にタスクが所定数追加されたときのスループットの総和以下であると判断した場合、最後に追加した所定数のタスクを識別する情報及び再実行するために必要な情報を記憶し、最後に追加した所定数のタスクの実行を終了させる。タスクが所定数追加される直前よりさらに1回前にタスクが所定数追加されたときのスループットの総和よりもスループットの総和が低下している場合には、演算処理能力の限界を超えているものと判断することができる。したがって、直近に追加したタスクを早急に終了させるとともに、該タスクにより拘束されている計算機資源を解放させることにより、全体のスループットをこれ以上低下させることを防止することが可能となる。なお、「タスクの実行を終了」とは、実行中のタスクを強制終了させ、メモリ等の計算機資源をすべて解放する状態を意味する。
第4発明では、所定数が1であることにより、タスクを1ずつ追加していくので、スループットの向上の限界タスク数を正確に特定することが可能となる。
なお、後述する実施の形態では、タスク追加手段101は、CPU11のステップS707の処理が、スループット計測手段102は、CPU11のステップS502の処理が、総和算出手段103は、CPU11のステップS703の処理が、第1の判断手段104は、CPU11のステップS705の処理が、それぞれ該当する。また、第2の判断手段105は、CPU11のステップS709の処理が、休止手段106は、CPU11のステップS711の処理が、終了手段107は、CPU11のステップS713の処理が、それぞれ該当する。
本発明によれば、演算処理能力に余裕がなくなるにつれてスループットの向上率は低下し、余裕がほとんどなくなった時点でスループットは急激に低下するという特性を利用し、タスクを所定数追加する前と後とでスループットの計測値の総和を比較して、タスクを所定数追加した後の方がスループットが低下しているか否かを判断することにより、演算処理能力に余裕があるか否かを判断することができ、同時に並列処理することができるタスク数の上限を定めることが可能となる。
以下、本発明の実施の形態に係るタスク数制御装置について図面に基づいて具体的に説明する。図1は、本発明の実施の形態に係るタスク数制御装置10の機能を模式的に示す機能ブロック図である。図1において、タスク追加手段101は、同時に並列処理させるタスク数を所定数ずつ追加する。そして、スループット計測手段102は、タスク追加手段101がタスクを追加する都度、タスクごとに一作業単位でのスループットを計測する。
総和算出手段103は、スループット計測手段102で計測された各スループット、すなわち所定数ずつ追加された場合の各タスクのスループットの総和を算出する。第1の判断手段104は、総和算出手段103で算出されたスループットの総和が、タスクが所定数追加される直前のスループットの総和以下であるか否かを判断する。ここで、「タスクが所定数追加される直前のスループットの総和」とは、例えば直近に計測されたスループットの総和がタスクn個に対するスループットである場合、タスク(n−m)個(ただし、mは所定数)に対するスループットの総和を意味する。すなわち、所定数ずつタスクを追加し、その都度計測されたスループットの総和のうち、1回前に算出されたスループットの総和を示す。
第1の判断手段104が、タスクが所定数追加される直前のスループットの総和より大きいと判断した場合、タスク追加手段101による所定数のタスク追加処理を継続する。タスクが所定数追加される直前のスループットの総和以下であると判断した場合、タスクの追加を停止する。
タスクの追加を停止する場合、第2の判断手段105が、算出されたスループットの総和が、タスクが所定数追加される直前よりさらに1回前にタスクが所定数追加されたときのスループットの総和より大きいか否かを判断する。ここで、「タスクが所定数追加される直前よりさらに1回前にタスクが所定数追加されたときのスループット」とは、例えば計測されたスループットがタスクn個に対するスループットである場合、タスク(n−m×2)個(ただし、mは所定数)に対するスループットを意味する。すなわち、所定数ずつタスクを追加し、その都度計測されたスループットの総和について、2回前に算出されたスループットの総和を示す。
第2の判断手段105が、タスクが所定数追加される直前より前のスループットの総和以上であると判断した場合、休止手段106が、最後に追加した所定数のタスクを識別する情報を記憶し、最後に追加した所定数のタスクの実行を休止させる。第2の判断手段105が、タスクが所定数追加される直前よりさらに1回前にタスクが所定数追加されたときのスループットの総和以下であると判断した場合、終了手段107が、最後に追加した所定数のタスクを識別する情報及び再実行するために必要な情報を記憶し、最後に追加した所定数のタスクの実行を終了させる。
図2は、本発明の実施の形態に係るタスク数制御装置10を、CPU11を用いて具現化した場合のハードウェア構成を示すブロック図である。図2において、本実施の形態に係るタスク数制御装置10は、少なくとも、CPU(中央演算装置)11、記憶装置12、RAM13、入力装置14、出力装置15、可搬型ディスクドライブ16、通信装置17及び上述したハードウェアを接続する内部バス18で構成されている。
CPU11は、内部バス18を介してタスク数制御装置10の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置12に記憶されているコンピュータプログラム80に従って、種々のソフトウェア的機能を実行する。RAM13は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム80の実行時にロードモジュールが展開され、コンピュータプログラム80の実行時に発生する一時的なデータ等を記憶する。
記憶装置12は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置12に記憶されているコンピュータプログラム80は、プログラム及びデータ等の情報を記録したDVD、CD−ROM等の可搬型記録媒体90から、可搬型ディスクドライブ16によりダウンロードされ、実行時には記憶装置12からRAM13へ展開して実行される。もちろん、通信装置17を介して外部コンピュータからダウンロードされたコンピュータプログラムであっても良い。
また記憶装置12は、タスクが追加されるごとに、タスク数に対応したスループットを記憶するスループット情報記憶部121を備えている。CPU11は、タスクごとに一作業単位終了時のスループットを計測し、スループット情報記憶部121へ記憶する。CPU11は、タスク数ごとにスループットの総和である集計値もスループット情報記憶部121へ記憶する。さらにタスクの実行を休止させた場合には休止されたタスクを識別する識別情報を、タスクの実行を終了させた場合には、再実行させるために必要となる情報も含めて、スループット情報記憶部121へ記憶する。
通信装置17は内部バス18に接続されており、インターネット、LAN、WAN等の外部のネットワーク網に接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。すなわち、上述した記憶装置12は、タスク数制御装置10に内蔵される構成に限定されるものではなく、通信装置17を介して接続されている外部のサーバコンピュータ等に設置されているハードディスク等の外部記憶媒体であっても良い。
入力装置14は、キーボード及びマウス等のデータ入力媒体であり、出力装置15は、CRTモニタ、LCD等の表示装置、あるいはレーザプリンタ、ドットプリンタ等の印刷装置等である。
以下、本実施の形態では、階層型データベースの再編成処理を例に挙げて説明する。図3は、本実施の形態に係る階層型データベースの構成の例示図である。図3に示すように、階層型データベース31を一又は複数のp個(pは自然数)のエリアへ分割し、識別情報としてエリア番号A1、A2、・・・Apを付与する。各エリアには一又は複数のq個の(qは自然数)の作業単位(Unit Of Work)UOW1、UOW2、・・・、UOWqが含まれる。各作業単位には階層型である一又は複数のデータベースレコードが含まれており、データベースレコードごとに複数のセグメントにて階層構造が形成されている。
本実施の形態では、再編成処理タスクはエリア単位で起動される。つまり、複数のエリアに対する再編成処理タスクを複数同時に並列処理することにより、全体のスループットを向上させている。ただし、再編成処理は、作業単位ごとに実行されるので、一作業単位の再編成処理タスクが終了した時点で、一作業単位ごとのスループットを計測することができる。
スループットは、再編成したセグメント処理数を処理時間で除算することにより求めることができる。すなわち、一作業単位ごとに、作業単位内の複数のデータベースレコードに含まれるセグメント数の総和を処理時間で除算する。
図4は、本発明の実施の形態に係るタスク数制御装置10のスループット情報記憶部121に記憶されるデータ構成の例示図である。図4に示すようにタスク数制御装置10のCPU11は、RAM13に展開されているタスクを実行する。タスクは識別情報としてタスク番号T1、T2、・・・Tnが付与されている。
スループット情報記憶部121の「スループット計測値」の項目には、タスク番号に対応付けてスループットの実測値が記憶される。スループット情報記憶部121の「スループット集計値」の項目には、タスク数ごとに、各タスクのスループットの実測値の総和が記憶される。スループット情報記憶部121の「タスク再開情報」の項目には、強制終了されたタスクを再実行するための情報として、再編成処理を実行していたエリア番号及びどこまで再編成処理が終了しているかを示す処理済UOW数を記憶する。スループット情報記憶部121の「タスク休止情報」の項目には、休止されているタスクのタスク番号が記憶される。
以下、本発明の実施の形態に係るタスク数制御装置10の処理手順をフローチャート及びスループット情報記憶部121に記憶されているデータの変遷を示す図に基づいて、詳細に説明する。図5は、本発明の実施の形態に係るタスク数制御装置10のCPU11のタスクごとの処理手順、すなわち再編成処理に伴う処理の手順を示すフローチャートである。
図5において、タスク数制御装置10のCPU11は、再編成処理を実行する一の作業単位、例えばUOW1を選択する(ステップS501)。CPU11は、スループットの計測を開始し(ステップS502)、選択された作業単位に対する再編成処理を実行する(ステップS503)
CPU11は、作業単位の再編成処理が完了した時点でスループットの計測を終了し(ステップS504)、計測したスループットの実測値を記憶装置12のスループット情報記憶部121へ記憶する(ステップS505)。図6は、タスクT1の再編成処理が完了した時点でのスループット情報記憶部121の状態を示す模式図である。図6に示すように、スループット情報記憶部121の「スループット計測値」の項目には、タスク番号T1に対するスループットの実測値TPt1が記憶されている。そして、「スループット集計値」の項目には、タスク数が0に対するスループット集計値として‘0’が、タスク数が1に対するスループット集計値として、タスク数が1である場合のスループットの総和TPn1が記憶される。この場合、TPn1とTPt1とは同じ値となる。
図5に戻って、タスク数制御装置10のCPU11は、データベース内の全ての作業単位について再編成処理が完了したか否かを判断し(ステップS506)、CPU11が、完了したと判断した場合(ステップS506:YES)、CPU11は、処理を終了する。CPU11が、まだ完了していないと判断した場合(ステップS506:NO)、CPU11は、次の作業単位、例えばUOW2を選択して(ステップS507)、処理をステップS503へ戻して上述した処理を繰り返す。
図7は、本発明の実施の形態に係るタスク数制御装置10のCPU11のタスク数制御処理の手順を示すフローチャートである。図7では、タスク数を1個ずつ追加する場合の処理手順について説明するが、特にこれに限定されるものではなく、処理によっては所定数のタスクずつ追加しても良いことは言うまでもない。
図7において、タスク数制御装置10のCPU11は、タスク数nを初期値‘1’に設定し(ステップS701)、起動されて実行中である全てのタスクについて、作業単位でのスループット実測値が記憶装置12のスループット情報記憶部121に記憶されたか否かを判断する(ステップS702)。CPU11が、記憶されていないと判断した場合(ステップS702:NO)、CPU11は、記憶されるまで待ち状態となる。CPU11が、記憶されたと判断した場合(ステップS702:YES)、CPU11は、記憶されている各タスクのスループット実測値の総和を算出し(ステップS703)、算出された総和を、タスク数nの場合のスループット集計値として記憶装置12のスループット情報記憶部121へ記憶する(ステップS704)。
CPU11は、記憶装置12のスループット情報記憶部121に記憶されているスループット集計値を参照し、直近に記憶されたスループット集計値が、タスク数(n−1)のスループット集計値より大きいか否かを判断する(ステップS705)。すなわち、演算処理能力に余裕がある場合は、タスク数の増加に伴ってスループットは向上するが、演算処理能力に余裕がなくなるにつれてスループットの向上率は低下し、余裕がほとんどなくなった時点でスループットは急激に低下するというスループットの特性を利用し、演算処理能力に余裕があるか否かを判断している。
CPU11が、直近に記憶されたスループット集計値が、タスク数(n−1)のスループット集計値より大きいと判断した場合(ステップS705:YES)、CPU11は、演算処理能力に余裕があると判断し、未処理のエリアが存在するか否かを判断する(ステップS706)。CPU11が、存在しないと判断した場合(ステップS706:NO)、これ以上同時並列処理するタスク数は増加しないので、CPU11は処理を終了する。
CPU11が存在すると判断した場合(ステップS706:YES)、CPU11は、所定のエリアに対する再編成処理を実行するタスクを1追加し(ステップS707)、記憶装置12のスループット情報記憶部121の「スループット計測値」及び「スループット集計値」の項目をクリアする(ステップS708)。CPU11は、処理をステップS702へ戻し、上述した処理を繰り返す。
CPU11が、直近に記憶されたスループット集計値が、タスク数(n−1)のスループット集計値以下であると判断した場合(ステップS705:NO)、CPU11は、直近に記憶されたスループット集計値が、タスク数(n−2)のスループット集計値より大きいか否かを判断する(ステップS709)。例えば、直近に記憶されたスループットの総和が、タスク数が3である場合のスループットの総和を基準とする場合、タスク数が1個である場合のスループットの総和と比較する。
図8は、タスクが1個追加され、2個の再編成処理が完了した時点でのスループット情報記憶部121の状態を示す模式図である。図8に示すように、スループット情報記憶部121の「スループット計測値」の項目には、タスク番号T1に対するスループットの実測値TPt1’及びタスク番号T2に対するスループットの実測値TPt2が記憶されている。タスク番号T1に対するスループットの実測値TPt1’は、タスク数が1である場合のタスク番号T1に対するスループットの実測値TPt1と値が相違していることは言うまでもない。
そして、「スループット集計値」の項目には、タスク数が2に対するスループットの総和TPn2が記憶される。この場合、TPn2は、TPt1’とTPt2との和となる。
同様に、図9は、さらにタスクが1個追加され、3個の再編成処理が完了した時点でのスループット情報記憶部121の状態を示す模式図である。図9に示すように、スループット情報記憶部121の「スループット計測値」の項目には、タスク番号T1に対するスループットの実測値TPt1”、タスク番号T2に対するスループットの実測値TPt2’及びタスク番号T3に対するスループットの実測値TPt3が記憶されている。タスク番号T1に対するスループットの実測値TPt1”は、タスク数が1である場合のタスク番号T1に対するスループットの実測値TPt1、タスク数が2である場合のタスク番号T1に対するスループットの実測値TPt1’と値が相違しており、タスク番号T2に対するスループットの実測値TPt2’は、タスク数が2である場合のタスク番号T2に対するスループットの実測値TPt2と値が相違していることは言うまでもない。
そして、「スループット集計値」の項目には、タスク数が3に対するスループットの総和TPn3が記憶される。この場合、TPn3は、TPt1”とTPt2’とTPt3との和となる。
したがって、図7のステップS705では、スループット集計値TPn3とTPn2とを比較し、ステップS709では、スループット集計値TPn3とTPn1とを比較する。演算処理能力に余裕がある場合には、TPn3>TPn2>TPn1であるはずだからである。
図7に戻って、タスク数制御装置10のCPU11は、直近に記憶されたスループット集計値が、タスク数(n−2)のスループット集計値より大きいと判断した場合(ステップS709:YES)、CPU11は、直近に起動したタスクの休止に関する情報を記憶装置12のスループット情報記憶部121に記憶し(ステップS710)、直近に起動したタスクを休止させる(ステップS711)。
図10は、直近に記憶されたスループット集計値が、タスク数(n−2)のスループット集計値より大きい場合のスループットの変遷の例示図である。スループット集計値TPn3はTPn2よりも向上はしていないものの、TPn1よりは大きい。したがって、演算処理能力が限界ではないものの、これ以上タスク数を追加することはできないと判断することができる。
図11は、直近に起動したタスクT3を休止する場合のスループット情報記憶部121の状態を示す模式図である。図11に示すように、スループット情報記憶部121の「休止情報」の項目には、休止させるタスクを識別するタスク番号T3を記憶する。タスク番号を記憶しておくことにより、一のタスクが終了した時点で即座に再実行することができる。
図7に戻って、タスク数制御装置10のCPU11は、直近に記憶されたスループット集計値が、タスク数(n−2)のスループット集計値以下であると判断した場合(ステップS709:NO)、CPU11は、直近に起動したタスクの再開に関する再開情報を記憶装置12のスループット情報記憶部121に記憶し(ステップS712)、直近に起動したタスクを終了させる(ステップS713)。これにより、同時に並列処理されているタスク数は(n−1)個となる。
CPU11は、記憶装置12のスループット情報記憶部121の「スループット計測値」及び「スループット集計値」の項目をクリアし(ステップS714)、処理をステップS702へ戻し、上述した処理を繰り返す。なお、図5のステップS506以降の処理と、上述したタスク数制御処理とは、実際には並列処理される。したがって、再編成処理の進行に伴って変動するスループットに基づいて、略リアルタイム的に最適なタスク数となるよう制御することが可能となる。
図12は、直近に記憶されたスループット集計値が、タスク数(n−2)のスループット集計値以下である場合のスループットの変遷の例示図である。スループット集計値TPn3はTPn1よりも低下していることから、演算処理能力が限界となっており、いずれかのタスクを強制終了しない限り、タスク数を追加することはできないと判断することができる。
図13は、直近に起動したタスクT3を強制終了する場合のスループット情報記憶部121の状態を示す模式図である。図13に示すように、スループット情報記憶部121には、タスク再開情報として、終了したタスクが再編成処理を実行していたエリア番号及びどこまで再編成処理が終了しているかを示す処理済UOW数を記憶する。
一のエリアの再編成処理が完了した場合、CPU11は、記憶装置12のスループット情報記憶部121を参照して、休止状態となっているタスクの存在、強制終了させたタスクの存在等を確認し、後処理を実行する。図14は、本発明の実施の形態に係るタスク数制御装置10のCPU11の後処理の手順を示すフローチャートである。
図14において、本発明の実施の形態に係るタスク数制御装置10のCPU11は、スループット情報記憶部121の「休止情報」の項目を参照し、休止状態のタスクが存在するか否かを判断する(ステップS1401)。具体的には、「休止情報」の項目にタスク番号が記憶されているか否かで判断する。CPU11が、休止状態のタスクが存在すると判断した場合(ステップS1401:YES)、CPU11は、再編成処理を完了したタスクが有るか否かを判断する(ステップS1402)。
CPU11が、再編成処理を完了したタスクが無いと判断した場合(ステップS1402:NO)、CPU11は、完了待ち状態となる。CPU11が、再編成処理を完了したタスクが有ると判断した場合(ステップS1402:YES)、CPU11は、演算処理能力に余裕が生じたと判断し、「休止情報」の項目に記憶されているタスク番号のタスクを再開する(ステップS1403)。
CPU11が、休止状態のタスクが存在しないと判断した場合(ステップS1401:NO)、CPU11は、再編成処理を強制終了したエリアが存在するか否かを判断する(ステップS1404)。具体的には、「タスク再開情報」の項目に必要な情報が記憶されているか否かで判断する。CPU11が、再編成処理を強制終了したエリアが存在すると判断した場合(ステップS1404:YES)、CPU11は、再編成処理を完了したタスクが有るか否かを判断する(ステップS1405)。
CPU11が、再編成処理を完了したタスクが無いと判断した場合(ステップS1405:NO)、CPU11は、完了待ち状態となる。CPU11が、再編成処理を完了したタスクが有ると判断した場合(ステップS1405:YES)、CPU11は、演算処理能力に余裕が生じたと判断し、「タスク再開情報」を読み出し(ステップS1406)、タスクを再開する(ステップS1407)。
CPU11が、再編成処理を強制終了したエリアが存在しないと判断した場合(ステップS1404:NO)、CPU11は、再編成が未処理であるエリアが存在するか否かを判断する(ステップS1408)。CPU11が、再編成が未処理であるエリアが存在すると判断した場合(ステップS1408:YES)、CPU11は、未処理であるエリアについて再編成処理を開始する(ステップS1409)。CPU11が、再編成が未処理であるエリアが存在しないと判断した場合(ステップS1408:NO)、CPU11は、再編成処理を完了したタスクを終了する(ステップS1410)。
以上のように本実施の形態によれば、演算処理能力に余裕がなくなるにつれてスループットの向上率は低下し、余裕がほとんどなくなった時点でスループットは急激に低下するという特性を利用し、タスクを所定数追加する前と後とでスループットの計測値の総和を比較して、タスクを所定数追加した後の方がスループットが低下しているか否かを判断することにより、演算処理能力に余裕があるか否かを判断することができ、同時に並列処理するタスクを追加するか否かを制御することができ、演算処理能力を低下させることのないタスク数の上限を定めることが可能となる。
なお、本実施の形態では、タスクを所定数ずつ追加し、タスクを所定数追加する前と後とでスループットの計測値の総和を比較しているが、所定数ずつ追加するのではなく、追加するタスク数を変更しても良い。例えば、タスク数が一定数になるまで、スループットは右肩上がりに向上するが、次第に向上率は低下する。向上率が所定値以下になった時点で、追加するタスク数を減少させ、演算処理能力の限界近傍では追加するタスク数を1にすることにより、同時に並列処理することができるタスク数の上限を短時間で求めることが可能となる。
また、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内の記載であれば多種の変形、置換等が可能であることは言うまでもない。例えば、データベースの再編成処理に限定されるものではなく、並列処理を実行することにより、全体のスループット向上を図るアプリケーションであれば、同様の効果が期待できる。
本発明の実施の形態に係るタスク数制御装置の機能を模式的に示す機能ブロック図である。 本発明の実施の形態に係るタスク数制御装置を、CPUを用いて具現化した場合のハードウェア構成を示すブロック図である。 本実施の形態に係る階層型データベースの構成の例示図である。 本発明の実施の形態に係るタスク数制御装置のスループット情報記憶部に記憶されるデータ構成の例示図である。 本発明の実施の形態に係るタスク数制御装置のCPUのタスクごとの処理手順を示すフローチャートである。 タスクの再編成処理が完了した時点でのスループット情報記憶部の状態を示す模式図である。 本発明の実施の形態に係るタスク数制御装置のCPUのタスク数制御処理の手順を示すフローチャートである。 タスクが1個追加され、2個の再編成処理が完了した時点でのスループット情報記憶部の状態を示す模式図である。 さらにタスクが1個追加され、3個の再編成処理が完了した時点でのスループット情報記憶部の状態を示す模式図である。 直近に記憶されたスループット集計値が、タスク数(n−2)のスループット集計値より大きい場合のスループットの変遷の例示図である。 直近に起動したタスクを休止する場合のスループット情報記憶部の状態を示す模式図である。 直近に記憶されたスループット集計値が、タスク数(n−2)のスループット集計値以下である場合のスループットの変遷の例示図である。 直近に起動したタスクを強制終了する場合のスループット情報記憶部の状態を示す模式図である。 本発明の実施の形態に係るタスク数制御装置のCPUの後処理の手順を示すフローチャートである。
符号の説明
10 タスク数制御装置
11 CPU
12 記憶手段
13 RAM
14 入力装置
15 出力装置
16 可搬型ディスクドライブ
17 通信装置
18 内部バス
80 コンピュータプログラム
90 可搬型記録媒体
121 スループット情報記憶部

Claims (6)

  1. 並列処理により複数のタスクを同時に実行する場合に、同時に実行することが可能なタスク数を制御するタスク数制御装置において、
    同時に実行するタスクを所定数ずつ追加するタスク追加手段と、
    該タスク追加手段でタスクを追加する都度、タスクごとに一作業単位でのスループットを計測するスループット計測手段と、
    該スループット計測手段で計測されたスループットの総和を算出する総和算出手段と、
    該総和算出手段で算出されたスループットの総和が、タスクが所定数追加される直前のスループットの総和より大きいか否かを判断する第1の判断手段と
    を備え、
    前記タスク追加手段は、
    前記第1の判断手段が、タスクが所定数追加される直前のスループットの総和より大きいと判断した場合、タスクの追加を継続し、タスクが所定数追加される直前のスループットの総和以下であると判断した場合、タスクの追加を停止するようにしてあることを特徴とするタスク数制御装置。
  2. 前記第1の判断手段が、タスクが所定数追加される直前のスループットの総和以下であると判断した場合、算出されたスループットの総和が、タスクが所定数追加される直前よりさらに1回前にタスクが所定数追加されたときのスループットの総和より大きいか否かを判断する第2の判断手段と、
    該第2の判断手段が、タスクが所定数追加される直前よりさらに1回前にタスクが所定数追加されたときのスループットの総和より大きいと判断した場合、最後に追加した所定数のタスクを識別する情報を記憶し、最後に追加した所定数のタスクの実行を休止させる休止手段と
    をさらに備えることを特徴とする請求項1記載のタスク数制御装置。
  3. 前記第2の判断手段が、タスクが所定数追加される直前よりさらに1回前にタスクが所定数追加されたときのスループットの総和以下であると判断した場合、最後に追加した所定数のタスクを識別する情報及び再実行するために必要な情報を記憶し、最後に追加した所定数のタスクの実行を終了させる終了手段
    をさらに備えることを特徴とする請求項2記載のタスク数制御装置。
  4. 前記所定数は1であることを特徴とする請求項1乃至3のいずれか一項に記載のタスク数制御装置。
  5. 並列処理により複数のタスクを同時に実行する場合に、同時に実行することが可能なタスク数を制御するタスク数制御装置で実行することが可能なコンピュータプログラムにおいて、
    前記タスク数制御装置を、
    同時に実行するタスクを所定数ずつ追加するタスク追加手段、
    該タスク追加手段でタスクを追加する都度、タスクごとに一作業単位でのスループットを計測するスループット計測手段、
    該スループット計測手段で計測されたスループットの総和を算出する総和算出手段、及び
    該総和算出手段で算出されたスループットの総和が、タスクが所定数追加される直前のスループットの総和より大きいか否かを判断する第1の判断手段
    として機能させ、
    前記タスク追加手段を、前記第1の判断手段が、タスクが所定数追加される直前のスループットの総和より大きいと判断した場合、タスクの追加を継続し、タスクが所定数追加される直前のスループットの総和以下であると判断した場合、タスクの追加を停止する手段
    として機能させることを特徴とするコンピュータプログラム。
  6. 並列処理により複数のタスクを同時に実行する場合に、同時に実行することが可能なタスク数を制御するコンピュータで実行することが可能なタスク数制御方法において、
    同時に実行するタスクを所定数ずつ追加し、
    所定数タスクを追加する都度、タスクごとに一作業単位でのスループットを計測し、
    計測されたスループットの総和を算出し、
    算出されたスループットの総和が、タスクが所定数追加される直前のスループットの総和より大きいか否かを判断し、
    タスクが所定数追加される直前のスループットの総和より大きいと判断した場合、タスクの追加を継続し、タスクが所定数追加される直前のスループットの総和以下であると判断した場合、タスクの追加を停止することを特徴とするタスク数制御方法。
JP2008068404A 2008-03-17 2008-03-17 タスク数制御装置、タスク数制御方法、及びコンピュータプログラム Expired - Fee Related JP5181121B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008068404A JP5181121B2 (ja) 2008-03-17 2008-03-17 タスク数制御装置、タスク数制御方法、及びコンピュータプログラム
US12/405,186 US8555290B2 (en) 2008-03-17 2009-03-16 Apparatus and method for dynamic control of the number of simultaneously executing tasks based on throughput

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008068404A JP5181121B2 (ja) 2008-03-17 2008-03-17 タスク数制御装置、タスク数制御方法、及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2009223689A JP2009223689A (ja) 2009-10-01
JP5181121B2 true JP5181121B2 (ja) 2013-04-10

Family

ID=41064425

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008068404A Expired - Fee Related JP5181121B2 (ja) 2008-03-17 2008-03-17 タスク数制御装置、タスク数制御方法、及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US8555290B2 (ja)
JP (1) JP5181121B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090254406A1 (en) * 2008-04-08 2009-10-08 Johannes Von Sichart Workspace visualization
US8890880B2 (en) 2009-12-16 2014-11-18 Intel Corporation Graphics pipeline scheduling architecture utilizing performance counters
JP5664230B2 (ja) * 2010-12-28 2015-02-04 コニカミノルタ株式会社 画像読み込みシステムおよび読み込み画像処理システム
US9652294B2 (en) * 2013-11-25 2017-05-16 International Business Machines Corporation Cross-platform workload processing
JP2017162433A (ja) * 2016-03-02 2017-09-14 株式会社三菱東京Ufj銀行 情報処理装置
JP6377197B1 (ja) * 2017-03-03 2018-08-22 三菱電機インフォメーションシステムズ株式会社 スレッド数変動通信装置及びスレッド数変動通信プログラム
GB2563587B (en) * 2017-06-16 2021-01-06 Imagination Tech Ltd Scheduling tasks
CN110514982B (zh) * 2019-08-22 2022-03-22 上海兆芯集成电路有限公司 性能分析系统与方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001256207A (ja) * 2000-03-08 2001-09-21 Mitsubishi Electric Corp コンピュータ装置及び記録媒体
JP2002259143A (ja) * 2001-03-05 2002-09-13 Nec Soft Ltd タスク数自動制御装置、タスク数自動制御方法、オンライントランザクション処理システム、プログラム
US20020133461A1 (en) * 2001-03-19 2002-09-19 Diebold, Incorporated Automated banking machine processing system and method
JP4355228B2 (ja) * 2004-02-05 2009-10-28 独立行政法人科学技術振興機構 サービス制御プログラム及びサーバ装置
EP1862904A4 (en) * 2005-03-22 2009-06-03 Fujitsu Ltd DISTRIBUTED PROCESS MANAGEMENT DEVICE, DISTRIBUTED PROCESS MANAGEMENT METHOD, AND DISTRIBUTED PROCESS MANAGEMENT PROGRAM

Also Published As

Publication number Publication date
US8555290B2 (en) 2013-10-08
JP2009223689A (ja) 2009-10-01
US20090235274A1 (en) 2009-09-17

Similar Documents

Publication Publication Date Title
JP5181121B2 (ja) タスク数制御装置、タスク数制御方法、及びコンピュータプログラム
JP4768354B2 (ja) ジョブ管理装置、ジョブ管理方法、ジョブ管理プログラム
JP5182792B2 (ja) マルチコアプロセッサ制御方法及び装置
US20100030877A1 (en) Virtual server system and physical server selecting method
US8219359B2 (en) Performance evaluating apparatus
JP2013542530A (ja) アプリケーション・ライフタイム管理
WO2018157586A1 (zh) 计算节点的处理器资源优化方法、计算节点及服务器集群
US20120331474A1 (en) Real time system task configuration optimization system for multi-core processors, and method and program
US20090210741A1 (en) Information processing apparatus and information processing method
TWI533146B (zh) 虛擬資源調整裝置、方法及儲存其之電腦可讀取紀錄媒體
WO2021253851A1 (zh) 一种集群分布式资源调度方法、装置、设备及存储介质
JP5708265B2 (ja) 情報処理装置、バッテリ残量予測方法、及びバッテリ残量予測プログラム
US20180217875A1 (en) Data processing system and data processing method
CN108762938A (zh) 一种云计算平台中的任务处理方法、装置及系统
JP6229733B2 (ja) 情報処理装置、方法、プログラム及び記録媒体
JP5527326B2 (ja) システム配置決定システム、システム配置決定方法およびプログラム
JP4812867B2 (ja) 時系列データ解析支援プログラム及び装置
JP6464980B2 (ja) プログラム、情報処理装置及び情報処理方法
JP2008234407A (ja) 自動負荷試験装置および自動負荷試験方法
JP5751372B2 (ja) データ処理システム、そのコンピュータプログラムおよびデータ処理方法
JP6264803B2 (ja) ジョブ抽出プログラム、ジョブ抽出装置、及びジョブ抽出方法
JP2017107486A (ja) 処理リソース制御プログラム、処理リソース制御装置、および処理リソース制御方法
US20130166871A1 (en) Memory control method for a computer system
JP4155403B2 (ja) システム構成制御方法及びその処理プログラム並びにその実施システム
KR101211817B1 (ko) 태스크 주기 스케쥴링 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101028

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120919

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120925

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121023

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20121211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121204

R150 Certificate of patent or registration of utility model

Ref document number: 5181121

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160125

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees