JP2018005768A - ジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置 - Google Patents

ジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置 Download PDF

Info

Publication number
JP2018005768A
JP2018005768A JP2016135042A JP2016135042A JP2018005768A JP 2018005768 A JP2018005768 A JP 2018005768A JP 2016135042 A JP2016135042 A JP 2016135042A JP 2016135042 A JP2016135042 A JP 2016135042A JP 2018005768 A JP2018005768 A JP 2018005768A
Authority
JP
Japan
Prior art keywords
thread
job
time
job scheduler
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016135042A
Other languages
English (en)
Other versions
JP6751231B2 (ja
Inventor
章孝 岩田
Akitaka Iwata
章孝 岩田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016135042A priority Critical patent/JP6751231B2/ja
Priority to US15/639,187 priority patent/US10417040B2/en
Publication of JP2018005768A publication Critical patent/JP2018005768A/ja
Application granted granted Critical
Publication of JP6751231B2 publication Critical patent/JP6751231B2/ja
Active 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06313Resource planning in a project environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】ジョブシミュレータを用いたジョブスケジューラの試験を効率的に行うことを可能とするジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置を提供する。【解決手段】試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、スレッドの状態が全て待機中である場合、スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する。【選択図】図6

Description

本発明は、ジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置に関する。
利用者に対してサービスを提供する事業者(以下、単に事業者とも呼ぶ)は、例えば、利用者に対して各種サービスの提供を行うために、用途に応じた業務システムを構成して稼働させる。このような業務システムにおいて、事業者は、例えば、各ジョブの処理を行う計算ノードや各ジョブの処理タイミングの決定を行うジョブスケジューラを動作させる。
具体的に、ジョブスケジューラは、例えば、各計算ノードにおける空き資源の状況を把握し、投入されたジョブを処理することができる計算ノードを決定し、決定した計算ノードに対してジョブの処理を指示する。これにより、事業者は、例えば、複数のジョブを処理する必要がある場合であっても、各ジョブの処理を効率的に行うことが可能になる(例えば、特許文献1及び2参照)。
特開2000−267889号公報 特開平4−268906号公報
上記のようなジョブスケジューラを用いる場合、事業者は、ジョブスケジューラの動作について予め試験を行う必要がある。しかしながら、例えば、大規模な並列計算機システム(以下、HPC(High Performance Computing)システムとも呼ぶ)において動作するジョブスケジューラの場合、実際にHPCシステムを稼働させて試験を行うことが困難である場合がある。
そこで、事業者は、ジョブスケジューラの試験を行う際に、例えば、HPCシステムを構成する計算ノードにおけるジョブの処理等の状況を再現するシミュレータを用いる。シミュレータは、例えば、計算ノードにおいて実際にジョブの処理を行うことなく、ジョブの処理が行われた後の状況の再現を行う。これにより、事業者は、計算ノードを実際に稼働させることなく、ジョブシミュレータの試験を行うことが可能になる(以下、シミュレータがジョブの処理を行われた後の状況の再現を行うことを処理の加速とも呼ぶ)。
上記のように処理の加速が行われた場合、事業者は、シミュレータが用いられていない場合と同じ状況においてジョブスケジューラの試験を行うために、ジョブスケジューラが参照するシステムの時間を、加速されたジョブの実際の処理に要する時間だけ先に進める必要がある。
しかしながら、この場合、事業者は、ジョブスケジューラにおける処理に影響が及ぶことを防止するため、処理の加速をジョブスケジューラが処理を行っていない間に行う必要がある。そのため、ジョブスケジューラが処理を行っているタイミングを特定することができない場合、事業者は、システムの時間を先に進めることができない。したがって、この場合、事業者は、処理の加速を行うことができず、ジョブスケジューラの試験を効率的に行うことができない。
そこで、一つの側面では、ジョブシミュレータを用いたジョブスケジューラの試験を効率的に行うことを可能とするジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置を提供することを目的とする。
実施の形態の一つの態様によれば、試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、前記スレッドの状態が全て待機中である場合、前記スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する、処理をコンピュータに実行させる。
一つの側面によれば、ジョブシミュレータを用いたジョブスケジューラの試験を効率的に行うことを可能とする。
図1は、情報処理システム10の構成を示す図である。 図2は、情報処理装置1及び情報処理装置2の具体例を説明する図である。 図3は、ジョブシミュレータを用いた場合の情報処理装置1の具体例を説明する図である。 図4は、本実施の形態におけるジョブスケジューラ試験処理の概略を説明する図である。 図5は、情報処理装置1のハードウエア構成を説明する図である。 図6は、第1の実施の形態におけるジョブスケジューラ試験処理の概略を説明するフローチャート図である。 図7は、第1の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。 図8は、第1の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。 図9は、第1の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。 図10は、第1の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。 図11は、第1の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。 図12は、第1の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。 図13は、第1の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。 図14は、第1の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。 図15は、次回処理時間情報131の具体例を説明する図である。 図16は、セマフォ情報134の具体例である。 図17は、処理回数情報133の具体例である。 図18は、加速時間情報132の具体例を説明する図である。 図19は、セマフォ情報134の具体例である。 図20は、セマフォ情報134の具体例である。 図21は、セマフォ情報134の具体例である。 図22は、セマフォ情報134の具体例である。 図23は、セマフォ情報134の具体例である。 図24は、セマフォ情報134の具体例である。 図25は、セマフォ情報134の具体例である。 図26は、セマフォ情報134の具体例である。
[情報処理システムの構成]
図1は、情報処理システム10の構成を示す図である。図1に示す情報処理システム10は、情報処理装置1(以下、ジョブスケジューラ試験装置1または並列処理装置1とも呼ぶ)と、情報処理装置2と、記憶装置1aとを有する。情報処理装置1は、例えば、インターネットやイントラネット等からなるネットワークNWを介して事業者端末11にアクセスすることが可能な物理マシンである。
情報処理装置1は、例えば、ジョブスケジューラが動作する管理ノードとして機能する物理マシンである。そして、情報処理装置1は、ジョブスケジューラの動作を試験する処理(以下、ジョブスケジューラ試験処理)を行う。なお、ジョブスケジューラが動作する物理マシンは、ジョブスケジューラ試験処理を行う物理マシンと異なる物理マシンであってもよい。
情報処理装置2は、例えば、複数台の物理マシンからなり、それぞれHPCシステムの一部を構成する計算ノードである。
記憶装置1aは、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等からなる外部ディスク装置である。具体的に、記憶装置1aは、例えば、ジョブスケジューラ試験処理が行われる際に参照される各種情報を格納する。なお、記憶装置1aは、情報処理装置1の内部に設けられたディスク装置であってもよい。
事業者端末11は、例えば、事業者が必要な情報の入力を行う端末である。そして、事業者端末11は、事業者による情報の入力があった場合、例えば、入力された情報を情報処理装置1に送信する。
[情報処理装置の具体例]
次に、情報処理装置1及び情報処理装置2の具体例について説明を行う。図2は、情報処理装置1及び情報処理装置2の具体例を説明する図である。
図2に示す情報処理装置1では、ジョブスケジューラを管理するジョブマネージャとして動作するジョブマネージャプロセスP1(以下、単にジョブマネージャP1とも呼ぶ)と、ジョブスケジューラとして動作するジョブスケジューラプロセスP2(以下、単にジョブスケジューラP2とも呼ぶ)とが動作する。また、図2に示す情報処理装置1では、計算ノード(図2に示す例では、情報処理装置2a及び情報処理装置2b等)におけるジョブの処理を制御する資源管理プロセスP3(以下、単に資源管理P3とも呼ぶ)と、計算ノードにおけるジョブの処理を行う実行管理プロセスP4(以下、単に実行管理P4とも呼ぶ)とが動作する。図2に示す例において、各ジョブスケジューラP2は、実行管理P4のいずれかにそれぞれ対応する。
そして、図2に示すジョブマネージャP1では、投入されたジョブの制御を行うジョブ投入スレッド、投入されたジョブの削除を行うジョブ削除スレッド及び資源管理P3に対してジョブの実行依頼を行うジョブ実行依頼スレッド等が動作する。また、図2に示すジョブスケジューラP2では、実行管理P4のジョブ実行スレッドからジョブを実行させるスレッドを選択する資源選択スレッド及びジョブマネージャP1に対してジョブの実行依頼を行うジョブ実行依頼スレッド等が動作する。また、図2に示す資源管理P3では、ジョブの実行に必要な情報を実行管理P4のジョブ実行スレッドに通知するジョブ実行スレッド等が動作する。さらに、図2に示す実行管理P4では、ジョブ実行を行うジョブ実行スレッド等が動作する。
図2に示す情報処理装置1において、例えば、ジョブマネージャP1及びジョブスケジューラP2の試験を行う場合、事業者は、資源管理P3及び実行管理P4に代えて、ジョブシミュレータを動作させる。以下、ジョブシミュレータを用いた場合の情報処理装置1の具体例について説明を行う。なお、以下、プロセスとスレッドとを総称して単にスレッドとも呼ぶ。
[ジョブシミュレータを用いた場合の情報処理装置の具体例]
図3は、ジョブシミュレータを用いた場合の情報処理装置1の具体例を説明する図である。図3に示す情報処理装置1は、例えば、ジョブスケジューラP2等の試験を行う場合、図2で説明した資源管理P3及び実行管理P4に代えて、ジョブシミュレータプロセスP5(以下、単にジョブシミュレータP5とも呼ぶ)を動作させる。ジョブシミュレータP5は、例えば、計算ノードにおいてジョブの処理等が行われた後の状況を再現することが可能なプロセスである。そのため、事業者は、情報処理装置1においてジョブシミュレータP5を動作させることにより、計算ノードを実際に稼働させることなく、ジョブスケジューラの動作に関する試験を行うことが可能になる。
ここで、情報処理装置1において処理の加速が行われた場合、事業者は、シミュレータP5が用いられていない場合と同じ状況においてジョブスケジューラP2の試験を行うために、ジョブスケジューラP2が参照するシステムの時間を、加速されたジョブの実際の処理に要する時間だけ先に進める必要がある。
しかしながら、この場合、ジョブスケジューラP2における処理に影響が及ぶことを防止するため、事業者は、処理の加速をジョブスケジューラP2が処理を行っていない間に行う必要がある。そのため、ジョブスケジューラP2が処理を行っているタイミングを特定することができない場合、事業者は、システムの時間を先に進めることができない。したがって、この場合、事業者は、処理の加速を行うことができず、ジョブスケジューラP2の試験を効率的に行うことができない。
そこで、本実施の形態において、情報処理装置1は、ジョブスケジューラP2(以下、試験対象のジョブスケジューラP2とも呼ぶ)のスレッドの状態が全て待機中であるか否かを判定する。そして、情報処理装置1は、ジョブスケジューラP2のスレッドの状態が全て待機中である場合、各スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する。以下、本実施の形態におけるジョブスケジューラ試験処理の概略について説明を行う。
[ジョブスケジューラ試験処理の概略]
図4は、本実施の形態におけるジョブスケジューラ試験処理の概略を説明する図である。図4に示す例において、情報処理装置1では、加速制御マネージャプロセスP6(以下、単に加速制御マネージャP6とも呼ぶ)が動作する。また、図4に示す例において、ジョブマネージャP1、ジョブスケジューラP2及びシミュレータP5では、それぞれ加速制御スレッドが動作する。
具体的に、情報処理装置1において動作する各スレッドは、自スレッドが処理中であるか否か(待機中であるか否か)を示す情報(以下、セマフォ情報134とも呼ぶ)を記憶装置1aに記憶する。そして、加速制御マネージャP6は、セマフォ情報134が情報処理装置1の全スレッドが待機中であることを示す場合に、処理の加速が行われた時間の累計を示す情報(以下、加速時間情報132とも呼ぶ)に基づき、情報処理装置1において動作する各スレッドが参照する時間を先に進める。その後、加速制御スレッドは、加速された時間を各プロセスに参照させる。
すなわち、ジョブシミュレータP5を用いてジョブスケジューラP2の試験を行う場合において、ジョブスケジューラP2の全てのスレッドが待機中である場合、情報処理装置1は、処理の加速を行ってもジョブスケジューラP2の試験に影響を及ぼすことはない。そのため、情報処理装置1は、ジョブスケジューラP2の全てのスレッドが待機中である場合に限り、処理の加速を行う。これにより、情報処理装置1は、ジョブシミュレータP5を用いたジョブスケジューラP2の試験を効率的に行うことが可能になる。
[情報処理装置のハードウエア構成]
次に、情報処理装置1のハードウエア構成について説明する。図5は、情報処理装置1のハードウエア構成を説明する図である。
情報処理装置1は、プロセッサであるCPU101と、メモリ102と、外部インターフェース(I/Oユニット)103と、記憶媒体(ストレージ)104とを有する。各部は、バス105を介して互いに接続される。
記憶媒体104は、記憶媒体104内のプログラム格納領域(図示しない)に、ジョブスケジューラ試験処理を行うためのプログラム110を記憶する。
CPU101は、図5に示すように、プログラム110の実行時に、プログラム110を記憶媒体104からメモリ102にロードし、プログラム110と協働してジョブスケジューラ試験処理を行う。すなわち、CPU101は、プログラム110と協働することにより、後述する加速制御スレッドや加速制御マネージャP6として動作する。
記憶媒体104は、例えば、ジョブスケジューラ試験処理を行う際に参照される情報を記憶する情報格納領域130(以下、記憶部130とも呼ぶ)を有する。具体的に、情報格納領域130は、例えば、待機中の各スレッドが次に処理を行う時間を示す情報(以下、次回処理時間情報131とも呼ぶ)と、加速時間情報132とを記憶する。また、情報格納領域130は、例えば、各スレッドの状態が待機中から処理中に変わった回数を示す情報(以下、処理回数情報133とも呼ぶ)と、セマフォ情報134とを記憶する。
また、外部インターフェース103は、事業者端末11等と通信を行う。なお、図1で説明した記憶装置1aは、記憶媒体104に対応するものであってよい。
[第1の実施の形態の概略のフローチャート図]
次に、第1の実施の形態の概略のフローチャート図について説明する。図6は、第1の実施の形態におけるジョブスケジューラ試験処理の概略を説明するフローチャート図である。
情報処理装置1は、試験開始タイミングまで待機する(S1のNO)。試験開始タイミングは、例えば、事業者が情報処理装置1に対してジョブスケジューラP2の試験を行う旨の入力を行ったタイミングであってよい。
そして、試験開始タイミングになった場合(S1のYES)、情報処理装置1は、試験対象のジョブスケジューラP2のスレッドの状態が全て待機中であるか否かを判定する(S2)。情報処理装置1は、例えば、情報格納領域130に記憶されたセマフォ情報134を参照することにより、試験対象のジョブスケジューラP2のスレッドの状態が全て待機中であるか否かを判定する。セマフォ情報134の具体例については後述する。
その結果、試験対象のジョブスケジューラP2のスレッドの状態が全て待機中であると判定された場合(S3のYES)、情報処理装置1は、スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する(S4)。一方、試験対象のジョブスケジューラP2のスレッドの状態に待機中でないものが存在すると判定された場合(S3のNO)、情報処理装置1は、S4の処理を行わない。
すなわち、ジョブシミュレータP5を用いてジョブスケジューラP2の試験を行う場合において、ジョブスケジューラP2の全てのスレッドが待機中である場合、情報処理装置1は、処理の加速を行ってもジョブスケジューラP2の試験に影響を及ぼすことはない。そのため、情報処理装置1は、ジョブスケジューラP2の全てのスレッドが待機中である場合に限り、処理の加速を行う。
このように、本実施の形態における情報処理装置1は、試験対象のジョブスケジューラP2のスレッドの状態が全て待機中であるか否かを判定する。そして、情報処理装置1は、ジョブスケジューラP2のスレッドの状態が全て待機中である場合、各スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する。
これにより、情報処理装置1は、ジョブシミュレータを用いたジョブスケジューラの試験を効率的に行うことが可能になる。
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。図7から図14は、第1の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。図15から図26は、第1の実施の形態におけるジョブスケジューラ試験処理の詳細を説明する図である。図15から図26を参照しながら、図7から図14のフローチャート図について説明を行う。なお、以下、試験対象がジョブマネージャP1及びジョブスケジューラP2である場合について説明を行う。
[ジョブマネージャの通常処理]
初めに、情報処理装置1のジョブマネージャP1において通常行われる処理(以下、通常処理とも呼ぶ)について説明を行う。
ジョブマネージャP1は、図7に示すように、処理開始タイミングまで待機する(S11のNO)。処理開始タイミングは、例えば、ジョブマネージャP1がジョブスケジューラP2を起動するタイミング(事象者によって予め定められたタイミング)であってよい。
そして、処理開始タイミングになった場合(S11のYES)、ジョブマネージャP1は、ジョブスケジューラP2の起動を行う(S12)。なお、事業者は、処理開始タイミングになる前に、ジョブシミュレータP5の起動を行うものであってよい。
続いて、ジョブマネージャP1は、自プロセス内の各スレッドの起動を行う(S13)。具体的に、ジョブマネージャP1は、例えば、ジョブ投入スレッド、ジョブ削除スレッド及びジョブ実行依頼スレッド等を起動する。
その後、ジョブマネージャP1は、所定のイベント及び所定の時間を指定し、待機処理の呼び出しを行う(S14)。待機処理は、例えば、指定された所定のイベントを受信するまで、または、指定された所定の時間が経過するまで待機する処理である。すなわち、ジョブマネージャP1は、S13の処理までを行った後、次に処理を行うべきタイミングになるまで待機する。以下、待機処理について説明を行う。
[待機処理]
図14は、待機処理を説明するフローチャート図である。待機処理の呼び出しを行うスレッド(以下、単にスレッドとも呼ぶ)は、自スレッドが含まれるプロセスにおいて、加速制御スレッドが起動しているか否かを判定する(S101)。そして、加速制御スレッドが起動していない場合(S101のNO)、スレッドは、加速制御スレッドの起動を行う(S102)。一方、加速制御スレッドが起動している場合(S101のYES)、スレッドは、S102の処理を行わない。
すなわち、本実施の形態における情報処理装置1は、最初に呼び出された待機処理において加速制御スレッドの起動を行う。これにより、事業者は、試験対象であるジョブマネージャP1やジョブスケジューラP2に、加速制御スレッドを起動するための処理(通常は行われない処理)を行わせる必要がなくなる。そのため、事業者は、ジョブマネージャP1やジョブスケジューラP2に対する試験の信頼性を高めることが可能になる。
その後、スレッドは、自スレッドが次に処理を実行する時間を、次回処理時間情報131の一部として情報格納領域130に記憶する(S103)。具体的に、プロセスは、S14の処理で指定された所定の時間を、次回処理時間情報131の一部として情報格納領域130に記憶する。以下、次回処理時間情報131の具体例について説明を行う。
[次回処理時間情報の具体例]
図15は、次回処理時間情報131の具体例を説明する図である。以下、情報処理装置1において、2スレッドのジョブマネージャP1が1プロセスと、2スレッドのジョブスケジューラが2プロセスと、2スレッドのジョブシミュレータP5が1プロセスとが動作しているものとして説明を行う。
図15に示す次回処理時間情報131は、ジョブマネージャP1のスレッドにそれぞれ対応する時間が設定される「マネージャ(1)」及び「マネージャ(2)」を項目として有する。また、図15に示す次回処理時間情報131は、各ジョブスケジューラP2のスレッドにそれぞれ対応する時間が設定される「スケジューラ(1)」、「スケジューラ(2)」、「スケジューラ(3)」及び「スケジューラ(4)」を項目として有する。さらに、図15に示す次回処理時間情報131は、ジョブシミュレータP5のスレッドにそれぞれ対応する時間が設定される「シミュレータ(1)」及び「シミュレータ(2)」を項目として有する。
具体的に、図15に示す次回処理時間情報131において、「マネージャ(1)」には、「12:15」が設定され、「マネージャ(2)」には、「12:10」が設定されている。すなわち、図15に示す次回処理時間情報131は、ジョブマネージャP1のスレッドの次の処理時間が、それぞれ12時15分及び12時10分であることを示している。
一方、図15に示す次回処理時間情報131において、「シミュレータ(1)」及び「シミュレータ(2)」には、情報が設定されていないことを示す「−」が設定されている。すなわち、図15に示す次回処理時間情報131は、シミュレータP5に含まれる各スレッドにおいて待機処理がまだ行われていないことを示している。図15に含まれる他の情報については説明を省略する。
図14に戻り、スレッドは、自スレッドに対応するセマフォ情報134が示す値(以下、セマフォ値とも呼ぶ)に1を加算する(S104)。そして、スレッドは、所定のイベントを受信するまで、所定の時間が経過するまで、または、加速制御スレッドから通知があるまで待機する(S105のNO)。所定のイベントは、例えば、待機処理を行うスレッドのそれぞれに対応して予め定められたイベントである。また、所定の時間は、例えば、待機処理を行うスレッドのそれぞれに対応して予め定められた時間である。具体的に、所定のイベントは、例えば、事業者端末11において新たなジョブを投入するためのコマンドが入力されたことに伴って、事業者端末11が送信するジョブ投入イベントを受信したことであってよい。以下、セマフォ情報134の具体例について説明を行う。
[セマフォ情報の具体例]
図16及び図19から図26は、セマフォ情報134の具体例である。図16等に示すセマフォ情報134は、図15で説明した次回処理時間情報131と同じ項目を有している。具体的に、図16に示すセマフォ情報134では、全ての項目に「1」が設定されている。
図14に戻り、所定のイベントの受信等が行われた場合(S105のYES)、スレッドは、自スレッドに対応するセマフォ値から1を減算する(S106)。すなわち、スレッドは、自スレッドが待機している間、自スレッドに対応するセマフォ値が1だけ増えるようにセマフォ値の制御を行う。これにより、情報処理装置1は、後述するように、情報処理装置1の全スレッドが待機中であるか否かの判定を行うことが可能になる。
そして、スレッドは、自スレッドに対応する処理回数情報133に1を加算する(S107)。その後、スレッドは、待機処理を終了する。以下、処理回数情報133の具体例について説明を行う。
[処理回数情報の具体例]
図17は、処理回数情報133の具体例である。図17に示す処理回数情報133は、図15で説明した次回処理時間情報131と同じ項目を有している。具体的に、図17に示す処理回数情報133において、「マネージャ(1)」には、「2」が設定され、「マネージャ(2)」には、「4」が設定されている。すなわち、図17に示す処理回数情報133は、所定のイベントの受信等が行われたことに伴ってジョブマネージャP1のスレッドが待機中から処理中に変わった回数が、それぞれ2回と4回であることを示している。図17に含まれる他の情報については説明を省略する。
これにより、情報処理装置1は、後述するように、予め定められた比較対象時間の前後における処理回数情報133を比較することで、比較対象時間において状態が処理中になったスレッドが存在するか否かを判定することが可能になる。
図7に戻り、例えば、S14の待機処理において終了イベントを受信していた場合(S15のYES)、ジョブマネージャP1は、通常処理を終了する。一方、S14の待機処理において終了イベントを受信していない場合(S15のNO)、ジョブマネージャP1は、S14以降の処理を再度行う。
すなわち、ジョブマネージャP1は、例えば、S14の待機処理において終了イベントを受信していた場合に限り、通常処理を終了する。そのため、例えば、所定の時間が経過したことに伴って待機処理が終了していた場合、ジョブマネージャP1は、ジョブスケジューラ試験処理を終了せずに継続する。
[ジョブスケジューラの通常処理]
次に、情報処理装置1のジョブスケジューラP2における通常処理について説明を行う。ジョブスケジューラP2は、図8に示すように、ジョブマネージャP1によって起動された後、自プロセス内の各スレッドの起動を行う(S21)。具体的に、ジョブスケジューラP2は、例えば、資源選択スレッド及びジョブ実行依頼スレッド等を起動する。
その後、ジョブスケジューラP2は、図7で説明した待機処理の呼び出しを行う(S22)。そして、例えば、S22の処理で呼び出した待機処理が終了イベントの受信に伴って終了した場合(S23のYES)、ジョブスケジューラP2は、図7で説明した場合と同様に、通常処理を終了する。一方、S22の処理で呼び出した待機処理が終了イベントを受信せずに終了した場合(S23のNO)、ジョブマネージャP1は、S22以降の処理を再度行う。
[ジョブ投入スレッドの通常処理]
次に、情報処理装置1のジョブマネージャP1に含まれるジョブ投入スレッドにおける通常処理について説明を行う。ジョブ投入スレッドは、図9に示すように、ジョブマネージャP1によって起動された後、所定のイベント及び所定の時間を指定し、図7で説明した待機処理の呼び出しを行う(S31)。
そして、S31の待機処理においてジョブ投入イベントを受信していた場合(S32のYES)、ジョブ投入スレッドは、通常処理を終了する。一方、S31の待機処理においてジョブ投入イベントを受信していない場合(S32のNO)、ジョブ投入スレッドは、S31以降の処理を再度行う。
[ジョブ実行スレッドの通常処理]
次に、情報処理装置1のジョブシミュレータP5に含まれるジョブ実行スレッドにおいて行われる処理、すなわち、資源管理P3及び実行管理P4の代わりにジョブシミュレータP5が実行する処理(以下、通常処理とも呼ぶ)について説明を行う。ジョブ実行スレッドは、図10に示すように、ジョブマネージャP1によって起動された後、所定のイベント及び所定の時間を指定し、図7で説明した待機処理の呼び出しを行う(S41)。
そして、例えば、S41の待機処理においてジョブ実行イベントを受信していた場合(S42のYES)、ジョブ実行スレッドは、通常処理を終了する。一方、S41の待機処理においてジョブ実行イベントを受信していない場合(S42のNO)、ジョブ実行スレッドは、S41以降の処理を再度行う。
[加速制御スレッドのジョブスケジューラ試験処理]
次に、情報処理装置1の加速制御スレッドにおけるジョブスケジューラ試験処理について説明を行う。加速制御スレッドは、情報処理装置1において動作する各プロセスに含まれるスレッドである。そのため、加速制御スレッドのジョブスケジューラ試験処理は、情報処理装置1において動作する各プロセスにおいて行われる。
加速制御スレッドは、図11に示すように、各プロセスによって起動された後、自スレッドと同じプロセスに含まれる全てのスレッドに対応するセマフォ値に0を設定する(S51)。そして、加速制御スレッドは、自スレッドと同じプロセスに含まれる全てのスレッドに対応するセマフォ値に1を加算する(S52)。その後、加速制御スレッドは、自スレッドと同じプロセスに含まれる全てのスレッドに対応するセマフォ値が0になるまで待機する(S53のNO)。
すなわち、加速制御マネージャP6は、後述するように、情報処理装置1において動作する全てのスレッドの状態が待機中になった場合、情報処理装置1において動作する全てのスレッドに対応するセマフォ値を0に更新する。そのため、加速制御スレッドは、S53の処理において、加速制御マネージャP6が情報処理装置1において動作する全てのスレッドに対応するセマフォ値を0にするまで待機する。
そして、自スレッドと同じプロセスに含まれる全てのスレッドに対応するセマフォ値が0になった場合(S53のYES)、加速制御スレッドは、全てのセマフォ値に1を加算する(S54)。
なお、加速制御スレッドは、S54の処理において全てのセマフォ値に1を設定する場合、全てのセマフォ値に対する設定を同時に行う。これにより、セマフォ値に対する設定が行われている途中にスレッドの状態が変わることを防止することが可能になる。
その後、加速制御スレッドは、情報格納領域に記憶された加速時間情報132を、各プロセス内の全スレッドに参照させる(S55)。そして、S55の処理の後、加速制御スレッドは、S52以降の処理を再度行う。
すなわち、加速制御スレッドは、処理の加速を行っても試験対象のスレッドそれぞれの処理に影響を及ぼさないタイミングになった場合(S53のYES)、自スレッドと同じプロセスに含まれる各スレッドに加速時間情報132を参照させる。これにより、加速制御スレッドは、自スレッドと同じプロセスに含まれる各スレッドが処理を行う際に参照する時間を、加速時間情報132が示す時間だけ進めることが可能になる。
ここで、情報処理装置1において動作する全スレッドに対応するセマフォ値が0になったタイミングにおいて待機しているスレッドが存在する場合、そのスレッドは、自スレッドの状態が処理中になるまで加速時間情報132の参照を行わない。そのため、加速制御スレッドは、情報処理装置1において動作する全てのスレッドに対応するセマフォ値が0になった場合、例えば、自スレッドと同じプロセスに含まれる各スレッドに対して状態を処理中に変えるための通知を送信する。
これにより、加速制御スレッドは、情報処理装置1において動作する全てのスレッドに対応するセマフォ値が0になったタイミングにおいて待機しているスレッドが存在する場合であっても、その存在したスレッドに加速時間情報132を参照させることが可能になる。以下、加速時間情報132の具体例について説明を行う。
[加速時間情報の具体例]
図18は、加速時間情報132の具体例を説明する図である。図18に示す加速時間情報132は、処理の加速によって現在の時間よりも先に進められた時間の累計が設定される「加速時間」を項目として有する。
具体的に、図18に示す加速時間情報132には、「加速時間」として「20:30:00」が設定されている。すなわち、図18に示す加速時間情報132は、処理の加速によって現在の時間よりも先に進められた時間が20時間30分であることを示している。
[加速制御マネージャのジョブスケジューラ試験処理]
次に、情報処理装置1の加速制御マネージャP6におけるジョブスケジューラ試験処理について説明を行う。加速制御マネージャP6は、例えば、事業者が加速制御コマンドを入力したことに伴って情報処理装置1において動作するプロセスである。
加速制御マネージャP6は、図12に示すように、事業者端末11において加速制御マネージャP6を起動するためのコマンド(以下、加速制御コマンドとも呼ぶ)が入力されるまで待機する(S61のNO)。そして、加速制御コマンドが入力された場合(S61のYES)、加速制御マネージャP6は、ジョブの投入タイミングの時間を制御するスレッド(以下、加速ジョブ投入スレッドとも呼ぶ)を起動する(S62)。以下、加速ジョブ投入スレッドにおけるジョブスケジューラ試験処理について説明を行う。
[加速ジョブ投入スレッドのジョブスケジューラ試験処理]
加速ジョブ投入スレッドは、図13に示すように、加速制御マネージャP6によって起動された後、情報格納領域130を参照し、ジョブ投入情報(図示しない)を取得する(S71)。ジョブ投入情報は、ジョブスケジューラ試験を行う際に投入されるジョブの識別情報や投入時間等を含む情報である。ジョブ投入情報は、例えば、事業者が予め情報格納領域130に記憶しておくものであってよい。
そして、加速ジョブ投入スレッドは、S71の処理で取得したジョブ投入情報を参照し、例えば、次にジョブを投入する時間を変数sleeptimeに設定する(S72)。その後、加速ジョブ投入スレッドは、変数sleeptimeに設定された時間が経過するまで待機する(S73のNO)。
その後、変数sleeptimeに設定された時間が経過した場合(S73のYES)、加速ジョブ投入スレッドは、次のジョブをジョブマネージャP1に対して投入する(S74)。そして、加速ジョブ投入スレッドは、ジョブ投入情報に情報が含まれる全てのジョブの投入が完了した場合(S75のYES)、加速ジョブ投入スレッドにおけるジョブスケジューラ試験処理を終了する。一方、ジョブ投入情報に情報が含まれる全てのジョブの投入が完了していない場合(S75のNO)、S72以降の処理を再度行う。
図12に戻り、S62の処理の後、加速制御マネージャP6は、次回処理時間情報131を参照し、各スレッドに対応する時間のうち、最も早い時間を算出する(S63)。そして、加速制御マネージャP6は、S63で算出した時間を、情報格納領域130に記憶された加速時間情報132が示す時間に加算する(S64)。
図12に戻り、加速制御マネージャP6は、全てのセマフォ値が2である場合(S65のYES)、加速制御マネージャP6は、全てのセマフォ値に0を設定する(S66)。
この場合、加速制御マネージャP6は、例えば、間隔を空けて処理回数情報133を複数回参照し、処理回数情報133に含まれる内容が変化しなかった場合に、全てのセマフォ値に0を設定するものであってよい。すなわち、加速制御マネージャP6は、全てのセマフォ値が2である状態が所定時間続いた場合に、全てのセマフォ値に0を設定するものであってよい。これにより、加速制御マネージャP6は、情報処理装置1において動作する全てのスレッドの状態が安定的に待機中である場合に限り、セマフォ値の変更を行うことが可能になる。
一方、全てのセマフォ値が2でない場合(S65のNO)、加速制御マネージャP6は、S63以降の処理を再度行う。
また、加速制御マネージャP6は、ジョブスケジューラ試験処理を終了する旨の入力があった場合(S67のYES)、ジョブスケジューラ試験処理を終了し、ジョブスケジューラ試験処理を終了する旨の入力がない場合(S67のNO)、S63以降の処理を再度行う。
すなわち、ジョブスケジューラ試験処理が開始される場合、各セマフォ値には、セマフォ値の初期化処理によって1が設定される(S51、S52)。そして、各セマフォ値は、対応するスレッドが待機中になったことに応じて1が加算される(S104)。そのため、加速制御マネージャP6は、情報処理装置1において動作する全てのセマフォ値が2になった場合に、各スレッドが参照する時間を変更するタイミングであると判定することが可能になる。
また、各スレッドが参照する時間の変更が既に行われている場合(S53のYES)、各セマフォ値には、各スレッドが参照する時間が変更する処理が行われたことに伴って2が設定される(S52、S54)。さらに、情報処理装置1において動作する全てのスレッドが待機中である場合、各セマフォ値は2から変化しない。そのため、加速制御マネージャP6は、この場合についても、情報処理装置1において動作する全てのセマフォ値が2になった場合に、各スレッドが参照する時間を変更すべきタイミングであると判定することが可能になる。
したがって、加速制御マネージャP6は、S65の処理において、全てのセマフォ値が2である場合、各スレッドが参照する時間を変更すべきタイミングであると判定する。
なお、加速制御マネージャP6は、S66の処理において全てのセマフォ値に0を設定する場合、全てのセマフォ値に対する設定を同時に行う。これにより、セマフォ値に対する設定が行われている途中にスレッドの状態が変わることを防止することが可能になる。
[ジョブスケジューラ試験処理の具体例]
次に、ジョブスケジューラ試験処理の具体例について説明を行う。各プロセスに含まれる加速制御スレッドのそれぞれは、各プロセスによって起動された後、自スレッドと同じプロセスに含まれる全てのスレッドに対応するセマフォ値に1を設定する(S51、S52)。すなわち、各加速制御スレッドは、図16で説明したように、情報処理装置1において動作する全てのスレッドに対応するセマフォ値として1を設定する。
その後、情報処理装置1において動作する各スレッドは、自スレッドの状態が待機中になったことに応じて、自スレッドに対応するセマフォ値に1を加算する。また、情報処理装置1において動作する各スレッドは、自スレッドの状態が待機中から処理中になったことに応じて、自スレッドに対応するセマフォ値から1を減算する。具体的に、図16に示す状態の後、ジョブマネージャP1及びジョブシミュレータP5に含まれる全てのスレッドが待機中になった場合、加速制御スレッドは、図19に示すように、「マネージャ(1)」、「マネージャ(2)」、「シミュレータ(1)」及び「シミュレータ(2)」に対応するセマフォ値に2を設定する。
そして、図20に示すように、全てのスレッドに対応するセマフォ値に2が設定された場合、加速制御マネージャP6は、図21に示すように、全てのスレッドに対応するセマフォ値に0を設定する(S65のYES、S66)。
続いて、各加速制御スレッドは、自スレッドと同じプロセスに含まれる各スレッドに対応するセマフォ値に1を加算する(S54)。具体的に、ジョブマネージャP1に含まれる加速制御スレッドは、S54の処理において、図22に示すように、「マネージャ(1)」及び「マネージャ(2)」に対応するセマフォ値に1を設定する。
そして、図22に示す状態の後、「マネージャ(1)」に対応するスレッドの状態が待機中から処理中に変わった場合、加速制御スレッドは、図23に示すように、「マネージャ(1)」に対応するセマフォ値に0を設定する。
さらに、図23に示す状態の後、「マネージャ(1)」に対応するスレッドの状態が処理中から待機中に変わった場合、ジョブマネージャP1に含まれる加速制御スレッドは、図24に示すように、「マネージャ(1)」に対応するセマフォ値に1を設定する。また、図23に示す状態の後、「マネージャ(2)」に対応するスレッドの状態が待機中から処理中に変わった場合、ジョブマネージャP1に含まれる加速制御スレッドは、図24に示すように、「マネージャ(2)」に対応するセマフォ値に0を設定する。
その後、ジョブマネージャP1に含まれる加速制御スレッドが、自スレッドと同じプロセスに含まれる各スレッドに変更された時間を参照させた場合、加速制御スレッドは、図25に示すように、「マネージャ(1)」及び「マネージャ(2)」に対応するセマフォ値のそれぞれに1を加算する(S55、S52)。そして、図25に示す状態の後、「マネージャ(2)」に対応するスレッドの状態が処理中から待機中に変わった場合、ジョブマネージャP1に含まれる加速制御スレッドは、図26に示すように、「マネージャ(2)」に対応するセマフォ値に2を設定する。
このように、本実施の形態における情報処理装置1は、試験対象のジョブスケジューラP2のスレッドの状態が全て待機中であるか否かを判定する。そして、情報処理装置1は、ジョブスケジューラP2のスレッドの状態が全て待機中である場合、各スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する。
これにより、情報処理装置1は、ジョブシミュレータを用いたジョブスケジューラの試験を効率的に行うことが可能になる。
以上の実施の形態をまとめると、以下の付記のとおりである。
(付記1)
試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、
前記スレッドの状態が全て待機中である場合、前記スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する、
処理をコンピュータに実行させることを特徴とするジョブスケジューラ試験プログラム。
(付記2)
付記1において、
前記スレッドは、自スレッドの状態が待機中になった場合、自スレッドの状態が待機中であることを示す情報を記憶部に記憶し、自スレッドの状態が処理中になった場合、自スレッドの状態が処理中であることを示す情報を前記記憶部に記憶し、
前記スレッドの状態を判定する処理では、前記記憶部を参照し、前記スレッドの状態が全て待機中であるか否かの判定を行う、
ことを特徴とするジョブスケジューラ試験プログラム。
(付記3)
付記1において、
待機中である前記スレッドは、自スレッドの状態が次に処理中になる時間を記憶部し、
前記システムの時間を変更する処理では、前記記憶部を参照し、前記システムの時間を前記次に処理中になる時間のうちの最も早い時間に変更する、
ことを特徴とするジョブスケジューラ試験プログラム。
(付記4)
付記1において、
前記システムの時間を変更する処理では、前記スレッドの状態が全て待機中である状態が所定時間続いたと判定した場合に、前記システムの時間の変更を行う、
ことを特徴とするジョブスケジューラ試験プログラム。
(付記5)
付記1において、さらに、
前記システムの時間を変更する処理の後、変更された前記システムの時間を前記スレッドに参照させ、変更された前記システムの時間に応じた処理を実行させる、
処理をコンピュータに実行させることを特徴とするジョブスケジューラ試験プログラム。
(付記6)
付記5において、
前記システムの時間を変更する処理では、前記システムの時間を変更する処理が過去に行われている場合、過去に行われた前記システムの時間を変更する処理の後に行われる前記システムの時間を参照させる処理が行われた後に、前記システムの時間の変更を行う、
ことを特徴とするジョブスケジューラ試験プログラム。
(付記7)
試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、
前記スレッドの状態が全て待機中である場合、前記スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する、
ことを特徴とするジョブスケジューラ試験方法。
(付記8)
付記7において、
前記スレッドは、自スレッドの状態が待機中になった場合、自スレッドの状態が待機中であることを示す情報を記憶部に記憶し、自スレッドの状態が処理中になった場合、自スレッドの状態が処理中であることを示す情報を前記記憶部に記憶し、
前記スレッドの状態を判定する工程では、前記記憶部を参照し、前記スレッドの状態が全て待機中であるか否かの判定を行う、
ことを特徴とするジョブスケジューラ試験方法。
(付記9)
付記7において、
待機中である前記スレッドは、自スレッドの状態が次に処理中になる時間を記憶部し、
前記システムの時間を変更する工程では、前記記憶部を参照し、前記システムの時間を前記次に処理中になる時間のうちの最も早い時間に変更する、
ことを特徴とするジョブスケジューラ試験方法。
(付記10)
試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、前記スレッドの状態が全て待機中である場合、前記スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する時間変更部を有する、
ことを特徴とする並列処理装置。
(付記11)
付記10において、
前記スレッドは、自スレッドの状態が待機中になった場合、自スレッドの状態が待機中であることを示す情報を記憶部に記憶し、自スレッドの状態が処理中になった場合、自スレッドの状態が処理中であることを示す情報を前記記憶部に記憶し、
前記時間変更部は、前記記憶部を参照し、前記スレッドの状態が全て待機中であるか否かの判定を行う、
ことを特徴とする並列処理装置。
(付記12)
付記10において、
待機中である前記スレッドは、自スレッドの状態が次に処理中になる時間を記憶部し、
前記時間変更部は、前記記憶部を参照し、前記システムの時間を前記次に処理中になる時間のうちの最も早い時間に変更する、
ことを特徴とする並列処理装置。
1:情報処理装置 1a:記憶装置
11:事業者端末 NW:ネットワーク

Claims (8)

  1. 試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、
    前記スレッドの状態が全て待機中である場合、前記スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する、
    処理をコンピュータに実行させることを特徴とするジョブスケジューラ試験プログラム。
  2. 請求項1において、
    前記スレッドは、自スレッドの状態が待機中になった場合、自スレッドの状態が待機中であることを示す情報を記憶部に記憶し、自スレッドの状態が処理中になった場合、自スレッドの状態が処理中であることを示す情報を前記記憶部に記憶し、
    前記スレッドの状態を判定する処理では、前記記憶部を参照し、前記スレッドの状態が全て待機中であるか否かの判定を行う、
    ことを特徴とするジョブスケジューラ試験プログラム。
  3. 請求項1において、
    待機中である前記スレッドは、自スレッドの状態が次に処理中になる時間を記憶部し、
    前記システムの時間を変更する処理では、前記記憶部を参照し、前記システムの時間を前記次に処理中になる時間のうちの最も早い時間に変更する、
    ことを特徴とするジョブスケジューラ試験プログラム。
  4. 請求項1において、
    前記システムの時間を変更する処理では、前記スレッドの状態が全て待機中である状態が所定時間続いたと判定した場合に、前記システムの時間の変更を行う、
    ことを特徴とするジョブスケジューラ試験プログラム。
  5. 請求項1において、さらに、
    前記システムの時間を変更する処理の後、変更された前記システムの時間を前記スレッドに参照させ、変更された前記システムの時間に応じた処理を実行させる、
    処理をコンピュータに実行させることを特徴とするジョブスケジューラ試験プログラム。
  6. 請求項5において、
    前記システムの時間を変更する処理では、前記システムの時間を変更する処理が過去に行われている場合、過去に行われた前記システムの時間を変更する処理の後に行われる前記システムの時間を参照させる処理が行われた後に、前記システムの時間の変更を行う、
    ことを特徴とするジョブスケジューラ試験プログラム。
  7. 試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、
    前記スレッドの状態が全て待機中である場合、前記スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する、
    ことを特徴とするジョブスケジューラ試験方法。
  8. 試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、前記スレッドの状態が全て待機中である場合、前記スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する時間変更部を有する、
    ことを特徴とする並列処理装置。
JP2016135042A 2016-07-07 2016-07-07 ジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置 Active JP6751231B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016135042A JP6751231B2 (ja) 2016-07-07 2016-07-07 ジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置
US15/639,187 US10417040B2 (en) 2016-07-07 2017-06-30 Job scheduler test program, job scheduler test method, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016135042A JP6751231B2 (ja) 2016-07-07 2016-07-07 ジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置

Publications (2)

Publication Number Publication Date
JP2018005768A true JP2018005768A (ja) 2018-01-11
JP6751231B2 JP6751231B2 (ja) 2020-09-02

Family

ID=60910872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016135042A Active JP6751231B2 (ja) 2016-07-07 2016-07-07 ジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置

Country Status (2)

Country Link
US (1) US10417040B2 (ja)
JP (1) JP6751231B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109815154A (zh) * 2019-02-22 2019-05-28 深圳市网心科技有限公司 一种测试方法、装置、系统及介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04268906A (ja) 1991-02-25 1992-09-24 Hitachi Ltd ユニット計算機用シミュレータ
JP2000267889A (ja) 1999-03-15 2000-09-29 Hitachi Ltd ソフトウェアのシミュレーション検証方式
US6751583B1 (en) * 1999-10-29 2004-06-15 Vast Systems Technology Corporation Hardware and software co-simulation including simulating a target processor using binary translation
CA2306969A1 (en) * 2000-04-28 2001-10-28 Ibm Canada Limited-Ibm Canada Limitee Dynamic scaling back of latch requests for computer system resources
CA2407775C (en) * 2000-05-04 2007-09-25 The Procter & Gamble Company Computer apparatuses and processes for analyzing a system having false start events
JP2002297900A (ja) * 2001-03-30 2002-10-11 Ibm Japan Ltd 業務別応対管理システム、顧客側端末装置、応対側端末装置、管理サーバ、待ち行列監視装置、応対側端末の割り当て方法、および記憶媒体
WO2005106623A1 (ja) * 2004-04-28 2005-11-10 Matsushita Electric Industrial Co., Ltd. Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
US7624208B2 (en) * 2005-01-14 2009-11-24 International Business Machines Corporation Method, system, and computer program for managing a queuing system
US7844970B2 (en) * 2006-08-22 2010-11-30 International Business Machines Corporation Method and apparatus to control priority preemption of tasks
US8667494B1 (en) * 2006-08-25 2014-03-04 Emc Corporation Controlling resource allocation using thresholds and scheduling
US8136113B2 (en) * 2006-12-20 2012-03-13 International Business Machines Corporation Method and apparatus for adjusting sleep time of fixed high-priority threads
US8141079B2 (en) * 2007-06-28 2012-03-20 Samsung Electronics Co., Ltd. Dynamic application scheduler in a polling system
US9244732B2 (en) * 2009-08-28 2016-01-26 Vmware, Inc. Compensating threads for microarchitectural resource contentions by prioritizing scheduling and execution
JP5434616B2 (ja) * 2010-01-15 2014-03-05 富士通株式会社 仮想計算機、仮想計算機モニタ、および計算機の制御方法
JP5450271B2 (ja) * 2010-06-10 2014-03-26 株式会社東芝 シミュレーション装置、シミュレーションプログラム及び方法
US8989729B2 (en) * 2012-11-09 2015-03-24 Alcatel Lucent Network monitoring of user equipment events
US9372725B2 (en) * 2014-02-19 2016-06-21 International Business Machines Corporation Dynamically adjusting wait periods according to system performance
US20170024258A1 (en) * 2015-07-21 2017-01-26 Hartford Fire Insurance Company System for optimizing batch job dependencies

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109815154A (zh) * 2019-02-22 2019-05-28 深圳市网心科技有限公司 一种测试方法、装置、系统及介质

Also Published As

Publication number Publication date
JP6751231B2 (ja) 2020-09-02
US20180011734A1 (en) 2018-01-11
US10417040B2 (en) 2019-09-17

Similar Documents

Publication Publication Date Title
US10042668B2 (en) Concurrent execution of a computer software application along multiple decision paths
JP6818014B2 (ja) ジョブ用の動作リトライ方法及び機器
US20180218058A1 (en) Data synchronization method and system
US9575837B2 (en) System and method for introducing functionality to an application for use with a network service
US8453013B1 (en) System-hang recovery mechanisms for distributed systems
EP3591485A1 (en) Method and device for monitoring for equipment failure
US20220188214A1 (en) Dynamic distributed tracing instrumentation in a microservice architecture
CN111666141A (zh) 任务调度方法、装置、设备及计算机存储介质
US7882399B2 (en) Intelligent job functionality
CN112015348B (zh) 一种数据卷的io静默方法、装置和介质
JP6428005B2 (ja) 情報処理装置,情報処理方法及び情報処理プログラム
CN113157411A (zh) 一种基于Celery的可靠可配置任务系统及装置
JP6751231B2 (ja) ジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置
CN116521573A (zh) 一种自动化测试方法、装置、设备及存储介质
CN110874319A (zh) 自动化测试方法、平台、设备及计算机可读存储介质
JP2018538632A (ja) ノードの再起動後にデータを処理する方法及びデバイス
CN111090575B (zh) 测试方法
CN110134502A (zh) 任务处理方法、装置、系统、计算机设备和存储介质
CN116701410B (zh) 数联网数据语用内存状态数据的存储方法及系统
US20220326990A1 (en) Providing optimization in a micro services architecture
JP7048890B2 (ja) 情報処理装置、情報収集プログラム及び情報収集方法
JP2022080615A (ja) 情報処理装置、配置方法、および、プログラム
JP6135193B2 (ja) プログラム実行装置、プログラム実行方法、及びプログラム実行プログラム
CN116319758A (zh) 数据迁移方法、装置、电子设备及可读存储介质
KR20240059429A (ko) 데이터 분석 방법, 장치, 시스템 및 컴퓨터 프로그램

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200327

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200727

R150 Certificate of patent or registration of utility model

Ref document number: 6751231

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150