JP5527416B2 - ネットワーク評価装置、ネットワーク評価方法及びネットワーク評価プログラム - Google Patents

ネットワーク評価装置、ネットワーク評価方法及びネットワーク評価プログラム Download PDF

Info

Publication number
JP5527416B2
JP5527416B2 JP2012530420A JP2012530420A JP5527416B2 JP 5527416 B2 JP5527416 B2 JP 5527416B2 JP 2012530420 A JP2012530420 A JP 2012530420A JP 2012530420 A JP2012530420 A JP 2012530420A JP 5527416 B2 JP5527416 B2 JP 5527416B2
Authority
JP
Japan
Prior art keywords
processing time
communication processing
communication
cpu
processors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012530420A
Other languages
English (en)
Other versions
JPWO2012025959A1 (ja
Inventor
郁夫 三吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Publication of JPWO2012025959A1 publication Critical patent/JPWO2012025959A1/ja
Application granted granted Critical
Publication of JP5527416B2 publication Critical patent/JP5527416B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Description

開示の技術は、複数のプロセッサ間で通信を行い、複数のプロセッサでプログラムを実行する情報処理装置における、複数のプロセッサ間の通信状態を評価するネットワーク評価装置、ネットワーク評価方法及びネットワーク評価プログラムに関する。
従来、演算処理装置としての複数のプロセッサ間で通信を行い、複数のプロセッサでプログラムを実行して所望の計算処理を実行する情報処理装置が知られている。複数のプロセッサでプログラムを実行する場合、複数のプロセッサ間では、計算処理を実行するために必要となるデータを通信処理によって交換する処理が行われる。複数のプロセッサ間におけるデータの通信処理には、所定の時間が必要となる。複数のプロセッサ間における通信処理時間のことを通信オーバヘッドという。
所望の計算処理を高速化するためには、通信オーバヘッドをできるだけ抑制することが必要となる。しかし、通信オーバヘッドは、複数のプロセッサ間でデータを交換する際に必要となる最小限の処理時間に加え、通信用ネットワークの混雑度合及び各プロセッサの通信開始タイミングに影響される。そのため、通信オーバヘッドがどの程度抑制できるか把握することは困難である。
一方、通信用ネットワークの混雑度合の低減、又は各プロセッサの通信開始タイミングを変更するためには、計算処理のアルゴリズムの変更が必要となる場合がある。計算処理のアルゴリズムを変更すると、システムの設定変更を再度行う必要があるため、計算処理の高速化に伴う作業量が増加する。そのため、アルゴリズム変更による計算処理の高速化の効果及び限界を事前に効率良く見積もることが望ましい。
しかし、通信オーバヘッドの抑制及びアルゴリズム変更によって得られる計算処理の高速化の度合いは、作業者の経験及びスキルに大きく依存する。それゆえ、単にアルゴリズム変更を実施しても、アルゴリズム変更による計算処理の高速化の効果及び限界を把握することは困難である。又、使用するプロセッサの数を増加させて大規模な計算処理を行う際も同様に、計算処理の高速化の限界を把握することは困難である。
従来技術として、下記の文献がある。
特開平10−98468号公報 特開平05−250339号公報 特開2004−13567号公報
(発明が解決しようとする課題)
開示の技術は、複数のプロセッサ間における通信オーバヘッドを容易に評価できるネットワーク評価装置、ネットワーク評価方法及びネットワーク評価プログラムを提供することを目的とする。
(課題を解決するための手段)
本発明の課題を解決するため、開示の技術の第1の側面によれば、
複数のプロセッサ間で通信を行い、前記複数のプロセッサでプログラムを実行する情報処理装置の通信状態を評価するネットワーク評価装置であって、
前記複数のプロセッサが前記プログラムを実行していない状態での前記複数のプロセッサ間の第1通信処理時間を集計する第1通信処理時間集計部と、
前記第1通信処理時間集計部で集計された前記第1通信処理時間を記録する第1通信処理時間記録部と、
前記複数のプロセッサが共に前記プログラムを実行している状態での前記複数のプロセッサ間の第2通信処理時間を集計する第2通信処理時間集計部と、
前記第1通信処理時間記録部で記憶された前記第1通信処理時間と、前記第2通信処理時間集計部で集計された前記第2通信処理時間とを比較し、前記第1通信処理時間と前記第2通信処理時間との時間差を出力する通信処理時間比較部と、
を備えることを特徴とするネットワーク評価装置を提供する。
開示の技術の第2の側面によれば、
複数のプロセッサ間で通信を行い、前記複数のプロセッサでプログラムを実行する情報処理装置の通信状態を評価するネットワーク評価方法であって、
前記複数のプロセッサが前記プログラムを実行していない状態での前記複数のプロセッサ間の第1通信処理時間を集計し、
集計された前記第1通信処理時間を記録し、
前記複数のプロセッサが共に前記プログラムを実行している状態での前記複数のプロセッサ間の第2通信処理時間を集計し、
記憶された前記第1通信処理時間と、集計された前記第2通信処理時間とを比較し、前記第1通信処理時間と前記第2通信処理時間との時間差を出力することを含むことを特徴とするネットワーク評価方法を提供する。
開示の技術の第3の側面によれば、
複数のプロセッサ間で通信を行い、前記複数のプロセッサでプログラムを実行する情報処理装置の通信状態を評価するネットワーク評価プログラムであって、
前記複数のプロセッサが前記プログラムを実行していない状態での前記複数のプロセッサ間の第1通信処理時間を集計し、
集計された前記第1通信処理時間を記録し、
前記複数のプロセッサが共に前記プログラムを実行している状態での前記複数のプロセッサ間の第2通信処理時間を集計し、
記憶された前記第1通信処理時間と、集計された前記第2通信処理時間とを比較し、前記第1通信処理時間と前記第2通信処理時間との時間差を出力することを含むことを特徴とするネットワーク評価プログラムを提供する。
(発明の効果)
開示の技術によれば、第1通信処理時間集計部は、複数のプロセッサがプログラムを実行していない状態で複数のプロセッサ間の第1通信処理時間を集計する。次いで、第2通信処理時間集計部は、複数のプロセッサがプログラムを複数のプロセッサで実行している状態で複数のプロセッサ間の第2通信処理時間を集計する。通信処理時間比較部で第1通信処理時間及び第2通信処理時間を比較し、第1通信処理時間と前記第2通信処理時間との時間差を出力することにより、複数のプロセッサ間における通信オーバヘッドを容易に評価することができる。複数のプロセッサ間における通信オーバヘッドを容易に評価することができるため、使用するプロセッサの数を増加させた際のプログラム処理の高速化の限界を容易に把握することができる。
図1は、本実施例に係るネットワーク評価装置を備える情報処理装置の概要を示す図である。 図2は、本実施例に係るネットワーク評価装置の処理を示すフローチャートを示す図である。 図3は、本実施例に係るネットワーク評価装置の処理を示すフローチャートを示す図である。 図4は、本実施例に係るネットワーク評価装置の処理を示すフローチャートを示す図である。 図5は、本実施例に係るネットワーク評価装置の処理を示すフローチャートを示す図である。 図6は、本実施例に係るネットワーク評価装置の処理を示すフローチャートを示す図である。 図7は、本実施例に係る理想通信処理時間記録テーブルの一例を示す図である。 図8は、本実施例に係る理想通信処理時間及び通信処理時間の計算方法の一例を示す。 図9は、本実施例に係るネットワーク評価装置において、集計された通信処理時間及び理想通信処理時間を示す図である。 図10は、本実施例のネットワーク評価装置に係るMPI規格に準拠した通信処理ソフトウェアライブラリにおいて、通信に参加した演算装置数(ノード数)と通信処理に要する時間との関係を示す図である。 図11は、本実施例のネットワーク評価装置に係るMPI規格に準拠した通信処理ソフトウェアライブラリにおいて、通信データ長と通信処理に要する時間との関係を示す図である。 図12は、本実施例に係るネットワーク評価装置において、通信オーバヘッドの削減目標値を算出するアプローチを示す模式図である。
以下、開示の技術の本実施例に係るネットワーク評価装置100、ネットワーク評価方法及びネットワーク評価プログラムが説明される。ただし、開示の技術は各実施例に限定されるものではない。
図1から図12では、本実施例に係るネットワーク評価装置100、ネットワーク評価方法及びネットワーク評価プログラムが説明される。
図1は、本実施例に係る情報処理装置1000に備えられたネットワーク評価装置100の概略構成図を示す。
情報処置装置1000は、演算装置10A、演算装置10B、ネットワーク15、LAN(Local Area Network)16、モニタ17及びネットワーク評価装置100を備える。演算装置10A、演算装置10B、モニタ17及びネットワーク評価装置100は、ネットワーク15を介して互いに接続されている。なお、演算装置10A及び演算装置10Bは、同一の構成要件を備える。
演算装置10Aは、CPU(Central Processing Unit)11A、タイマ12A、RAM(Random Access Memory)13A、HDD(Hard Disk Drive)14A及びバス18Aを備える。
演算装置10Aは、CPU11Aによって全体が制御される。CPU11Aには、バス18Aを介してRAM13A及びHDD14Aが接続される。
CPU11Aは、タイマ12Aの機能を備える。タイマ12Aは、例えば演算装置10Aのシステム時刻を計時する。タイマ12Aは、演算装置10AのCPU11A及び演算装置10BのCPU11B間の通信処理を行う際に、通信処理開始時刻及び通信処理終了時刻を計時する。
CPU11Aは、演算装置10AのCPU11A及び演算装置10BのCPU11Bにおいて計算処理が行われていない時の通信処理開始時刻と通信処理終了時刻との間の差分を計算する。CPU11Aは、通信処理開始時刻を取得する前に、RAM13Aに格納される計算プログラム130Aの一部を、CPU11Aに備えられた不図示のキャッシュに一時的に格納する。CPU11Aのタイマ12Aは、演算装置10BのCPU11Bに対して計算プログラム130Aの一部を送信する処理を開始する時刻を取得する。CPU11Aのタイマ12Aは、例えば、計算プログラム130Aの一部が、CPU11B内の不図示のキャッシュに一時的に格納されて演算装置10AのCPU11Aに再送信された後、CPU11Aのキャッシュに計算プログラム130Aの一部が格納される時刻を通信処理終了時刻として取得する。計算処理が行われていない時の通信処理開始時刻と通信処理終了時刻との間の差分を、CPU11AとCPU11Bとの間の理想通信処理時間という。CPU11Aは、演算装置10Aの理想通信処理時間を、ネットワーク評価装置100の理想通信処理時間集計部101Aに送信する。CPU11Aは、例えば、CPU11AとCPU11Bとの間の1回の通信に対する理想通信処理時間を理想通信処理時間集計部101Aに送信する。
また、CPU11Aは、演算装置10AのCPU11A及び演算装置10BのCPU11Bにおいて計算処理が行われている時の通信処理開始時刻と通信処理終了時刻との間の差分を計算する。計算処理が行われているときの通信処理開始時刻と通信処理終了時刻との差分を、CPU11AとCPU11Bとの間の通信処理時間という。CPU11Aは、CPU11A−CPU11B間の通信処理時間を、ネットワーク評価装置100の通信処理時間集計部101Cに送信する。CPU11Aは、例えば、CPU11AとCPU11Bとの間の1回の通信に対する通信処理時間を通信処理時間集計部101Cに送信する。
RAM13Aは、例えば、CPU11Aに実行させるOS(Operation System)のプログラム、アプリケーションプログラム及び計算プログラム130Aの少なくとも一部を一時的に記録する。計算プログラム130Aは、本実施例に係る計算処理を実施するためのプログラムである。計算プログラム130Aは、CPU11A及び後述する演算装置10BのCPU11Bによって実行される。また、RAM13Aは、タイマ12Aで計時された通信処理開始時刻及び通信処理終了時刻を一時的に記録する。RAM13Aは、CPU11Aによって計測されたCPU11A−CPU11B間の理想通信処理時間及び通信処理時間を一時的に記録する。また、RAM13Aは、CPU11Aにおける処理に必要な各種データを格納する。
なお、計算プログラム130Aは、RAM13A以外の記憶媒体に保持してもよい。計算プログラム130Aは、例えば、演算装置10Aに挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク及びICカードなどの「可搬用の物理的記憶媒体」に記録される。計算プログラム130Aは、演算装置10Aの内外に備えられるディスク装置、あるいは公衆回線、インターネット、LAN、WANなどを介して演算装置10Aに接続される「他のコンピュータ(またはサーバ)」が保持する記憶媒体に記憶される。演算装置10Aは、上記記録媒体から計算プログラム130Aを読み出して計算処理を実行することができる。
HDD14Aは、例えば、OS及びアプリケーションプログラムを記録する。また、HDD14Aは、タイマ12Aで計時された通信処理開始時刻及び通信処理終了時刻を記録する。HDD14Aは、CPU11Aによって計測されたCPU11AとCPU11Bとの間の理想通信処理時間及び通信処理時間を記録する。
演算装置10Bは、CPU11B、タイマ12B、RAM13B、HDD14B及びバス18Bを備える。
演算装置10Bは、演算装置10Aと同様に、CPU11Bによって全体が制御される。CPU11Bには、バス18Bを介してRAM13B及びHDD14Bが接続される。
CPU11Bは、タイマ12Bの機能を備える。タイマ12Bは、タイマ12Aと同様に、例えば演算装置10Bのシステム時刻を計時する。タイマ12Bは、演算装置10BのCPU11Bと演算装置10AのCPU11Aとの間において通信処理を行う際に、通信処理開始時刻及び通信処理終了時刻を計時する。
CPU11Bは、演算装置10AのCPU11A及び演算装置10BのCPU11Bにおいて計算処理が行われていない時の通信処理開始時刻と通信処理終了時刻との間の差分を計算する。CPU11Bは、通信処理開始時刻を取得する前に、RAM13Bに格納される計算プログラム130Bの一部を、CPU11Bに備えられた不図示のキャッシュに一時的に格納する。CPU11Bのタイマ12Bは、演算装置10AのCPU11Aに対して計算プログラム130Bの一部を送信する処理を開始する時刻を、通信処理開始時刻として取得する。CPU11Bのタイマ12Bは、例えば、計算プログラム130Bの一部が、CPU11Aの不図示のキャッシュに一時的に格納されて演算装置10BのCPU11Bに再送信された後、CPU11Bのキャッシュに計算プログラム130Bの一部が格納される時刻を通信処理終了時刻として取得する。計算処理が行われていない時の通信処理開始時刻と通信処理終了時刻との差分を、CPU11A−CPU11B間の理想通信処理時間という。CPU11Bは、CPU11A−CPU11B間の理想通信処理時間を、ネットワーク評価装置100の理想通信処理時間集計部101Aに送信する。CPU11Bは、例えば、CPU11A−CPU11B間の1回の通信に対する理想通信処理時間を理想通信処理時間集計部101Aに送信する。
また、CPU11Bは、演算装置10AのCPU11A及び演算装置10BのCPU11Bにおいて計算処理が行われている時の通信処理開始時刻と通信処理終了時刻との差分を計算する。計算処理が行われているときの通信処理開始時刻と通信処理終了時刻との差分を、CPU11A−CPU11B間の通信処理時間という。CPU11Bは、CPU11Bによって計算したCPU11A−CPU11B間の通信処理時間を、ネットワーク評価装置100の通信処理時間集計部101Cに送信する。CPU11Bは、例えば、CPU11A−CPU11B間の1回の通信に対する通信処理時間を通信処理時間集計部101Cに送信する。
RAM13Bは、RAM13Aと同様に、例えば、CPU11Bに実行させるOSのプログラム、アプリケーションプログラム及び計算プログラム130Bの少なくとも一部を一時的に記録する。計算プログラム130Bは、本実施例に係る計算処理を実施するためのプログラムである。計算プログラム130Bは、CPU11A及びCPU11Bによって実行される。また、RAM13Bは、タイマ12Bで計時された通信処理開始時刻及び通信処理終了時刻を一時的に記録する。RAM13Bは、CPU11Bによって計測されたCPU11A−CPU11B間の理想通信処理時間及び通信処理時間を一時的に記録する。RAM13Bは、CPU11Bにおける処理に必要な各種データを格納する。なお、計算プログラム130Bは、計算プログラム130Aと同様に、RAM13B以外の記憶媒体に保持してもよい。
HDD14Bは、HDD14Aと同様に、例えば、OS、アプリケーションプログラムを記録する。また、HDD14Bは、タイマ12Bで計時された通信処理開始時刻及び通信処理終了時刻を記録する。HDD14Bは、CPU11Bによって計測されたCPU11A−CPU11B間の理想通信処理時間及び通信処理時間を記録する。
ネットワーク評価装置100は、CPU101、RAM102、HDD103、グラフィック処理装置104、通信インタフェース105及びバス106を備える。
ネットワーク評価装置100は、CPU101によって全体が制御される。CPU101には、バス106を介してRAM102、HDD103、グラフィック処理装置104及び通信インタフェース105が接続される。
CPU101は、理想通信処理時間集計部101A、理想通信処理時間記録部101B、通信処理時間集計部101C及び通信処理時間比較部101Dを備える。
理想通信処理時間集計部101Aは、演算装置10AのCPU11Aから送信されたCPU11A−CPU11B間の理想通信処理時間と、演算装置10BのCPU11Bから送信されたCPU11A−CPU11B間の理想通信処理時間と、を受信する。理想通信処理時間集計部101Aは、演算装置10A及び演算装置10Bから受信したCPU11A−CPU11B間の理想通信処理時間のうち、理想通信処理時間の最大値を抽出する。
理想通信処理時間記録部101Bは、理想通信処理時間集計部101Aで取得された最大の理想通信処理時間をベンチマークとして記録する。記録された最大の理想通信処理時間は、後述する通信オーバヘッドと比較する際に参照される。
通信処理時間集計部101Cは、演算装置10AのCPU11Aから送信されたCPU11A−CPU11B間の通信処理時間と、演算装置10BのCPU11Bから送信されたCPU11A−CPU11B間の通信処理時間と、を受信する。通信処理時間集計部101Cは、演算装置10A及び演算装置10Bから受信したCPU11A−CPU11B間の通信処理時間のうち、通信処理時間の最大値を抽出する。なお、複数のCPU間、即ちCPU11A−CPU11B間のデータの通信処理には、所定の時間が必要となる。CPU11A及びCPU11Bの計算処理が行われている際に発生する複数のCPU間の通信処理時間のことを通信オーバヘッドという。
通信処理時間比較部101Dは、理想通信処理時間記録部101Bに記録された理想通信処理時間及び通信処理時間集計部101Cで集計された通信オーバヘッドを比較する。通信処理時間比較部101Dは、理想通信処理時間に対応する通信処理パターンが、通信オーバヘッドに対応する通信処理パターンと同一であるか、又は類似しているか比較する。理想通信処理時間に対応する通信処理パターンが、通信オーバヘッドに対応する通信処理パターンと同一である、又は類似している場合、通信処理時間比較部101Dは、同一又は類似した通信処理パターンに対応する理想通信処理時間を通信オーバヘッドの削減目標値として出力する。理想通信処理時間に対応する通信処理パターンが、通信オーバヘッドに対応する通信処理パターンと同一ではなく、かつ類似していない場合、通信処理時間比較部101Dは、理想通信処理時間集計部101Aに対して理想通信処理時間の追加測定を要求する。
通信処理時間比較部101Dは、具体的には、通信処理時間集計部101Cによって集計されたCPU11A−CPU11B間の通信処理時間及び理想通信処理時間集計部101Aによって集計された理想通信処理時間を比較する。通信処理時間比較部101Dは、通信処理時間と理想通信処理時間との比較の結果、有意差があるデータを検出する。通信処理時間比較部101Dは、有意差があるデータにおいて、通信処理時間と理想通信処理時間との時間差を通信オーバヘッド削減目標値として算出する。通信処理時間比較部101Dは、算出された通信オーバヘッド削減目標値をモニタ17に出力する。通信オーバヘッド削減目標値は、演算アルゴリズムの変更により、通信オーバヘッドを削減する際のベンチマークとして使用される目標値である。
RAM102は、例えば、CPU101に実行させるOSのプログラム、アプリケーションプログラム及び評価プログラム102Aの少なくとも一部を一時的に記録する。評価プログラム102Aは、CPU101によって、CPU11A及びCPU11B間の理想通信処理時間及び通信処理時間の集計及び比較を行うためのプログラムである。評価プログラム102Aは、CPU101によって実行される。RAM102は、CPU11Aによって計測されたCPU11A−CPU11B間の理想通信処理時間及び通信処理時間を一時的に記録する。RAM102は、CPU11Bによって計測されたCPU11A−CPU11B間の理想通信処理時間及び通信処理時間を一時的に記録する。また、RAM102は、CPU101における処理に必要な各種データを格納する。
なお、評価プログラム102Aは、RAM102以外の記憶媒体に保持してもよい。評価プログラム102Aは、例えば、ネットワーク評価装置100に挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク及びICカードなどの「可搬用の物理的記憶媒体」に記録される。評価プログラム102Aは、ネットワーク評価装置100の内外に備えられるディスク装置、あるいは公衆回線、インターネット、LAN、WANなどを介してネットワーク評価装置100に接続される「他のコンピュータ(またはサーバ)」が保持する記憶媒体に記憶される。演算装置10Aは、上記記録媒体から評価プログラム102Aを読み出して計算処理を実行することができる。
HDD103は、例えば、OS及びアプリケーションプログラムを記録する。HDD103は、後述する理想通信処理時間記録テーブル103Aを記録する。理想通信処理時間記録テーブル103Aについての説明は後述する。HDD103は、CPU11Aによって計測されたCPU11A−CPU11B間の理想通信処理時間及び通信処理時間を一時的に記録する。HDD103は、CPU11Bによって計測されたCPU11A−CPU11B間の理想通信処理時間及び通信処理時間を一時的に記録する。また、HDD103は、理想通信処理時間集計部101A及び通信処理時間比較部101Dを用いて予め測定された理想通信処理時間に対応する通信処理パターンを記録する。通信処理パターンは、通信オーバヘッド削減目標値を算出するために使用される理想通信処理時間に対応する通信処理のパターンである。
グラフィック処理装置104は、モニタ17が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、通信処理時間比較部101Dによって集計された通信オーバヘッド削減目標値をモニタ17に出力する。
通信インタフェース105は、LAN16に接続されている。通信インタフェース105は、LAN16及びネットワーク15を介して、演算装置10A及び演算装置10Bに対してデータの送受信を行う。又、通信インタフェース105は、演算装置10A及び演算装置10Bから、CPU11A−CPU11B間の理想通信処理時間及び通信処理時間の受信を行う。
図2は、本実施例に係るネットワーク評価装置100の処理を示すフローチャートを示す図である。図2に示す処理は、本実施例に係るネットワーク評価装置100を用いて通信オーバヘッド削減目標値の推定を実行する際の処理である。
図2に示すように、S1において、理想通信処理時間集計部101Aは、理想通信処理時間記録部101Bに、演算装置10A及び演算装置10Bから受信したCPU11AとCPU11Bとの間の理想通信処理時間が記録されているか判断する。また、S1において、理想通信処理時間集計部101Aは、ネットワーク評価装置100が初めて使用される初期状態であるか判断する。S1において、理想通信処理時間集計部101Aは、CPU11AとCPU11Bとの間の理想通信処理時間が記録されている、又はネットワーク評価装置100が初めて使用される初期状態ではないと判断すると、次にS2の処理を行う。なお、本実施例において、S1に係る処理は必須ではない。S1の処理を行わず、S2からの処理を開始しても良い。
S1において、理想通信処理時間記録部101Bに理想通信処理時間が記録されておらず、又はネットワーク評価装置100が初めて使用される初期状態であると判断すると、S6において、理想通信処理時間集計部101Aは、理想通信処理時間計測処理を行う。理想通信処理時間集計部101Aにおける理想通信処理時間計測処理については後述する。
S2において、通信処理時間集計部101Cは、通信オーバヘッドの評価対象である計算処理における通信オーバヘッド集計処理を行う。
S2において、CPU11A及びCPU11Bは、演算装置10Aに記録される計算プログラム130A又は演算装置10Bに記録される計算プログラム130Bを実行して計算処理を行う。通信処理時間集計部101Cは、演算装置10A及び演算装置10Bが計算処理している間の、CPU11AとCPU11Bとの間の通信処理時間を、演算装置10A及び演算装置10Bからそれぞれ集計する。なお、複数のCPU間、即ちCPU11AとCPU11Bとの間のデータの通信処理には、所定の時間が必要となる。なお、CPU11A及びCPU11Bの計算処理に対応する複数のCPU間の通信処理時間のことを通信オーバヘッド(通信OH)と簡略化して図示する。
S3において、通信処理時間比較部101Dは、通信オーバヘッドに対応する通信処理パターンに対する理想通信処理時間が通信オーバヘッドの削減目標値として流用できるか判定する処理を行う。計算プログラム130Aは、CPU11A及びCPU11Bによって実行される。なお、通信処理時間比較部101Dにおける流用可否判定処理については後述する。
また、S3において、通信処理時間比較部101Dは、通信オーバヘッドに対応する通信処理パターンに対する理想通信処理時間は集計済みであるか判断する。S3において、通信処理時間比較部101Dは、通信オーバヘッドに対応する通信処理パターンに対する理想通信処理時間が集計済みであると判断すると、次にS4の処理を行う。
なお、S3において、通信処理時間に対応する理想通信処理時間が未集計であると判断すると、通信処理時間比較部101Dは、S7において、通信処理時間に対応する理想通信処理時間の集計を要求する。
S4において、通信処理時間比較部101Dは、理想通信処理時間を通信オーバヘッドの削減目標値として流用する処理を行う。通信処理時間比較部101Dにおける理想通信処理時間の流用処理については後述する。
S5において、通信処理時間比較部101Dは、理想通信処理時間及び通信オーバヘッドの有意差判定処理を行う。通信処理時間比較部101Dにおける通信処理パターンの有意差判定処理については後述する。
また、S5において、通信処理時間比較部101Dは、理想通信処理時間を流用することにより有意差があるデータを抽出する。次いで、通信処理時間比較部101Dは、有意差があるデータにおいて、通信処理時間及び理想通信処理時間の時間差を通信オーバヘッド削減目標値として算出し、モニタ17に出力する。また、通信処理時間比較部101Dは、通信オーバヘッド削減目標値をHDD103に記録する。
図3は、本実施例に係るネットワーク評価装置100の処理を示すフローチャートを示す図である。図3に係るフローチャートは、図2のS6における理想通信処理時間集計部101Aの理想通信処理時間計測処理を示す。なお、本実施例は、通信オーバヘッドの評価対象であるCPU11A及びCPU11B間の理想通信処理時間を計測する一例を示す。
図3に示すように、S11において、理想通信処理時間集計部101Aは、CPU11A及びCPU11Bの通信処理時間の集計に関係しないCPU11A及びCPU11Bを停止させる処理を行う。なお、CPU11A及びCPU11B以外のCPUは、簡略化のため図示を省略する。通信処理時間の集計に関係しないCPU11A及びCPU11Bの停止処理は、通信処理時間の集計に関係しないCPU11A及びCPU11Bによる、通信処理時間の集計に対する外乱を抑制するために行われる。なお、本実施例において、情報処理装置1000の運用条件によっては、S11に係る処理は必須ではない。S11の処理を行わず、S12からの処理を開始しても良い。
S12において、理想通信処理時間集計部101Aは、通信処理時間の集計に関係するCPUを初期化する。即ち、理想通信処理時間集計部101Aは、CPU11A及びCPU11Bを初期化する。
S13において、理想通信処理時間集計部101Aは、通信処理時間の集計対象であるCPU11AとCPU11Bとの間の通信処理時間の測定を開始する。理想通信処理時間集計部101Aは、CPU11AとCPU11Bとの間の通信処理時間の測定をCPU11A及びCPU11Bにそれぞれ実行させる。理想通信処理時間集計部101Aは、仮測定として、CPU11A−CPU11B間の、例えば5回又は10回の通信処理時間の測定を実行させる。仮測定は、仮測定後のCPU11A−CPU11B間の通信処理時間の測定値の変動を抑制するために行われる。
S14において、理想通信処理時間集計部101Aは、CPU11AとCPU11Bとの間の仮測定が所定回数実行済みであるか判断する。S14において、理想通信処理時間集計部101Aは、CPU11AとCPU11Bとの間の通信処理時間の測定が所定回数実行済みであると判断すると、次にS15の処理を行う。
S14において、CPU11AとCPU11Bとの間の仮測定としての通信処理が所定回数分だけ実行されていないと判断すると、理想通信処理時間集計部101Aは、次にS13の処理を行う。
S15において、理想通信処理時間集計部101Aは、CPU11A−CPU11B間の理想通信処理時間の測定を開始する。具体的には、理想通信処理時間集計部101Aは、CPU11A−CPU11B間の通信処理が、例えば5回又は10回の所定回数だけ繰返し実行された後の理想通信処理時間の測定を実行させる。なお、S15における、仮測定後のCPU11A−CPU11B間の理想通信処理時間の測定を本測定という。
S16において、理想通信処理時間集計部101Aは、CPU11A−CPU11B間の理想通信処理時間の測定が、所定回数、即ち本測定分だけ繰返し実行されたか判断する。S16において、CPU11A−CPU11B間の測定が所定回数だけ繰返し実行されたと判断されると、理想通信処理時間集計部101Aは、次にS17の処理を行う。
S16において、CPU11A−CPU11B間の通信処理が、本測定分だけ実行されていないと判断されると、理想通信処理時間集計部101Aは、次にS15の処理を行う。
S17において、理想通信処理時間集計部101Aは、HDD103に記録されるCPU11A及びCPU11Bの本測定分の理想通信処理時間の中から最大値を求める。理想通信処理時間集計部101Aによって計算されたCPU11A−CPU11B間の理想通信処理時間の最大値は、理想通信処理時間記録部101Bに記録される。
図4は、本実施例に係るネットワーク評価装置100の処理を示すフローチャートを示す図である。図4に係るフローチャートは、図2のS3における通信処理時間比較部101Dにおける流用可否判定処理を示す。流用可否判定処理とは、理想通信処理時間を通信オーバヘッドの削減目標値として流用することができるか判定する処理である。
S21において、通信処理時間比較部101Dは、CPU11A−CPU11B間の通信処理パターンの通信データ長が1MB以上であるか判断する。同様に、通信処理時間比較部101Dは、CPU11A−CPU11B間の通信処理パターンに対応する理想通信処理時間の通信参加演算装置数と、通信処理時間の通信参加演算装置数が同じであるか判断する。CPU11A−CPU11B間の通信処理パターンの通信データ長が1MB未満である、または通信参加演算装置数が異なる場合、通信処理時間比較部101Dは、次にS22の判断を行う。通信処理パターンの通信データ長の判断は、理想通信処理時間を通信オーバヘッドの削減目標値として流用する際のデータ信頼性を判断するために行われる。
S21において、通信処理パターンの通信データ長が1MB以上であり、且つ通信参加演算装置数が同じである場合、通信処理時間比較部101Dは、次にS25の判断を行う。
S25において、通信処理時間比較部101Dは、CPU11A−CPU11B間の通信処理パターンに対応する理想通信処理時間を、通信オーバヘッドの削減目標値として流用することが可能であると判定する。
S22において、通信処理時間比較部101Dは、CPU11A−CPU11B間の通信処理パターンの通信データ長の「通信データ長−1」を4KBで除した結果の商の整数部が、理想通信処理時間における整数部の値と同じであるか判断する。なお、4KBは4096Bである。同様に、通信処理時間比較部101Dは、CPU11A−CPU11B間の通信処理パターンの通信参加演算装置数が、理想通信処理時間における整数部の値と同じであるか判断する。なお、4KBというパケット長は、通信に用いられるパケット長の一例として設定される。「通信データ長−1」を4KBで除することにより、CPU11A−CPU11B間の通信処理パターンの通信データ長を、パケット数により判断することができる。上述した商の整数部が理想通信処理時間における整数部の値と同じである場合、即ちパケット数が同じである場合、CPU11A−CPU11B間の通信処理時間及び理想通信処理時間は、大きく変わらないものであると仮定される。S22において、CPU11A−CPU11B間の通信処理パターンの「通信データ長−1」の商の整数部が異なる、または通信参加演算装置数が異なる場合、通信処理時間比較部101Dは、次にS23の判断を行う。上述した商の整数部が理想通信処理時間における整数部の値と同じであるか判断することにより、理想通信処理時間を通信オーバヘッドの削減目標値として流用する際のデータ信頼性を判断することができる。
S22において、CPU11A−CPU11B間の通信処理パターンに対応する通信データ長の商の整数部が同じであり、且つ通信参加演算装置数が同じである場合、通信処理時間比較部101Dは、次にS25の判断を行う。
S23において、通信処理時間比較部101Dは、CPU11A−CPU11B間の通信処理パターンの通信データ長が同じであるか判断する。同様に、通信処理時間比較部101Dは、CPU11A−CPU11B間の通信処理パターンの2を底とした「通信参加演算装置数−1」の対数の整数部が同じであるか判断する。CPU11A−CPU11B間の通信処理パターンの通信データ長及び通信参加演算装置数の対数の整数部が異なる場合、通信処理時間比較部101Dは、次にS24の判断を行う。CPU11A−CPU11B間の通信処理パターンの通信データ長が同じであるか、且つ「通信参加演算装置数−1」の対数の整数部が同じであるか判断することにより、理想通信処理時間を通信オーバヘッドの削減目標値として流用する際のデータ信頼性を判断することができる。
S23において、CPU11A−CPU11B間の通信処理パターンに対応する通信データ長及び通信参加演算装置数の対数の整数部が同じである場合、通信処理時間比較部101Dは、次にS25の判断を行う。
S24において、通信処理時間比較部101Dは、通信処理パターンに対応する理想通信処理時間を通信オーバヘッドの削減目標値として流用することは不可能であると判定する。
図5は、本実施例に係るネットワーク評価装置100の処理を示すフローチャートを示す図である。図5に係るフローチャートは、図2のS4における通信処理時間比較部101Dにおける理想通信処理時間の流用処理を示す。理想通信処理時間の流用処理とは、理想通信処理時間を通信オーバヘッドの削減目標値として流用する処理である。
S31において、通信処理時間比較部101Dは、評価対象であるCPU11A−CPU11B間の通信データ長及び通信参加演算装置数に対し、通信データ長及び通信参加演算装置数が最も近い既存性能データを例えば4つ選択する。選択される既存性能データの数は、任意に決定される。既存性能データは、例えば理想通信処理時間記録テーブル103AとしてHDD103に記録されている。
S31において選択される4つの既存性能データは、通信参加演算装置数、通信データ長及び通信処理時間からなる3つの要素を1組とする。また、通信データ長及び通信参加演算装置数が類似する既存性能データとは、以下の式を使用して、αをパラメータとした既存性能データとの有意差が小さくなるような既存性能データが選択される。既存性能データとの有意差は、通信参加演算装置数及び通信データ長から定義される既存性能データ及び評価対象データ間の差異の大きさを示す。パラメータαは、定数として、例えば1×10−6を用いる。選択されるパラメータαの定数は、任意に決定される。
既存性能データとの有意差=(既存性能データの通信参加演算装置数−実際の通信参加演算装置数)+α×(既存性能データの通信データ長−実際の通信データ長)
S32において、通信処理時間比較部101Dは、通信データ長による線形補間により通信処理時間T1を推定する。通信処理時間T1の推定には、選択した4つの既存性能データのうち、通信参加演算装置数が多い2つの既存性能データが使用される。
S33において、通信処理時間比較部101Dは、通信データ長による線形補間により通信処理時間T2を推定する。通信処理時間T2の推定には、選択した4つの既存性能データのうち、通信参加演算装置数が少ない2つの既存性能データが使用される。
なお、S32及びS33で行われる線形補間の処理は、推定される通信処理時間Tx及び対応する通信参加演算装置数Pxを求める。線形補間の処理には、通信参加演算装置数P、通信データ長L及び通信処理時間Tの要素からなる2組の性能データ{Pa、La、Ta}、{Pb,Lb、Tb}及び以下の2式が使用される。
推定される通信処理時間Tx=Ta+(Tb−Ta)×(実際の通信データ長−La)÷(Lb−La)
対応する通信参加演算装置数Px=Pa+(Pb−Pa)×(実際の通信データ長−La)÷(Lb−La)
S34において、通信処理時間比較部101Dは、通信参加演算装置数に対応するデータの線形補間により理想通信処理時間Tidealを推定する。理想通信処理時間Tidealの推定には、通信処理時間T1及びT2が用いられる。理想通信処理時間Tidealは、図2のS5における通信オーバヘッドの削減目標値となる。
S34に係る線形補間の処理は、以下の演算により理想通信処理時間Tidealを求める。理想通信処理時間Tidealを求める演算には、通信処理時間Txの式で求めた通信処理時間T1、通信処理時間T2、対応する通信参加演算装置数Pxの式で求めた通信参加演算装置数P1及び通信参加演算装置数P2が用いられる。
理想通信処理時間Tideal=T1+(T2−T1)×(実際の通信参加演算装置数−P1)÷(P2−P1)
S35において、通信処理時間比較部101Dは、推定された理想通信処理時間Tidealと評価対象データに対応する通信処理時間とを比較する。
図6は、本実施例に係るネットワーク評価装置100の処理を示すフローチャートを示す図である。図6に係るフローチャートは、図2のS5における通信処理時間の有意差判定処理を示す。通信処理時間の有意差判定処理は、評価対象であるCPU11A及びCPU11B間の通信処理時間及び理想通信処理時間を、通信処理時間比較部101Dで比較して行う。なお、本実施例に係るMPIの通信条件及び演算処理数は、任意に設定される。
S41において、通信処理時間比較部101Dは、CPU11A−CPU11B間の通信処理時間が50μ秒以上であるか、且つ、通信処理時間と理想通信処理時間の時間差が20%以上であるか判断する。なお、50μ秒という通信処理時間は、通信処理時間の一例として設定される。50μ秒という通信時間は、CPU11A及びCPU11Bが、通信処理以外の演算処理に要する時間のうち有意な長さを持つ時間の目安として設定される。例えば、3GHzのクロック周波数を有するCPUは、50μ秒の処理時間で60万回〜120万回の数値演算を行う。S41において、CPU11A−CPU11B間の通信処理時間が50μ秒未満である、または通信処理時間の時間差か20%未満であると判断された場合、通信処理時間比較部101Dは、次にS42の判断を行う。
S41において、通信処理時間が50μ秒以上であり、且つ通信処理時間の時間差か20%以上であると判断された場合、通信処理時間比較部101Dは、次にS45の処理を行う。
S42において、通信処理時間比較部101Dは、CPU11A−CPU11B間の通信データ長が64KB以上であり、且つ通信処理時間と理想通信処理時間の時間差が10%以上であるか判断する。なお、64KBという通信データ長は、通信データ長の一例として設定される。通信データ長が例えば64KBである場合、CPU11A−CPU11B間の通信処理時間は例えば30μ秒〜40μ秒となる。S42において、CPU11A−CPU11B間の通信データ長が64KB未満である、または通信処理時間と理想通信処理時間の時間差が10%未満であると判断された場合、通信処理時間比較部101Dは、次にS43の判断を行う。
S42において、通信データ長が64KB以上であり、且つ通信処理時間及び理想通信処理時間の時間差が10%以上であると判断された場合、通信処理時間比較部101Dは、次にS45の判断を行う。
S43において、通信処理時間比較部101Dは、通信処理時間と理想通信処理時間との時間差が100μ秒以上であるか判断する。通信処理時間と理想通信処理時間との時間差が100μ秒未満であると判断された場合、通信処理時間比較部101Dは、次にS44の処理を行う。
なお、S43において、通信処理時間と理想通信処理時間との時間差が100μ秒以上であると判断された場合、通信処理時間比較部101Dは、次にS45の処理を行う。
S44において、通信処理時間比較部101Dは、通信処理時間と理想通信処理時との間において有意差が無いと判定する。
S45において、通信処理時間比較部101Dは、通信処理時間と理想通信処理時との間において有意差が有ると判定する。
図7は、本実施例に係る理想通信処理時間記録テーブル103Aのデータ構造例を示す図である。ネットワーク評価装置100に係るHDD103は、理想通信処理時間記録テーブル103Aを記録する。
理想通信処理時間記録テーブル103Aは、例えば、MPI(Message Passing Interface)という通信API(Application Program Interface)で記述された並列プログラムが演算装置10AのCPU11A及び演算装置10BのCPU11Bで実行された際の通信データ長(B)及び通信処理時間(μ秒)を記録するテーブルである。理想通信処理時間記録テーブル103Aは、通信の種類を示すフィールド103A1、通信に参加した演算装置数を示すフィールド103A2、通信データ長を示すフィールド103A3、送信元の演算装置番号を示すフィールド103A4、送信先の演算装置番号を示すフィールド103A5及び通信処理時間を示すフィールド103A6が設けられている。各フィールドの横方向に並べられた情報同士が互いに関連付けられている。
フィールド103A1には、MPI通信機能における通信の種類が設定されている。図7に示した例では、“MPI_AlltoAll”(全対全通信)及び“MPI_Bcast”(放送通信)の2つが設定されている。
フィールド103A2には、MPI通信機能における通信に参加した演算装置数が設定されている。
フィールド103A3には、通信の種類及び演算装置数に対応した通信データ長が設定されている。
フィールド103A4には、送信元の演算装置番号が設定されている。
フィールド103A5には、送信先の演算装置番号が設定されている。
フィールド103A6には、通信の種類及び演算装置数に対応した通信処理時間が設定されている。
以下、理想通信処理時間記録テーブル103Aに記録される通信データ長又は通信参加演算装置数における通信処理時間について説明する。通信オーバヘッドの削減目標値を算出する際に使用される理想通信処理時間に関して、CPU11A及びCPU11Bにおける計算処理中の通信処理時間の通信データ長による理想通信処理時間が未測定である場合がある。同様に、計算処理中の通信処理時間の通信参加演算装置数による理想通信処理時間が未測定である場合がある。このような場合、通信処理時間比較部101Dは、類似の通信データ長又は通信参加演算装置数による理想通信処理時間を評価対象であるCPU11A−CPU11B間の通信処理時間と比較する。若しくは、通信処理時間比較部101Dは、理想通信処理時間集計部101Aを用いて理想通信処理時間の追加測定を実施する。
類似の通信データ長又は通信参加演算装置数による理想通信処理時間が流用される場合、類似の通信データ長又は通信参加演算装置数による理想通信処理時間が使用される。未測定である理想通信処理時間は、流用元の理想通信処理時間を通信データ長又は通信参加演算装置数で内挿又は外挿することにより補間できる。理想通信処理時間のデータ補間は、通信データ長の補間、次いで通信参加演算装置数の補間の順番で行われることが望ましい。通信データ長、次いで通信参加演算装置数の順番でデータ補間を行うことにより、多重のデータ補間によるデータの誤差の蓄積を抑制できる。
なお、本実施例に係るネットワーク評価装置100を使用する際に、理想通信処理時間集計部101Aにより、集計対象となる演算装置間の通信の種類、演算装置数及び通信処理時間を予め集計しておいてもよい。通信の種類は、例えば“MPI_Send/MPI_Recv”(1対1通信)、“MPI_Bcast”(放送通信)、“MPI_Scatter”(分配通信)、“MPI_Gather”(収集通信)及び“MPI_Alltoall”(転置通信)が設定されることが望ましい。演算装置数は、2のべき乗又は整数の2乗の値が設定されることが望ましい。通信データ長は、2のべき乗又は2のべき乗±1の値が設定されることが望ましい。しかし、集計対象となる並列計算機システムに係る通信パターン及び通信データ長が既知である場合は、既知である通信パターン及び通信データ長に絞って通信処理時間を集計してもよい。
図8は、本実施例に係るCPU11A−CPU11B間の理想通信処理時間及び通信処理時間の取得方法の一例を示す。図8は、“MPI_Bcast”に係るCPU11A及びCPU11B間の通信処理時間の取得方法の一例を示す。理想通信処理時間及び通信処理時間の測定は、演算装置10AのCPU11Aに備えられたタイマ12A及び演算装置10BのCPU11Bに備えられたタイマ12Bにより行われる。
図8に示すように、CPU11A及びCPU11Bは、計算処理が行われていないときの通信処理開始時刻及び通信処理終了時刻の取得、理想通信処理時間の計算及び理想通信処理時間の記録を実行する。また、CPU11A及びCPU11Bは、計算処理が行われているときの通信処理開始時刻及び通信処理終了時刻の取得、通信処理時間の計算及び通信処理時間の記録を実行する。
CPU11A及びCPU11Bは、一連の取得処理、計算処理及び記録処理を行うことにより、CPU11A−CPU11B間の理想通信処理時間及び通信処理時間を取得する。また、本実施例の一連の取得処理、計算処理及び記録処理に使用されるプログラムの一部はRAM13A及びRAM13Bに一時的に記録される。
CPU11Aは、一連の取得処理、計算処理及び記録処理によって取得されるCPU11Aの理想通信処理時間及び通信処理時間をHDD14Aに記録する。CPU11Aは、HDD14Aに記録された理想通信処理時間を理想通信処理時間集計部101Aに送信する。CPU11Aは、HDD14Aに記録された通信処理時間を通信処理時間集計部101Cに送信する。
CPU11Bは、一連の取得処理、計算処理及び記録処理によって取得されるCPU11Bの理想通信処理時間及び通信処理時間をHDD14Bに記録する。CPU11Bは、HDD14Bに記録された理想通信処理時間を理想通信処理時間集計部101Aに送信する。CPU11Bは、HDD14Bに記録された通信処理時間を通信処理時間集計部101Cに送信する。
図9は、本実施例のネットワーク評価装置100において、集計された通信処理時間及び理想通信処理時間を示す図である。図9の横軸は、通信処理時間の集計対象である演算装置間、即ちCPU11A−CPU11B間の通信データ長(B)を示す。図9の縦軸は、通信処理時間の集計対象である演算装置間の1回毎の通信処理時間を示す。図9の黒四角は、通信処理時間集計部101Cによって集計された演算装置間の通信処理時間を示す。図9の実線は、通信処理時間比較部101Dによって推定された演算装置間の理想通信処理時間を示す。
図9に示すように、通信処理時間は理想通信処理時間で示した通信処理時間と比較して大きな差異が発生する場合があることがわかる。通信処理時間と及び理想通信処理時間との間において通信処理時間に大きな差異がある部分が、通信オーバヘッドを削減する必要がある部分となることがわかる。
図10は、本実施例のネットワーク評価装置100に係るMPI規格に準拠した通信処理ソフトウェアライブラリにおいて、通信に参加した演算装置数(ノード数)と通信処理時間(ミリ秒)との関係を示す図である。図10の横軸は通信に参加した演算装置数を示す。図10の縦軸は通信に参加した演算装置間、即ちCPU11A及びCPU11B間の通信処理時間を示す。図10の実線は、MPI規格の放送通信において、情報処理装置1000Aに係る演算装置数に対応した通信処理時間を示す。図10の破線は、MPI規格の放送通信において、情報処理装置1000Bに係る演算装置数に対応した通信処理時間を示す。なお、情報処理装置1000Aは、複数の演算装置が通信アルゴリズムAにより実装されている。情報処理装置1000Bは、複数の演算装置が通信アルゴリズムBにより実装されている。
図10に示すように、情報処理装置1000Aにおいて、演算装置数が5の時、通信処理時間は概ね2.5ミリ秒となる。次いで、演算装置数が6のとき、通信処理時間は概ね3.3ミリ秒となる。即ち、演算装置数が5から6に増加したとき、情報処理装置1000Aにおける通信処理時間が急峻に増加していることがわかる。
一方、情報処理装置1000Aにおいて、演算装置数が12のとき、通信処理時間は概ね3.6ミリ秒となる。次いで、演算装置数が13のとき、通信処理時間は概ね4.6ミリ秒となる。即ち、演算装置数が12から13に増加したとき、情報処理装置1000Aにおける通信処理時間が急峻に増加していることがわかる。
情報処理装置1000Bにおいて、演算装置数が4の時、通信処理時間は概ね1,7ミリ秒となる。次いで、演算装置数が5のとき、通信処理時間は概ね2.6ミリ秒となる。即ち、演算装置数が4から5に増加したとき、情報処理装置1000Bにおける通信処理時間が急峻に増加していることがわかる。
一方、情報処理装置1000Bにおいて、演算装置数が7のとき、通信処理時間は概ね2.6ミリ秒となる。ついで、演算装置数が8のとき、通信処理時間は概ね1.8ミリ秒となる。即ち、演算装置数が7から8に増加したとき、情報処理装置1000Bにおける通信処理時間が急峻に減少していることがわかる。
上述したように、情報処理装置1000A及び情報処理装置1000Bに係る演算装置数と通信処理時間との関係は、単なる正比例の関係ではないことがわかる。なお、情報処理装置1000Aに採用されている通信アルゴリズムA及び情報処理装置1000Bに採用されている通信アルゴリズムBの違いから、演算装置数と通信処理時間の関係が決定されることが推定される。
図11は、本実施例のネットワーク評価装置100において、MPI規格に準拠した通信処理ソフトウェアライブラリにおいて、通信データ長と通信処理時間との関係を示す図である。図11の横軸は通信に参加した演算装置間、即ちCPU11AとCPU11Bとの間の通信データ長を示す。図11の縦軸は通信に参加した演算装置間に係る通信処理時間を示す。図11の実線は、MPI規格の放送通信において、情報処理装置1000Aに係る通信データ長及び通信処理時間の関係を示す。図11の破線は、MPI規格の放送通信において、情報処理装置1000Bに係る通信データ長及び通信処理時間の関係を示す。なお、情報処理装置1000Aは、複数の演算装置が通信アルゴリズムAにより実装されている。情報処理装置1000Bは、複数の演算装置が通信アルゴリズムBにより実装されている。
図11に示すように、情報処理装置1000Aにおいて、通信データ長が4Bの時、通信処理時間は概ね6.6μ秒となる。通信データ長が8Bの時、通信処理時間は概ね6.9μ秒となる。通信データ長が16Bの時、通信処理時間は概ね6.7μ秒となる。即ち、通信データ長が8Bから16Bに増加するとき、情報処理装置1000Aにおける通信処理時間はほとんど増加しない。
一方、情報処理装置1000Aにおいて、通信データ長が8192Bの時、通信処理時間は概ね43.7μ秒となる。通信データ長が16384Bの時、通信処理時間は概ね76.4μ秒となる。通信データ長が32768Bの時、通信処理時間は概ね152.8μ秒となる。即ち、通信データ長が8192Bから32768Bに増加するとき、情報処理装置1000Aに係る通信処理時間は急峻に増加することがわかる。
図11に示すように、情報処理装置1000Bにおいて、通信データ長が4Bの時、通信処理時間は概ね8.7μ秒となる。通信データ長が8Bの時、通信処理時間は概ね8.9μ秒となる。通信データ長が16Bの時、通信処理時間は概ね9.1μ秒となる。即ち、通信データ長が8Bから16Bに増加するとき、情報処理装置1000Bにおける通信処理時間はほとんど増加しない。
一方、情報処理装置1000Bにおいて、通信データ長が8192Bの時、通信処理時間は概ね54.3μ秒となる。通信データ長が16384Bの時、通信処理時間は概ね131.3μ秒となる。通信データ長が32768Bの時、通信処理時間は概ね229.7μ秒となる。即ち、通信データ長が8192Bから32768Bに増加するとき、情報処理装置1000Bにおける通信処理時間は急峻に増加することがわかる。
上述したように、情報処理装置1000A及び情報処理装置1000Bに係る通信データ長と通信処理時間との関係は、単なる正比例の関係とならないことがわかる。なお、情報処理装置1000Aに採用されている通信アルゴリズムA及び情報処理装置1000Bに採用されている通信アルゴリズムBの違いから、通信データ長と通信処理時間との関係が決定されることが推定される。
図12は、本実施例に係るネットワーク評価装置100において、集計された通信オーバヘッドと理想通信処理時間との差から、通信オーバヘッドの削減目標値を算出するアプローチを示す模式図である。図12の横軸は、通信処理時間の集計対象である演算装置間、即ちCPU11A及びCPU11B間の通信データ長を示す。図12の縦軸は、集計対象である演算装置間の1回の通信処理時間を示す。図12の白四角は、理想通信処理時間集計部101Aによって集計された演算装置間の理想通信処理時間を示す。図12の黒丸は、通信処理時間集計部101Cによって集計された演算装置間の通信処理時間を示す。図12の破線は、通信処理時間比較部101Dによって推定された演算装置間の理想通信処理時間を示す。なお、通信処理時間比較部101Dによって理想通信処理時間を推定する際に、演算装置間の理想通信処理時間のデータが不足する場合がある。演算装置間の理想通信処理時間のデータが不足する場合は、理想通信処理時間集計部101Aによって理想通信処理時間の追加測定が行われる。図12の矢印は、理想通信処理時間と通信処理時間との差分を示す。差分が大きいデータは、通信処理時間比較部101Dによって有意差があると判定される。
図12に示すように、通信処理時間比較部101Dは、理想通信処理時間と通信処理時と間の差分を比較し、差分の大きいデータに有意差が有るか否かを判定する。そして、図2のS7に示すように、通信処理時間比較部101Dは、判定されたデータを通信オーバヘッド削減目標値として算出し、モニタ17に出力する。
本実施例に係るネットワーク評価装置100、ネットワーク評価方法及びネットワーク評価プログラムによれば、理想通信処理時間集計部101Aは、計算プログラムをCPU11A及びCPU11Bで実行しない状態で評価対象となるCPU11A−CPU11B間の理想通信処理時間を測定する。次いで、通信処理時間集計部101Cは、CPU11A及びCPU11Bで計算プログラムを実行している状態でのCPU11A−CPU11B間の通信処理時間を測定する。通信処理時間比較部101Dは、理想通信処理時間及び通信処理時間を比較し、理想通信処理時間と通信処理時間との時間差を出力する。そのため、CPU11A−CPU11B間の通信オーバヘッドを容易に評価することができる。複数のプロセッサ間における通信オーバヘッドを容易に評価することができるため、使用するプロセッサの数を増加させた際のプログラム処理の高速化の限界を容易に把握することができる。
開示の技術によれば、第1通信処理時間集計部は、複数のプロセッサがプログラムを実行していない状態で複数のプロセッサ間の第1通信処理時間を集計する。次いで、第2通信処理時間集計部は、複数のプロセッサがプログラムを複数のプロセッサで実行している状態で複数のプロセッサ間の第2通信処理時間を集計する。通信処理時間比較部で第1通信処理時間及び第2通信処理時間を比較し、第1通信処理時間と前記第2通信処理時間との時間差を出力することにより、複数のプロセッサ間における通信オーバヘッドを容易に評価することができる。複数のプロセッサ間における通信オーバヘッドを容易に評価することができるため、使用するプロセッサの数を増加させた際のプログラム処理の高速化の限界を容易に把握することができる。
10A 演算装置
10B 演算装置
11A CPU
11B CPU
12A タイマ
12B タイマ
13A RAM
13B RAM
14A HDD
14B HDD
15 ネットワーク
16 LAN
17 モニタ
18A バス
18B バス
100 ネットワーク評価装置
101 CPU
101A 理想通信処理時間集計部
101B 理想通信処理時間記録部
101C 通信処理時間集計部
101D 通信処理時間比較部
102 RAM
102A 評価プログラム
103 HDD
103A 理想通信処理時間記録テーブル
103A1 フィールド
103A2 フィールド
103A3 フィールド
103A4 フィールド
103A5 フィールド
103A6 フィールド
104 グラフィック処理装置
105 通信インタフェース
106 バス
130A 計算プログラム
130B 計算プログラム
1000 情報処理装置
1000A 情報処理装置
1000B 情報処理装置

Claims (8)

  1. 複数のプロセッサ間で通信を行い、前記複数のプロセッサでプログラムを実行して所望の計算処理を実行する情報処理装置の通信状態を評価するネットワーク評価装置に、
    前記複数のプロセッサが前記プログラムを実行せず、前記計算処理が行われていない状態での前記複数のプロセッサ間のプログラム送受信に要する第1通信処理時間を集計し、
    集計された前記第1通信処理時間を記録し、
    前記複数のプロセッサが共に前記プログラムを実行し、前記計算処理が行われている状態での前記複数のプロセッサ間のプログラム送受信に要する第2通信処理時間を集計し、
    記憶された前記第1通信処理時間と、集計された前記第2通信処理時間とを比較し、前記第1通信処理時間と前記第2通信処理時間との時間差を出力すること、を実行させるためのネットワーク評価プログラム。
  2. 前記第1通信処理時間と前記第2通信処理時間との前記時間差から、前記第1通信処理時間と前記第2通信処理時間との有意差の判定を行うことを前記ネットワーク評価装置に実行させるための請求項1記載のネットワーク評価プログラム。
  3. 前記複数のプロセッサ間の前記通信データ長、前記プロセッサ数及び前記時間差に基づいて、前記プロセッサ間の前記第1通信処理時間に対する数値補間を行うことを前記ネットワーク評価装置に実行させるための請求項1記載のネットワーク評価プログラム。
  4. 前記通信データ長に基づいて前記複数のプロセッサ間の前記第1通信処理時間に対する数値補間を行い、次いで前記プロセッサ数に基づいて前記プロセッサ間の前記第1通信処理時間に対する数値補間を行うことを前記ネットワーク評価装置に実行させるための請求項1記載のネットワーク評価プログラム。
  5. 前記通信データ長から1を減じた結果に対し、所定の整定数で除した商の整数部が同じであるときに、前記通信データ長及び前記プロセッサ数に基づいて前記複数のプロセッサ間の前記第1通信処理時間に対する数値補間を行うことを前記ネットワーク評価装置に実行させるための請求項1記載のネットワーク評価プログラム。
  6. 前記プロセッサ数から1を減じた結果に対し、所定の整定数を底とした対数の整数部が同じ値であるときに、前記通信データ長及び前記プロセッサ数に基づいて前記複数のプロセッサ間の前記第1通信処理時間に対する数値補間を行うことを前記ネットワーク評価装置に実行させるための請求項1記載のネットワーク評価プログラム。
  7. 複数のプロセッサ間で通信を行い、前記複数のプロセッサでプログラムを実行して所望の計算処理を実行する情報処理装置の通信状態を評価するネットワーク評価装置であって、
    前記複数のプロセッサが前記プログラムを実行せず、前記計算処理が行われていない状態での前記複数のプロセッサ間のプログラム送受信に要する第1通信処理時間を集計する第1通信処理時間集計部と、
    前記第1通信処理時間集計部で集計された前記第1通信処理時間を記録する第1通信処理時間記録部と、
    前記複数のプロセッサが共に前記プログラムを実行し、前記計算処理が行われている状態での前記複数のプロセッサ間のプログラム送受信に要する第2通信処理時間を集計する第2通信処理時間集計部と、
    前記第1通信処理時間記録部で記憶された前記第1通信処理時間と、前記第2通信処理時間集計部で集計された前記第2通信処理時間とを比較し、前記第1通信処理時間と前記第2通信処理時間との時間差を出力する通信処理時間比較部と、を備えることを特徴とするネットワーク評価装置。
  8. 複数のプロセッサ間で通信を行い、前記複数のプロセッサでプログラムを実行して所望の計算処理を実行する情報処理装置の通信状態を評価するネットワーク評価装置によって実行されるネットワーク評価方法であって、
    前記複数のプロセッサが前記プログラムを実行せず、前記計算処理が行われていない状態での前記複数のプロセッサ間のプログラム送受信に要する第1通信処理時間を集計し、
    集計された前記第1通信処理時間を記録し、
    前記複数のプロセッサが共に前記プログラムを実行し、前記計算処理が行われている状態での前記複数のプロセッサ間のプログラム送受信に要する第2通信処理時間を集計し、
    記憶された前記第1通信処理時間と、集計された前記第2通信処理時間とを比較し、前記第1通信処理時間と前記第2通信処理時間との時間差を出力することを含むことを特徴とするネットワーク評価方法。
JP2012530420A 2010-08-25 2010-08-25 ネットワーク評価装置、ネットワーク評価方法及びネットワーク評価プログラム Expired - Fee Related JP5527416B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/005232 WO2012025959A1 (ja) 2010-08-25 2010-08-25 ネットワーク評価装置、ネットワーク評価方法及びネットワーク評価プログラム

Publications (2)

Publication Number Publication Date
JPWO2012025959A1 JPWO2012025959A1 (ja) 2013-10-28
JP5527416B2 true JP5527416B2 (ja) 2014-06-18

Family

ID=45722993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012530420A Expired - Fee Related JP5527416B2 (ja) 2010-08-25 2010-08-25 ネットワーク評価装置、ネットワーク評価方法及びネットワーク評価プログラム

Country Status (4)

Country Link
US (1) US20130166740A1 (ja)
EP (1) EP2610758A4 (ja)
JP (1) JP5527416B2 (ja)
WO (1) WO2012025959A1 (ja)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250339A (ja) 1992-03-05 1993-09-28 Fujitsu Ltd プログラム性能評価支援装置
JPH08249294A (ja) * 1995-03-10 1996-09-27 Hitachi Ltd 並列計算機システム及びプロセッサ数制御方法
JPH1063550A (ja) * 1996-08-23 1998-03-06 Fujitsu Ltd 実行性能解析表示方法およびその方法を実施するプログラムを記録した媒体
JPH1098468A (ja) 1996-09-19 1998-04-14 Hitachi Ltd ネットワーク検証システム
JP3916192B2 (ja) * 1998-07-03 2007-05-16 株式会社東芝 並列計算機システム及びその演算処理装置間の通信方法
US6446028B1 (en) * 1998-11-25 2002-09-03 Keynote Systems, Inc. Method and apparatus for measuring the performance of a network based application program
US6957424B2 (en) * 2002-03-01 2005-10-18 International Business Machines Corporation Method for optimizing performance of software applications within a computer system
JP3826848B2 (ja) 2002-06-07 2006-09-27 日本電気株式会社 動的負荷均等化方法および動的負荷均等化装置
JP2004054680A (ja) * 2002-07-22 2004-02-19 Fujitsu Ltd 並列効率計算方法
CN102043673B (zh) * 2009-10-21 2015-06-03 Sap欧洲公司 并行处理中执行任务的节点数量的优化选择系统及方法
US9448863B2 (en) * 2011-11-08 2016-09-20 Intel Corporation Message passing interface tuning using collective operation modeling

Also Published As

Publication number Publication date
EP2610758A4 (en) 2017-04-26
WO2012025959A1 (ja) 2012-03-01
JPWO2012025959A1 (ja) 2013-10-28
US20130166740A1 (en) 2013-06-27
EP2610758A1 (en) 2013-07-03

Similar Documents

Publication Publication Date Title
US8886795B2 (en) Method and system for determining response time of a server
JP5742125B2 (ja) プログラム、情報生成装置及び情報生成方法
US10241889B2 (en) Tracking pipelined activity during off-core memory accesses to evaluate the impact of processor core frequency changes
JP5358814B2 (ja) センサ情報補完システムおよびセンサ情報補完方法
WO2013111560A1 (ja) 運用管理装置、運用管理方法、及びプログラム
JP2014032674A (ja) 仮想マシンのリソース配置システム及びその方法
JP2011134230A5 (ja)
JP5527416B2 (ja) ネットワーク評価装置、ネットワーク評価方法及びネットワーク評価プログラム
US9183042B2 (en) Input/output traffic backpressure prediction
US20150256421A1 (en) Information processing method and information processing apparatus
US20220222164A1 (en) Computer-readable recording medium storing information collection program, information collection method, and information processing apparatus
US20140196035A1 (en) Management system, recording medium and method for managing virtual machines
CN108833215A (zh) 计算累计网络延时的方法、网络设备及计算机存储介质
US11765042B2 (en) Traffic application amount calculation apparatus, method and program
White et al. Monitoring and analysis of power consumption on hpc clusters using xdmod
De Blanche et al. A methodology for estimating co-scheduling slowdowns due to memory bus contention on multicore nodes
JP6287226B2 (ja) 見積もり装置、見積もりシステム、見積もり方法、及び、プログラム
JP2011014073A (ja) ログ管理システム、ログ管理方法、ログ収集部及びプログラム
TWI496372B (zh) 故障指示器之傳輸次數估算方法
WO2014061529A1 (ja) 情報処理装置及び情報処理方法及びプログラム
JP4539405B2 (ja) トランザクション・プロファイル作成方法および装置
US10296493B2 (en) Distributed data processing system and distributed data processing method
JP2014216657A (ja) 監視装置及びプログラム
JP6357750B2 (ja) サーバ管理システム及びサーバ管理方法
CN111641534B (zh) 数据传输设备测试方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131217

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140331

R150 Certificate of patent or registration of utility model

Ref document number: 5527416

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees