(57)【特許請求の範囲】
【請求項１】
複数のノードを含むネットワークトポロジーを受信する処理と、
分子動力学における系のアスペクト比を、受信した前記ネットワークトポロジーのアスペクト比に基づいて決定する処理と、
コンピュータ上に構築された空間内に複数のプロセスを配置する処理と、
前記空間内において、前記複数のプロセスに含まれる各プロセス間に前記分子動力学におけるファンデルワールス力とは異なる引力と斥力の少なくとも一方を作用させることで、前記複数のプロセスの位置を変更する処理と、
変更した前記複数のプロセスの位置と、決定した前記アスペクト比と、受信した前記ネットワークトポロジーを有する前記複数のノードの位置と、に基づき、前記複数のノードに前記複数のプロセスをマッピングする情報を生成する処理と、
をコンピュータに実行させることを特徴とするマッピング情報生成プログラム。
【請求項２】
前記変更する処理は、前記各プロセス間の通信トラフィックに応じた引力を作用させることで、前記複数のプロセスの位置を変更する、
ことを特徴とする請求項１に記載のマッピング情報生成プログラム。
【請求項３】
前記変更する処理は、前記プロセス間の距離が基準値を超えている場合、該プロセス間に、さらに該プロセス間の距離に応じた引力を作用させることで、前記複数のプロセスの位置を変更する、
ことを特徴とする請求項１に記載のマッピング情報生成プログラム。
【請求項４】
前記変更する処理は、前記各プロセス間の通信量及び通信回数に関する情報に基づき、前記通信トラフィックを算出する、
ことを特徴とする請求項２に記載のマッピング情報生成プログラム。
【請求項５】
前記変更する処理は、前記プロセス間の距離が基準値未満である場合、該プロセス間に、さらに該プロセス間の距離に応じた斥力を作用させることで、前記複数のプロセスの位置を変更する、
ことを特徴とする請求項１から４のいずれか１項に記載のマッピング情報生成プログラム。
【請求項６】
前記変更する処理の前に、前記複数のプロセスを、前記各プロセス間の通信頻度に応じた複数のグループに分割し、個々のグループに含まれる複数のプロセスを、該グループに応じた範囲内に配置する、
ことを特徴とする請求項１から５のいずれか１項に記載のマッピング情報生成プログラム。
【請求項７】
前記複数のグループそれぞれについて、自グループに含まれる複数のプロセスのプロセス間の距離が自グループ以外のグループに含まれる複数のプロセスよりも近くなるように前記自グループに含まれる複数のプロセスを配置する、
ことを特徴とする請求項６に記載のマッピング情報生成プログラム。
【請求項８】
前記生成する処理は、位置を変更した前記複数のプロセスに含まれる各プロセスと、前記複数のノードに含まれる各ノードとのそれぞれの距離に基づき、前記複数のノードのうち、前記各プロセスを対応づけるノードを決定する、
ことを特徴とする請求項１から７のいずれか１項に記載のマッピング情報生成プログラム。
【請求項９】
前記複数のノードの接続形態は３次元トーラス型であり、前記空間は３次元空間である、
ことを特徴とする請求項１から８のいずれか１項に記載のマッピング情報生成プログラム。
【請求項１０】
複数のノードを含むネットワークトポロジーを受信する処理と、
分子動力学における系のアスペクト比を、受信した前記ネットワークトポロジーのアスペクト比に基づいて決定する処理と、
コンピュータ上に構築された空間内に複数のプロセスを配置する処理と、
前記空間内において、前記複数のプロセスに含まれる各プロセス間に前記分子動力学におけるファンデルワールス力とは異なる引力と斥力の少なくとも一方を作用させることで、前記複数のプロセスの位置を変更する処理と、
変更した前記複数のプロセスの位置と、決定した前記アスペクト比と、受信した前記ネットワークトポロジーを有する前記複数のノードの位置と、に基づき、前記複数のノードに前記複数のプロセスをマッピングする情報を生成する処理と、
をコンピュータが実行することを特徴とするマッピング情報生成方法。
【請求項１１】
複数のノードを含むネットワークトポロジーを受信し、分子動力学における系のアスペクト比を、受信した前記ネットワークトポロジーのアスペクト比に基づいて決定し、コンピュータ上に構築された空間内に複数のプロセスを配置し、前記空間内において、前記複数のプロセスに含まれる各プロセス間に前記分子動力学におけるファンデルワールス力とは異なる引力と斥力の少なくとも一方を作用させることで、前記複数のプロセスの位置を変更する変更手段と、
変更した前記複数のプロセスの位置と、決定した前記アスペクト比と、受信した前記ネットワークトポロジーを有する前記複数のノードの位置と、に基づき、前記複数のノードに前記複数のプロセスをマッピングする情報を生成する生成手段と、
を備えることを特徴とするマッピング情報生成装置。
【請求項１２】
複数のノードを含むネットワークトポロジーを受信する処理と、
分子動力学における系のアスペクト比を、受信した前記ネットワークトポロジーのアスペクト比に基づいて決定する処理と、
コンピュータ上に構築された空間内に複数のプロセスを配置する処理と、
前記空間内において、前記複数のプロセスに含まれる各プロセス間に前記分子動力学におけるファンデルワールス力とは異なる引力と斥力の少なくとも一方を作用させることで、前記複数のプロセスの位置を変更する処理と、
変更した前記複数のプロセスの位置と、決定した前記アスペクト比と、受信した前記ネットワークトポロジーを有する前記複数のノードの位置と、に基づき、前記複数のノードに前記複数のプロセスをマッピングする情報を生成する処理と、
前記複数のプロセスの位置が変更する過程を表示する処理と、
をコンピュータが実行することを特徴とするマッピング情報生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、マッピング情報生成プログラム、マッピング情報生成方法、及びマッピング情報生成装置に関する。
【背景技術】
【０００２】
複数のコンピュータ（以下、ノードという）が並列に演算処理を行う並列計算システムが知られている（例えば特許文献１参照）。並列計算システムを利用することにより、大規模な数値解析に要する計算時間が大幅に短縮される。
【０００３】
近年、計算性能に対する要求に従い、スイッチを介してノード同士を間接的に接続する間接網の並列計算システムだけでなく、ノード同士を直接互いに接続する直接網の並列計算システムも利用されつつある。間接網としては例えばファットツリー型が知られており、直接網としては例えばトーラス型やメッシュ型などが知られている。トーラス型にも種々の形態が存在するが、その１つに例えば直方体の格子構造である３次元トーラスが知られている（特許文献１参照）。
【０００４】
ところで、上述した直接網の並列計算システムではランク配置最適化と呼ばれる技術が知られている（例えば非特許文献１参照）。具体的には、直接網の並列計算システムでMessage Passing Interface（ＭＰＩ）アプリケーションを実行する場合に、通信パターンに応じてランクを適切なノードに配置（マッピング）する技術である。ここで、ＭＰＩアプリケーションとはＭＰＩを用いて記述された並列プログラムをいう。また、ランクとはＭＰＩアプリケーションの実行時にＭＰＩアプリケーションの各プロセスに付与される番号をいう。しかしながら、ランクが付与されたプロセスのことをランクと呼ぶ場合もある。ランク配置最適化により得られたランクの配置に基づいてＭＰＩアプリケーションを実行すると、プロセス間通信の際に、経由するノード数（ホップ数）や輻輳が抑えられ、プロセス間通信に要する通信処理時間を短縮することができる。
【０００５】
上述したランク配置最適化については種々の技術が提案されている。例えば複数のノードを含むネットワーク領域の分割結果に基づいて、複数のプロセスを有するプロセスグループを分割し、その分割結果をネットワーク領域の分割結果にまとめて配置する技術が提案されている（例えば特許文献２参照）。また、通信負荷を測定し、測定結果に基づいてランク配置の最適解をランダムに探索するSimulated Annealing（ＳＡ：焼きなまし法）も提案されている（例えば非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−１３７７３２号公報
【特許文献２】特開２０１２−２４３２２４号公報
【非特許文献】
【０００７】
【非特許文献１】今出広明、他６名、「大規模計算向け通信時間最適化ツールＲＡＭＴＴにおける実行時間の高速化」、２０１２年ハイパフォーマンスコンピューティングと計算科学シンポジウム論文集、一般社団法人情報処理学会、２０１２年１月、ｐ．９３−１００
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところが、非特許文献１に開示される焼きなまし法を大規模な並列計算システムで利用した場合、探索がランダムであるために探索量が爆発的に増加し、ランク配置の最適解を得るための計算量が増大する。すなわち、ランク配置の最適解を取得するまでに多大な時間を要するという問題がある。
【０００９】
そこで、１つの側面では、ランク配置に関する情報を生成する際の計算量を抑制できるマッピング情報生成プログラム、マッピング情報生成方法、及びマッピング情報生成装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本明細書に開示のマッピング情報生成プログラムは、複数のノードを含むネットワークトポロジーを受信する処理と、分子動力学における系のアスペクト比を、受信した前記ネットワークトポロジーのアスペクト比に基づいて決定する処理と、コンピュータ上に構築された空間内に複数のプロセスを配置する処理と、前記空間内において、前記複数のプロセスに含まれる各プロセス間に前記分子動力学におけるファンデルワールス力とは異なる引力と斥力の少なくとも一方を作用させることで、前記複数のプロセスの位置を変更する処理と、変更した前記複数のプロセスの位置と、決定した前記アスペクト比と、受信した前記ネットワークトポロジーを有する前記複数のノードの位置と、に基づき、前記複数のノードに前記複数のプロセスをマッピングする情報を生成する処理と、をコンピュータに実行させることを特徴とするマッピング情報生成プログラムである。
【発明の効果】
【００１１】
本明細書に開示によれば、ランク配置に関する情報を生成する際の計算量を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、並列計算システムの一例を説明するための図である。
【図２】図２は、ノードのハードウェア構成の一例を示すブロック図である。
【図３】図３は、マッピング情報生成装置のハードウェア構成の一例である。
【図４】図４は、マッピング情報生成装置のブロック図の一例である。
【図５】図５は、通信パターンの一例である。
【図６】図６は、ランクの分割の一例を説明するための図である。
【図７】図７は、初期状態の一例である。
【図８】図８は、マッピング情報生成方法の処理の一例を示すフローチャートである。
【図９】図９（ａ）は、ランク間距離とランク間に作用する力の関係を示すグラフの一例である。図９（ｂ）は、ランクｊに作用する力の一例を説明するための図である。
【図１０】図１０は、変更後のランク配置の一例である。
【図１１】図１１は、整列処理の一例を示すフローチャートである。
【図１２】図１２は、整列処理の一例を説明するための図である。
【図１３】図１３は、整列処理の他の一例を説明するための図である。
【図１４】図１４は、タイムステップの経過に伴いＸＹ平面上で配置が変更するランクの軌跡の一例を説明するための図である。
【図１５】図１５は、マッピング情報の一例である。
【図１６】図１６は、タイムステップの経過と評価値との関係を示すグラフの一例である。
【発明を実施するための形態】
【００１３】
以下、本件を実施するための形態について図面を参照して説明する。
【００１４】
図１は、並列計算システムＳの一例を説明するための図である。
並列計算システムＳは、計算ノード群１００及びマッピング情報生成装置３００を含んでいる。計算ノード群１００は、直方体の格子構造で構成された複数のノード１１０を含んでいる。計算ノード群１００は、ユーザから複数のノード１１０の位置を取得して、コンピュータ上に構築された空間にノード１１０を配置する。図１では、ユーザの指定により、Ｘ軸方向に１６個のノード１１０、Ｙ軸方向に８個のノード１１０、Ｚ軸方向に８個のノード１１０が配置されている。すなわち、図１では、１６×８×８のネットワークトポロジーを有する計算ノード群１００が示されている。したがって、計算ノード群１００には、全部で１０２４個のノード１１０が含まれている。尚、計算ノード群１００に含めるノード１１０の数は上述したノード数に限定されない。例えばＸ軸方向に４個のノード１１０、Ｙ軸方向に４個のノード１１０、Ｚ軸方向に４個のノード１１０が配置されている立方体の格子構造であってもよい。
【００１５】
計算ノード群１００に含まれる複数のノード１１０の接続形態は３次元トーラス型である。したがって、Ｘ軸上に配置された一列の複数のノード１１０がそれぞれ環状に接続されているだけでなく、Ｙ軸上に配置された一列の複数のノード１１０もそれぞれ環状に接続されている。同様に、Ｚ軸上に配置された一列の複数のノード１１０も環状に接続されている。
【００１６】
計算ノード群１００には、ネットワークＮＷ１を介してマッピング情報生成装置３００が接続されている。ネットワークＮＷ１としては例えばLacal Area Network（ＬＡＮ）がある。マッピング情報生成装置３００は、ランクが付与されたプロセス（以下、適宜ランクという）をどのノード１１０にマッピングするかを決定付けるマッピング情報を生成する。マッピング情報は、例えばランクマップファイルやランク配置ファイルなどと呼ばれる場合がある。マッピング情報生成装置３００は、生成したマッピング情報に基づいて、ランクを複数のノード１１０のそれぞれにマッピングする。これにより、プロセス間通信の際に経由するノード数（ホップ数）や輻輳が抑えられ、プロセス間通信に要する通信処理時間が短縮される。尚、マッピング情報生成装置３００の機能は、計算ノード群１００に含まれる複数のノード１１０の少なくとも１つが行うようにしてもよい。
【００１７】
マッピング情報生成装置３００には、ネットワークＮＷ２を介して端末装置４００が接続されている。ネットワークＮＷ２としては例えばインターネットがある。端末装置４００としては例えばPesonal Computer（ＰＣ）、タブレット端末、携帯情報端末などがある。ユーザは、端末装置４００を操作して、上述したネットワークトポロジーのほか、少なくとも後述する通信パターンを、要求に応じて後述する初期状態もマッピング情報生成装置３００に送信する。マッピング情報生成装置３００は、少なくともネットワークトポロジー及び通信パターンに基づいて、マッピング情報を生成する。
【００１８】
次に、図２を参照して、上述したノード１１０のハードウェア構成について説明する。
【００１９】
図２は、ノード１１０のハードウェア構成の一例を示すブロック図である。
ノード１１０は、Central Processing Unit（ＣＰＵ）１１１、Inter Connect Controller（ＩＣＣ）１１２、主記憶１１３を含んでいる。主記憶としては例えばDual Inline Memory Modele（ＤＩＭＭ）が利用される。ＣＰＵ１１１は、１つのコアを搭載したシングルコアタイプでもよいし、複数（例えば８つ）のコアを搭載したマルチコアタイプであってもよい。シングルコアタイプの場合、ＣＰＵ１１１は１回で１つのプロセスを処理するが、マルチコアの場合、ＣＰＵ１１１は１回でコアの数分のプロセスを処理できる。
【００２０】
ＣＰＵ１１１には、ＩＣＣ１１２及び主記憶１１３が接続されている。ＩＣＣ１１２は、複数のポートを備えており、それぞれのポートを介して隣接する別のノード１１０のＩＣＣ１１２と接続されている。例えば、ＩＣＣ１１２が６つのポートを備えている場合、ＩＣＣ１１２は第１のポートを介して＋Ｘ軸方向に隣接するノード１１０のＩＣＣ１１２と接続され、第２のポートを介して−Ｘ軸方向に隣接するノード１１０のＩＣＣ１１２と接続される。同様に、ＩＣＣ１１２は第３のポートを介して＋Ｙ軸方向に隣接するノード１１０のＩＣＣ１１２と接続され、第４のポートを介して−Ｙ軸方向に隣接するノード１１０のＩＣＣ１１２と接続される。ＩＣＣ１１２は第５のポートを介して＋Ｚ軸方向に隣接するノード１１０のＩＣＣ１１２と接続され、第６のポートを介して−Ｚ軸方向に隣接するノード１１０のＩＣＣ１１２と接続される。ランクが割り当てられた各ノード１１０は、別のノード１１０と通信しながら、プロセスを処理する。
【００２１】
次に、図３を参照して、上述したマッピング情報生成装置３００のハードウェア構成について説明する。
【００２２】
図３は、マッピング情報生成装置３００のハードウェア構成の一例である。
図３に示すように、マッピング情報生成装置３００は、少なくともＣＰＵ３００Ａ、Random Access Memory（ＲＡＭ）３００Ｂ、Read Only Memory（ＲＯＭ）３００Ｃ及びネットワークＩ／Ｆ（インタフェース）３００Ｄを含んでいる。マッピング情報生成装置３００は、必要に応じて、Hard Disk Drive（ＨＤＤ）３００Ｅ、入力Ｉ／Ｆ３００Ｆ、出力Ｉ／Ｆ３００Ｇ、入出力Ｉ／Ｆ３００Ｈ、ドライブ装置３００Ｉの少なくとも１つを含んでいてもよい。ＣＰＵ３００Ａ・・・ドライブ装置３００Ｉは、内部バス３００Ｊによって互いに接続されている。少なくともＣＰＵ３００ＡとＲＡＭ３００Ｂとが協働することによってコンピュータが実現される。
【００２３】
入力Ｉ／Ｆ３００Ｆには、入力装置７１０が接続される。入力装置７１０としては、例えばキーボードやマウスなどがある。
出力Ｉ／Ｆ３００Ｇには、表示装置７２０が接続される。表示装置７２０としては、例えば液晶ディスプレイがある。
入出力Ｉ／Ｆ３００Ｈには、半導体メモリ７３０が接続される。半導体メモリ７３０としては、例えばUniversal Serial Bus（ＵＳＢ）メモリやフラッシュメモリなどがある。入出力Ｉ／Ｆ３００Ｈは、半導体メモリ７３０に記憶されたプログラムやデータを読み取る。
入力Ｉ／Ｆ３００Ｆ及び入出力Ｉ／Ｆ３００Ｈは、例えばＵＳＢポートを備えている。出力Ｉ／Ｆ３００Ｇは、例えばディスプレイポートを備えている。
【００２４】
ドライブ装置３００Ｉには、可搬型記録媒体７４０が挿入される。可搬型記録媒体７４０としては、例えばCompact Disc（ＣＤ）−ＲＯＭ、Digital Versatile Disc（ＤＶＤ）といったリムーバブルディスクがある。ドライブ装置３００Ｉは、可搬型記録媒体７４０に記録されたプログラムやデータを読み込む。
ネットワークＩ／Ｆ３００Ｄは、例えばポートとPhysical Layer Chip（ＰＨＹチップ）とを備えている。マッピング情報生成装置３００は、ネットワークＩ／Ｆ３００Ｄを介してネットワークＮＷ１，ＮＷ２と接続される。
【００２５】
上述したＲＡＭ３００Ｂには、ＲＯＭ３００ＣやＨＤＤ３００Ｅに記憶されたプログラムがＣＰＵ３００Ａによって格納される。ＲＡＭ３００Ｂには、可搬型記録媒体７４０に記録されたプログラムがＣＰＵ３００Ａによって格納される。格納されたプログラムをＣＰＵ３００Ａが実行することにより、後述する各種の機能が実現され、また、各種の動作が実行される。尚、プログラムは後述するフローチャートに応じたものとすればよい。
【００２６】
次に、図４から図７を参照して、マッピング情報生成装置３００の詳細について説明する。
【００２７】
図４は、マッピング情報生成装置３００のブロック図の一例である。図５は、通信パターンの一例である。図６は、ランクの分割の一例を説明するための図である。図７は、初期状態の一例である。
マッピング情報生成装置３００は、図４に示すように、受付部３０１、変更手段としてのランク配置変更部３０２、生成手段としてのマッピング情報生成部３０３、マッピング情報評価部３０４及びマッピング情報記憶部３０５を含んでいる。
【００２８】
受付部３０１は、端末装置４００から初期状態、ネットワークトポロジー及び通信パターンを受け付ける。受付部３０１は、受け付けた初期状態、ネットワークトポロジー及び通信パターンをランク配置変更部３０２に送信する。通信パターンは、図５に示すように、通信元ランク、通信先ランク、通信量及び通信回数を構成要素として含んでいる。図５に示す通信パターンによれば、例えば通信元ランク「０」のプロセスは、通信相手である通信先ランク「１」、「８」及び「９」の３方向の各プロセスと、通信回数「１回」で通信量「１ＫＢ」の通信を行う。例えば通信元ランク「９」のプロセスは、通信相手である通信先ランク「０」、「１」、「２」、「８」、「１０」、「１６」、「１７」及び「１８」の８方向の各プロセスと、通信回数「１回」で通信量「１ＫＢ」の通信を行う。通信パターンは、マッピング情報の生成前に、計算ノード群１００がＭＰＩアプリケーションを実行することによって取得される。
【００２９】
例えば、計算ノード群１００が、図６に示すようなＭＰＩアプリケーションＡＰを実行すると、複数のプロセスに含まれる各プロセスにランク「０」〜「１０２３」を付与する。そして、計算ノード群１００は、ランクが付与されたどのプロセスがどのプロセスとどれだけの通信量で何回通信するかを解析し、通信元ランクや通信先ランクなどを含む通信パターンを取得する。通信パターンは、単位時間あたりの通信量や通信回数に基づくものであっても良いし、ＭＰＩアプリケーションＡＰの実行開始から実行終了までの通信量や通信回数に基づくものであっても良い。
【００３０】
また、計算ノード群１００は、このようにして取得した通信パターンに基づいて上述した初期状態を生成する。具体的には、通信パターンに含まれるランク間の通信量とネットワークトポロジーに基づいて、計算ノード群１００は頻繁に通信を行うランク同士で複数のグループに分割する。例えば、図６に示すように、計算ノード群１００は、ランク「０」〜ランク「１０２３」の全プロセスを、ランク同士の通信頻度が高い６つの独立したグループＧＡ〜ＧＦに分割する。すなわち、グループＧＡに含まれる５１２プロセスは、グループＧＢ〜ＧＦに含まれる５１２プロセスと比べて、互いに高い頻度で通信する。グループＧＢ〜ＧＦのそれぞれについても同様である。ランク間の通信パターンを元に、コンピュータ上に構築された空間内に通信が頻発するランク同士をグループに応じた範囲内で近くに配置しておくことでランク配置の収束を早め、最適なランク配置を短時間で確保することができる。この結果、図７に示すように、処理対象プロセスが、５１２プロセスを含むグループＧＡ、６４プロセスを含むグループＧＢ、・・・、９６プロセスを含むグループＧＦに分割された初期状態を計算ノード群１００が生成される。図７における各グループＧＡ〜ＧＦでは、それぞれ１つのプロセスが示されているように見えるが、いずれも複数のプロセスが重なっているために１つのプロセスが示されているにすぎない。
【００３１】
尚、図６に示すように、各グループＧＡ〜ＧＦに含まれるプロセスはノード１１０（より詳しくはＣＰＵ１１１）に割り当てられる。例えばノード１１０に含まれるＣＰＵ１１１がシングルコアである場合、グループＧＡに含まれる５１２プロセスは、５１２ノードに１プロセスずつ割り当てられる。グループＧＢ〜ＧＦのそれぞれについても同様である。通信パターン及び初期状態は、このような手順で事前に生成されずに、予め用意しておくようにしてもよい。
【００３２】
ランク配置変更部３０２は、受付部３０１から送信された初期状態、ネットワークトポロジー及び通信パターンに関する情報を受信する。ランク配置変更部３０２は、初期状態に関する情報を受信しなかった場合、計算ノード群１００が初期状態を生成しなかったと判断し、ランク配置変更部３０２が通信パターンに関する情報に基づいて初期状態を生成する。ランク配置変更部３０２は、受信後、Molecular Dynamics（ＭＤ：分子動力学）における系のアスペクト比を、受信したネットワークトポロジーのアスペクト比に一致させる。したがって、ネットワークトポロジーが１６×８×８である場合には、系のアスペクト比が１６×８×８になる。本実施形態では、このように分子動力学の概念を利用している。これは、後述するランク配置の整列処理時に、シミュレーション結果からなるべく位置を変えないで済むようにするためである。尚、本実施形態におけるランクは分子動力学における原子に対応する。
【００３３】
また、ランク配置変更部３０２は、初期状態から得られるランク間の距離、通信パターンに含まれる通信量及び通信回数などに基づいて、ランク間の通信トラフィック及び距離に応じた引力又はランク間の距離に応じた斥力を算出する。通信トラフィックは、通信負荷と呼ぶこともある。詳細は後述するが、ランク間の距離によって、ランク間に引力が発生したり斥力が発生したりする。ランク配置変更部３０２は、引力又は斥力を算出すると、ランク間に引力と斥力の少なくとも一方を作用させて、各ランクの位置を表すランク配置を変更する。ランク配置変更部３０２は、変更後のランク配置をマッピング情報生成部３０３に送信する。尚、ランク配置変更部３０２のより詳しい説明は、後述する。
【００３４】
マッピング情報生成部３０３は、ランク配置変更部３０２から送信された変更後のランク配置を保持する一方、変更後のランク配置をネットワークトポロジーに応じたノード１１０に対応づけ、マッピング情報を生成する。送信された変更後のランク配置は、まだノード１１０と対応付いていないため、マッピング情報生成部３０３はノード１１０と対応付けるべく、変更後のランク配置をノード１１０の位置に移動させる。以下、詳細は後述するが、変更後のランク配置をノード１１０の位置に移動させる処理を、整列処理とする。マッピング情報生成部３０３は、整列処理後のランク配置、すなわち生成したマッピング情報をマッピング情報評価部３０４に送信する。
【００３５】
マッピング情報評価部３０４は、マッピング情報生成部３０３から送信されたマッピング情報を受信する。マッピング情報評価部３０４は、後述する所定の評価式を利用して、受信したマッピング情報を評価する。マッピング情報評価部３０４は、既に評価された評価値に対して改善された評価値が得られた場合、肯定的な評価結果が得られたとして、マッピング情報記憶部３０５にマッピング情報を出力する。この際、マッピング情報評価部３０４は、改善された評価値を肯定的な評価結果としてマッピング情報と併せて出力するようにしてもよい。一方、マッピング情報評価部３０４は、既に評価した評価値に対して改善された評価値が得られなかった場合、否定的な評価結果が得られたとして、マッピング情報生成部３０３に否定的な評価結果が得られた旨を出力する。これにより、マッピング情報生成部３０３は、保持している変更後のランク配置、すなわち、整列処理前のランク配置をランク配置変更部３０２に送信する。ランク配置変更部３０２は、整列処理前のランク配置を受信すると、再びランク配置を変更する。ランク配置変更部３０２がこのような処理を繰り返すことにより、最終的により改善されたマッピング情報を得ることができる。
【００３６】
続いて、図８乃至図１０を参照して、マッピング情報生成装置３００の動作について説明する。
【００３７】
図８は、マッピング情報生成方法の動作の一例を示すフローチャートである。図９（ａ）は、ランク間距離とランク間に作用する力の関係を示すグラフの一例である。図９（ｂ）は、ランクｊに作用する力の一例を説明するための図である。図１０は、変更後のランク配置の一例である。
まず、受付部３０１は、端末装置４００から送信された初期状態、ネットワークトポロジー及び通信パターンを受け付ける（ステップＳ１０１）。ランク配置変更部３０２は、初期状態を受け付けていないと判断した場合（ステップＳ１０１Ａ：ＹＥＳ）、初期状態を生成する（ステップＳ１０１Ｂ）。したがって、ランク配置変更部３０２は、コンピュータ上に構築された空間内に複数のランクを配置する。ランク配置変更部３０２は、ステップＳ１０１Ｂの処理を終えた後、又は、初期状態を受け付けたと判断した場合（ステップＳ１０１Ａ：ＮＯ）、ランク間の通信トラフィック及び距離に応じた大きさの引力、ランク間の距離に応じた大きさの斥力及び引力と斥力とを合成した合力を算出する（ステップＳ１０２）。具体的には、通信パターンに含まれるランクｉとランクｊとの通信量、通信回数及び以下の数式（１）に基づいて、ランクｉとランクｊとの間の通信に関する通信トラフィックＣｉ，ｊを算出する。尚、数式（１）に含まれる数値「２００００」は定数であり、定数を適宜変更してもよい。このように、以下の数式（１）によれば、数値「２００００」と通信量と通信回数との乗算結果と数値「１」との大きい方を通信トラフィックＣｉ，ｊと定めている。仮に、乗算結果を単に通信トラフィックＣｉ，ｊと定めた場合に、通信が発生していないと通信回数が０回となり、乗算結果の値も「０」となる。したがって、通信トラフィックＣｉ，ｊの値も「０」となり、後述する引力ｆｉ，ｊが発生しなくなる。このように、通信が発生しなかった場合に引力ｆｉ，ｊが発生しなくなることを避けるために、数式（１）では乗算結果と数値「１」との大きい方を通信トラフィックＣｉ，ｊと定め、確実に引力が発生するようにしている。
【数１】
0006492779.tif 000002
【００３８】
次いで、ランク配置変更部３０２は、ランクｉとランクｊとの距離｜ｒｉ−ｒｊ｜が予め定めた基準値としての閾値Ｌ２より大きければ、以下の数式（２）を利用して、ランクｉとランクｊとの間に作用する引力ｆｉ，ｊを算出する。数式（２）によれば、通信トラフィックＣｉ，ｊの大きさが大きいほど、ランクｉとランクｊとの間に作用する引力ｆｉ，ｊが大きくなる。この結果、通信トラフィックＣｉ，ｊの大きさが大きいランク同士は傍に配置される。また、数式（２）によれば、ランクｉとランクｊとの距離が遠ざかるほど、ランクｉとランクｊとの間に作用する引力ｆｉ，ｊが大きくなる。すなわち、通信トラフィックＣｉ，ｊの大きさが大きいほど、ランクｉとランクｊとの距離が遠ざかるほど、強く引き合う引力ｆｉ，ｊが発生する。例えば、分子動力学におけるファンデルワールス力は、原子間の距離が近づくと強く反発し合い、原子間の距離が遠ざかると小さな力で引き合うが、本実施形態ではファンデルワールス力をそのまま利用せず、ファンデルワールス力とは異なる力をランクｉとランクｊとの間に作用させている。
【数２】
0006492779.tif 000003
【００３９】
一方、ランク配置変更部３０２は、ランクｉとランクｊとの距離｜ｒｉ−ｒｊ｜が閾値Ｌ２より小さいが予め定めた閾値Ｌ１より大きければ、以下の数式（３）を利用して、ランクｉとランクｊとの間に作用する斥力ｆｉ，ｊを算出する。数式（３）によれば、ランクｉとランクｊとの距離が近づくほど、強く反発し合う斥力が発生することになる。尚、数式（３）に含まれる数値「−６００」は定数であり、定数を適宜変更してもよい。
【数３】
0006492779.tif 000004
【００４０】
一方、ランク配置変更部３０２は、ランクｉとランクｊとの距離｜ｒｉ−ｒｊ｜が閾値Ｌ１より小さければ、以下の数式（４）を利用して、ランクｉとランクｊとの間に作用する斥力ｆｉ，ｊを算出する。数式（４）によれば、ランクｉとランクｊとの距離がさらに近づくほど、数式（３）により得られる斥力よりさらに強く反発し合う斥力が発生することになる。尚、数式（４）に含まれる数値「−５００００」は定数であり、定数を適宜変更してもよい。
【数４】
0006492779.tif 000005
【００４１】
したがって、ランク間の通信トラフィック及び距離に応じた引力とランク間の距離に応じた斥力の関係は、図９（ａ）に示すようなグラフによって表される。図９（ａ）に示すように、ランクｉとランクｊとの距離が閾値Ｌ１未満であれば、ランクｉとランクｊとの間に斥力が発生する。ランクｉとランクｊとの距離が閾値Ｌ１より大きく閾値Ｌ２より小さければ、ランクｉとランクｊとの間に、ランクｉとランクｊとの距離が閾値Ｌ１未満の場合と比較して弱い斥力が発生する。ランクｉとランクｊとの距離が閾値Ｌ２より大きければ、ランクｉとランクｊとの間に引力が発生する。特に、当該引力はランクｉとランクｊとの距離が遠ざかるほど、強い引力が発生する。
【００４２】
ランク配置変更部３０２は、このようにして算出された引力又は斥力と以下の数式（５）とを利用することで、最終的にランクｊに作用する合力Ｆｊを算出する。数式（５）によれば、図９（ｂ）に示すように、ランクｊは、複数のランクｉから距離に応じた引力又は斥力を受ける。したがって、複数のランクｉから受けた力を合成することで合力Ｆｊが得られ、ランクｊの移動方向が決定される。
【数５】
0006492779.tif 000006
【００４３】
次いで、ランク配置変更部３０２は、算出した合力Ｆｊを各ランクｊに作用させ、各ランクｊの配置を変更する（ステップＳ１０３）。この結果、例えば図７に示すように、初期状態でグループ毎に１点に集中していた複数のランクは、最初は互いの距離が非常に近接しているため強い斥力を発生させ、図１０に示すように、散らばるようになる。そして、後述するタイムステップが経過すると、散らばった変更後のランクの配置に基づいて、引力、斥力、合力が再計算され、ランクの配置が再び変更される。このような処理が繰り返されることで、ランク配置の収束解を得ることができる。
【００４４】
ランク配置変更部３０２によるランク配置の変更が完了すると、次いで、マッピング情報生成部３０３は、変更後のランク配置に対して整列処理を実行し、マッピング情報を生成する（ステップＳ１０４）。
【００４５】
ここで、図１１乃至図１３を参照して、上述した変更後のランク配置に対する整列処理について詳しく説明する。
【００４６】
図１１は、整列処理の一例を示すフローチャートである。図１２は、整列処理の一例を説明するための図である。図１３は、整列処理の他の一例を説明するための図である。図１２及び図１３における格子Ｇは、３次元のネットワークトポロジーにおけるいずれかの平面を表しており、格子Ｇに含まれる複数の格子点ｇ１，ｇ２，・・・ｇｎ，・・・がそれぞれ複数のノード１１０に対応している。複数の格子点ｇ１，ｇ２，・・・，ｇｎ，・・・に複数のランクｒ１，ｒ２，・・・ｒｎ，・・・をそれぞれ移動させて複数のランクｒ１，ｒ２，・・・ｒｎ，・・・を複数の格子点ｇ１，ｇ２，・・・，ｇｎ，・・・に対応づけることにより、マッピング情報生成部３０３は、マッピング情報を生成する。
【００４７】
まず、マッピング情報生成部３０３は、図１２に示す格子Ｇの格子中心ｃを中心とする円１０の半径Ｒに初期半径Ｒ０を設定する（ステップＳ２０１）。具体的には、マッピング情報生成部３０３は、図１２（ａ）に示すように、格子Ｇの格子中心ｃからの距離が遠い格子点ｇ１，ｇ２，ｇ３，ｇ４から順番にランクｒ１，ｒ２，・・・をマッピングするために、半径Ｒに初期半径Ｒ０を設定する。初期半径Ｒ０としては、例えば、計算ノード群１００の全格子点を内容するサイズとしてもよい。これにより、図１２（ａ）に示すように、格子中心ｃを中心とする半径Ｒ０の円１０が仮想的に設定される。
【００４８】
次いで、マッピング情報生成部３０３は、半径Ｒの円１０の外側に位置する、ランクが未配置の格子点（位置（ｘｇ，ｙｇ）の格子点）それぞれに、当該格子点までの距離が最短になるランクを移動する（ステップＳ２０２）。具体的には、図１２（ａ）に示すように、マッピング情報生成部３０３は、半径Ｒの円１０の外側に位置する、ランクが未配置の格子点ｇ１，ｇ２，ｇ３，ｇ４を特定する。次いで、マッピング情報生成部３０３は、格子点ｇ１，ｇ２，ｇ３，ｇ４までの距離が最短になるランクｒ１，ｒ２，ｒ３，ｒ４を特定する。最後に、図１２（ｂ）に示すように、マッピング情報生成部３０３は、ランクｒ１，ｒ２，ｒ３，ｒ４をそれぞれ格子点ｇ１，ｇ２，ｇ３，ｇ４に移動する。
【００４９】
次いで、マッピング情報生成部３０３は、半径Ｒの円１０の外側に位置するランクを、距離が最短になる、ランクが未配置の格子点（位置（ｘｎ，ｙｎ）の格子点）に移動する（ステップＳ２０３）。具体的には、図１３（ａ）に示すように、マッピング情報生成部３０３は、半径Ｒの円１０の外側に位置するランクｒ５，ｒ６を特定する。次いで、マッピング情報生成部３０３は、ランクｒ５，ｒ６から距離が最短になるランクが未配置の格子点ｇ５，ｇ６をそれぞれ特定する。最後に、図１３（ｂ）に示すように、マッピング情報生成部３０３は、ランクｒ５，ｒ６をそれぞれ格子点ｇ５，ｇ６に移動する。尚、半径Ｒの円１０の外側に位置する複数のランクから距離が最短になるランクが未配置の格子点が同一の格子点である場合、マッピング情報生成部３０３は、例えば、複数のランクからいずれか１つのランクを選択し、選択したランクを、距離が最短になるランクが未配置の格子点に移動する。マッピング情報生成部３０３は、選択したランクを移動した後、残りのランクから別の１つのランクを選択し、選択したランクを、次に距離が最短になるランクが未配置の格子点に移動する。マッピング情報生成部３０３は、選択した別のランクを移動した後、同様の処理を繰り返す。
【００５０】
マッピング情報生成部３０３は、ステップＳ２０３の処理が完了すると、半径ＲをΔＲ分だけ小さくした新たな半径Ｒを設定し（ステップＳ２０４）、新たな半径Ｒが０であるか否かを判断する（ステップＳ２０５）。マッピング情報生成部３０３は、新たな半径Ｒが０でないと判断した場合（ステップＳ２０５：ＮＯ）、上述したステップＳ２０２及びＳ２０３の処理を繰り返す。これにより、マッピング情報生成部３０３は、格子中心ｃからの距離が遠い格子点から同心円状に順番に各格子点にランクをマッピングしていく。そして、マッピング情報生成部３０３は、新たな半径Ｒが０であると判断した場合（ステップＳ２０５：ＹＥＳ）、マッピング情報生成部３０３は整列処理を終了する。マッピング情報生成部３０３は、整列処理が完了した後のランク配置をマッピング情報としてマッピング情報評価部３０４に送信する。
【００５１】
再び、図８に戻り、ステップＳ１０５の処理以降について説明する。
【００５２】
マッピング情報評価部３０４は、ステップＳ１０４の処理が完了すると、所定の評価式によりマッピング情報の評価値Ｅを算出する（ステップＳ１０５）。所定の評価式は以下の数式（６）により表される。
【数６】
0006492779.tif 000007
【００５３】
ここで、数式（６）におけるｈｏｐｉ，ｊは、ランクｉとランクｊとの間の通信ホップ数を表している。数式（６）におけるｓｉｚｅｉ，ｊは、ランクｉとランクｊとの通信量を表している。すなわち、数式（６）における評価値Ｅは、すべてのランクｉとランクｊとの組合せに対して、通信ホップ数と通信量とを乗じた値の総計を表している。数式（６）によれば、大量の通信を行うランク同士ほど通信ホップ数が少なくなるように配置した場合に、評価値Ｅの値が小さくなる。
【００５４】
マッピング情報評価部３０４は、評価値Ｅを算出すると、次いで、評価値Ｅが改善したか否かを判断する（ステップＳ１０６）。具体的には、マッピング情報記憶部３０５に既に算出された評価値Ｅ´が記憶されていれば、マッピング情報評価部３０４は、マッピング情報記憶部３０５から評価値Ｅ´を抽出する。そして、マッピング情報評価部３０４は、抽出した評価値Ｅ´と直前に算出した評価値Ｅと対比する。マッピング情報評価部３０４は、評価値Ｅ´より評価値Ｅの方が小さいと判断した場合、評価値Ｅが改善したと判断し（ステップＳ１０６：ＹＥＳ）、マッピング情報をマッピング情報記憶部３０５に出力する（ステップＳ１０７）。その際、マッピング情報評価部３０４は、マッピング情報とともに評価値Ｅもマッピング情報記憶部３０５に出力するようにしてもよい。
【００５５】
マッピング情報評価部３０４は、ステップＳ１０７の処理が完了すると、次いで、評価値Ｅが評価閾値未満であるか否かを判断する（ステップＳ１０８）。評価閾値はマッピング情報が十分に最適化されているか否かを判断するための閾値である。マッピング情報評価部３０４は、評価値Ｅが評価閾値未満であると判断した場合（ステップＳ１０８：ＹＥＳ）、処理を終了する。
【００５６】
一方、マッピング情報評価部３０４は、ステップＳ１０６の処理で評価値Ｅが改善していなかったと判断した場合（ステップＳ１０６：ＮＯ）、及び評価値Ｅが評価閾値未満でないと判断した場合（ステップＳ１０８：ＮＯ）には、タイムステップｔｓが上限Ｔに到達したか否かを判断する（ステップＳ１０９）。ここで、タイムステップｔｓは、マッピング情報を生成する回数を表している。上限Ｔは、予め定めておけばよい。
【００５７】
マッピング情報評価部３０４は、タイムステップｔｓが上限Ｔに到達したと判断した場合（ステップＳ１０９：ＹＥＳ）、処理を終了する。一方、マッピング情報評価部３０４は、タイムステップｔｓが上限Ｔに到達していないと判断した場合（ステップＳ１０９：ＮＯ）、ステップＳ１０２からステップＳ１０８の処理を繰り返す。したがって、マッピング情報評価部３０４は、タイムステップｔｓが上限Ｔ（例えば４０００タイムステップ）に到達するまで、繰り返しマッピング情報を生成して評価する。この過程で、マッピング情報評価部３０４が評価閾値未満になる評価値Ｅを算出した場合、その評価値Ｅの算出元になったマッピング情報をマッピング情報記憶部３０５に記憶する。逆に、マッピング情報評価部３０４が評価閾値以上になる評価値Ｅを算出した場合、タイムステップｔｓを経過させて、マッピング情報生成部３０３は新たなマッピング情報を生成する。そして、マッピング情報評価部３０４が新たなマッピング情報を評価する。
【００５８】
次に、図１４を参照して、ランクの配置が収束する様子について説明する。
【００５９】
図１４は、タイムステップｔｓの経過に伴いＸＹ平面上で配置が変更するランクの軌跡の一例を説明するための図である。ＸＺ平面及びＹＺ平面でも基本的に同様である。図１４に示すように、タイムステップｔｓ＝０において第１のランク、第２のランク、第３のランク及び第４のランクは、それぞれ４つの始点Ｓ１，Ｓ２，Ｓ３，Ｓ４に位置している。ここで、第１のランク、第２のランク、第３のランク及び第４のランクは互いの距離がそれぞれ閾値Ｌ２より大きいために引力が発生する。その後、タイムステップｔｓの経過に伴い、第１のランク、第２のランク、第３のランク及び第４のランクはお互いの距離が近づくように移動する。さらに、第１のランク、第２のランク、第３のランク及び第４のランクは互いの距離がそれぞれ閾値Ｌ２未満になるとそれぞれ斥力を発生させる。このため、第１のランク、第２のランク、第３のランク及び第４のランクは互いにＸＹ平面の中心付近で反発し合い、互いの距離が遠ざかるように移動する。最後に、タイムステップｔｓが上限Ｔに到達すると、第１のランク、第２のランク、第３のランク及び第４のランクは移動を停止する。したがって、タイムステップｔｓが上限Ｔのときの第１のランク、第２のランク、第３のランク及び第４のランクの配置が整列処理前の最後のランク配置になる。このランク配置は、収束解となっている。尚、図１４において、例えばタイムステップｔｓの上限Ｔを斥力が発生する前の値に設定した場合、ランクは引力だけに基づいて移動しランクの配置が収束する。同様に、例えば図７において、タイムステップｔｓの上限Ｔを引力が発生する前の値に設定した場合、ランクは斥力だけに基づいて移動しランクの配置が収束する。
【００６０】
ここで、各ランクの移動前の座標と移動後の座標との関係は以下の数式（７）〜（１２）によって表される。そして、数式（７）〜（９）におけるｋは移動距離を表す予め設定される定数である。このため、図１４における第１のランク、第２のランク、第３のランク及び第４のランクの移動量は一定している。また、数式（１０）〜（１２）の分子に示されたＦｘ，ｊ、Ｆｙ，ｊ、Ｆｚ，ｊはそれぞれ上述した合力Ｆｊのｘ成分、ｙ成分、ｚ成分であり、分母は合力Ｆｊの大きさ（長さ）である。
【数７】
0006492779.tif 000008
【数８】
0006492779.tif 000009
【数９】
0006492779.tif 000010
【数１０】
0006492779.tif 000011
【数１１】
0006492779.tif 000012
【数１２】
0006492779.tif 000013
【００６１】
次に、図１５を参照して、マッピング情報について説明する。
【００６２】
図１５は、マッピング情報の一例である。マッピング情報は、上述したようにマッピング情報記憶部３０５に記憶される。マッピング情報とともに評価値Ｅもマッピング情報記憶部３０５に記憶されるようにしてもよい。マッピング情報は、ランクとノード１１０の座標との対応付けによって表される。例えば、ランク「ｎ」（より詳しくはランク「ｎ」が付与されたプロセス）は、座標（ｘｎ，ｙｎ，ｚｎ）に配置されたノード１１０に割り当てられる。尚、ｎは０〜１０２３の整数である。
【００６３】
以上説明したように、本実施形態に係るマッピング情報生成装置３００は、コンピュータ上に構築された空間内に複数のランクを配置し、その空間内において、複数のランクに含まれる各ランク間に引力と斥力の少なくとも一方を作用させて複数のランクの位置を変更する。そして、マッピング情報生成装置３００は、変更した複数のランクの位置と取得した複数のノード１１０の位置とに基づき、複数のノード１１０に複数のランクをマッピングするマッピング情報を生成する。このように、大規模な並列計算システムＳで焼きなまし法を利用するとマッピング情報の生成に多大な計算量を要するが、本実施形態に係るマッピング情報生成装置３００を利用すると、大規模な並列計算システムＳであってもマッピング情報を生成する際の計算量を抑制することができる。
【００６４】
最後に、図１６を参照して、初期状態の有無に応じた評価値Ｅの相違について説明する。
【００６５】
図１６は、タイムステップｔｓの経過と評価値Ｅとの関係を示すグラフの一例である。図１６において、グラフＡは初期状態を利用した場合のグラフを示しており、グラフＢは初期状態と異なる状態を利用した場合のグラフを示している。ここで、初期状態と異なる状態とは、ランクの順番とノード１１０の座標の順番を対応させた状態をいう。当該状態は、例えば、ランク「０」（より詳しくはランク「０」が付与されたプロセスをいう。以下同様）が座標（０，０，０）のノード１１０に割り当てられ、ランク「１」が座標（１，０，０）のノード１１０に割り当てられ、・・・、ランク「１０２３」が座標（１６，８，８）のノード１１０に割り当てられている状態をいう。
【００６６】
図１６に示すように、タイムステップｔｓ＝０からタイムステップｔｓが経過するに伴い、初めの内はグラフＡもグラフＢも評価値Ｅが急激に降下する。その後、グラフＡもグラフＢも降下を緩め一定の評価値Ｅに収束する。ここで、初期状態を利用した場合には、タイムステップｔｓの上限Ｔである４０００タイムステップにおいて評価値ＥはＥ＝１５２２０に収束する。一方、初期状態と異なる状態を利用した場合には、タイムステップｔｓの上限Ｔである４０００タイムステップにおいて評価値ＥはＥ＝１７５０２に収束する。
【００６７】
このように、初期状態を利用した評価値Ｅは、初期状態と異なる状態を利用した評価値Ｅと比べて、評価値Ｅが低下する。このため、初期状態を利用した方が初期状態と異なる状態を利用する場合に比べて、より適切なマッピング情報を得ることができる。尚、本実施形態に係るマッピング情報生成装置３００を利用せずに、初期状態と異なる状態に基づいて算出した評価値ＥはＥ＝３１６０８に収束する。このため、仮に初期状態を利用しなくても、初期状態と異なる状態を利用して本実施形態に係るマッピング情報生成装置３００を利用すれば、大規模な並列計算システムＳであってもマッピング情報を低計算量で生成することができる。
【００６８】
以上、本発明の好ましい実施形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。例えば、図１４に示すような、ランクが移動する過程をユーザの端末装置４００に表示させるようにしてもよい。これにより、ユーザは時系列に沿ってランク配置がどのように変化するか確認することができる。
【００６９】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）コンピュータ上に構築された空間内に複数のプロセスを配置する処理と、前記空間内において、前記複数のプロセスに含まれる各プロセス間に引力と斥力の少なくとも一方を作用させることで、前記複数のプロセスの位置を変更する処理と、変更した前記複数のプロセスの位置と、取得した複数のノードの位置と、に基づき、前記複数のノードに前記複数のプロセスをマッピングする情報を生成する処理と、をコンピュータに実行させることを特徴とするマッピング情報生成プログラム。
（付記２）前記変更する処理は、前記各プロセス間の通信トラフィックに応じた引力を作用させることで、前記複数のプロセスの位置を変更する、ことを特徴とする付記１に記載のマッピング情報生成プログラム。
（付記３）前記変更する処理は、前記プロセス間の距離が基準値を超えている場合、該プロセス間に、さらに該プロセス間の距離に応じた引力を作用させることで、前記複数のプロセスの位置を変更する、ことを特徴とする付記１に記載のマッピング情報生成プログラム。
（付記４）前記変更する処理は、前記各プロセス間の通信量及び通信回数に関する情報に基づき、前記通信トラフィックを算出する、ことを特徴とする付記２又は３に記載のマッピング情報生成プログラム。
（付記５）前記変更する処理は、前記プロセス間の距離が基準値未満である場合、該プロセス間に、さらに該プロセス間の距離に応じた斥力を作用させることで、前記複数のプロセスの位置を変更する、ことを特徴とする付記１から４のいずれか１項に記載のマッピング情報生成プログラム。
（付記６）前記変更する処理の前に、前記複数のプロセスを、前記各プロセス間の通信頻度に応じた複数のグループに分割し、個々のグループに含まれる複数のプロセスを、該グループに応じた範囲内に配置する、ことを特徴とする付記１から５のいずれか１項に記載のマッピング情報生成プログラム。
（付記７）前記生成する処理は、位置を変更した前記複数のプロセスに含まれる各プロセスと、前記複数のノードに含まれる各ノードとのそれぞれの距離に基づき、前記複数のノードのうち、前記各プロセスを対応づけるノードを決定する、ことを特徴とする付記１から６のいずれか１項に記載のマッピング情報生成プログラム。
（付記８）コンピュータ上に構築された空間内に複数のプロセスを配置する処理と、前記空間内において、前記複数のプロセスに含まれる各プロセス間に引力と斥力の少なくとも一方を作用させることで、前記複数のプロセスの位置を変更する処理と、変更した前記複数のプロセスの位置と、取得した複数のノードの位置と、に基づき、前記複数のノードに前記複数のプロセスをマッピングする情報を生成する処理と、をコンピュータが実行することを特徴とするマッピング情報生成方法。
（付記９）コンピュータ上に構築された空間内に複数のプロセスを配置し、前記空間内において、前記複数のプロセスに含まれる各プロセス間に引力と斥力の少なくとも一方を作用させることで、前記複数のプロセスの位置を変更する変更手段と、変更した前記複数のプロセスの位置と、取得した複数のノードの位置と、に基づき、前記複数のノードに前記複数のプロセスをマッピングする情報を生成する生成手段と、を備えることを特徴とするマッピング情報生成装置。
（付記１０）前記変更手段は、前記各プロセス間の通信トラフィックに応じた引力を作用させることで、前記複数のプロセスの位置を変更する、ことを特徴とする付記９に記載のマッピング情報生成装置。
（付記１１）前記変更手段は、前記プロセス間の距離が基準値を超えている場合、該プロセス間に、さらに該プロセス間の距離に応じた引力を作用させることで、前記複数のプロセスの位置を変更する、ことを特徴とする付記９に記載のマッピング情報生成装置。
（付記１２）前記変更手段は、前記各プロセス間の通信量及び通信回数に関する情報に基づき、前記通信トラフィックを算出する、ことを特徴とする付記１０又は１１に記載のマッピング情報生成装置。
（付記１３）前記変更手段は、前記プロセス間の距離が基準値未満である場合、該プロセス間に、さらに該プロセス間の距離に応じた斥力を作用させることで、前記複数のプロセスの位置を変更する、ことを特徴とする付記９から１２のいずれか１項に記載のマッピング情報生成装置。
（付記１４）前記変更手段による変更の前に、前記複数のプロセスを、前記各プロセス間の通信頻度に応じた複数のグループに分割し、個々のグループに含まれる複数のプロセスを、該グループに応じた範囲内に配置する、ことを特徴とする付記９から１３のいずれか１項に記載のマッピング情報生成装置。
（付記１５）前記生成手段は、位置を変更した前記複数のプロセスに含まれる各プロセスと、前記複数のノードに含まれる各ノードとのそれぞれの距離に基づき、前記複数のノードのうち、前記各プロセスを対応づけるノードを決定する、ことを特徴とする付記９から１４のいずれか１項に記載のマッピング情報生成装置。
（付記１６）コンピュータ上に構築された空間内に複数のプロセスを配置する処理と、前記空間内において、前記複数のプロセスに含まれる各プロセス間に引力と斥力の少なくとも一方を作用させることで、前記複数のプロセスの位置を変更する処理と、変更した前記複数のプロセスの位置と、取得した複数のノードの位置と、に基づき、前記複数のノードに前記複数のプロセスをマッピングする情報を生成する処理と、前記複数のプロセスの位置が変更する過程を表示する処理と、をコンピュータが実行することを特徴とするマッピング情報生成方法。
【符号の説明】
【００７０】
Ｓ  並列計算システム
１００  計算ノード群
１１０  ノード
３００  マッピング情報生成装置
３０１  受付部
３０２  ランク配置変更部
３０３  マッピング情報生成部
３０４  マッピング情報評価部
３０５  マッピング情報記憶部
【図１】
0006492779.tif 000014
【図２】
0006492779.tif 000015
【図３】
0006492779.tif 000016
【図４】
0006492779.tif 000017
【図５】
0006492779.tif 000018
【図６】
0006492779.tif 000019
【図７】
0006492779.tif 000020
【図８】
0006492779.tif 000021
【図９】
0006492779.tif 000022
【図１０】
0006492779.tif 000023
【図１１】
0006492779.tif 000024
【図１２】
0006492779.tif 000025
【図１３】
0006492779.tif 000026
【図１４】
0006492779.tif 000027
【図１５】
0006492779.tif 000028
【図１６】
0006492779.tif 000029