JP5526914B2 - Analysis device, analysis method, and analysis program - Google Patents

Analysis device, analysis method, and analysis program Download PDF

Info

Publication number
JP5526914B2
JP5526914B2 JP2010070504A JP2010070504A JP5526914B2 JP 5526914 B2 JP5526914 B2 JP 5526914B2 JP 2010070504 A JP2010070504 A JP 2010070504A JP 2010070504 A JP2010070504 A JP 2010070504A JP 5526914 B2 JP5526914 B2 JP 5526914B2
Authority
JP
Japan
Prior art keywords
communication
waiting time
processes
time
total
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
JP2010070504A
Other languages
Japanese (ja)
Other versions
JP2011203994A (en
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
Priority to JP2010070504A priority Critical patent/JP5526914B2/en
Publication of JP2011203994A publication Critical patent/JP2011203994A/en
Application granted granted Critical
Publication of JP5526914B2 publication Critical patent/JP5526914B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、解析装置、解析方法および解析プログラムに関する。   The present invention relates to an analysis apparatus, an analysis method, and an analysis program.

近年、複数のプロセッサをインターコネクト装置(Interconnect)を用いて接続したシステムである分散メモリ型マルチプロセッサが開発されている。分散メモリ型マルチプロセッサは、各プロセッサにそれぞれプロセスを割り当て、プロセス間でMPI(The Message Passing Interface Standard)などの通信ライブラリを使って相互に通信することで、全体の分散並列処理を行う。   In recent years, a distributed memory multiprocessor, which is a system in which a plurality of processors are connected using an interconnect device (Interconnect), has been developed. The distributed memory multiprocessor assigns a process to each processor and communicates with each other using a communication library such as MPI (The Message Passing Interface Standard) to perform the entire distributed parallel processing.

かかる分散並列処理では、各プロセスに負荷を適切に配分することで性能の向上が図られる。このため、分散メモリ型マルチプロセッサ並列計算機で動作するアプリケーションプログラム(分散並列処理プログラム)は、性能特性指標の項目として、負荷バランスの均一性を有する。この負荷バランスの均一性を簡易かつ精密に観測し、プログラムの性能特性を正確に分析することが期待される。   In such distributed parallel processing, performance is improved by appropriately allocating a load to each process. For this reason, an application program (distributed parallel processing program) operating on a distributed memory multiprocessor parallel computer has load balance uniformity as an item of performance characteristic index. It is expected that the uniformity of the load balance will be observed easily and precisely, and the performance characteristics of the program will be analyzed accurately.

分散並列処理プログラムの各プロセスは、それぞれ計算処理を行い、その後、相互に通信処理を行う。通信処理では、通信相手の計算処理が終わっていない場合には通信待ちが発生する。したがって、負荷バランスの均一性を測定するためには、通信待ちの発生状況を把握することが有効である。   Each process of the distributed parallel processing program performs calculation processing and then performs communication processing with each other. In communication processing, communication waiting occurs when calculation processing of the communication partner is not completed. Therefore, in order to measure the uniformity of the load balance, it is effective to grasp the state of occurrence of waiting for communication.

プログラムの性能分析手法としては、トレースログ方式やサンプリング方式が知られている。トレースログ方式は、プログラム実行時に、各種イベントが発生する度に時刻等の付随する情報とともにイベントの発生をログに出力する。そして、プログラムの走行後、ログを解析することで、各種性能分析を行う手法である。トレースログ方式は、各種イベントの発生時刻や回数を正確に記録することができる点が長所であるが、出力されるログの量が膨大であり、長時間にわたるプログラム実行を分析することができない。また、ログの出力自体が性能特性に影響する場合がある。   As a program performance analysis method, a trace log method and a sampling method are known. The trace log method outputs the occurrence of an event to a log together with accompanying information such as time each time various events occur during program execution. This is a technique for analyzing various performances by analyzing logs after running the program. The trace log method is advantageous in that the time and number of occurrences of various events can be accurately recorded. However, the amount of logs to be output is enormous and the program execution over a long time cannot be analyzed. In addition, the log output itself may affect the performance characteristics.

サンプリング方式では、プログラム実行時に、一定の時間間隔ごとにプログラムの走行状況等が確認され、記録される。そして、プログラムの走行後、記録を統計的に解析することで各種性能分析がなされる。サンプリング方式は、トレースログ方式に比して記録の量を抑えることができ、長時間にわたるプログラム実行を分析することができる。また、外乱が少ないため、性能特性への影響も少ない。   In the sampling method, when the program is executed, the running state of the program is confirmed and recorded at regular time intervals. Then, after running the program, various performance analyzes are performed by statistically analyzing the records. The sampling method can suppress the amount of recording as compared with the trace log method, and can analyze program execution over a long period of time. In addition, since there is little disturbance, there is little influence on the performance characteristics.

特開平5−250339号公報JP-A-5-250339 特開平6−59944号公報JP-A-6-59944 特開2004−341750号公報JP 2004-341750 A 特開平6−83608号公報JP-A-6-83608 特開2007−207173号公報JP 2007-207173 A

しかしながら、サンプリング方式では、各種イベントの発生時刻や回数を正確に知ることができない。従って、従来のサンプリング方式によるプログラムの性能分析では、通信待ち状況を悪化させている原因の特定も難しい。   However, in the sampling method, it is impossible to accurately know the time and number of occurrences of various events. Therefore, in the performance analysis of the program by the conventional sampling method, it is difficult to identify the cause of the deterioration of the communication waiting state.

そこで、1つの側面では、本発明は、改善されたサンプリング方式を提供することを目的とする。   Thus, in one aspect, the present invention aims to provide an improved sampling scheme.

1つの案では、解析装置、解析方法および解析プログラムは、分散並列処理される複数のプロセスの各々について、他のプロセスとの間の通信の際の自プロセスの待機時間をサンプリングしたサンプリングデータを取得し、サンプリングデータに基づいて、複数のプロセスの各々について、他のプロセスとの間の自プロセスの待機時間の合計と、他のプロセスと自プロセスとの間の通信の際の他のプロセスの待機時間の合計を求め、その結果を解析して複数のプロセスに対する処理の配分状態を評価する。   In one proposal, the analysis apparatus, the analysis method, and the analysis program acquire sampling data obtained by sampling the waiting time of the own process at the time of communication with other processes for each of a plurality of processes that are distributed and processed in parallel. Based on the sampling data, for each of the plurality of processes, the total waiting time of the own process between the other process and the waiting time of the other process during the communication between the other process and the own process. The total time is obtained, and the result is analyzed to evaluate the distribution of processing to a plurality of processes.

本発明によれば、改善されたサンプリング方式を提供することができる。   According to the present invention, an improved sampling method can be provided.

図1は、実施例に係る分散メモリ型マルチプロセッサ並列計算機の構成図である。FIG. 1 is a configuration diagram of a distributed memory multiprocessor parallel computer according to an embodiment. 図2は、プロセス間の通信についての説明図である。FIG. 2 is an explanatory diagram of communication between processes. 図3は、分散プロセスの処理についての説明図である。FIG. 3 is an explanatory diagram of the distributed process. 図4は、サンプリングデータの比較例の説明図である。FIG. 4 is an explanatory diagram of a comparative example of sampling data. 図5は、サンプリングデータD0に対応する処理状態の説明図である。FIG. 5 is an explanatory diagram of a processing state corresponding to the sampling data D0. 図6は、プロセッサ11〜14における処理動作を説明するフローチャートである。FIG. 6 is a flowchart for explaining the processing operation in the processors 11 to 14. 図7は、解析装置30の処理動作を説明するフローチャートである。FIG. 7 is a flowchart for explaining the processing operation of the analysis device 30. 図8は、集計データD2の具体例の説明図である。FIG. 8 is an explanatory diagram of a specific example of the total data D2. 図9は、解析部33による解析についての説明図である。FIG. 9 is an explanatory diagram for the analysis by the analysis unit 33. 図10は、関数ごとの評価を行う場合のプロセッサ11〜14における処理動作を説明するフローチャートである。FIG. 10 is a flowchart for explaining the processing operation in the processors 11 to 14 when the evaluation for each function is performed. 図11は、サンプリング(S600)の詳細について説明するフローチャートである。FIG. 11 is a flowchart illustrating details of sampling (S600). 図12は、関数について評価する場合の解析装置30の処理動作を説明するフローチャートである。FIG. 12 is a flowchart for explaining the processing operation of the analysis apparatus 30 when evaluating a function. 図13は、待ち状況マトリクス、関数毎マトリクス、集計マトリクスの具体例の説明図である。FIG. 13 is an explanatory diagram of specific examples of the waiting situation matrix, the function matrix, and the aggregation matrix. 図14は、集計マトリクスからの評価と修正指針の作成についての説明図である。FIG. 14 is an explanatory diagram for the evaluation from the aggregation matrix and the creation of a correction guideline.

以下に、本願の開示する解析装置、解析方法および解析プログラムを図面に基づいて詳細に説明する。なお、以下の具体的な実施例に本発明を限定するものではない。   Hereinafter, an analysis device, an analysis method, and an analysis program disclosed in the present application will be described in detail based on the drawings. The present invention is not limited to the following specific examples.

[システムの構成]
図1は、実施例に係る分散メモリ型マルチプロセッサ並列計算機の構成図である。図1に示した例では、プロセッサ11〜14がインターコネクト装置(interconnect)21に接続され、プロセッサ11〜14はインターコネクト装置21を介して相互に通信可能である。
[System configuration]
FIG. 1 is a configuration diagram of a distributed memory multiprocessor parallel computer according to an embodiment. In the example shown in FIG. 1, the processors 11 to 14 are connected to an interconnect device (interconnect) 21, and the processors 11 to 14 can communicate with each other via the interconnect device 21.

プロセッサ11〜14は、それぞれが1または複数のプロセスを実行する。図1に示した例では、プロセッサ11がアプリケーションプロセスPa1を実行し、プロセッサ12がアプリケーションプロセスPa2を実行している。同様に、プロセッサ13がアプリケーションプロセスPa3を実行し、プロセッサ14がアプリケーションプロセスPa4を実行している。   Each of the processors 11 to 14 executes one or a plurality of processes. In the example shown in FIG. 1, the processor 11 executes the application process Pa1, and the processor 12 executes the application process Pa2. Similarly, the processor 13 executes the application process Pa3, and the processor 14 executes the application process Pa4.

アプリケーションプロセスPa1〜Pa4は、アプリケーションプログラムのプロセスを分散して割り当てたプロセスであり、プロセッサ11〜14によって並列して処理される。プロセッサ11〜14は、自らに配分されたプロセスを計算処理した後、インターコネクト装置21を介して通信し、処理を同期する。   Application processes Pa1 to Pa4 are processes in which application program processes are distributed and allocated, and are processed in parallel by the processors 11 to 14. The processors 11 to 14 perform calculation processing on the processes allocated to themselves, and then communicate via the interconnect device 21 to synchronize the processing.

図2は、プロセス間の通信についての説明図である。図2に示した例では、プロセスPa1において、プロセスPa2に対する送信処理MPI_Sendが発生している。プロセスPa2は、プロセスPa1からの通信を受信処理MPI_Recvによって受信する。その後、同様に、プロセスPa2において、プロセスPa1に対する送信処理MPI_Sendが発生し、プロセスPa1は受信処理MPI_Recvによって受信をおこなっている。さらに、プロセスPa1とプロセスPa2でMPI_Barrierによる同期を行っている。   FIG. 2 is an explanatory diagram of communication between processes. In the example shown in FIG. 2, the transmission process MPI_Send for the process Pa2 occurs in the process Pa1. The process Pa2 receives the communication from the process Pa1 by the reception process MPI_Recv. Thereafter, similarly, in the process Pa2, a transmission process MPI_Send for the process Pa1 occurs, and the process Pa1 receives by the reception process MPI_Recv. Further, the process Pa1 and the process Pa2 perform synchronization by MPI_Barrier.

図3は、分散プロセスの処理についての説明図である。図3に示した例では、プロセスPa1が自らに割り当てられた処理を80msかけて計算した後、20msの通信処理で同期している。これに対し、プロセスPa2は、自らに割り当てられた計算処理を40msで終了し、プロセスPa1の計算処理終了を待つ通信待ち状態が40ms発生している。   FIG. 3 is an explanatory diagram of the distributed process. In the example shown in FIG. 3, the process Pa1 calculates the process assigned to itself over 80 ms, and then synchronizes with the communication process of 20 ms. On the other hand, the process Pa2 ends the calculation process assigned to itself in 40 ms, and a communication wait state for waiting for the end of the calculation process of the process Pa1 occurs for 40 ms.

同様に、プロセスPa3は、自らに割り当てられた計算処理を20msで終了し、プロセスPa1の計算処理終了を待つ通信待ち状態が60ms発生している。また、プロセスPa4は、自らに割り当てられた計算処理を60msで終了し、プロセスPa1の計算処理終了を待つ通信待ち状態が20ms発生している。   Similarly, the process Pa3 ends the calculation process assigned to itself in 20 ms, and a communication waiting state for waiting for the end of the calculation process of the process Pa1 occurs for 60 ms. In addition, the process Pa4 ends the calculation process assigned to itself in 60 ms, and a communication waiting state for waiting for the end of the calculation process of the process Pa1 occurs for 20 ms.

図3に示した例では、プロセスPa1の計算処理が重いために、プロセスPa2〜Pa4が待たされる状態となっている。このため、プロセスPa1に割り当てていた処理を他のプロセスに割り当てることとすれば、負荷バランスを向上することができる。   In the example shown in FIG. 3, since the calculation process of the process Pa1 is heavy, the processes Pa2 to Pa4 are in a waiting state. For this reason, if the process assigned to the process Pa1 is assigned to another process, the load balance can be improved.

図4は、サンプリングデータの比較例の説明図である。図4に示したように、分散したプロセスPa1〜Pa4からサンプリングによって取得したサンプリングデータD0は、各プロセスの計算処理コスト、通信待ちコスト、通信処理コストを取得している。   FIG. 4 is an explanatory diagram of a comparative example of sampling data. As shown in FIG. 4, the sampling data D0 acquired by sampling from the distributed processes Pa1 to Pa4 acquires the calculation processing cost, communication waiting cost, and communication processing cost of each process.

このサンプリングデータD0から、各プロセスが計算、通信待ち、通信処理にどれだけの時間を割いたかを知ることができる。図4に示した例では、プロセスPa3の計算処理コストが他のプロセスに比して高いため、プロセスPa3が各プロセスの通信待ち状況を乱していると考えることができる。しかし、プロセスPa3も通信待ちコストを持っており、他のプロセスの計算終了を待っていることから、他のプロセスによって処理が遅らさせている可能性もある。   From this sampling data D0, it is possible to know how much time each process has spent for calculation, waiting for communication, and communication processing. In the example shown in FIG. 4, since the calculation processing cost of the process Pa3 is higher than that of other processes, it can be considered that the process Pa3 disturbs the communication waiting state of each process. However, since the process Pa3 also has a communication waiting cost and is waiting for the completion of calculation of another process, there is a possibility that the process is delayed by another process.

図5は、サンプリングデータD0に対応する処理状態の説明図である。図5に示した例では、1マスがサンプリングデータD0のコスト10に対応している。図5に示したように、同期タイミングt1までの間、プロセスPa4はコスト10の計算処理を実行し、コスト50の通信待ちをしている。同様に、同期タイミングt1までの間、プロセスPa1はコスト50の計算処理を実行し、コスト10の通信待ちをしている。また、同期タイミングt1までの間、プロセスPa2はコスト40の計算処理を実行し、コスト20の通信待ちをしており、プロセスPa3はコスト60の計算処理を実行している。   FIG. 5 is an explanatory diagram of a processing state corresponding to the sampling data D0. In the example shown in FIG. 5, one square corresponds to the cost 10 of the sampling data D0. As shown in FIG. 5, until the synchronization timing t <b> 1, the process Pa <b> 4 executes a calculation process with a cost of 10 and waits for a communication with a cost of 50. Similarly, until the synchronization timing t1, the process Pa1 executes the calculation process of the cost 50 and waits for the communication of the cost 10. In addition, until the synchronization timing t1, the process Pa2 executes the calculation process of the cost 40, waits for the communication of the cost 20, and the process Pa3 executes the calculation process of the cost 60.

同期タイミングt1から同期タイミングt2までの間、プロセスPa1〜Pa3は、コスト10の計算処理を実行し、コスト30の通信待ちをしている。そして、同期タイミングt1から同期タイミングt2までの間、プロセスPa4は、コスト40の計算処理を実行している。   During the period from the synchronization timing t1 to the synchronization timing t2, the processes Pa1 to Pa3 execute the calculation process of the cost 10 and wait for the communication of the cost 30. And the process Pa4 is performing the calculation process of the cost 40 from the synchronous timing t1 to the synchronous timing t2.

すなわち、図5に示した例では、プロセスPa3の計算コストが高く、全体の通信待ち状況を悪化させているものの、最も通信待ち状況に悪影響を与えているのは同期タイミングt1から同期タイミングt2までのプロセスPa4である。このように、負荷がばらつく、すなわち計算処理の量にブレがあることで、他のプロセスを待たせるプロセスが存在した場合、サンプリングデータD0が有する計算処理コスト、通信待ちコスト、通信処理コストのデータから通信待ち状況を正確に評価することができない。   That is, in the example shown in FIG. 5, although the calculation cost of the process Pa3 is high and the overall communication waiting state is deteriorated, it is from the synchronization timing t1 to the synchronization timing t2 that most adversely affects the communication waiting state. Process Pa4. As described above, when there is a process in which the load varies, that is, there is a fluctuation in the amount of calculation processing, and there is a process that waits for another process, data of the calculation processing cost, the communication waiting cost, and the communication processing cost that the sampling data D0 has The communication waiting status cannot be accurately evaluated.

そこで、図1に示した解析装置30は、分散並列処理される複数のプロセスの各々について、他のプロセスとの間の通信の際の自プロセスの待機時間をサンプリングしたサンプリングデータを取得する。解析装置30は、取得したサンプリングデータに基づいて、複数のプロセスの各々について、他のプロセスとの間の自プロセスの待機時間の合計と、他のプロセスと自プロセスとの間の通信の際の他のプロセスの待機時間、すなわち被待機時間の合計を求める集計を行い、集計結果を解析して複数のプロセスに対する処理の配分状態を評価する。   Therefore, the analysis device 30 shown in FIG. 1 acquires sampling data obtained by sampling the waiting time of the own process at the time of communication with other processes for each of a plurality of processes that are distributed and processed in parallel. Based on the acquired sampling data, the analysis device 30 determines, for each of the plurality of processes, the total waiting time of the own process between the other processes and the communication between the other processes and the own process. Aggregation for obtaining the waiting time of other processes, that is, the total waiting time is performed, and the result of the aggregation is analyzed to evaluate the distribution state of processing for a plurality of processes.

このため、図1に示したように、解析装置30は、インターコネクト装置21と接続し、インターコネクト装置21を介してプロセッサ11〜14と通信する。なお、図1では、解析装置30を一つの装置として実施する場合の構成を示したが、例えば、プロセッサ11〜14のいずれかが解析装置30の機能を実現するプログラムを実行してもよいし、解析用のプロセッサを別途接続してもよい。   Therefore, as illustrated in FIG. 1, the analysis device 30 is connected to the interconnect device 21 and communicates with the processors 11 to 14 via the interconnect device 21. In FIG. 1, the configuration in which the analysis device 30 is implemented as one device is shown, but for example, any of the processors 11 to 14 may execute a program that realizes the function of the analysis device 30. A processor for analysis may be connected separately.

プロセッサ11は、アプリケーションプロセスPa1に加えてサンプリングスレッドPs1を実行する。同様に、プロセッサ12は、アプリケーションプロセスPa2に加えてサンプリングスレッドPs2を実行する。また、プロセッサ13はアプリケーションプロセスPa3に加えてサンプリングスレッドPs3を実行し、プロセッサ14はアプリケーションプロセスPa4に加えてサンプリングスレッドPs4を実行する。   The processor 11 executes the sampling thread Ps1 in addition to the application process Pa1. Similarly, the processor 12 executes the sampling thread Ps2 in addition to the application process Pa2. The processor 13 executes the sampling thread Ps3 in addition to the application process Pa3, and the processor 14 executes the sampling thread Ps4 in addition to the application process Pa4.

サンプリングスレッドPs1は、一定の時間間隔ごとにアプリケーションプロセスPa1の走行状況等を確認して記録する。この時、サンプリングスレッドPs1は、アプリケーションプロセスPa1が通信待ち状態に入ってから通信待ち状態が解除されるまでの間の時間コストを、通信相手ごとに積算してサンプリングデータD1aを作成する。   The sampling thread Ps1 confirms and records the running status of the application process Pa1 at regular time intervals. At this time, the sampling thread Ps1 creates sampling data D1a by accumulating the time cost from when the application process Pa1 enters the communication waiting state to when the communication waiting state is released for each communication partner.

図1に示した例では、サンプリングデータD1aは、送信先プロセスPa2に対する通信待ちコストが0、送信先プロセスPa3に対する通信待ちコストが10、送信先プロセスPa4に対する通信待ちコストが30であったことを示している。   In the example shown in FIG. 1, the sampling data D1a indicates that the communication waiting cost for the destination process Pa2 is 0, the communication waiting cost for the destination process Pa3 is 10, and the communication waiting cost for the destination process Pa4 is 30. Show.

同様に、サンプリングスレッドPs2は、一定の時間間隔ごとにアプリケーションプロセスPa2の走行状況等を確認し、通信待ち状態に入ってから通信待ち状態が解除されるまでの間の時間コストを、通信相手ごとに積算してサンプリングデータD1bを作成する。   Similarly, the sampling thread Ps2 confirms the running status of the application process Pa2 at regular time intervals, and calculates the time cost from entering the communication wait state until the communication wait state is released for each communication partner. To create sampling data D1b.

また、サンプリングスレッドPs3は、一定の時間間隔ごとにアプリケーションプロセスPa3の走行状況等を確認し、通信待ち状態に入ってから通信待ち状態が解除されるまでの間の時間コストを、通信相手ごとに積算してサンプリングデータD1cを作成する。   In addition, the sampling thread Ps3 checks the running status of the application process Pa3 at regular time intervals, and calculates the time cost from entering the communication waiting state until the communication waiting state is canceled for each communication partner. Integration is performed to create sampling data D1c.

そして、サンプリングスレッドPs4は、一定の時間間隔ごとにアプリケーションプロセスPa4の走行状況等を確認し、通信待ち状態に入ってから通信待ち状態が解除されるまでの間の時間コストを、通信相手ごとに積算してサンプリングデータD1dを作成する。   The sampling thread Ps4 checks the running status of the application process Pa4 at regular time intervals, and calculates the time cost from entering the communication waiting state until the communication waiting state is released for each communication partner. Integration is performed to create sampling data D1d.

解析装置30は、データ取得部31、データ集計部32および解析部33を有する。データ取得部31は、サンプリングスレッドPs1〜Ps4からサンプリングデータD1a,D1b,D1c,D1dを取得する。   The analysis device 30 includes a data acquisition unit 31, a data totaling unit 32, and an analysis unit 33. The data acquisition unit 31 acquires sampling data D1a, D1b, D1c, and D1d from the sampling threads Ps1 to Ps4.

データ集計部32は、サンプリングデータD1a,D1b,D1c,D1dを集計した集計データD2を作成する。この集計データD2から、プロセスPa1〜Pa4の各々について、他のプロセスとの通信を待機した待機時間と、他のプロセスに待機させた被待機時間とを求めることができる。   The data totaling unit 32 creates total data D2 by totaling the sampling data D1a, D1b, D1c, D1d. From each of the aggregated data D2, for each of the processes Pa1 to Pa4, it is possible to obtain the standby time for waiting for communication with other processes and the standby time for waiting for other processes.

解析部33は、集計データD2を解析してプロセスPa1〜Pa4に対する処理の配分状態を評価し、評価結果を出力する処理部である。   The analysis unit 33 is a processing unit that analyzes the aggregated data D2, evaluates a distribution state of processes for the processes Pa1 to Pa4, and outputs an evaluation result.

[処理動作]
図6は、プロセッサ11〜14における処理動作を説明するフローチャートである。以下の説明では、プロセッサ11を例に説明を行なうが、プロセッサ12〜14についても同様である。
[Processing operation]
FIG. 6 is a flowchart for explaining the processing operation in the processors 11 to 14. In the following description, the processor 11 is described as an example, but the same applies to the processors 12 to 14.

まず、プロセッサ11は、アプリケーションプログラムから割り当てられたプロセスPa1を実行する。このプロセスPa1は、処理の開始時にサンプリングスレッドPs1を生成する(S101)。プロセッサ11は、プロセスPa1において計算処理を実行する(S102)とともに、サンプリングスレッドPs1によるサンプリングを実行する(S201)。   First, the processor 11 executes the process Pa1 assigned from the application program. The process Pa1 generates a sampling thread Ps1 at the start of processing (S101). The processor 11 executes calculation processing in the process Pa1 (S102) and also performs sampling by the sampling thread Ps1 (S201).

プロセッサ11は、計算処理(S102)が終了した後、サンプリングスレッドPs1の消去を待ち(S103)、サンプリングデータD1aを出力して(S104)、処理を終了する。   After completing the calculation process (S102), the processor 11 waits for the erasure of the sampling thread Ps1 (S103), outputs the sampling data D1a (S104), and ends the process.

図7は、解析装置30の処理動作を説明するフローチャートである。図7に示したように、まず、データ取得部31がサンプリングデータD1a,D1b,D1c,D1dを取得し(S301)、データ集計部32は、サンプリングデータD1a,D1b,D1c,D1dを集計する(S302)。そして、解析部33は、集計データD2を解析して評価結果を出力し(S303)、処理を終了する。   FIG. 7 is a flowchart for explaining the processing operation of the analysis device 30. As shown in FIG. 7, first, the data acquisition unit 31 acquires the sampling data D1a, D1b, D1c, D1d (S301), and the data totaling unit 32 totals the sampling data D1a, D1b, D1c, D1d ( S302). And the analysis part 33 analyzes the total data D2, outputs an evaluation result (S303), and complete | finishes a process.

[データと処理の具体例]
図8は、集計データD2の具体例の説明図である。図8に示した集計データD2は、受信側のプロセスと送信側のプロセスについて通信待ちコストを示している。具体的には、受信側のプロセス、すなわちサンプリングしたプロセスがプロセスPa1について、送信先プロセスPa2に対する通信待ちコストが0、送信先プロセスPa3に対する通信待ちコストが10、送信先プロセスPa4に対する通信待ちコストが30である。
[Specific examples of data and processing]
FIG. 8 is an explanatory diagram of a specific example of the total data D2. The aggregated data D2 shown in FIG. 8 indicates the communication waiting cost for the receiving process and the transmitting process. Specifically, when the process on the receiving side, that is, the sampled process is the process Pa1, the communication waiting cost for the destination process Pa2 is 0, the communication waiting cost for the destination process Pa3 is 10, and the communication waiting cost for the destination process Pa4 is 30.

また、受信側のプロセスPa2について、送信先プロセスPa1に対する通信待ちコストが10、送信先プロセスPa3に対する通信待ちコストが20、送信先プロセスPa4に対する通信待ちコストが30である。   Further, for the process Pa2 on the receiving side, the communication waiting cost for the transmission destination process Pa1 is 10, the communication waiting cost for the transmission destination process Pa3 is 20, and the communication waiting cost for the transmission destination process Pa4 is 30.

同様に、受信側のプロセスPa3について、送信先プロセスPa1に対する通信待ちコストが0、送信先プロセスPa2に対する通信待ちコストが0、送信先プロセスPa4に対する通信待ちコストが30である。   Similarly, for the process Pa3 on the receiving side, the communication waiting cost for the destination process Pa1 is 0, the communication waiting cost for the destination process Pa2 is 0, and the communication waiting cost for the destination process Pa4 is 30.

そして、受信側のプロセスPa4について、送信先プロセスPa1に対する通信待ちコストが40、送信先プロセスPa2に対する通信待ちコストが30、送信先プロセスPa3に対する通信待ちコストが50である。   For the process Pa4 on the receiving side, the communication waiting cost for the destination process Pa1 is 40, the communication waiting cost for the destination process Pa2 is 30, and the communication waiting cost for the destination process Pa3 is 50.

この集計データD2の行の合計は、そのプロセスが他のプロセスとの通信を待機した待機時間の合計であり、集計データD2の列の合計は他のプロセスに待機させた被待機時間の合計となる。   The total of the rows of the aggregated data D2 is the total of the waiting time that the process waited for communication with the other process, and the total of the columns of the aggregated data D2 is the sum of the waiting time that the other process waited for Become.

すなわち、図8に示した例では、プロセスPa1の待機時間の合計は40、プロセスPa2の待機時間の合計は40、プロセスPa3の待機時間の合計は30、プロセスPa4の待機時間の合計は120である。また、プロセスPa1の被待機時間の合計は50、プロセスPa2の被待機時間の合計は30、プロセスPa3の被待機時間の合計は80、プロセスPa4の被待機時間の合計は90である。   That is, in the example shown in FIG. 8, the total waiting time of process Pa1 is 40, the total waiting time of process Pa2 is 40, the total waiting time of process Pa3 is 30, and the total waiting time of process Pa4 is 120. is there. The total waiting time of the process Pa1 is 50, the total waiting time of the process Pa2 is 30, the total waiting time of the process Pa3 is 80, and the total waiting time of the process Pa4 is 90.

行の合計値、すなわち受信側方向(横方向)のコストの合計値は、自プロセスが通信待ちした延べ時間の合計であり、値が大きいものは計算処理が軽かったことを示している。図8の例では、プロセスPa4の待機時間が120であり、プロセスPa4の負荷が他のプロセスに比して低い状態にあったことを示している。   The total value of the rows, that is, the total value of the cost in the receiving side direction (lateral direction) is the total of the total time that the own process waited for communication, and a large value indicates that the calculation processing was light. In the example of FIG. 8, it is shown that the waiting time of the process Pa4 is 120, and the load of the process Pa4 is lower than that of other processes.

列の合計値、すなわち送信側方向(縦方向)のコストの合計値は、自プロセスが他のプロセスに通信待ちさせた延べ時間の合計であり、値が多いものは処理が重かったことを示している。図8の例では、プロセスPa4の被待機時間の合計が90であり、プロセスPa4は、他のプロセスに比して負荷が高い状態にあったことを示している。また、次に負荷が高かったプロセスはプロセスPa3である。   The total value of the column, that is, the total cost in the transmission direction (vertical direction) is the total time that the own process waited for other processes to wait for communication, and a large value indicates that processing was heavy. ing. In the example of FIG. 8, the total waiting time of the process Pa4 is 90, which indicates that the process Pa4 is in a higher load than other processes. The process having the next highest load is process Pa3.

この待機時間と被待機時間を総合的に判断すると、プロセスPa4は、負荷が低い場合と高い場合とのブレが他のプロセスに比して大きく、通信待ち状況に改善の余地が大きいこと、プロセスPa3は、負荷が高いため通信待ち状況の改善の余地があることが判る。   Comprehensively determining the waiting time and the waiting time, the process Pa4 has a large blur between the case where the load is low and the case where the load is high compared to other processes, and there is a large room for improvement in the communication waiting state. It can be seen that Pa3 has room for improvement in the waiting state for communication because the load is high.

図9は、解析部33による解析についての説明図である。図9の評価テーブルD3に示したように、待機時間のコストと被待機時間のコストがともに低い場合(L_L)、そのプロセスの計算処理は適切で、通信待ちが少ない。また、相手を待たせることもない。したがって、改善は不要である。   FIG. 9 is an explanatory diagram for the analysis by the analysis unit 33. As shown in the evaluation table D3 of FIG. 9, when both the cost of the standby time and the cost of the standby time are low (L_L), the calculation processing of the process is appropriate and the communication waiting time is small. Also, it does not make the other party wait. Therefore, no improvement is necessary.

待機時間のコストが低く、被待機時間のコストが高い場合(L_H)、そのプロセスは計算処理が多く、通信待ちが少ない。また、相手を待たせることが多い。このため、改善が必要であり、仕事を減らすことが望ましい。   When the cost of the waiting time is low and the cost of the waiting time is high (L_H), the process has a lot of calculation processing and the communication waiting time is small. Also, it often makes the other party wait. For this reason, improvement is necessary and it is desirable to reduce work.

待機時間のコストが高く、被待機時間のコストが低い場合(H_L)、そのプロセスは、計算処理が少なく、通信待ちが多い。そして、相手を待たせることが少ない。すなわち、計算処理を行っていない時間が多いため、改善が必要であり、仕事を増加することが望ましい。   When the cost of the standby time is high and the cost of the standby time is low (H_L), the process has a small amount of calculation processing and a large waiting time for communication. And it rarely makes the other party wait. In other words, since there are many times when no calculation processing is performed, improvement is necessary and it is desirable to increase work.

待機時間のコストと被待機時間のコストがともに高い場合(H_H)、そのプロセスは、通信待ちが多く、相手を待たせることも多い。そのため、改善が必要であり、仕事量のブレを減らすことが望ましい。   When the cost of the waiting time and the cost of the waiting time are both high (H_H), the process often waits for communication and often makes the other party wait. Therefore, improvement is necessary, and it is desirable to reduce the fluctuation of the work amount.

このように、解析装置30は、プロセスの待機時間と被待機時間からプロセス単位で負荷バランス、すなわち処理の配分状態の均一性を精度よく評価し、改善の指針を出力することが出来る。   As described above, the analysis apparatus 30 can accurately evaluate the load balance, that is, the uniformity of the processing distribution state, in units of processes from the process standby time and the standby time, and output an improvement guideline.

[関数の評価]
また、解析装置30は、サンプリング時にユーザ関数ごとに待ち時間を積算させることで、関数について評価を行うことも出来る。図10は、関数ごとの評価を行う場合のプロセッサ11〜14における処理動作を説明するフローチャートである。以下の説明では、プロセッサ11を例に説明を行なうが、プロセッサ12〜14についても同様である。
[Function evaluation]
The analysis device 30 can also evaluate the function by integrating the waiting time for each user function at the time of sampling. FIG. 10 is a flowchart for explaining the processing operation in the processors 11 to 14 when the evaluation for each function is performed. In the following description, the processor 11 is described as an example, but the same applies to the processors 12 to 14.

プロセッサ11は、通信待ち処理を開始した場合に、通信待ちに入った時刻Tstを記録し(S401)、受信処理を行う(S402)。そして、受信が終了し、通信待ちが解除された場合に時刻Tendを記録し(S403)、時刻Tendと時刻Tstの差分である待ち時間を送信元ごとの待ち状況マトリクスに加算する(S404)。   When the communication waiting process is started, the processor 11 records the time Tst when the communication is started (S401), and performs the receiving process (S402). Then, when reception is completed and communication waiting is canceled, time Tend is recorded (S403), and a waiting time that is the difference between time Tend and time Tst is added to the waiting status matrix for each transmission source (S404).

また、プロセッサ11は、アプリケーションプログラムから割り当てられたプロセスPa1を実行する際に、プロセスPa1からサンプリングスレッドPs1を生成する(S501)。プロセッサ11は、プロセスPa1において計算処理を実行する(S502)とともに、サンプリングスレッドPs1によるサンプリングを実行する(S600)。   Further, when executing the process Pa1 assigned by the application program, the processor 11 generates a sampling thread Ps1 from the process Pa1 (S501). The processor 11 executes a calculation process in the process Pa1 (S502) and performs sampling by the sampling thread Ps1 (S600).

プロセッサ11は、プロセスPa1の計算処理(S502)が終了した後、サンプリングスレッドPs1の消去を待ち(S503)、サンプリングデータD1aを出力して(S504)、処理を終了する。   After the calculation process (S502) of the process Pa1 ends, the processor 11 waits for the sampling thread Ps1 to be deleted (S503), outputs the sampling data D1a (S504), and ends the process.

図11は、サンプリング(S600)の詳細について説明するフローチャートである。図11に示したように、プロセッサ11は、プロセスPa1からサンプリングを行う(S601)度に、待ち状況マトリクスを参照する(S602)。そして、サンプリングがヒットしたユーザ関数の関数毎マトリクスに加算し(S603)、待ち状況マトリクスをゼロクリアする(S604)。関数別のサンプリングには、一例としてcall-graphプロファイリングなどを用いればよい。   FIG. 11 is a flowchart illustrating details of sampling (S600). As shown in FIG. 11, the processor 11 refers to the wait status matrix every time sampling is performed from the process Pa1 (S601) (S602). Then, the sampling is added to the function-by-function matrix of the user function (S603), and the waiting situation matrix is cleared to zero (S604). For example, call-graph profiling may be used for sampling by function.

図12は、関数について評価する場合の解析装置30の処理動作を説明するフローチャートである。図12に示したように、まず、データ取得部31がサンプリングデータを取得し(S701)、データ集計部32が集計する(S702)。解析部33は、ユーザ関数ごとに関数毎マトリクスを解析し、受信時に要した延べ時間や、受信させた時の延べ時間を求めて、集計マトリクスを作成し(S703)、解析レポートを出力する(S704)。   FIG. 12 is a flowchart for explaining the processing operation of the analysis apparatus 30 when evaluating a function. As shown in FIG. 12, first, the data acquisition unit 31 acquires sampling data (S701), and the data totaling unit 32 totals (S702). The analysis unit 33 analyzes the matrix for each function for each user function, finds the total time required for reception and the total time for reception, creates a total matrix (S703), and outputs an analysis report ( S704).

[データと処理の具体例]
図13は、待ち状況マトリクス、関数毎マトリクス、集計マトリクスの具体例の説明図である。図13に示した待ち状況マトリクスD4は、プロセスPa4の待ち状況を示すデータである。マトリクスD4は、送信側のプロセスPa1との通信でコスト40の通信待ちを行い、送信側のプロセスPa2との通信でコスト30の通信待ちを行い、送信側のプロセスPa3との通信でコスト50の通信待ちを行ったことを示している。
[Specific examples of data and processing]
FIG. 13 is an explanatory diagram of specific examples of the waiting situation matrix, the function matrix, and the aggregation matrix. The wait status matrix D4 illustrated in FIG. 13 is data indicating the wait status of the process Pa4. The matrix D4 waits for communication at cost 40 in communication with the process Pa1 on the transmission side, waits for communication at cost 30 in communication with the process Pa2 on the transmission side, and costs 50 in communication with process Pa3 on the transmission side. Indicates that communication has been waited.

図13に示した関数毎マトリクスD5は、プロセスPa4の関数ごとの待ち状況を示すデータである。関数毎マトリクスD5は、関数c1について、送信側のプロセスPa1との通信でコスト300の通信待ちを行い、送信側のプロセスPa2との通信でコスト10の通信待ちを行い、送信側のプロセスPa3との通信でコスト100の通信待ちを行ったことを示している。   The function-by-function matrix D5 illustrated in FIG. 13 is data indicating a waiting state for each function of the process Pa4. For each function c1, the function matrix D5 waits for communication at cost 300 by communication with the process Pa1 on the transmission side, waits for communication at cost 10 by communication with the process Pa2 on the transmission side, and It shows that the communication waiting of the cost 100 was performed by this communication.

同様に、関数毎マトリクスD5は、関数c2について、送信側のプロセスPa1との通信でコスト100、送信側のプロセスPa2との通信でコスト300、送信側のプロセスPa3との通信でコスト200の通信待ちを行ったことを示している。   Similarly, the function-by-function matrix D5 is a communication of the function c2 at a cost of 100 for communication with the process Pa1 on the transmission side, a cost of 300 for communication with the process Pa2 on the transmission side, and a cost of 200 for communication with the process Pa3 on the transmission side. Indicates waiting.

また、関数毎マトリクスD5は、関数c3について、送信側のプロセスPa1との通信でコスト10、送信側のプロセスPa2との通信でコスト30、送信側のプロセスPa3との通信でコスト300の通信待ちを行ったことを示している。   Further, the function-specific matrix D5 indicates that the function c3 is waiting for communication with the cost 10 for communication with the process Pa1 on the transmission side, the cost 30 for communication with the process Pa2 on the transmission side, and the cost 300 for communication with the process Pa3 on the transmission side. It has been shown that.

また、関数毎マトリクスD5は、関数c4について、送信側のプロセスPa1との通信でコスト400、送信側のプロセスPa2との通信でコスト300、送信側のプロセスPa3との通信でコスト500の通信待ちを行ったことを示している。   Further, the function matrix D5 indicates that the function c4 is waiting for communication with the cost 400 for communication with the process Pa1 on the transmission side, the cost 300 for communication with the process Pa2 on the transmission side, and the cost 500 for communication with the process Pa3 on the transmission side. It has been shown that.

解析装置30は、この関数毎マトリクスを各プロセスから取得し、関数ごとに集計して集計マトリクスを作成する。図13に示した集計マトリクスD6は、関数c3についての集計結果を例示したものである。   The analysis device 30 acquires the matrix for each function from each process, and totals the functions for each function to create a total matrix. The aggregation matrix D6 illustrated in FIG. 13 exemplifies the aggregation result for the function c3.

集計マトリクスD6は、受信側のプロセスPa1について、送信先プロセスPa2に対する通信待ちコストが0、送信先プロセスPa3に対する通信待ちコストが100、送信先プロセスPa4に対する通信待ちコストが300である。   In the aggregation matrix D6, for the process Pa1 on the receiving side, the communication waiting cost for the transmission destination process Pa2 is 0, the communication waiting cost for the transmission destination process Pa3 is 100, and the communication waiting cost for the transmission destination process Pa4 is 300.

また、受信側のプロセスPa2について、送信先プロセスPa1に対する通信待ちコストが100、送信先プロセスPa3に対する通信待ちコストが200、送信先プロセスPa4に対する通信待ちコストが300である。   For the receiving process Pa2, the communication waiting cost for the transmission destination process Pa1 is 100, the communication waiting cost for the transmission destination process Pa3 is 200, and the communication waiting cost for the transmission destination process Pa4 is 300.

同様に、受信側のプロセスPa3について、送信先プロセスPa1に対する通信待ちコストが0、送信先プロセスPa2に対する通信待ちコストが0、送信先プロセスPa4に対する通信待ちコストが300である。   Similarly, for the process Pa3 on the receiving side, the communication waiting cost for the destination process Pa1 is 0, the communication waiting cost for the destination process Pa2 is 0, and the communication waiting cost for the destination process Pa4 is 300.

そして、受信側のプロセスPa4について、送信先プロセスPa1に対する通信待ちコストが10、送信先プロセスPa2に対する通信待ちコストが30、送信先プロセスPa3に対する通信待ちコストが300である。   For the receiving process Pa4, the communication waiting cost for the destination process Pa1 is 10, the communication waiting cost for the destination process Pa2 is 30, and the communication waiting cost for the destination process Pa3 is 300.

したがって、関数c3についてプロセスPa1の待機時間の合計、すなわち行の合計は400、プロセスPa2の待機時間の合計は600、プロセスPa3の待機時間の合計は300、プロセスPa4の待機時間の合計は340となる。また、プロセスPa1の被待機時間の合計、すなわち列の合計は110、プロセスPa2の被待機時間の合計は30、プロセスPa3の被待機時間の合計は600、プロセスPa4の被待機時間の合計は900となる。   Therefore, for the function c3, the total waiting time of the process Pa1, that is, the total row is 400, the total waiting time of the process Pa2 is 600, the total waiting time of the process Pa3 is 300, and the total waiting time of the process Pa4 is 340. Become. In addition, the total waiting time of the process Pa1, that is, the column total is 110, the total waiting time of the process Pa2 is 30, the total waiting time of the process Pa3 is 600, and the total waiting time of the process Pa4 is 900. It becomes.

図14は、集計マトリクスからの評価と修正指針の作成についての説明図である。集計マトリクスD6の待機時間と被待機時間から、関数ごとのプロセス評価D7を求めることが出来る。プロセス評価D7は、各関数についてプロセスの待機時間の合計が平均よりも低く、被待機時間の合計が平均よりも低い場合にL_L、待機時間の合計が平均よりも低く、被待機時間の合計が平均よりも高い場合にL_H、待機時間の合計が平均よりも高く、被待機時間の合計が平均よりも低い場合にH_L、待機時間の合計が平均よりも高く、被待機時間の合計が平均よりも高い場合にH_Hの値を取る。   FIG. 14 is an explanatory diagram for the evaluation from the aggregation matrix and the creation of a correction guideline. A process evaluation D7 for each function can be obtained from the standby time and the standby time of the aggregation matrix D6. The process evaluation D7 is L_L when the total waiting time of the processes is lower than the average for each function and the total waiting time is lower than the average, the total waiting time is lower than the average, and the total waiting time is L_H when higher than average, total waiting time is higher than average, H_L when total waiting time is lower than average, total waiting time is higher than average, total waiting time is higher than average If H is also high, the value of H_H is taken.

関数c3の例では、待機時間の合計の平均値が(400+600+300+340)/4で410となる。プロセスPa1は、待機時間の合計が400、被待機時間の合計が110であるので、L_L、プロセスPa2は、待機時間の合計が600、被待機時間の合計が30であるので、H_Lとなる。また、プロセスPa3は、待機時間の合計が300、被待機時間の合計が600であるので、L_H、プロセスPa4は、待機時間の合計が340、被待機時間の合計が900であるので、L_Hとなる。   In the example of the function c3, the average value of the total waiting time is 410 in (400 + 600 + 300 + 340) / 4. The process Pa1 has a total waiting time of 400 and the total waiting time is 110, so L_L, and the process Pa2 has a total waiting time of 600 and the total waiting time is 30, so it becomes H_L. Further, since the total waiting time is 300 and the total waiting time is 600 for the process Pa3, L_H, and the total processing time for the process Pa4 is 340 and the total waiting time is 900. Become.

同様に、プロセス評価D7は、関数c1について、プロセスPa1〜Pa4でH_Hの値をとる。プロセス評価D7は、関数c2について、プロセスPa1でH_L、プロセスPa2でL_L、プロセスPa3でH_L、プロセスPa4でL_Lの値をとる。そして、プロセス評価D7は、関数c4について、プロセスPa1とプロセスPa2でH_H、プロセスPa3とプロセスPa4でL_Lの値をとる。   Similarly, the process evaluation D7 takes the value of H_H in the processes Pa1 to Pa4 for the function c1. The process evaluation D7 takes a value of H_L for the process Pa1, L_L for the process Pa2, H_L for the process Pa3, and L_L for the process Pa4 for the function c2. The process evaluation D7 takes a value of H_H for the process Pa1 and the process Pa2 and L_L for the process Pa3 and the process Pa4 for the function c4.

プロセス全体としては、プロセスPa1とプロセスPa2がH_L、プロセスPa3とプロセスPa4がH_Hの値をとる。   As the entire process, the process Pa1 and the process Pa2 take the value H_L, and the process Pa3 and the process Pa4 take the value H_H.

このプロセス評価D7から、解析装置30は、プロセス修正指針D8を作成する。L_Lについては修正が不要であり、L_Hについては仕事の減少が望ましく、H_Lについては仕事の増加が望ましく、H_Hについては仕事量のブレの減少が望ましい。   From this process evaluation D7, the analysis apparatus 30 creates a process correction guideline D8. No correction is required for L_L, a decrease in work is desirable for L_H, an increase in work is desirable for H_L, and a decrease in work blur is desirable for H_H.

このため、プロセス修正指針D8は、関数c1について、プロセスPa1〜Pa4に対するブレの減少を提示し、関数c2について、プロセスPa1とプロセスPa3に対する仕事増を提示する。また、プロセス修正指針D8は、関数c3について、プロセスPa2に対する仕事増と、プロセスPa3とプロセスPa4に対する仕事減を提示し、関数c4について、プロセスPa1とプロセスPa2に対するブレの減少を提示する。   For this reason, the process correction guideline D8 presents a reduction in shake relative to the processes Pa1 to Pa4 for the function c1, and presents an increase in work for the processes Pa1 and Pa3 for the function c2. Further, the process correction guideline D8 presents an increase in work for the process Pa2 and a decrease in work for the processes Pa3 and Pa4 for the function c3, and a decrease in blurring for the processes Pa1 and Pa2 for the function c4.

そして、プロセス修正指針D8は、プロセスPa1とプロセスPa2の全体に対して仕事増を提示し、プロセスPa3とプロセスPa4の全体に対してブレの減少を提示する。   Then, the process correction guideline D8 presents an increase in work for the entire process Pa1 and process Pa2, and presents a reduction in shake for the entire process Pa3 and process Pa4.

上述してきたように、本実施例にかかる解析装置30は、プロセッサ11〜14から、分散並列処理される複数のプロセスの各々について、他のプロセスとの間の通信の際の自プロセスの待機時間をサンプリングしたサンプリングデータを取得する。サンプリングデータを取得した解析装置30は、複数のプロセスの各々について、他のプロセスとの間の自プロセスの待機時間の合計と、他のプロセスと自プロセスとの間の通信の際の他のプロセスの待機時間の合計を求め、その結果を解析して複数のプロセスに対する処理の配分状態を評価する。このため、解析装置30は、負荷バランスを精度よく評価し、もって分散並列処理プログラムの性能向上に寄与することができる。   As described above, the analysis apparatus 30 according to the present embodiment, for each of a plurality of processes subjected to distributed parallel processing from the processors 11 to 14, waits for the own process when communicating with other processes. Get the sampling data sampled. The analysis apparatus 30 that has acquired the sampling data has, for each of the plurality of processes, the total waiting time of the own process with the other process and the other process at the time of communication between the other process and the own process. The total waiting time is obtained, and the result is analyzed to evaluate the distribution state of processing for a plurality of processes. For this reason, the analysis device 30 can accurately evaluate the load balance and contribute to improving the performance of the distributed parallel processing program.

なお、本実施例はあくまで一例であり、構成及び動作は適宜変更して実施することができる。例えば、本実施例では、4つのプロセッサを有するシステムを例示して説明を行ったが、任意の数のプロセッサを有するシステムに適用可能である。   In addition, a present Example is an example to the last, A structure and operation | movement can be changed suitably and can be implemented. For example, in this embodiment, a system having four processors has been described as an example, but the present invention can be applied to a system having an arbitrary number of processors.

11〜14 プロセッサ
21 インターコネクト装置
30 解析装置
31 データ取得部
32 データ集計部
33 解析部
Pa1〜Pa4 プロセス
Ps1〜Ps4 サンプリングスレッド
D1a,D1b,D1c,D1d サンプリングデータ
D2 集計データ
D3 評価テーブル
D4 待ち状況マトリクス
D5 関数毎マトリクス
D6 集計マトリクス
D7 プロセス評価
D8 プロセス修正指針
11-14 Processor 21 Interconnect device 30 Analysis device 31 Data acquisition unit 32 Data totaling unit 33 Analysis unit Pa1-Pa4 Process Ps1-Ps4 Sampling thread D1a, D1b, D1c, D1d Sampling data D2 Total data D3 Evaluation table D4 Waiting state matrix D5 Matrix for each function D6 Aggregation matrix D7 Process evaluation D8 Process modification guidelines

Claims (5)

分散並列処理される複数のプロセスの各々について、他のプロセスとの間の通信の際の自プロセスの待機時間をサンプリングしたサンプリングデータを取得する取得部と、
前記サンプリングデータに基づいて、前記複数のプロセスの各々について、他のプロセスとの間の自プロセスの待機時間の合計と、他のプロセスと自プロセスとの間の通信の際の他のプロセスの待機時間の合計を求める集計部と、
前記集計部による集計結果を解析して前記複数のプロセスに対する処理の配分状態を評価する解析部と
を備えたことを特徴とする解析装置。
For each of a plurality of processes that are distributed in parallel processing, an acquisition unit that acquires sampling data obtained by sampling the waiting time of the own process at the time of communication with another process;
Based on the sampling data, for each of the plurality of processes, the total waiting time of the own process between the other process and the waiting time of the other process during communication between the other process and the own process. A totaling section that calculates the total time,
An analysis apparatus comprising: an analysis unit that analyzes a result of aggregation by the aggregation unit and evaluates a distribution state of processing for the plurality of processes.
前記集計部は、サンプリング時に実行中であった関数ごとに前記他のプロセスとの間の自プロセスの待機時間の合計と、他のプロセスと自プロセスとの間の通信の際の他のプロセスの待機時間の合計を求め、前記解析部は前記関数ごとに処理の配分状態を評価することを特徴とする請求項1に記載の解析装置。   The aggregating unit calculates the sum of the waiting time of the own process with the other process for each function being executed at the time of sampling, and the other process in the communication between the other process and the own process. The analysis apparatus according to claim 1, wherein a total waiting time is obtained, and the analysis unit evaluates a process distribution state for each function. 前記解析部は、
前記他のプロセスとの間の自プロセスの待機時間の合計が他のプロセスよりも小さく、且つ前記他のプロセスと自プロセスとの間の通信の際の他のプロセスの待機時間の合計が他のプロセスに対して大きいプロセスについて、処理の配分量を削減すべきであると評価し、
前記他のプロセスとの間の自プロセスの待機時間の合計が他のプロセスよりも大きく、且つ前記他のプロセスと自プロセスとの間の通信の際の他のプロセスの待機時間の合計が他のプロセスに対して小さいプロセスについて処理の配分量を増加すべきであると評価し、
前記他のプロセスとの間の自プロセスの待機時間の合計が他のプロセスよりも大きく、且つ前記他のプロセスと自プロセスとの間の通信の際の他のプロセスの待機時間の合計が他のプロセスに対して大きいプロセスについて処理のばらつきを抑制すべきであると評価することを特徴とする請求項1または2に記載の解析装置。
The analysis unit
The total waiting time of the own process with the other process is smaller than that of the other process, and the total waiting time of the other process at the time of communication between the other process and the own process is Evaluate that process allocation should be reduced for processes that are large relative to the process,
The total waiting time of the own process with the other process is larger than that of the other process, and the total waiting time of the other process at the time of communication between the other process and the own process is Assess that the process allocation should be increased for small processes relative to the process,
The total waiting time of the own process with the other process is larger than that of the other process, and the total waiting time of the other process at the time of communication between the other process and the own process is The analysis apparatus according to claim 1, wherein it is evaluated that process variation should be suppressed for a process that is larger than the process.
解析装置が実行する解析方法であって、
前記解析装置の取得部が、分散並列処理される複数のプロセスの各々について、他のプロセスとの間の通信の際の自プロセスの待機時間をサンプリングしたサンプリングデータを取得するステップと、
前記解析装置の集計部が、前記サンプリングデータに基づいて、前記複数のプロセスの各々について、他のプロセスとの間の自プロセスの待機時間の合計と、他のプロセスと自プロセスとの間の通信の際の他のプロセスの待機時間の合計を求める集計ステップと、
前記解析装置の解析部が、前記集計ステップによる集計結果を解析して前記複数のプロセスに対する処理の配分状態を評価するステップと
を含んだことを特徴とする解析方法。
An analysis method executed by an analysis device,
The acquisition unit of the analysis device acquires sampling data obtained by sampling the waiting time of the own process at the time of communication with other processes for each of a plurality of processes to be distributed and processed in parallel;
Based on the sampling data , the totaling unit of the analysis device, for each of the plurality of processes, the total waiting time of the own process between the other process and the communication between the other process and the own process. An aggregation step to find the total waiting time of other processes during
An analysis method comprising: an analysis unit of the analysis device analyzing the aggregation result of the aggregation step and evaluating a distribution state of processing for the plurality of processes.
コンピュータを、
分散並列処理される複数のプロセスの各々について、他のプロセスとの間の通信の際の自プロセスの待機時間をサンプリングしたサンプリングデータを取得する取得部、
前記サンプリングデータに基づいて、前記複数のプロセスの各々について、他のプロセスとの間の自プロセスの待機時間の合計と、他のプロセスと自プロセスとの間の通信の際の他のプロセスの待機時間の合計を求める集計部、
前記集計部による集計結果を解析して前記複数のプロセスに対する処理の配分状態を評価する評価部
として機能させるための解析プログラム。
Computer
An acquisition unit that acquires sampling data obtained by sampling the waiting time of the own process at the time of communication with another process for each of a plurality of processes that are distributed and processed in parallel .
Based on the sampling data, for each of the plurality of processes, the total waiting time of the own process between the other process and the waiting time of the other process during communication between the other process and the own process. A totaling section that calculates the total time ,
An evaluation unit that analyzes a result of aggregation by the aggregation unit and evaluates a distribution state of processing for the plurality of processes.
Analysis program to function as
JP2010070504A 2010-03-25 2010-03-25 Analysis device, analysis method, and analysis program Expired - Fee Related JP5526914B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010070504A JP5526914B2 (en) 2010-03-25 2010-03-25 Analysis device, analysis method, and analysis program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010070504A JP5526914B2 (en) 2010-03-25 2010-03-25 Analysis device, analysis method, and analysis program

Publications (2)

Publication Number Publication Date
JP2011203994A JP2011203994A (en) 2011-10-13
JP5526914B2 true JP5526914B2 (en) 2014-06-18

Family

ID=44880572

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010070504A Expired - Fee Related JP5526914B2 (en) 2010-03-25 2010-03-25 Analysis device, analysis method, and analysis program

Country Status (1)

Country Link
JP (1) JP5526914B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5861402B2 (en) * 2011-11-11 2016-02-16 株式会社ソシオネクスト Management program, management method, and management apparatus
JP6070078B2 (en) * 2012-11-01 2017-02-01 日本電気株式会社 Hybrid parallel processing system, hybrid parallel processing method, and computer program
JP6152786B2 (en) * 2013-11-29 2017-06-28 富士通株式会社 Communication control apparatus, information processing apparatus, parallel computer system, control program, and parallel computer system control method

Also Published As

Publication number Publication date
JP2011203994A (en) 2011-10-13

Similar Documents

Publication Publication Date Title
JP7214295B2 (en) Distributed system data synchronization method, apparatus, computer program and electronic equipment
EP3226493B1 (en) Method, device, and system for discovering the relationship of applied topology
US8261266B2 (en) Deploying a virtual machine having a virtual hardware configuration matching an improved hardware profile with respect to execution of an application
CN107924360B (en) Diagnostic framework in a computing system
US9921950B2 (en) Second failure data capture in co-operating multi-image systems
WO2013069191A1 (en) Analysis process system
US20130227244A1 (en) Workload-aware distributed data processing apparatus and method for processing large data based on hardware acceleration
US20160094424A1 (en) Virtual Machine Processor &amp; Memory Resource Coordinator
JP5526914B2 (en) Analysis device, analysis method, and analysis program
CN112052078A (en) Time-consuming determination method and device
US8914517B1 (en) Method and system for predictive load balancing
US11726893B2 (en) System for automatically evaluating a change in a large population of processing jobs
CN110651260A (en) Enhanced component delay tracking
US20130179564A1 (en) Computer-readable recording medium, information processing method, and information processing apparatus
JP2011227639A (en) Information processing apparatus, timeout processing method, and timeout processing program
JP4877608B2 (en) Virtual machine server, virtual machine server information storage method, and virtual machine server information storage program
Guo et al. Learning-based characterizing and modeling performance bottlenecks of big data workloads
JP2010049613A (en) Storage device, and method and program for managing storage performance
US20200379850A1 (en) Uninterrupted backup operation using a time based approach
JP2023183342A (en) Job scheduler and job scheduling method
JP2020098376A (en) Distributed database apparatus
JP5210845B2 (en) Disk input / output simulation method and information collection / analysis server
Lee Adaptive TCP flow control for improving performance of mobile cloud clusters
JP2014010500A (en) Data processing device, method and program
JP2015018412A (en) Analysis control device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140127

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

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees