(57)【要約】【課題】複数の情報処理装置が試験命令列を生成して実行する試験において、試験網羅性を向上させる。【解決手段】複数の情報処理装置のための管理装置が保持するシード値に基づいて、ある情報処理装置に含まれる１つ以上の処理部が行う試験の総回数と同じ数のシード値が、他の情報処理装置と重複しないように生成される。そして、１つ以上の処理部のうちの１つの処理部が、試験の総回数と同じ数のシード値のうち、その処理部が行う試験の回数と同じ数のシード値に基づいてその数の試験命令列を生成し、生成した試験命令列を実行する。【選択図】図２
2013120558.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の処理部を含む情報処理装置によって実行されるプログラムであって、
前記１つ以上の処理部のうちの１つの処理部に、前記情報処理装置を含む複数の情報処理装置のための管理装置が保持するシード値に基づき他の情報処理装置と重複しないように生成された、前記１つ以上の処理部が行う試験の総回数と同じ数のシード値のうち、該１つの処理部が行う試験の回数と同じ数のシード値に基づいて、該１つの処理部が行う試験の回数と同じ数の試験命令列を生成させ、
前記１つの処理部に前記生成させた試験命令列を実行させることを特徴とするプログラム。
【請求項２】
前記管理装置が保持するシード値を該管理装置から受信し、受信したシード値に基づいて前記試験の総回数と同じ数のシード値を生成し、受信したシード値とは異なるシード値により前記管理装置が保持するシード値を更新する処理を、前記処理部にさらに実行させる請求項１記載のプログラム。
【請求項３】
前記試験の総回数を前記管理装置に通知し、前記試験の総回数と同じ数のシード値を前記管理装置から受信する処理を、前記処理部にさらに実行させる請求項１記載のプログラム。
【請求項４】
１つ以上の処理部を含む情報処理装置であって、
前記１つ以上の処理部のうちの１つの処理部が、前記情報処理装置を含む複数の情報処理装置のための管理装置が保持するシード値に基づき他の情報処理装置と重複しないように生成された、該１つ以上の処理部が行う試験の総回数と同じ数のシード値のうち、該１つの処理部が行う試験の回数と同じ数のシード値に基づいて、該１つの処理部が行う試験の回数と同じ数の試験命令列を生成し、該試験命令列を実行する
ことを特徴とする情報処理装置。
【請求項５】
複数の情報処理装置のうちのある情報処理装置に含まれる１つ以上の処理部のうちの１つの処理部が、該複数の情報処理装置のための管理装置が保持するシード値に基づき他の情報処理装置と重複しないように生成された、該１つ以上の処理部が行う試験の総回数と同じ数のシード値のうち、該１つの処理部が行う試験の回数と同じ数のシード値に基づいて、該１つの処理部が行う試験の回数と同じ数の試験命令列を生成し、
前記１つの処理部が前記試験命令列を実行する
ことを特徴とする試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、試験命令列を生成して実行する情報処理装置、試験方法、及びプログラムに関する。
【背景技術】
【０００２】
それぞれが１つ以上のCentral Processing Unit （ＣＰＵ）を含む複数の情報処理装置（コンピュータ）を有する情報処理システムの試験方法として、各情報処理装置に試験命令列を実行させる方法が知られている。
【０００３】
この試験方法では、乱数生成の初期値となるシード値を入力としてランダムデータを生成し、そのランダムデータに基づいて試験命令列を生成し、各情報処理装置の各ＣＰＵにその試験命令列を実行させる。シード値としては、例えば、Ｋバイト（Ｋは１以上の整数）の値が用いられる。そして、試験命令列の実行が終了した後、ランダムデータに基づいて新たに生成されたランダムな値、又はシード値に１を加算した値を新たなシード値として用いて、再度、試験命令列を生成して試験を繰り返す。これにより、複数回の試験の実行結果に基づいて障害の有無をチェックすることができる。
【０００４】
このとき、同じシード値を用いれば常に同じ試験命令列を生成することができるため、障害が発生した際に使用されていたシード値を用いて再度試験を行うことで、障害を容易に再現することができる。それぞれが１つ以上のＣＰＵを含む複数のノードを有するマルチノードシステムにおいて、試験命令列の実行中にノード間の同期を取ることで、問題発生タイミングの再現性を確保する技術も知られている。
【０００５】
また、マルチプロセッサシステムにおいて、プロセッサ管理部がプロセッサ毎の初期値を設定し、それらの初期値から発生する乱数が一連の乱数列となるように、各プロセッサが乱数を発生させる方法も知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−５３２０９号公報
【特許文献２】特開平８−３３９２９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した従来の情報処理システムの試験方法には、以下のような問題がある。
（１）ＣＰＵ設計検証段階における試験では、論理検証の観点から、限られた検証期間の中でより多くのパターンの命令列をＣＰＵに実行させ、正常性を確認することが重要となる。ところが、マルチノードシステムやマルチプロセッサシステムにおいて試験命令列による試験を実施した場合、各ＣＰＵがそれぞれ同じ試験命令列を実行するため、試験時間に無駄が生じてしまう。
【０００８】
（２）パーソナルコンピュータ、マルチノードシステム、及びマルチプロセッサシステムのような複数の情報処理装置の検証段階において、それぞれの検証者がそれぞれの情報処理装置に同様の試験プログラムを実行させる場合がある。この場合、特にシード値を指定せずに各情報処理装置が試験命令列を実行すると、各ＣＰＵが実行する試験命令列は同様なものとなり、試験網羅性が半減してしまう。
そこで、各情報処理装置において異なるシード値を使用することが望ましいが、情報処理装置の台数及び検証者の数が多くなると、あらかじめシード値を割り当てる作業が煩雑になる。
【０００９】
（３）シード値から生成されたランダムデータを次のシード値生成に使用する場合、試験を行う度に、所定の乱数生成アルゴリズムで次のシード値が生成される。このため、試験を繰り返すうちにすでに使用されたシード値が再度生成され、同じシード値を繰り返して使用する状態になる可能性がある。この場合、すでに使用されたシード値が生成された時点以後は命令列のパターンが増加しなくなり、長時間試験を実施しても試験網羅性が向上しなくなる。
【００１０】
（４）複数の情報処理装置の検証段階において、プロセッサ管理部がプロセッサ毎の初期値を設定し、各プロセッサが乱数を発生させる方法を採用し、生成された乱数から試験命令列を生成することが考えられる。この場合、マルチプロセッサシステム内のプロセッサ間で一連の乱数列を生成することはできるが、他の情報処理装置で生成される乱数と同じ乱数が生成される可能性がある。また、マルチプロセッサシステム内でも、システムリセット後や、一旦プログラムの実行を終了して再度システムを立ち上げた場合等、再度同じアルゴリズムで乱数が生成されるため、以前使用したのと同じ乱数が生成される可能性が高い。このように、試験命令列の元になる乱数の重複は避けることができず、試験網羅性を向上させることが難しい。
【００１１】
１つの側面では、本発明の課題は、複数の情報処理装置が試験命令列を生成して実行する試験において、試験網羅性を向上させることである。
【課題を解決するための手段】
【００１２】
１つ以上の処理部を含む情報処理装置によって実行されるプログラムは、下記（１）及び（２）の処理を上記１つ以上の処理部のうちの１つの処理部に実行させる。
（１）上記１つ以上の処理部が行う試験の総回数と同じ数のシード値のうち、その処理部が行う試験の回数と同じ数のシード値に基づいて、その試験の回数と同じ数の試験命令列を生成する処理。
【００１３】
上記試験の総回数と同じ数のシード値は、上記情報処理装置を含む複数の情報処理装置のための管理装置が保持するシード値に基づき、他の情報処理装置と重複しないように生成されたシード値である。
（２）試験命令列を実行する処理。
【発明の効果】
【００１４】
上述した情報処理装置によって実行されるプログラムによれば、複数の情報処理装置が試験命令列を生成して実行する試験において、試験網羅性を向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】情報処理システムの構成図である。
【図２】第１の試験のフローチャートである。
【図３】管理装置の機能的構成図である。
【図４】情報処理装置の機能的構成図である。
【図５】第２の試験のフローチャートである。
【図６】シード値生成処理を示す図（その１）である。
【図７】シード値生成処理を示す図（その２）である。
【図８】シード値生成処理を示す図（その３）である。
【図９】シード値生成処理を示す図（その４）である。
【図１０】シード値生成処理を示す図（その５）である。
【図１１】シード値生成処理を示す図（その６）である。
【図１２】シード値生成処理を示す図（その７）である。
【図１３】第２の試験のフローチャートである。
【図１４】第１のシード値生成処理のフローチャートである。
【図１５】第２のシード値生成処理のフローチャートである。
【図１６】第１の配列を示す図である。
【図１７】第２の配列を示す図である。
【図１８】情報処理装置の構成図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら、実施形態を詳細に説明する。
図１は、複数の情報処理装置を含む情報処理システムの構成例を示している。図１の情報処理システムは、管理装置１０１、マルチプロセッサシステム１０２、１０３、パーソナルコンピュータ（ＰＣ）１０４、及びマルチノードシステム１０５を含む。管理装置１０１、マルチプロセッサシステム１０２、１０３、ＰＣ１０４、及びマルチノードシステム１０５は、通信ネットワーク１０６により互いに接続されている。
【００１７】
マルチプロセッサシステム１０２は、ＣＰＵ１１１及び１１２を含む情報処理装置であり、マルチプロセッサシステム１０３は、ＣＰＵ１２１及び１２２を含む情報処理装置である。ＰＣ１０４は、ＣＰＵ１３１を含む情報処理装置であり、マルチノードシステム１０５は、ノード１４１、１４２、及び１４３を含む情報処理装置である。ノード１４１は、ＣＰＵ１５１及び１５２を含み、ノード１４２は、ＣＰＵ１６１及び１６２を含み、ノード１４３は、ＣＰＵ１７１及び１７２を含む。管理装置１０１は、これらの情報処理装置のためのシード値を保持する情報処理装置である。
【００１８】
図２は、図１の各情報処理装置が行う試験の例を示すフローチャートである。まず、情報処理装置に含まれる１つ以上のＣＰＵのうちあるＣＰＵが、１つ以上のＣＰＵが行う試験の総回数と同じ数のシード値のうち、そのＣＰＵが行う試験の回数と同じ数のシード値に基づいて、その試験の回数と同じ数の試験命令列を生成する（ステップ２０１）。試験の総回数と同じ数のシード値は、管理装置１０１が保持するシード値に基づき、他の情報処理装置と重複しないように生成されたシード値である。次に、そのＣＰＵは、生成した試験命令列を実行する（ステップ２０２）。
【００１９】
各情報処理装置がアクセス可能な通信ネットワーク１０６上に、複数の情報処理装置のためのシード値を保持する管理装置１０１を設けることで、各情報処理装置は、試験命令列を生成する際に、他の情報処理装置と重複しないシード値を用いることができる。さらに、各情報処理装置に含まれる全ＣＰＵが行う試験の総回数と同じ数のシード値を、他の情報処理装置と重複しないように生成することで、全情報処理装置の全ＣＰＵの間で同じ試験命令列が生成されることが抑止される。したがって、情報処理システム全体における試験網羅性を向上させることができる。
【００２０】
図１の情報処理システムには、管理装置１０１以外に４台の情報処理装置が含まれているが、情報処理装置の数は３台以下でもよく５台以上でもよい。また、情報処理装置の種類はマルチプロセッサシステム、ＰＣ、及びマルチノードシステムに限られるものではなく、１つ以上のＣＰＵを含む他の種類の情報処理装置を用いてもよい。各情報処理装置又は各ノードに含まれるＣＰＵの数は１つ又は２つに限られるものではなく、３つ以上であってもよい。
【００２１】
図３は、図１の管理装置１０１が保持する情報の例を示している。図３の管理装置１０１は、ロック情報３０１及びシード値３０２を保持する。シード値３０２は、いずれかの情報処理装置に割り当て済みのシード値であり、ロック情報３０１は、シード値３０２に対するアクセスの可否を示す排他制御用の情報である。ロック情報３０１は、アクセス許可を表すアンロック状態又はアクセス禁止を表すロック状態のいずれかの状態を示す。
【００２２】
図４は、図１の各情報処理装置の機能的構成例を示している。図４の情報処理装置４０１は制御部４１１を含み、制御部４１１は、シード値数管理部４２１、シード値生成部４２２、及び実行制御部４２３を含む。なお、制御部４１１を処理部ともいう。
【００２３】
シード値数管理部４２１は、情報処理装置４０１に含まれる全ＣＰＵが行う試験の総回数を計算し、シード値生成部４２２は、管理装置１０１からシード値３０２を取得して試験の総回数と同じ数のシード値を生成する。実行制御部４２３は、生成されたシード値を各ＣＰＵへ配布する。
【００２４】
制御部４１１の処理は、例えば、情報処理装置４０１内のいずれかのＣＰＵにより行われる。したがって、情報処理装置４０１に複数の制御部４１１を設けることも可能である。例えば、図１のマルチプロセッサシステム１０２では、ＣＰＵ１１１又はＣＰＵ１１２のいずれか一方に制御部４１１を設け、マルチプロセッサシステム１０３では、ＣＰＵ１２１及びＣＰＵ１２２のそれぞれに制御部４１１を設けてもよい。
【００２５】
図５は、図４の情報処理装置４０１が行う試験の例を示すフローチャートである。まず、シード値数管理部４２１は、オペレータから指定された試験条件を読み込み（ステップ５０１）、その試験条件に基づいて、情報処理装置４０１に含まれる全ＣＰＵが行う試験の総回数Ｎを計算する（ステップ５０２）。
【００２６】
試験条件としては、例えば、情報処理装置４０１内のＣＰＵ毎の試験回数、情報処理装置４０１の総試験時間等が指定される。ＣＰＵ毎の試験回数が指定された場合、それらの試験回数を加算することで総回数Ｎが求められる。また、総試験時間が指定された場合、その試験時間を１回当たりの試験時間で割り算して試験回数を求め、得られた試験回数に試験命令列を実行するＣＰＵの数を乗算することで、総回数Ｎが求められる。１回当たりの試験時間と試験命令列を実行するＣＰＵの数は、あらかじめパラメータとして指定されている。
【００２７】
次に、シード値生成部４２２は、通信ネットワーク１０６を介して管理装置１０１にリモートアクセスし（ステップ５０３）、ロック情報３０１をチェックする（ステップ５０４）。ロック情報３０１がロック状態を示している場合（ステップ５０４，ＮＯ）、アンロック状態になるまで待機する。一方、ロック情報３０１がアンロック状態を示している場合（ステップ５０４，ＹＥＳ）、ロック情報３０１をロック状態に設定して、排他的アクセス権を獲得する（ステップ５０５）。
【００２８】
次に、シード値生成部４２２は、管理装置１０１からシード値３０２を読み出し（ステップ５０６）、シード値３０２に基づいてＮ個のシード値を生成する（ステップ５０７）。ステップ５０６では、シード値生成部４２２は、管理装置１０１へシード値要求を送信し、管理装置１０１からシード値３０２を受信する。ステップ５０７では、例えば、シード値３０２がＭである場合、Ｍを１ずつインクリメントすることで、ＭからＭ＋Ｎ−１までのＮ個のシード値が生成される。
【００２９】
次に、シード値生成部４２２は、ＭにＮを加算した値Ｍ＋Ｎを、管理装置１０１のシード値３０２に上書きすることで、シード値３０２を更新する（ステップ５０８）。そして、ロック情報３０１をアンロック状態に設定して排他的アクセス権を開放し（ステップ５０９）、管理装置１０１へのアクセスを解除する（ステップ５１０）。
【００３０】
次に、実行制御部４２３は、生成されたＮ個のシード値のうち、各ＣＰＵが行う試験の回数と同じ数のシード値をそのＣＰＵへ配布し、試験開始を指示する（ステップ５１１）。このとき、ＣＰＵ間でシード値が重複しないように、それぞれのＣＰＵへ異なるシード値が配布される。
【００３１】
次に、各ＣＰＵは、配布された１つ以上のシード値を用いて、シード値の数と同じ数の試験命令列を生成し（ステップ５１２）、それらの試験命令列を実行する（ステップ５１３）。配布されたシード値の数がＳ個であれば、Ｓ個の異なる試験命令列が生成される。ステップ５１２及び５１３の処理は、ＣＰＵ間で並列に行われる。
【００３２】
ステップ５１２では、乱数生成アルゴリズムに基づいて各シード値からランダムデータを生成し、ランダムデータを用いて試験命令列を生成する。例えば、命令毎に用意されたＡＮＤデータ及びＯＲデータを用いて、ランダムデータとＡＮＤデータの論理積を求め、その論理積とＯＲデータの論理和を求めることで、１つの命令を生成することができる。乱数生成アルゴリズムとしては、メルセンヌ・ツイスタ、平方採中法、線形合同法等を用いることができる。
【００３３】
次に、図６から図１２までを参照しながら、シード値生成処理の具体例を説明する。この具体例では、各ＣＰＵが行う試験の回数は１回であり、試験の総回数Ｎは、各情報処理装置に含まれるＣＰＵの数に一致するものと仮定する。
【００３４】
図６は、図１の情報処理システムにおいて、通信ネットワーク１０６に別の情報処理装置が接続された構成を示している。図６のマルチプロセッサシステム６０１は、ＣＰＵ＃０〜ＣＰＵ＃３の４つのＣＰＵを含む。管理装置１０１のロック情報３０１は、その値が“１”のときロック状態を示し、“０”のときアンロック状態を示す。
【００３５】
マルチプロセッサシステム６０１は、まず、管理装置１０１にアクセスしてロック情報３０１をチェックする。ここでは、ロック情報３０１の値が“０”であるため、図７に示すように、ロック情報３０１に“１”を書き込んでロック状態に設定する。
【００３６】
次に、通信ネットワーク１０６に接続されたマルチノードシステム７０１は、管理装置１０１にアクセスしてロック情報３０１をチェックする。このとき、ロック情報３０１の値が“１”であるため、アンロック状態になるまで待機する。マルチノードシステム７０１は、ノード７１１、７１２、及び７１３を含み、各ノードは、ＣＰＵ＃０及びＣＰＵ＃１を含む。
【００３７】
次に、マルチプロセッサシステム６０１は、図８に示すように、管理装置１０１からシード値３０２を読み出し、シード値３０２に基づいて４個のシード値を生成する。ここでは、シード値３０２が“０ｘ００００００１０”（１６進数）であるので、“０ｘ００００００１０”〜“０ｘ００００００１３”の４個のシード値が生成される。
【００３８】
次に、マルチプロセッサシステム６０１は、図９に示すように、“０ｘ００００００１０”に４を加算した値“０ｘ００００００１４”を、管理装置１０１のシード値３０２に上書きすることで、シード値３０２を更新する。そして、図１０に示すように、ロック情報３０１に“０”を書き込んでアンロック状態に設定する。
【００３９】
その後、待機していたマルチノードシステム７０１は、図１１に示すように、ロック情報３０１に“１”を書き込んでロック状態に設定し、管理装置１０１からシード値３０２を読み出して６個のシード値を生成する。ここでは、シード値３０２が“０ｘ００００００１４”であるので、“０ｘ００００００１４”〜“０ｘ００００００１９”の６個のシード値が生成される。
【００４０】
一方、マルチプロセッサシステム６０１は、生成された４個のシード値を各ＣＰＵへ配布し、各ＣＰＵは、配布されたシード値を用いて試験命令列を生成し、その試験命令列を実行する。
【００４１】
次に、マルチノードシステム７０１は、図１２に示すように、“０ｘ００００００１４”に６を加算した値“０ｘ００００００１Ａ”を、管理装置１０１のシード値３０２に上書きすることで、シード値３０２を更新する。そして、ロック情報３０１に“０”を書き込み、生成された６個のシード値を各ＣＰＵへ配布する。各ＣＰＵは、配布されたシード値を用いて試験命令列を生成し、その試験命令列を実行する。
【００４２】
図５の試験では、情報処理装置４０１が管理装置１０１から取得したシード値３０２に基づいてＮ個のシード値を生成しているが、管理装置１０１がシード値を生成して情報処理装置４０１へ送信してもよい。
【００４３】
図１３は、このような試験の例を示すフローチャートである。図１３のステップ１３０１〜１３０５及び１３０８〜１３１２の処理は、図５のステップ５０１〜５０５及び５０９〜５１３の処理と同様である。
【００４４】
情報処理装置４０１のシード値生成部４２２は、ステップ５０５でロック情報３０１をロック状態に設定した後、試験の総回数Ｎを管理装置１０１へ通知する（ステップ１３０６）。
【００４５】
管理装置１０１は、シード値３０２に基づいてＮ個のシード値を生成し、情報処理装置４０１へ送信する。例えば、シード値３０２がＭである場合、Ｍを１ずつインクリメントすることで、ＭからＭ＋Ｎ−１までのＮ個のシード値が生成される。そして、管理装置１０１は、ＭにＮを加算した値Ｍ＋Ｎをシード値３０２に上書きすることで、シード値３０２を更新する。
【００４６】
情報処理装置４０１のシード値生成部４２２は、管理装置１０１からＮ個のシード値を受信し（ステップ１３０７）、ステップ１３０８以降の処理を行う。
このような情報処理システムによれば、管理装置１０１がシード値を生成して情報処理装置４０１へ配布するため、各情報処理装置４０１にシード値生成アルゴリズムを実装する必要がなくなる。
【００４７】
ところで、管理装置１０１におけるシード値生成方法としては、Ｍを１ずつインクリメントする方法以外にも様々な方法が考えられる。例えば、２以上の整数Ｙを用いてＭをＹずつインクリメントすることで、Ｎ個のシード値を生成してもよい。
【００４８】
図１４は、このようなシード値生成処理の例を示すフローチャートである。シード値Ｍの取り得る値の範囲は最小値ＭＩＮから最大値ＭＡＸまでであり、Ｍの初期値はＭＩＮである。管理装置１０１は、Ｍ以外に基本シード値Ｂを保持している。Ｂの取り得る値の範囲はＭＩＮからＭＩＮ＋Ｙ−１までであり、Ｂの初期値はＭＩＮである。
【００４９】
まず、管理装置１０１は、生成済みシード値の数を示す変数Ｃを０に設定し（ステップ１４０１）、Ｍをシード値として生成する（ステップ１４０２）。次に、Ｃを１だけインクリメントし（ステップ１４０３）、ＭをＹだけインクリメントして（ステップ１４０４）、ＭをＭＡＸと比較する（ステップ１４０５）。
【００５０】
ＭがＭＡＸ以下であれば（ステップ１４０５，ＮＯ）、ＣをＮと比較する（ステップ１４１０）。そして、ＣがＮに達していなければ（ステップ１４１０，ＮＯ）、ステップ１４０２以降の処理を繰り返す。
【００５１】
一方、ＭがＭＡＸを超えた場合は（ステップ１４０５，ＹＥＳ）、Ｂ＋１とＭＩＮ＋Ｙとを比較する（ステップ１４０６）。Ｂ＋１がＭＩＮ＋Ｙに達していなければ（ステップ１４０６，ＹＥＳ）、Ｂを１だけインクリメントする（ステップ１４０７）。そして、Ｍ＝Ｂと設定して（ステップ１４０９）、ステップ１４１０以降の処理を行う。一方、Ｂ＋１がＭＩＮ＋Ｙに達した場合は（ステップ１４０６，ＮＯ）、Ｂ＝ＭＩＮと設定して（ステップ１４０８）、ステップ１４０９以降の処理を行う。
【００５２】
このように、ＭがＭＡＸを超えるまでは、ＭＩＮから順にＹずつインクリメントすることでシード値が生成され、ＭがＭＡＸを超えると、ＭＩＮ＋１から順にＹずつインクリメントすることでシード値が生成される。そして、ＭがＭＡＸを超える度にＭの初期値Ｂがインクリメントされ、Ｂ＋１がＭＩＮ＋Ｙに達すると、Ｂが初期値ＭＩＮに再設定される。したがって、ＭがＭＡＸを超えなければ、Ｍ、Ｍ＋Ｙ、Ｍ＋２Ｙ、Ｍ＋３Ｙ、・・・、Ｍ＋（Ｎ−１）ＹのＮ個のシード値が生成され、シード値３０２はＭ＋ＮＹとなる。
【００５３】
管理装置１０１は、現在時刻に基づいてＮ個のシード値を生成することも可能である。この場合、シード値３０２として現在時刻Ｔが用いられる。
【００５４】
図１５は、このようなシード値生成処理の例を示すフローチャートである。まず、管理装置１０１は、装置の内部又は外部から現在時刻Ｔの情報を取得し（ステップ１５０１）、現在時刻がＴ＋Ｎになるまで待機する（ステップ１５０２）。そして、現在時刻がＴ＋Ｎになると、Ｔを１ずつインクリメントすることで、ＴからＴ＋Ｎ−１までのＮ個のシード値を生成する（ステップ１５０３）。
【００５５】
現在時刻がＴ＋Ｎになるまで待ってからシード値を情報処理装置４０１へ送信することで、他の情報処理装置へ送信するシード値との重複が防止される。
現在時刻Ｔは、管理装置１０１のシステム時刻、システムクロック等から取得した値であり、その最小単位としては、分、秒、ミリ秒、マイクロ秒、Central Processing Unit （ＣＰＵ）の１クロック等を用いることができる。ステップ１５０２の待機時間は、最小単位に基づいて設定される。現在時刻Ｔとしては、例えば、以下のような値を用いることが可能である。
（ａ）協定世界時（ＵＴＣ）１９７０年１月１日０時０分０秒からの経過時間を最小単位で表した値
（ｂ）ＣＰＵクロック毎に加算される所定ビット数のタイムスタンプカウンタの値
（ｃ）ＣＰＵのＴＩＣＫレジスタの値
また、管理装置１０１は、シード値の配列をシャッフルすることでＮ個のシード値を生成することも可能である。この場合、管理装置１０１は、所定範囲（最小値ＭＩＮ〜最大値ＭＡＸ）の値が格納された配列をシャッフルし、シャッフル後の配列の先頭から順番にＮ個の値をシード値として用いる。
【００５６】
例えば、ＭＩＮ＝０、ＭＡＸ＝１５の場合、図１６に示すように、データ位置を示すｉｎｄｅｘ０〜１５に対応してシード値の候補となるｄａｔａ０〜１５が格納された配列が生成される。そして、以下の手順でＮ個のシード値が生成される。
（１）乱数生成アルゴリズムに基づいて、ＭＩＮ〜ＭＡＸまでの範囲に含まれる２つの乱数を生成する。
（２）生成された２つの乱数をｉｎｄｅｘとする２つのｄａｔａを入れ替える。
（３）（１）及び（２）の処理を所定回数繰り返す。
（４）配列の先頭から順番にＮ個のｄａｔａをシード値として選択する。
【００５７】
例えば、Ｎ＝４の場合、図１７に示すようなシャッフル後の配列の先頭から順番に４個のｄａｔａ“６”、“１３”、“７”、及び“５”がシード値として選択される。
以上説明した実施形態によれば、管理装置を設けて複数の情報処理装置のためのシード値を管理することで、全情報処理装置の全ＣＰＵの間で同じ試験命令列が生成されることが抑止され、情報処理システム全体における試験網羅性が向上する。
【００５８】
このため、限られた試験期間の中で可能な限り多数の試験命令列を実行して、障害の有無をチェックすることが可能になり、ランダム性を高めるために、オペレータが情報処理装置毎に使用するシード値を設定する必要がなくなる。さらに、長時間又は複数回の試験実施に起因するシード値の重複が抑止され、試験網羅性の頭打ち状態が回避される。
【００５９】
図５のフローチャートにおいて、必ずしもすべてのステップを実行する必要はなく、情報処理システムの構成や条件に応じて一部のステップを省略又は変更することも可能である。例えば、試験の総回数Ｎがあらかじめ決められている場合は、ステップ５０１及び５０２の処理を省略してもよい。また、ステップ５０７のシード値生成処理をステップ５０８、５０９、又は５１０の後へ移動してもよい。図１３〜図１５のフローチャートにおいても、同様に、情報処理システムの構成や条件に応じて一部のステップを省略又は変更することが可能である。
【００６０】
図４の情報処理装置４０１は、例えば、図１８に示すような構成を用いて実現可能である。図１８の情報処理装置は、Ｐ個（Ｐは１以上の整数）のＣＰＵ１８０１−１〜１８０１−Ｐ、メモリ１８０２、入力装置１８０３、出力装置１８０４、外部記憶装置１８０５、媒体駆動装置１８０６、及びネットワーク接続装置１８０７を含む。これらはバス１８０８により互いに接続されている。
【００６１】
メモリ１８０２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。例えば、ＣＰＵ１８０１は、メモリ１８０２を利用してプログラムを実行することにより、制御部４１１の処理を行う。
【００６２】
入力装置１８０３は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示や情報の入力に用いられる。出力装置１８０４は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザ又はオペレータへの問い合わせや処理結果の出力に用いられる。
【００６３】
外部記憶装置１８０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。この外部記憶装置１８０５には、ハードディスクドライブも含まれる。情報処理装置は、外部記憶装置１８０５にプログラム及びデータを格納しておき、それらをメモリ１８０２にロードして使用することができる。
【００６４】
媒体駆動装置１８０６は、可搬型記録媒体１８０９を駆動し、その記録内容にアクセスする。可搬型記録媒体１８０９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。この可搬型記録媒体１８０９には、Compact Disk Read Only Memory （ＣＤ−ＲＯＭ）、Digital Versatile Disk（ＤＶＤ）、Universal Serial Bus（ＵＳＢ）メモリ等も含まれる。ユーザ又はオペレータは、この可搬型記録媒体１８０９にプログラム及びデータを格納しておき、それらをメモリ１８０２にロードして使用することができる。
【００６５】
このように、各種処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体には、メモリ１８０２、外部記憶装置１８０５、及び可搬型記録媒体１８０９のような、物理的な（非一時的な）記録媒体が含まれる。
【００６６】
ネットワーク接続装置１８０７は、通信ネットワーク１０６に接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置１８０７を介して受け取り、それらをメモリ１８０２にロードして使用することもできる。
【００６７】
なお、各情報処理装置が図１８のすべての構成要素を含む必要はなく、用途や条件に応じて一部の構成要素を省略又は変更することも可能である。例えば、ユーザ又はオペレータとのインタフェースが不要な場合は、入力装置１８０３及び出力装置１８０４を省略してもよい。
【００６８】
図３の管理装置１０１も、図１８と同様の構成を用いて実現可能である。この場合、ＣＰＵ１８０１の数は１個でもよい。図３のロック情報３０１及びシード値３０２は、例えば、メモリ１８０２に保持され、ＣＰＵ１８０１は、メモリ１８０２を利用してプログラムを実行することにより、管理装置１０１の処理を行う。
【００６９】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【００７０】
（付記１）１つ以上の処理部を含む情報処理装置によって実行されるプログラムであって、
前記１つ以上の処理部のうちの１つの処理部に、前記情報処理装置を含む複数の情報処理装置のための管理装置が保持するシード値に基づき他の情報処理装置と重複しないように生成された、前記１つ以上の処理部が行う試験の総回数と同じ数のシード値のうち、該１つの処理部が行う試験の回数と同じ数のシード値に基づいて、該１つの処理部が行う試験の回数と同じ数の試験命令列を生成させ、
前記１つの処理部に前記生成させた試験命令列を実行させることを特徴とするプログラム。
（付記２）前記管理装置が保持するシード値を該管理装置から受信し、受信したシード値に基づいて前記試験の総回数と同じ数のシード値を生成し、受信したシード値とは異なるシード値により前記管理装置が保持するシード値を更新する処理を、前記処理部にさらに実行させる付記１記載のプログラム。
（付記３）前記複数の情報処理装置の間の排他制御用に前記管理装置が保持するロック情報をチェックし、該ロック情報がアンロック状態を示している場合、該ロック情報をロック状態に変更し、前記管理装置が保持するシード値を該管理装置から受信し、受信したシード値に基づいて前記試験の総回数と同じ数のシード値を生成し、受信したシード値とは異なるシード値により前記管理装置が保持するシード値を更新し、該ロック情報をアンロック状態に戻す処理を、前記処理部にさらに実行させる付記１記載のプログラム。
（付記４）前記試験の総回数を前記管理装置に通知し、前記試験の総回数と同じ数のシード値を前記管理装置から受信する処理を、前記処理部にさらに実行させる付記１記載のプログラム。
（付記５）前記複数の情報処理装置の間の排他制御用に前記管理装置が保持するロック情報をチェックし、該ロック情報がアンロック状態を示している場合、該ロック情報をロック状態に変更し、前記試験の総回数を前記管理装置に通知し、前記試験の総回数と同じ数のシード値を前記管理装置から受信し、該ロック情報をアンロック状態に戻す処理を、前記処理部にさらに実行させる付記１記載のプログラム。
（付記６）１つ以上の処理部を含む情報処理装置であって、
前記１つ以上の処理部のうちの１つの処理部が、前記情報処理装置を含む複数の情報処理装置のための管理装置が保持するシード値に基づき他の情報処理装置と重複しないように生成された、該１つ以上の処理部が行う試験の総回数と同じ数のシード値のうち、該１つの処理部が行う試験の回数と同じ数のシード値に基づいて、該１つの処理部が行う試験の回数と同じ数の試験命令列を生成し、該試験命令列を実行する
ことを特徴とする情報処理装置。
（付記７）複数の情報処理装置のうちのある情報処理装置に含まれる１つ以上の処理部のうちの１つの処理部が、該複数の情報処理装置のための管理装置が保持するシード値に基づき他の情報処理装置と重複しないように生成された、該１つ以上の処理部が行う試験の総回数と同じ数のシード値のうち、該１つの処理部が行う試験の回数と同じ数のシード値に基づいて、該１つの処理部が行う試験の回数と同じ数の試験命令列を生成し、
前記１つの処理部が前記試験命令列を実行する
ことを特徴とする試験方法。
【符号の説明】
【００７１】
１０１  管理装置
１０２、１０３、６０１  マルチプロセッサシステム
１０４  ＰＣ
１０５、７０１  マルチノードシステム
１０６  通信ネットワーク
１１１、１１２、１２１、１２２、１３１、１５１、１５２、１６１、１６２、１７１、１７２  ＣＰＵ
１４１、１４２、１４３、１７１、１７２、１７３  ノード
３０１  ロック情報
３０２  シード値
４０１  情報処理装置
４１１  制御部
４２１  シード値数管理部
４２２  シード値生成部
４２３  実行制御部
２０２  設定部
２０３  生成部
２０４  動作パラメータ格納部
９０１、１２０１、１９０１、２１０１  出発地
９０２、１２０２、１９０２、２１０２  目的地
９１１〜９１４、９３１、１００１〜１００４、１０２１、１２１１〜１２１５、１２３１、１３０１〜１３０４、１３２１  道路
９２１、９２２、１０１１、１０１２、１２２１、１３１１  部分経路
１１０１、１４０１、１９１１、２１１１  経路
１２４１、１３３１  インターチェンジ
１７０１  矢印
２００１、２２０１、２３１１、２４０１、２５１１、２５１２、２６０１、２６０２、２７０１、２８０１  領域
２３０１  直線
２５０１  メッシュ
１８０１−１〜１８０１−Ｐ  ＣＰＵ
１８０２  メモリ
１８０３  入力装置
１８０４  出力装置
１８０５  外部記憶装置
１８０６  媒体駆動装置
１８０７  ネットワーク接続装置
１８０８  バス
１８０９  可搬型記録媒体
【図１】
2013120558.tif 000003
【図２】
2013120558.tif 000004
【図３】
2013120558.tif 000005
【図４】
2013120558.tif 000006
【図５】
2013120558.tif 000007
【図６】
2013120558.tif 000008
【図７】
2013120558.tif 000009
【図８】
2013120558.tif 000010
【図９】
2013120558.tif 000011
【図１０】
2013120558.tif 000012
【図１１】
2013120558.tif 000013
【図１２】
2013120558.tif 000014
【図１３】
2013120558.tif 000015
【図１４】
2013120558.tif 000016
【図１５】
2013120558.tif 000017
【図１６】
2013120558.tif 000018
【図１７】
2013120558.tif 000019
【図１８】
2013120558.tif 000020