(57)【要約】  本発明はスケーラビリティ評価を定量的に行うための技術を提供するものである。すなわち、本方法は、ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間である処理時間τ(p)と、実施される処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）とを取得する工程と、処理時間τ(p)及び並列計算部分の処理時間γi(p)を用いて、並列計算部分の処理時間がゼロとなったと仮定した場合における全体の処理時間である限界処理時間τLT(p)を算出する工程と、複数のプロセッサ数ｐについて、処理時間τ(p)と限界処理時間τLT(p)との関係を出力する工程とを含む。理想的には処理時間τ(p)に依存することなく限界処理時間τLT(p)は一定となり、理想との差を判断することがスケーラビリティの評価を行うことができるようになる。【特許請求の範囲】
【請求項１】
並列計算機システムのスケーラビリティに関するデータ処理方法であって、
データ取得部により、ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間である処理時間τ(p)と、実施される処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）とを取得し、データ格納部に格納するデータ取得ステップと、
限界処理時間算出部により、前記データ格納部に格納されている前記処理時間τ(p)及び前記並列計算部分の処理時間γi(p)を用いて、並列計算部分の処理時間がゼロとなったと仮定した場合における全体の処理時間である限界処理時間τLT(p)を算出し、前記データ格納部に格納する限界処理時間算出ステップと、
スケーラビリティ処理部により、複数のプロセッサ数ｐについて、前記データ格納部に格納されている前記処理時間τ(p)と前記限界処理時間τLT(p)との関係を出力部に出力する出力ステップと、
を含む、スケーラビリティに関するデータ処理方法。
【請求項２】
前記出力ステップが、
前記関係を、前記処理時間τ(p)の軸と前記限界処理時間τLT(p)の軸とで張られる空間においてグラフ化して出力するステップ
を含む請求項１記載のスケーラビリティに関するデータ処理方法。
【請求項３】
前記出力ステップが、
前記プロセッサ数ｐの増加に伴う、前記処理時間τ(p)の変化量に対する前記限界処理時間τLT(p)の変化量の割合が負から正に転換する際のプロセッサ数ｐを限界点として特定し、当該プロセッサ数ｐを出力する限界点特定ステップ
を含む請求項１記載のスケーラビリティに関するデータ処理方法。
【請求項４】
前記限界点特定ステップが、
前記割合が負から正に転換する直前のｐを前記限界点として特定するステップ
を含む請求項３記載のスケーラビリティに関するデータ処理方法。
【請求項５】
第２の計算機システムについて前記データ取得ステップと前記限界処理時間算出ステップと前記出力ステップとを実施するステップと、
スケーラビリティ比較部により、前記計算機システムと前記第２の計算機システムとで同一の前記処理時間τ(p)となる、前記計算機システムにおける第１の限界処理時間τLT1(p)及び前記第２の計算機システムにおける第２の限界処理時間τLT2(p)を特定し、前記データ格納部に格納するステップと、
前記スケーラビリティ比較部により、前記データ格納部に格納された前記第１の限界処理時間τLT1(p)と前記第２の限界処理時間τLT2(p)との比を算出し、出力するステップと、
をさらに含む請求項１記載のスケーラビリティに関するデータ処理方法。
【請求項６】
前記限界処理時間算出ステップが、
処理に前記処理時間τ(p)が必要であったプロセッサｊの前記並列計算部分の処理時間γj(p)を特定するステップと、
前記処理時間τ(p)と前記並列計算部分の処理時間γj(p)との差を前記限界処理時間τLT(p)として特定するステップと、
を含む請求項１記載のスケーラビリティに関するデータ処理方法。
【請求項７】
前記限界処理時間算出ステップが、
前記並列計算部分の処理時間γi(p)の平均を算出するステップと、
前記処理時間τ(p)と前記並列計算部分の処理時間γi(p)の平均との差を前記限界処理時間τLT(p)として特定するステップと、
を含む請求項１記載のスケーラビリティに関するデータ処理方法。
【請求項８】
前記並列計算機システムにおいて、前記並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）と、各プロセッサにおける処理時間τi(p)とを測定し、前記並列計算機システムの記憶部に格納するステップ
をさらに含む請求項１記載のスケーラビリティに関するデータ処理方法。
【請求項９】
請求項１乃至７のいずれか１つ記載のスケーラビリティに関するデータ処理方法をコンピュータに実行させるためのプログラム。
【請求項１０】
並列計算機システムのスケーラビリティに関するデータ処理装置であって、
ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間である処理時間τ(p)と、実施される処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）とを取得し、データ格納部に格納するデータ取得手段と、
前記データ格納部に格納されている前記処理時間τ(p)及び前記並列計算部分の処理時間γi(p)を用いて、並列計算部分の処理時間がゼロとなったと仮定した場合における全体の処理時間である限界処理時間τLT(p)を算出し、前記データ格納部に格納する限界処理時間算出手段と、
複数のプロセッサ数ｐについて、前記データ格納部に格納されている前記処理時間τ(p)と前記限界処理時間τLT(p)との関係を出力部に出力する出力手段と、
を有するデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列計算機システムのスケーラビリティに関するデータ処理技術に関する。
【背景技術】
【０００２】
並列処理において、プロセッサ数ｐの増加と共に性能が向上することが求められており、これが実現した場合スケーラビリティがある、実現しない場合スケーラビリティがないと表現する。スケーラビリティを議論する場合には、図１のようにプロセッサ数ｐと並列処理時間τ(p)との関係を見て判断する方法、図２のようにプロセッサ数ｐと１プロセッサの場合の処理時間τ(1)に対する並列処理時間τ(p)の比（加速率Ａp＝τ(1)／τ(p)）との関係を見て判断する方法がある。なお、並列処理時間τ(p)は以下のように表される。τi(p)はプロセッサiの処理時間である。【０００３】
【数１】
2008010291.tif 000002
【０００４】
図１の場合、並列処理時間τ(p)がプロセッサ数と共に減少する場合スケーラビリティがあるという。また、図２の場合は、加速率Ａpがプロセッサ数ｐと共に増加する場合（理想的には原点を通る４５°線に沿って増加する場合）、スケーラビリティがあるという。しかし、通常であれば、プロセッサ数ｐの増加に伴い並列処理時間τ(p)の減少は緩やかになり、比の増加は徐々に飽和する。従って、図１や図２のカーブのどこまでをスケーラビリティがあるというかは、判断する人によって異なり、非常にあいまいな基準で判断されている。このような事項については、関口智嗣など、「定量的な並列システムのスケーラビリティ評価指標」、並列処理シンポジウムＪＳＰＰ’９６、ｐ２３５−２４１、１９９６年６月を参照のこと。また、図２の場合には、τ(1)を必要とするため、τ(1)を測定できない場合には、スケーラビリティを評価できないことになる。
【非特許文献１】関口智嗣など、「定量的な並列システムのスケーラビリティ評価指標」、並列処理シンポジウムＪＳＰＰ’９６、ｐ２３５−２４１、１９９６年６月
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来技術に対する改良として、限界加速率ＡLT(p)を以下のように定義して、プロセッサ数ｐとの関係を図３のように表すようにすることも可能である。なお、限界加速率ＡLT(p)は、並列計算部分の処理時間が０となると仮定した場合における限界倍率であり、スケーラビリティのポテンシャルを定量的に評価できる。すなわち、理想的にはあと何倍早くすることができるかを表すことができる。【０００６】
【数２】
2008010291.tif 000003
【０００７】
【数３】
2008010291.tif 000004
ここでεp(p)は、並列効率メトリックと呼ぶ。【０００８】
図３を見れば、ある並列計算機システムにおいてｎ＝８００という計算規模であれば、プロセッサ数ｐ＝１０の時、理想的には１．５倍程度速くなると分かる。また、ｎ＝７２００という計算規模であれば、プロセッサｐ＝１０の時、理想的には２倍程度速くなると分かるさらに、ｎ＝５１２００という計算規模であれば、プロセッサＰ＝１０の時、理想的には２．５倍程度速くなると分かる。【０００９】
また、限界処理時間τLT(p)を以下のように定義して、プロセッサ数ｐとの関係を図４のように表すようにすることも可能である。限界処理時間τLT(p)は、並列計算部分の処理時間が０となったと仮定した時の処理時間である。【００１０】
【数４】
2008010291.tif 000005
【００１１】
図３で用いた限界加速率ＡLT(p)では計算規模の大きさによる処理時間の差異が出ないが、限界処理時間τ(p)を用いると計算規模の大きさを意識した評価が可能となる。ｎ＝８００という計算規模とｎ＝５１２００という計算規模とでは処理時間が１００倍以上異なり、使用するメモリ量もキャッシュの使い方も異なるはずである。このような問題は、図４のような限界処理時間τLT(p)とプロセッサ数ｐとの関係を考察することによって評価できるようになる。【００１２】
しかし、図３及び図４のようなグラフを用いたスケーラビリティ評価は、どこまでをスケーラビリティがあると言うかわからないという問題がある。【００１３】
そこで、本発明の目的は、スケーラビリティ評価を定量的に行うための新規な技術を提供することである。【００１４】
また、本発明の他の目的は、スケーラビリティの限界点を提示するための技術を提供することである。【００１５】
さらに、本発明の他の目的は、複数の並列計算機システムについてスケーラビリティ比較を行うための技術を提供することである。
【課題を解決するための手段】
【００１６】
本発明に係る、並列計算機システムのスケーラビリティに関するデータ処理方法は、データ取得部により、ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間である処理時間τ(p)と、実施される処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）とを取得し、データ格納部に格納するデータ取得ステップと、限界処理時間算出部により、データ格納部に格納されている処理時間τ(p)及び並列計算部分の処理時間γi(p)を用いて、並列計算部分の処理時間がゼロとなったと仮定した場合における全体の処理時間である限界処理時間τLT(p)を算出し、データ格納部に格納する限界処理時間算出ステップと、スケーラビリティ処理部により、複数のプロセッサ数ｐについて、データ格納部に格納されている処理時間τ(p)と限界処理時間τLT(p)との関係を出力部に出力する出力ステップとを含む。【００１７】
このように処理時間τ(p)と限界処理時間τLT(p)との関係を考察すると、理想的には処理時間τ(p)に依存することなく限界処理時間τLT(p)は一定となる。すなわち、理想との差を判断することが容易に行うことができるようになる。なお、τ(1)が測定できたか否かに依存しないので、τ(1)が測定できない場合においてもスケーラビリティを評価できるようになる。【００１８】
また、上で述べた出力ステップが、上記関係を、処理時間τ(p)の軸と限界処理時間τLT(p)の軸とで張られる空間においてグラフ化して出力するステップを含むようにしてもよい。これによって、プロセッサ数ｐの変化に伴って、それらの関係がどのように変化するかを視覚的に理解でき、さらに理想的な値も視覚的に把握できるようになる。【００１９】
さらに、上で述べた出力ステップが、プロセッサ数ｐの増加に伴う、処理時間τ(p)の変化量に対する限界処理時間τLT(p)の変化量の割合が負から正に転換する際のプロセッサ数ｐを限界点として特定し、当該プロセッサ数ｐを出力する限界点特定ステップを含むようにしてもよい。通常は、プロセッサ数ｐが少ない場合にはスケーラビリティがある状態であり、プロセッサ数ｐが増加すると徐々にスケーラビリティがなくなる。スケーラビリティがある状態では、処理時間τ(p)の減少に伴って限界処理時間τLT(p)は増加する、すなわち傾きは負であり、理想的には傾き（割合）＝０であるため、傾きが正に転換した後はスケーラビリティがないと判断できる。なお、計測誤差や計算誤差を加味した形で傾きの負から正への転換については判断する場合もある。【００２０】
また、上で述べた限界点特定ステップが、上記割合が負から正に転換する直前のプロセッサ数ｐを上記限界点として特定するステップを含むようにしてもよい。簡易的にスケーラビリティの限界点を判断することができる。なお、計測誤差や計算誤差を加味した形で負から正への転換については判断する場合もある。【００２１】
さらに、第２の計算機システムについてデータ取得ステップと限界処理時間算出ステップと出力ステップとを実施するステップと、スケーラビリティ比較部により、計算機システムと第２の計算機システムとで同一の処理時間τ(p)となる、計算機システムにおける第１の限界処理時間τLT1(p)及び第２の計算機システムにおける第２の限界処理時間τLT2(p)を特定し、データ格納部に格納するステップと、スケーラビリティ比較部により、データ格納部に格納された第１の限界処理時間τLT1(p)と第２の限界処理時間τLT2(p)との比を算出し、出力するステップとさらに含むようにしてもよい。スケーラビリティがある状態においては、計算機システム間の定量的な比較が可能となる。限界処理時間τLT(p)の大きい方がスケーラビリティが悪いことになる。【００２２】
さらに、上で述べた限界処理時間算出ステップが、処理時間τ(p)が必要となったプロセッサｊの並列計算部分の処理時間γj(p)を特定するステップと、処理時間τ(p)と並列計算部分の処理時間γj(p)との差を限界処理時間τLT(p)として特定するステップとを含むようにしてもよい。ロードバランスがとれている場合には、このような簡易的な手法を用いても評価が可能となる。【００２３】
また、上で述べた限界処理時間算出ステップが、並列計算部分の処理時間γi(p)の平均を算出するステップと、処理時間τ(p)と並列計算部分の処理時間γi(p)の平均との差を限界処理時間τLT(p)として特定するステップとを含むようにしてもよい。このような計算方法によれば、ロードバランスがとれていないような場合においても正確に限界処理時間τLT(p)を算出することができるようになる。【００２４】
さらに、並列計算機システムにおいて、並列計算部分の処理時間γi(p)と、各プロセッサにおける処理時間τi(p)とを測定し、並列計算機システムの記憶部に格納するステップをさらに含むようにしてもよい。【００２５】
上で述べたデータ処理方法をコンピュータに実行させるためのプログラムを作成することができ、このプログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介してデジタル信号として配信される場合もある。尚、中間的な処理結果はメモリ等の記憶装置に一時保管される。
【図面の簡単な説明】
【００２６】
【図１】図１は、第１の従来技術に係るグラフを表す図である。
【図２】図２は、第２の従来技術に係るグラフを表す図である。
【図３】図３は、第１の改良例に係るグラフを表す図である。
【図４】図４は、第２の改良例に係るグラフを表す図である。
【図５】図５は、本発明の一実施の形態に係るシステム概要図である。
【図６】図６は、サンプリングによる測定の概要を説明するための図である。
【図７】図７は、本発明の一実施の形態に係るメインの処理フローを示す図である。
【図８】図８は、スケーラビリティ限界点判定データ格納部に格納されるデータの一例を示す図である。
【図９】図９は、スケーラビリティ評価グラフの一例を示す図である。
【図１０】図１０は、スケーラビリティ限界点特定処理の処理フローを示す図である。
【図１１】図１１は、スケーラビリティ限界点判定データ格納部に格納されるデータの他の例を示す図である。
【図１２】図１２は、スケーラビリティ評価グラフの他の例を示す図である。
【発明を実施するための最良の形態】
【００２７】
図５に本発明の一実施の形態に係るシステム概要図を示す。スケーラビリティ評価装置１００は、並列計算機システム２００のスケーラビリティを評価する単一プロセッサのコンピュータであり、印刷装置や表示装置といった出力装置１１０と接続されている。但し、スケーラビリティ評価装置１００は、並列計算機であってもよい。スケーラビリティ評価装置１００は、データ取得部１０と、限界処理時間算出部１１と、スケーラビリティ処理部１２とを有する。スケーラビリティ処理部１２は、スケーラビリティ評価グラフ生成部２１と、スケーラビリティ限界点判定部２２と、スケーラビリティ比較部２３とを有する。スケーラビリティ評価装置１００は、ログデータ格納部３０とスケーラビリティ限界点判定データ格納部４０に接続されている。一方、並列計算機システム２００は、測定部２０１を含む。例えばスケーラビリティ評価装置１００は、並列計算機システム２００とネットワークにて接続されている。並列計算機システム２００の比較を行う場合には、並列計算機システム２００が複数存在することになる。また、並列計算機システム２００は、プロセッサ個数ｐを変化させて同じ処理を実施させることができるものである。【００２８】
並列計算機システム２００の測定部２０１は、プログラムに従って並列処理を実行しながら、プロセッサ数ｐの場合における各プロセッサｉの並列処理時間γi(p)と、各プロセッサｉの処理時間τi(p)とを測定する。なお、各並列性能阻害要因ｊの処理時間χi,j(p)を測定するようにしても良い。例えば、各処理の開始から終了までをタイマで計測したり、各処理の開始時刻及び終了時刻を記録して処理終了後に処理時間を計算する。時間の計測は、オペレーティング・システム（ＯＳ：Operating System）を含むソフトウエアによる場合もあれば、ハードウエアによる場合もある。測定された処理時間のデータについては、一旦並列計算機システム２００のメモリ中に格納され、場合によってはハードディスクなどの他の記憶装置に格納される。【００２９】
また、処理時間の測定ではなく、一定時間間隔毎に実行中のプログラムの事象を確認し、各事象についてカウントを行う場合もある。このような測定を、サンプリングによる測定と呼ぶ。測定精度による違いはあるが、時間測定による方法とサンプリングによる方法では結果は同じになる。【００３０】
図６にサンプリングによる測定の概念図を示す。図６では左から右に時間が経過する様子を示している。図６において下向き矢印はサンプリングのタイミングを示しており、下向き矢印の間隔で表されるようにサンプリングは一定時間間隔で行われる。図６においては、最初に冗長処理がχi,RED(p)だけ実施された後、並列計算がγi(p)だけ行われる。なお、全体として処理はτi(p)だけ実施されている。サンプリング回数は、χi,RED(p)だけ続いた冗長処理の事象においては７回、γi(p)だけ続いた並列計算の事象においては９回である。全体の処理時間τi(p)の間では、サンプリング回数は２２回である。並列性能阻害要因のうち意図して測定したχi,RED(p)以外の事象をまとめてχi,others(p)で表し、意図して測定したτi(p)、χi,RED(p)及びγi(p)を用いてχi,others(p)の間のサンプリング回数が６回（＝２２−９−７）であることが分かる。なお、上でも述べたが並列性能阻害要因ｊの処理時間χi,j(p)については必ずしも測定する必要はない。但し、以下では一般的なサンプリングによる測定について述べているので、並列性能阻害要因ｊの処理時間χi,j(p)の測定についても触れている。【００３１】
実際にどのようにサンプリングによる測定を実施するかについては、その概要を以下に説明しておく。
（１）τi(p)の部分
（ａ）処理の始めにおいて事象τi(p)のためのフラグをonにし、処理の終了においてoffにする。実行時に事象τi(p)のためのフラグのon/offを一定時間間隔で識別し、onと識別された回数をカウントしてサンプリング回数を得るものとする。【００３２】
以下の方法のいずれかの記述と処理を、必要に応じて組み合わせて測定する。
・プログラマが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、ツールが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをon/offさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、コンパイラが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをon/offさせるための記述を行う。
・コンパイラが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ＯＳが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ランタイム・ライブラリが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ハードウエアが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、コンパイラ・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ＯＳレベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ランタイムライブラリ・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ハードウェア・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ツール・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、プログラム・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理の実施を、ハードウェア・レベルで行う。
（ｂ）プログラム名又はそれに代替する実行モジュール名等により事象を特定し、実行時にそのプログラム名又は実行モジュール名等を一定時間間隔で識別し、識別された名称の識別回数をカウントしてサンプリング回数を得るものとする。【００３３】
以下の方法のいずれかの名前生成法と、識別処理及びカウント処理とを必要に応じて組み合わせて測定する。
・コンパイラが、上記プログラム名又は実行モジュール名等を生成する。
・ＯＳが、上記プログラム名又は実行モジュール名等を生成する。
・ランタイム・ライブラリが、上記プログラム名又は実行モジュール名等を生成する。
・ハードウエアが、上記プログラム名又は実行モジュール名等を生成する。
・並列言語拡張やコンパイラ・ディレクティブ等の記述により、上記プログラム名又は実行モジュール名等を生成する。
・プログラマの記述により、上記プログラム名又は実行モジュール名等を生成する。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、コンパイラ・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ＯＳレベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ランタイムライブラリ・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ハードウェア・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、ツール・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理のための記述を、プログラム・レベルで行う。
・生成されたプログラム名又は実行モジュール名等の識別処理及びカウント処理の実施を、ハードウェア・レベルで行う。
（２）χi,j(p)とγi(p)の部分
（ａ）事象χi,j(p)、γi(p)が出現する毎にその処理の初めにそのためのフラグをonにし、その処理の終わりにそのためのフラグをoffにセットする。【００３４】
実行時に各事象のためのフラグのon/offを一定時間間隔で識別し、onと識別された回数をカウントしてサンプリング回数を得るものとする。１つの方法では検出できない場合があるため、以下の方法のいずれかの記述と処理を必要に応じて組み合わせて測定する。
・プログラマが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、ツールが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをon/offさせるための記述を行う。
・並列言語拡張やコンパイラ・ディレクティブ等が用いられている場合には、コンパイラが当該並列言語拡張やコンパイラ・ディレクティブ等を解釈して、上記フラグをon/offさせるための記述を行う。
・コンパイラが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ＯＳが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ランタイム・ライブラリが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・ハードウエアが、プログラム中処理の始め及び終わり、すなわち上記フラグをon/offすべき位置を検出し、当該フラグをon/offさせるための記述を行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、コンパイラ・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ＯＳレベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ランタイムライブラリ・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ハードウェア・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、ツール・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理のための記述を、アプリケーションプログラム・レベルで行う。
・上記フラグがonであることを識別してその回数をカウントする処理の実施を、ハードウェア・レベルで行う。
（ｂ）既知のモジュール名を並列処理部又は並列性能阻害要因に係る処理部に予め分類しておき、実行時にモジュール名を識別し、各モジュール名につきカウントしてサンプリング回数を得る。以下に示す分類方法と、識別処理及びカウント処理を必要に応じて組み合わせて測定する。
・モジュール名の分類を、コンパイラ・レベルで行う。
・モジュール名の分類を、ＯＳレベルで行う。
・モジュール名の分類を、ランタイムライブラリ・レベルで行う。
・モジュール名の分類を、ハードウェア・レベルで行う。
・モジュール名の分類を、並列言語拡張やコンパイラディレクティブ・レベルで行う。
・モジュール名の分類を、ユーザレベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、コンパイラ・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ＯＳレベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ランタイムライブラリ・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ハードウェア・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、ツール・レベルで行う。
・上記モジュール名の識別処理及びカウント処理のための記述を、プログラム・レベルで行う。
・上記モジュール名の識別処理及びカウント処理の実施をハードウェア・レベルで行う。【００３５】
図５の説明に戻って、スケーラビリティ評価装置１００のデータ取得部１０は、上で述べたように処理時間又はサンプリング数として測定部２０１により測定される各処理時間γi(p)及びτi(p)（場合によってはχi,j(p)）を、並列計算機システム２００から取得し、スケーラビリティ評価装置１００に接続されたログデータ格納部３０に格納する。【００３６】
限界処理時間算出部１１は、限界処理時間τLT(p)を算出し、対応する処理時間τ(p)と共にスケーラビリティ限界点判定データ格納部４０に格納する。なお、限界処理時間τLT(p)は、（２）式を用いればロードバランスが図られていない場合にも対処できる。一方、ロードバランスが図られていると判断できる場合には、簡易的に、処理時間がτ(p)となるプロセッサｊの並列処理時間γj(p)を用いて、τ(p)−γj(p)（＝χj）を限界処理時間τLT(p)として用いるようにしても良い。全ての並列阻害要因の処理時間を測定している場合には、全ての並列阻害要因の全ての処理時間を累積した結果を限界処理時間τLT(p)として用いるようにしてもよい。【００３７】
さらに（２）式は分解すれば以下のようになる。【００３８】
【数５】
2008010291.tif 000006
【００３９】
第２項は、並列処理時間γj(p)の平均を示している。限界処理時間τLT(p)を、この式で計算しても良い。【００４０】
また、スケーラビリティ処理部１２の処理内容については以下で詳しく述べる。【００４１】
次に図５に示したシステム等の処理フローを図７を用いて説明する。最初に、処理時間の直接の計測のための記述、コンパイラ、ＯＳ、ツール、プログラマ、ランタイム・ライブラリ、ハードウエア等により各処理時間に対応するサンプリング数をカウントするためのフラグをon/offさせるための記述、コンパイラ、ＯＳ、ツール、プログラマ、ランタイム・ライブラリ、ハードウエア等により各処理時間に対応するサンプリング数をカウントするためのモジュール名等の分類などを含む前処理を実施する（ステップＳ１）。この処理については、並列計算機システム２００で行われる場合もあれば、他の計算機システムにおいて行われる場合もある。さらに、プログラマなどの人間により行われる場合もある。なお、ステップＳ１は、スケーラビリティ評価装置１００において実施される処理ではなく並列計算機システム２００により実施される処理でもない場合もあるので、点線ブロックで表されている。【００４２】
次に、並列計算機システム２００の測定部２０１は、前処理に基づいて、処理時間の計測を実施したり、サンプリング数をカウントしたりする測定処理を実施する（ステップＳ３）。測定結果である各処理時間γi(p)及びτi(p)（場合によってはχi,j(p)）又は各処理時間に対応するサンプリングのカウント値については、並列計算機システム２００の記憶装置に格納され、スケーラビリティ評価装置１００のデータ取得部１０により読み出される。データ取得部１０は、各処理時間γi(p)及びτi(p)（場合によってはχi,j(p)）又は各処理時間に対応するサンプリングのカウント値を取得すると、スケーラビリティ評価装置１００のログデータ格納部３０に格納する。なお、異なるプロセッサ個数ｐについての測定結果がログデータ格納部３０に格納されることになる。さらに、スケーラビリティについて並列計算機システム２００の比較を行う場合には、複数の並列計算機システム２００についての測定結果がログデータ格納部３０に格納されることになる。なお、並列計算機システム２００の構成は同じでも計算規模によって結果が異なるので、計算規模が異なる場合であっても並列計算機システム２００が異なるものとして以下では説明する。【００４３】
そして、限界処理時間算出部１１は、ログデータ格納部３０に格納されている各処理時間γi(p)及びτi(p)（場合によってはχi,j(p)）又は各処理時間に対応するサンプリングのカウント値から、測定結果が存在する各プロセッサ数ｐについて、処理時間τ(p)を特定すると共に、上で述べた式に従って限界処理時間τLT(p)を算出し、処理時間τ(p)と共に限界処理時間τLT(p)をスケーラビリティ限界点判定データ格納部４０に格納する（ステップＳ５）。処理時間τ(p)は（１）式のとおり最長の並列処理時間τi(p)であるから、直ぐに特定できる。なお、複数の並列計算機システム２００について処理する場合には、各並列計算機システムについてステップＳ５を実施する。【００４４】
例えばスケーラビリティ限界点判定データ格納部４０に格納されるデータの一例を図８に示す。図８の例では、プロセッサ数ｐの列と、処理時間τ(p)の列と、限界処理時間τLT(p)の列と、ΔτLT(p)／Δτ(p)の列と、傾きの符号の列とを含む。但し、ステップＳ５で格納されるデータは、プロセッサ数ｐの列及び処理時間τ(p)の列のデータだけである。また、図８の例では、プロセッサ数ｐ＝１のデータも存在しているが、必ずしもｐ＝１のデータはなくとも良い。τ(1)は、膨大な値となる場合もあるため、測定不可能な場合があるためである。本実施の形態によればτ(1)は必須ではない。【００４５】
次に、スケーラビリティ処理部１２のスケーラビリティ評価グラフ生成部２１は、スケーラビリティ限界点判定データ格納部４０に格納されたデータを用いて、スケーラビリティ評価グラフを生成し、出力部１１０に出力する（ステップＳ７）。【００４６】
スケーラビリティ評価グラフの一例を図９に示す。図９の例では、横軸が処理時間τ(p)を表し、縦軸が限界処理時間τLT(p)を表す空間において、ある並列計算機システムにおけるｎ＝８００という計算規模についてプロセッサ数ｐを増加させた場合における処理時間τ(p)と限界処理時間τLT(p)との関係の変化（すなわちカーブ）、ｎ＝７２００という計算規模についてプロセッサ数ｐを増加させた場合における処理時間τ(p)と限界処理時間τLT(p)との関係の変化（すなわちカーブ）、さらにｎ＝５１２００という計算規模についてプロセッサ数ｐを増加させた場合における処理時間τ(p)と限界処理時間τLT(p)との関係の変化（すなわちカーブ）を表したものである。いずれの場合にも、上記空間において、プロセッサ数ｐが小さいうちは、上記関係を表す点は右下にプロットされ、プロセッサ数ｐが増加すると左上に向かい、スケーラビリティが無くなったにも関わらずプロセッサ数ｐを増加させると、右上の方に向かう。なお、右斜め上方に向いた４５°線は限界線で、上記関係を表す点はこの限界線を越えて左斜め上の領域にはプロットされない。【００４７】
図９のような空間においては、スケーラビリティがあると言えるのは、上記カーブにおいて傾きが０以下である部分である。一方、スケーラビリティがないと言えるのは、傾きが正の部分である。従って、スケーラビリティ限界点は、スケーラビリティがある部分からスケーラビリティがない部分に切り替わる点となる。図９を見れば、傾きが負から正に切り替わる点を見つけ出すことができる。すなわち、スケーラビリティの限界点を特定することができる。一方、負の傾きが大きい部分ほどスケーラビリティが悪く、負の傾きが小さい部分ほどスケーラビリティが良い。【００４８】
また、図９は、図１乃至図４に対応する図である。すなわち、図１乃至図４でははっきりしないスケーラビリティの限界点が明確化されている。また、図１のような図でもτ(1)のデータがないと傾きがあいまいとなり、スケーラビリティの評価も曖昧になってしまい、図２のような図ではτ(1)の点がないと描くことができずスケーラビリティ評価が難しくなるが、図９ではτ(1)の点が無くとも評価することができる。【００４９】
また、本実施の形態では、負荷の分割方法に依存しないので、アーキテクチャによらず適用することができる。また、ロードバランスの効果が考慮されているため、データパラレル、コントロールパラレルといった全ての負荷分割方法に適用することができる。【００５０】
なお、図９を見ればカーブの傾きはある程度判断できるが、以下の処理を行えばユーザに対して明示することができる。【００５１】
すなわち、図７の説明に戻って、スケーラビリティ処理部１２のスケーラビリティ限界点判定部２２は、スケーラビリティ限界点特定処理を実施する（ステップＳ９）。このスケーラビリティ限界点特定処理については、図１０を用いて説明する。なお、以下の処理は、１つの並列計算機システムについての処理であり、複数の並列計算機システムについて処理する必要がある場合には、複数回図１０の処理を実施する。【００５２】
まず、スケーラビリティ限界点判定部２２は、スケーラビリティ限界点判定データ格納部４０に格納されているデータを用いて、最も小さいプロセッサ数ｐを特定する（ステップＳ２１）。そして、当該プロセッサ数ｐに対する傾きΔτLT／Δτを算出し、スケーラビリティ限界点判定データ格納部４０（図８のΔτLT／Δτの列）に格納する（ステップＳ２３）。具体的には、以下の式に従って計算を実施する。
ΔτLT／Δτ＝（τLT(p+1)−τLT(p)）／（τ(p+1)−τ(p)）
なお、以下の処理では傾きの符号が使用されるので、ここでは傾きの符号もスケーラビリティ限界点判定データ格納部４０（図８の傾きの列）に格納する。【００５３】
そして、傾きが正であるか判断する（ステップＳ２５）。傾きが正でない場合にはステップＳ３３に移行する。傾きが正である場合には、傾き「正」が所定回数連続したか判断する（ステップＳ２７）。この処理は測定誤差や計算誤差でスケーラビリティの限界点を特定しないようにするためであり、所定回数は測定誤差や計算誤差の発生頻度に応じて決定する。傾き「正」が所定回数連続していない場合には、スケーラビリティ限界点判定データ格納部４０に未処理のデータが残っているか判断する（ステップＳ３３）。未処理のデータが残っている場合には、次に小さいプロセッサ数ｐを、スケーラビリティ限界点判定データ格納部４０において特定し（ステップＳ３１）、ステップＳ２３に戻る。【００５４】
一方、未処理のデータに残りがない、すなわち全てのプロセッサ数ｐについて処理した場合には、限界点特定不可を出力部１１０に出力して元の処理に戻る（ステップＳ３５）。すなわち、スケーラビリティのない部分が特定できなかったことが分かる。【００５５】
傾き「正」が所定回数連続した場合には、所定回数前のｐの値などを用いてスケーラビリティ限界点を特定する（ステップＳ２９）。特定した結果は、例えばスケーラビリティ限界点判定データ格納部４０に格納し、さらに出力部１１０に出力する。出力部１１０は、例えばスケーラビリティ評価グラフにおいて限界点に他の点と区別できるような点をプロットする。例えば、異なる色で強調表示したり、点滅表示させたりする。【００５６】
ステップＳ２９の処理は、簡易的には所定回数前のプロセッサ数ｐを用いる。例えば所定回数が２であって図８の例では、ｐ＝１４で傾きが正になりｐ＝１６でステップＳ２９に移行するが、２回前のｐ＝１２且つτ(p)＝５３９．２０をスケーラビリティ限界点とする。【００５７】
一方、傾きが０となるプロセッサ数ｐを内挿によって計算するようにしても良い。図８の例の場合、ｐ＝１２とｐ＝１４が傾きの切り替わりとなっているので、以下のような計算を実施する。
Ｐ＝０．５４４６３／（０．５４４６３＋０．４７５３１）＊（１４−１２）＋１２
＝１３．１≒１３
τ(p)＝０．５４４６３／（０．５４４６３＋０．４７５３１）＊（５１９．５７−５３９．２０）＋５３９．２０
＝５２８．７０
このように簡易的な方法を採用しても良いし、内挿を行って傾きが０となる点を特定しても良い。このような処理を実施することによってスケーラビリティ限界点を解析的に算出し、ユーザに提示することができるようになる。なお、処理はステップＳ２９の後に元の処理に戻る。【００５８】
図７の説明に戻って、スケーラビリティ処理部１２のスケーラビリティ比較部２３は、スケーラビリティについて複数の並列計算機システム２００の比較を行う場合には、スケーラビリティ限界点判定データ格納部４０に格納されているデータを用いて、スケーラビリティ比較処理を実施する（ステップＳ１１）。このような場合、例えば図８に示すようなデータに加え、例えば図１１に示すようなデータも、スケーラビリティ限界点判定データ格納部４０に格納されているものとする。【００５９】
図１１の例では、測定誤差や計算誤差のためｐ＝３で一旦傾きが正となってしまっているが、傾き「正」が連続しないので、ｐ＝３ではスケーラビリティ限界点とは判断されない。また、ｐ＝１２で再度傾きが「正」となるが、所定回数連続していないので、ｐ＝１２でもスケーラビリティ限界点とは判断されない。【００６０】
なお、図８と図１１は、スケーラビリティ評価グラフで表すと図１２のようになる。このように並列計算機システムＡ（図８）と並列計算機システムＢ（図１１）とを比較すると、τ(p)が重複する部分Ｘが存在する。この部分Ｘは共に傾きが負となっているので、スケーラビリティがある部分である。【００６１】
スケーラビリティ比較処理では、スケーラビリティのある部分の同じτ(p)における限界処理時間τLT(p)を比較する。図８と図１１の例では、いずれかを基準にして他方を外挿により限界処理時間τLT(p)を算出して比較する。【００６２】
例えば並列計算機システムＢを基準とする場合には、並列計算機システムＡに対して外挿を行う。並列計算機システムＢを基準とする場合には、部分Ｘにおける点として例えばτ(1)＝７６８．１９及びτLT(1)＝１０．６９１を基準とする。このτ＝７６８．１９に近い並列計算機システムＡの点はτ(6)＝６９３．０９及びτLT(6)＝２６４．５９であり、ΔτLT／Δτ＝−０．２５２２５を用いる。そうすると、τLT＝２４６（＝−０．２５２２５＊（７６８．１９−６９３．０９）＋２６４．５９）となる。すなわち、並列計算機システムＢのスケーラビリティは、並列計算機システムＡに対して、限界処理時間τLTの比として２３倍（＝２４６／１０．６９１）良いことになる。このように限界処理時間が短い方がよい。【００６３】
一方、並列計算機システムＡを基準とすることも可能である。その場合、τ(6)＝６９３．０９及びτLT(6)＝２６４．５９を基準として、τ(6)＝６９３．０９に近い並列計算機システムＢの点τ(1)＝７６８．１９及びτLT(1)＝１０．６９１を用いる。その際ΔτLT／Δτ＝−０．０１６３５６である。そうすると、τ＝６９３．０９におけるτLTは以下のように計算される。
τLT＝−０．０１６３５６＊（６９３．０９−７６８．１９）＋１０．６９１＝１１．９
従って、τ＝６９３．０９において、並列計算機システムＢのスケーラビリティは、並列計算機システムＡに対して、限界処理時間τLTの比として２２（＝２６４．５９／１１．９）倍良いことになる。【００６４】
このようなスケーラビリティ比較についても、定量的に実施することができるようになる。【００６５】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、例えば図５の機能ブロック図は一例であり、必ずしもプログラムモジュール構成とは対応しない。また、スケーラビリティ限界点判定部２２、スケーラビリティ比較部２３といった処理部については設けない場合もある。処理フローについても同様の結果を得られるのであれば、処理ステップの順番を入れ替えたり並列して実行するようにしても良い。
【図１】
2008010291.tif 000007
【図２】
2008010291.tif 000008
【図３】
2008010291.tif 000009
【図４】
2008010291.tif 000010
【図５】
2008010291.tif 000011
【図６】
2008010291.tif 000012
【図７】
2008010291.tif 000013
【図８】
2008010291.tif 000014
【図９】
2008010291.tif 000015
【図１０】
2008010291.tif 000016
【図１１】
2008010291.tif 000017
【図１２】
2008010291.tif 000018
【手続補正書】
【提出日】平成21年1月21日(2009.1.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
並列計算機システムのスケーラビリティに関するデータ処理方法であって、
データ取得部により、ｐ個のプロセッサによって並列処理を行った場合における最長の処理時間である処理時間τ(p)と、実施される処理における並列計算部分の処理時間γi(p)（ｉはプロセッサ番号を示す）とを取得し、データ格納部に格納するデータ取得ステップと、
限界処理時間算出部により、前記データ格納部に格納されている前記処理時間τ(p)及び前記並列計算部分の処理時間γi(p)を用いて、並列計算部分の処理時間がゼロとなったと仮定した場合における全体の処理時間である限界処理時間τLT(p)を算出し、前記データ格納部に格納する限界処理時間算出ステップと、
スケーラビリティ処理部により、複数のプロセッサ数ｐについて、前記データ格納部に格納されている前記処理時間τ(p)と前記限界処理時間τLT(p)との関係を出力部に出力する出力ステップと、
を含む、スケーラビリティに関するデータ処理方法。
【請求項２】
前記出力ステップが、
前記関係を、前記処理時間τ(p)の軸と前記限界処理時間τLT(p)の軸とで張られる空間においてグラフ化して出力するステップ
を含む請求項１記載のスケーラビリティに関するデータ処理方法。
【請求項３】
前記出力ステップが、
前記プロセッサ数ｐの増加に伴う、前記処理時間τ(p)の変化量に対する前記限界処理時間τLT(p)の変化量の割合が負から正に転換する際のプロセッサ数ｐを限界点として特定し、当該プロセッサ数ｐを出力する限界点特定ステップ
を含む請求項１記載のスケーラビリティに関するデータ処理方法。
【請求項４】
前記限界処理時間算出ステップが、
処理に前記処理時間τ(p)が必要であったプロセッサｊの前記並列計算部分の処理時間γj(p)を特定するステップと、
前記処理時間τ(p)と前記並列計算部分の処理時間γj(p)との差を前記限界処理時間τLT(p)として特定するステップと、
を含む請求項１記載のスケーラビリティに関するデータ処理方法。
【請求項５】
前記限界処理時間算出ステップが、
前記並列計算部分の処理時間γi(p)の平均を算出するステップと、
前記処理時間τ(p)と前記並列計算部分の処理時間γi(p)の平均との差を前記限界処理時間τLT(p)として特定するステップと、
を含む請求項１記載のスケーラビリティに関するデータ処理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
並列処理において、プロセッサ数ｐの増加と共に性能が向上することが求められており、これが実現した場合スケーラビリティがある、実現しない場合スケーラビリティがないと表現する。スケーラビリティを議論する場合には、図１のようにプロセッサ数ｐと並列処理時間τ(p)との関係を見て判断する方法、図２のようにプロセッサ数ｐと並列処理時間τ(p)に対する１プロセッサの場合の処理時間τ(1)の比（加速率Ａp＝τ(1)／τ(p)）との関係を見て判断する方法がある。なお、並列処理時間τ(p)は以下のように表される。τi(p)はプロセッサiの処理時間である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
従来技術に対する改良として、限界加速率ＡLT(p)を以下のように定義して、プロセッサ数ｐとの関係を図３のように表すようにすることも可能である。なお、限界加速率ＡLT(p)は、並列計算部分の処理時間が０となると仮定した場合における限界倍率であり、スケーラビリティのポテンシャルを定量的に評価できる。すなわち、理想的にはあと何倍速くすることができるかを表すことができる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
図３を見れば、ある並列計算機システムにおいてｎ＝８００という計算規模であれば、プロセッサ数ｐ＝１０の時、理想的には１．５倍程度速くなると分かる。また、ｎ＝７２００という計算規模であれば、ｐ＝１０の時、理想的には２倍程度速くなると分かる。さらに、ｎ＝５１２００という計算規模であれば、ｐ＝１０の時、理想的には２．５倍程度速くなると分かる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
図３で用いた限界加速率ＡLT(p)では計算規模の大きさによる処理時間の差異が出ないが、限界処理時間τLT(p)を用いると計算規模の大きさを意識した評価が可能となる。ｎ＝８００という計算規模とｎ＝５１２００という計算規模とでは処理時間が１００倍以上異なり、使用するメモリ量もキャッシュの使い方も異なるはずである。このような問題は、図４のような限界処理時間τLT(p)とプロセッサ数ｐとの関係を考察することによって評価できるようになる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
さらに、第２の並列計算機システムについてデータ取得ステップと限界処理時間算出ステップと出力ステップとを実施するステップと、スケーラビリティ比較部により、並列計算機システムと第２の並列計算機システムとで同一の処理時間τ(p)となる、並列計算機システムにおける第１の限界処理時間τLT1(p)及び第２の並列計算機システムにおける第２の限界処理時間τLT2(p)を特定し、データ格納部に格納するステップと、スケーラビリティ比較部により、データ格納部に格納された第１の限界処理時間τLT1(p)と第２の限界処理時間τLT2(p)との比を算出し、出力するステップとさらに含むようにしてもよい。スケーラビリティがある状態においては、計算機システム間の定量的な比較が可能となる。限界処理時間τLT(p)の大きい方がスケーラビリティが悪いことになる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
限界処理時間算出部１１は、限界処理時間τLT(p)を算出し、対応する処理時間τ(p)と共にスケーラビリティ限界点判定データ格納部４０に格納する。なお、限界処理時間τLT(p)は、（２）式を用いればロードバランスが図られていない場合にも対処できる。一方、ロードバランスが図られていると判断できる場合には、簡易的に、処理時間がτ(p)となるプロセッサｊの並列処理時間γj(p)を用いて、τ(p)−γj(p)（＝χj）を限界処理時間τLT(p)として用いるようにしても良い。全ての並列性能阻害要因の処理時間を測定している場合には、全ての並列性能阻害要因の全ての処理時間を累積した結果を限界処理時間τLT(p)として用いるようにしてもよい。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００５１
【補正方法】変更
【補正の内容】
【００５１】
図７の説明に戻って、スケーラビリティ処理部１２のスケーラビリティ限界点判定部２２は、スケーラビリティ限界点特定処理を実施する（ステップＳ９）。このスケーラビリティ限界点特定処理については、図１０を用いて説明する。なお、以下の処理は、１つの並列計算機システムについての処理であり、複数の並列計算機システムについて処理する必要がある場合には、複数回図１０の処理を実施する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
そして、傾きが正であるか判断する（ステップＳ２５）。傾きが正でない場合にはステップＳ３３に移行する。傾きが正である場合には、傾き「正」が所定回数連続したか判断する（ステップＳ２７）。この処理は測定誤差や計算誤差でスケーラビリティの限界点を特定しないようにするためであり、所定回数は測定誤差や計算誤差の発生頻度に応じて決定する。傾き「正」が所定回数連続していない場合には、スケーラビリティ限界点判定データ格納部４０に未処理のデータが残っているか判断する（ステップＳ３３）。未処理のデータが残っている場合には、次に大きいプロセッサ数ｐを、スケーラビリティ限界点判定データ格納部４０において特定し（ステップＳ３１）、ステップＳ２３に戻る。
【手続補正１０】
【補正対象書類名】図面
【補正対象項目名】図１０
【補正方法】変更
【補正の内容】
【図１０】
2008010291.tif 000019