JP6152786B2 - Communication control apparatus, information processing apparatus, parallel computer system, control program, and parallel computer system control method - Google Patents
Communication control apparatus, information processing apparatus, parallel computer system, control program, and parallel computer system control method Download PDFInfo
- Publication number
- JP6152786B2 JP6152786B2 JP2013248579A JP2013248579A JP6152786B2 JP 6152786 B2 JP6152786 B2 JP 6152786B2 JP 2013248579 A JP2013248579 A JP 2013248579A JP 2013248579 A JP2013248579 A JP 2013248579A JP 6152786 B2 JP6152786 B2 JP 6152786B2
- Authority
- JP
- Japan
- Prior art keywords
- start time
- sequence information
- communication
- calculation
- inter
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3404—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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/3419—Recording 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
- G06F11/3423—Recording 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 where the assessed time is active or idle time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Description
本発明は、通信制御装置、情報処理装置、並列計算機システム、制御プログラム、及び並列計算機システムの制御方法に関する。 The present invention relates to a communication control device, an information processing device, a parallel computer system, a control program, and a control method for the parallel computer system.
並列計算機システムにおける並列アプリケーションプログラムの実行時には、主にMessage Passing Interface(MPI)を利用して、複数のプロセスの各々が演算処理とプロセス間通信処理とを繰り返しながら並列に処理を進める。このプロセス間通信処理は、並列計算機システムのあるノード内のプロセス間で行われるとともに、異なるノードのプロセス間でも行われる。このとき、演算処理時間がプロセス間で異なることで、通信処理の開始時刻がプロセス間で異なる場合がある。 When executing a parallel application program in a parallel computer system, mainly using a Message Passing Interface (MPI), each of a plurality of processes proceeds in parallel while repeating arithmetic processing and inter-process communication processing. This inter-process communication process is performed between processes in a node of the parallel computer system, and is also performed between processes of different nodes. At this time, the start time of communication processing may differ between processes due to the difference in the computation processing time between processes.
例えば、図1に示すように、プロセスP0、プロセスP1、及びプロセスP2が並列アプリケーションプログラムを実行する場合、演算処理が早く完了したプロセスP0及びプロセスP1は、プロセスP2との通信処理をそれぞれ試行する。しかし、プロセスP2は、演算処理中であり通信処理を開始できないため、プロセスP0及びプロセスP1は、プロセスP2による演算処理の完了をそれぞれ待つ。この間、プロセスP0及びプロセスP1は、演算処理も通信処理も行わないため、並列計算機システムの利用効率が低下し、台数効果が悪化する。 For example, as shown in FIG. 1, when the process P0, the process P1, and the process P2 execute the parallel application program, the process P0 and the process P1 that have completed the arithmetic processing earlier try communication processing with the process P2, respectively. . However, since the process P2 is performing arithmetic processing and communication processing cannot be started, the process P0 and the process P1 each wait for completion of the arithmetic processing by the process P2. During this time, since the process P0 and the process P1 do not perform arithmetic processing or communication processing, the utilization efficiency of the parallel computer system is lowered and the number effect is deteriorated.
この問題を解決するには、並列アプリケーションプログラムの開発者が各プロセスの演算処理時間を均等化するコード書き換えやパラメータチューニング等を行い、通信処理の開始時刻をプロセス間で揃える方法が考えられる。 In order to solve this problem, a method in which a developer of a parallel application program performs code rewriting, parameter tuning, etc. to equalize the processing time of each process and aligns the start time of communication processing among the processes.
通信処理の開始時刻がプロセス間で揃っているか否かを確認する方法として、同期待ち時間と呼ばれる値の多寡で確認する方法が知られている。同期待ち時間は、例えば、次のようにして求められる。 As a method for confirming whether or not the start time of communication processing is uniform among processes, there is known a method for confirming based on a value called a synchronization waiting time. The synchronization waiting time is obtained, for example, as follows.
1.各プロセスの通信処理ごとに開始時刻を取得する。この開始時刻は、例えば、各プロセスの実行開始時点からの経過時間として取得することができる。
2.通信処理ごとに複数のプロセスの開始時刻の最大値を求める。
3.最大値と各プロセスの通信処理の開始時刻との差分を求め、プロセスごとに複数の通信処理に関する差分を積算し、同期待ち時間として記録する。
1. The start time is acquired for each communication process of each process. This start time can be acquired, for example, as an elapsed time from the execution start time of each process.
2. The maximum value of the start times of a plurality of processes is obtained for each communication process.
3. The difference between the maximum value and the communication processing start time of each process is obtained, and the differences regarding a plurality of communication processes are integrated for each process, and recorded as the synchronization waiting time.
各プロセスの同期待ち時間は、すべての通信処理の開始時刻がプロセス間で一致すると0になり、プロセス間で開始時刻の差が大きいほど、並列アプリケーションプログラムの実行に要した経過時間に近づく。したがって、同期待ち時間が0に近いほど望ましい状態であると判断できる。 The synchronization waiting time of each process becomes 0 when the start times of all communication processes coincide between processes, and the greater the difference in start time between processes, the closer to the elapsed time required to execute the parallel application program. Therefore, it can be determined that the closer the synchronization waiting time is to 0, the more desirable the state is.
図1の1回目の通信処理では、プロセスP0、プロセスP1、及びプロセスP2の開始時刻はそれぞれ20、10、及び30であり、開始時刻の最大値は、矢印101が示す30である。そして、最大値30とプロセスP0、プロセスP1、及びプロセスP2の開始時刻との差分は、それぞれ10、20、及び0となる。
In the first communication process of FIG. 1, the start times of the process P0, the process P1, and the process P2 are 20, 10, and 30, respectively, and the maximum start time is 30 indicated by the
2回目の通信処理では、プロセスP0、プロセスP1、及びプロセスP2の開始時刻はそれぞれ60、70、及び50であり、開始時刻の最大値は、矢印102が示す70である。そして、最大値70とプロセスP0、プロセスP1、及びプロセスP2の開始時刻との差分は、それぞれ10、0、及び20となる。
In the second communication process, the start times of the process P0, the process P1, and the process P2 are 60, 70, and 50, respectively, and the maximum start time is 70 indicated by the
したがって、1回目及び2回目の通信処理に関する差分を積算すると、プロセスP0、プロセスP1、及びプロセスP2の同期待ち時間はそれぞれ20、20、及び20となる。この場合、並列アプリケーションプログラムの実行に要した経過時間は80であり、そのうち20が、他のプロセスによる演算処理の完了を待つための無駄な時間であったと解釈できる。 Therefore, when the differences related to the first and second communication processes are integrated, the synchronization waiting times of the process P0, the process P1, and the process P2 are 20, 20, and 20, respectively. In this case, the elapsed time required to execute the parallel application program is 80, and 20 of them can be interpreted as wasted time for waiting for completion of the arithmetic processing by another process.
米国Cray社の並列アプリケーション性能プロファイリングツールは、同期待ち時間を求めるためにMPIの集団通信関数をフックし、通信処理の開始前にプロセス間同期インタフェース(MPI_Barrier関数)を自動的に呼び出す。そして、並列アプリケーション性能プロファイリングツールは、プロセスごとにMPI_Barrier関数の経過時間の合計値を求める。 The parallel application performance profiling tool of Cray Corporation in the United States hooks the MPI collective communication function to obtain the synchronization waiting time, and automatically calls the inter-process synchronization interface (MPI_Barrier function) before the start of communication processing. Then, the parallel application performance profiling tool obtains the total elapsed time of the MPI_Barrier function for each process.
複数のプロセスが持つデータを対象として、データの総和、最大値、最小値等を求めるリダクション演算を行うリダクション演算装置も知られている(例えば、特許文献1を参照)。 There is also known a reduction operation device that performs a reduction operation for obtaining the sum, maximum value, minimum value, etc. of data for data of a plurality of processes (see, for example, Patent Document 1).
以下の説明では、並列アプリケーションプログラムを、単に、並列アプリケーションと記載する場合がある。 In the following description, the parallel application program may be simply referred to as a parallel application.
従来の並列計算機システムには、以下のような問題がある。
並列アプリケーション性能プロファイリングツールのように、同期待ち時間を求めるためにプロセス間同期インタフェースを呼び出す場合、各プロセスの処理に同期処理が加わるため、並列アプリケーションの挙動を大きく変えてしまうことがある。このため、同期処理を行うことなく、通信処理ごとに開始時刻の最大値を求めることが望ましい。
The conventional parallel computer system has the following problems.
When the inter-process synchronization interface is called to obtain the synchronization waiting time as in the parallel application performance profiling tool, the synchronization processing is added to the processing of each process, so the behavior of the parallel application may be greatly changed. For this reason, it is desirable to obtain the maximum value of the start time for each communication process without performing the synchronization process.
同期処理を行うことなく(非同期に)、通信処理ごとに開始時刻の最大値を求めるには、各プロセスが通信処理ごとに開始時刻を取得して主記憶領域に書き込んだ後に、並列アプリケーションの実行中又は実行後に最大値を計算する方法が考えられる。 To obtain the maximum start time for each communication process without performing synchronous processing (asynchronously), each process acquires the start time for each communication process and writes it to the main storage area before executing the parallel application. A method of calculating the maximum value during or after execution is conceivable.
並列アプリケーションの実行後に最大値を計算する場合、すべての通信処理の開始時刻のデータを記録するため、実行時間が長い並列アプリケーションでは並列アプリケーションが利用できる主記憶領域を圧迫する可能性がある。このような場合、並列アプリケーションの実行中に最大値を計算することが望ましい。 When the maximum value is calculated after the execution of the parallel application, data of the start time of all communication processes is recorded. Therefore, in a parallel application having a long execution time, the main storage area that can be used by the parallel application may be compressed. In such a case, it is desirable to calculate the maximum value during execution of the parallel application.
並列アプリケーションの実行中に最大値を計算する場合、すべての通信処理の開始時刻のデータを記録する必要はなく、過去の通信処理に関する差分の積算値を同期待ち時間として記録すれば足りる。したがって、実行時間が長い並列アプリケーションであっても主記憶領域を圧迫することはない。この場合、演算処理中に、ソフトウェア又はハードウェアの非同期通信インタフェースを利用して、各プロセスの通信処理の開始時刻を送受信する方法が考えられる。 When calculating the maximum value during the execution of the parallel application, it is not necessary to record the data of the start time of all the communication processes, and it is sufficient to record the integrated value of the differences regarding the past communication processes as the synchronization waiting time. Therefore, even in a parallel application having a long execution time, the main storage area is not compressed. In this case, a method of transmitting and receiving the communication processing start time of each process using an asynchronous communication interface of software or hardware during the arithmetic processing is conceivable.
しかし、ソフトウェアの非同期通信インタフェースを利用する方法では、最大値の計算はCentral Processing Unit(CPU)によるソフトウェア処理のため、CPU時間を消費することで並列アプリケーションの挙動が変わる可能性がある。 However, in the method using the asynchronous communication interface of software, the calculation of the maximum value is software processing by the Central Processing Unit (CPU), so that the behavior of the parallel application may change by consuming CPU time.
ハードウェアの非同期通信インタフェースを利用する方法では、各プロセスがネットワークインタフェースに実装されたネットワークリダクション機構に開始時刻のデータを転送し、最大値演算を指示することができる。 In the method using the hardware asynchronous communication interface, each process can transfer start time data to a network reduction mechanism mounted on the network interface and instruct maximum value calculation.
ここで、ある通信処理と次の通信処理との間の演算処理時間が非常に短い場合、稀にではあるが、ネットワークリダクション機構による最大値演算が完了しない可能性がある。ネットワークリダクション機構が同時に単一の最大値演算しか実行できない場合、各プロセスは、先行する最大値演算が完了するまで後続の最大値演算を指示できないため、並列アプリケーションの挙動が変わってしまう。 Here, when the calculation processing time between one communication process and the next communication process is very short, there is a possibility that the maximum value calculation by the network reduction mechanism may not be completed. If the network reduction mechanism can execute only a single maximum value operation at the same time, each process cannot instruct the subsequent maximum value operation until the preceding maximum value operation is completed, and the behavior of the parallel application is changed.
1つの側面において、本発明は、並列アプリケーションの実行中に、並列アプリケーションの挙動を変えることなく、プロセス間通信の開始時刻を用いた演算を行うことを目的とする。 In one aspect, an object of the present invention is to perform an operation using the start time of interprocess communication without changing the behavior of a parallel application during execution of the parallel application.
1つの案では、演算処理装置と主記憶装置とに接続する通信制御装置は、演算部を含む。 In one proposal, the communication control device connected to the arithmetic processing device and the main storage device includes an arithmetic unit.
第1のシーケンス情報は、演算処理装置が実行するプログラムに含まれる複数のプロセスのうち第1のプロセスが第1のプロセス間通信を開始した第1の開始時刻に対して演算処理装置が付与して、主記憶装置に書き込んだシーケンス情報である。複数のプロセスのうち第2のプロセスが第2のプロセス間通信を開始した第2の開始時刻に付与された第2のシーケンス情報の方が第1のシーケンス情報よりも新しい場合、演算部は、第1の開始時刻を用いた演算を行わない。 The first sequence information is given by the arithmetic processing device to the first start time at which the first process of the plurality of processes included in the program executed by the arithmetic processing device starts the first inter-process communication. Sequence information written to the main memory. When the second sequence information given at the second start time at which the second process of the plurality of processes has started the second inter-process communication is newer than the first sequence information, The calculation using the first start time is not performed.
第2のシーケンス情報が第1のシーケンス情報に対応する場合、演算部は、第1の開始時刻と第2の開始時刻とを用いた演算を行って演算結果を出力する。 When the second sequence information corresponds to the first sequence information, the calculation unit performs a calculation using the first start time and the second start time and outputs a calculation result.
実施形態によれば、並列アプリケーションの実行中に、並列アプリケーションの挙動を変えることなく、プロセス間通信の開始時刻を用いた演算を行うことができる。 According to the embodiment, it is possible to perform an operation using the start time of interprocess communication without changing the behavior of the parallel application during execution of the parallel application.
以下、図面を参照しながら、実施形態を詳細に説明する。
並列アプリケーション性能プロファイリングツールのように、同期待ち時間を求めるためにプロセス間同期インタフェースを呼び出す場合、各プロセスの処理に同期処理が加わるため、並列アプリケーションの挙動を大きく変えてしまうことがある。
Hereinafter, embodiments will be described in detail with reference to the drawings.
When the inter-process synchronization interface is called to obtain the synchronization waiting time as in the parallel application performance profiling tool, the synchronization processing is added to the processing of each process, so the behavior of the parallel application may be greatly changed.
図2は、図1の並列アプリケーションにおいて、並列アプリケーション性能プロファイリングツールによりプロセス間同期インタフェースを呼び出す例を示している。この場合、各プロセスの通信処理が完了した後に、同期待ち時間を求める同期処理が行われるため、並列アプリケーションの実行に要した経過時間は、80から100に25%増加している。並列アプリケーションにも依存するが、図2のように、経過時間が10%以上増加する例は少なくない。このため、同期処理を行うことなく、通信処理ごとに開始時刻の最大値を求めることが望ましい。 FIG. 2 shows an example in which the inter-process synchronization interface is called by the parallel application performance profiling tool in the parallel application of FIG. In this case, since the synchronization process for obtaining the synchronization waiting time is performed after the communication process of each process is completed, the elapsed time required to execute the parallel application is increased by 25% from 80 to 100. Although it depends on the parallel application, there are many cases where the elapsed time increases by 10% or more as shown in FIG. For this reason, it is desirable to obtain the maximum value of the start time for each communication process without performing the synchronization process.
同期処理を行うことなく(非同期に)、通信処理ごとに開始時刻の最大値を求めるには、各プロセスが通信処理ごとに開始時刻を取得して主記憶領域に書き込んだ後に、並列アプリケーションの実行中又は実行後に最大値を計算する方法が考えられる。 To obtain the maximum start time for each communication process without performing synchronous processing (asynchronously), each process acquires the start time for each communication process and writes it to the main storage area before executing the parallel application. A method of calculating the maximum value during or after execution is conceivable.
まず、並列アプリケーションの実行後に最大値を計算する場合、実行時間が長い並列アプリケーションでは並列アプリケーションが利用できる主記憶領域を圧迫する可能性がある。例えば、100,000個のプロセスが1日間走行する並列アプリケーションにおいて、1msあたり1回の頻度で通信処理が発生すると仮定する。通信処理ごとに8バイトの開始時刻のデータを記録すると、並列アプリケーションが終了する間際には、1プロセスあたり約691Mバイトの主記憶領域が開始時刻のデータで埋まることになる。 First, when the maximum value is calculated after execution of a parallel application, there is a possibility that a parallel application having a long execution time may squeeze the main storage area that the parallel application can use. For example, it is assumed that communication processing occurs at a frequency of once per 1 ms in a parallel application in which 100,000 processes run for one day. If 8 bytes of start time data is recorded for each communication process, about 691 Mbytes of main storage area per process is filled with start time data just before the end of the parallel application.
1ノードあたり32Gバイトの主記憶装置を搭載した並列計算機システムにおいて、各ノード内で16プロセスが並列に動作する場合、約11Gバイトの主記憶領域が開始時刻のデータで埋まり、並列アプリケーションの実行に支障が出る可能性がある。このような場合、並列アプリケーションの実行中に最大値を計算することが望ましい。 In a parallel computer system equipped with a main memory device of 32 GB per node, when 16 processes operate in parallel in each node, the main memory area of about 11 GB is filled with start time data to execute parallel applications. There is a possibility of trouble. In such a case, it is desirable to calculate the maximum value during execution of the parallel application.
並列アプリケーションの実行中に最大値を計算する場合、すべての通信処理の開始時刻のデータを記録する必要はなく、過去の通信処理に関する差分の積算値を同期待ち時間として記録すれば足りる。したがって、実行時間が長い並列アプリケーションであっても主記憶領域を圧迫することはない。この場合、演算処理中に、ソフトウェア又はハードウェアの非同期通信インタフェースを利用して、各プロセスの通信処理の開始時刻を送受信する方法が考えられる。 When calculating the maximum value during the execution of the parallel application, it is not necessary to record the data of the start time of all the communication processes, and it is sufficient to record the integrated value of the differences regarding the past communication processes as the synchronization waiting time. Therefore, even in a parallel application having a long execution time, the main storage area is not compressed. In this case, a method of transmitting and receiving the communication processing start time of each process using an asynchronous communication interface of software or hardware during the arithmetic processing is conceivable.
ソフトウェアの非同期通信インタフェースを利用する方法では、MPIのノンブロッキング通信インタフェース(MPI_Isend関数、MPI_Irecv関数、MPI_Wait関数等)により、プロセス間で開始時刻のデータを送受信することができる。しかし、最大値の計算はCentral Processing Unit(CPU)によるソフトウェア処理のため、CPU時間を消費することで並列アプリケーションの挙動が変わる可能性がある。 In the method using the asynchronous communication interface of software, the data of the start time can be transmitted and received between processes by the MPI non-blocking communication interface (MPI_Isend function, MPI_Irecv function, MPI_Wait function, etc.). However, since the calculation of the maximum value is software processing by the Central Processing Unit (CPU), the behavior of the parallel application may change by consuming CPU time.
ハードウェアの非同期通信インタフェースを利用する方法では、各プロセスがネットワークインタフェースに実装されたネットワークリダクション機構に開始時刻のデータを転送し、最大値演算を指示することができる。ネットワークリダクション機構とは、通信ネットワークで接続された各ノードの各プロセスからデータを受信し、すべてのデータを対象として単一の演算を行った後、演算結果を各ノードで保持するためのハードウェア機構を指す。ネットワークリダクション機構による演算としては、例えば、データの総和、最大値、最小値等を求める演算が挙げられる。 In the method using the hardware asynchronous communication interface, each process can transfer start time data to a network reduction mechanism mounted on the network interface and instruct maximum value calculation. Network reduction mechanism is hardware that receives data from each process of each node connected in the communication network, performs a single operation on all data, and holds the operation result in each node Refers to mechanism. Examples of the calculation by the network reduction mechanism include calculation for obtaining the sum, maximum value, minimum value, and the like of data.
例えば、各プロセスが、ある通信処理の完了時にその通信処理の開始時刻をネットワークリダクション機構に転送して最大値演算を指示した後、次の通信処理の開始時にネットワークリダクション機構から最大値を読み出すことができる。これにより、各プロセスの演算処理中にネットワークリダクション機構が最大値を計算することができる。 For example, each process reads the maximum value from the network reduction mechanism at the start of the next communication process after transferring the communication process start time to the network reduction mechanism at the completion of a certain communication process and instructing the maximum value calculation. Can do. Thereby, the network reduction mechanism can calculate the maximum value during the arithmetic processing of each process.
図3は、図1の並列アプリケーションにおいて、ネットワークリダクション機構301が最大値を計算する例を示している。この場合、ネットワークリダクション機構301は、2回目の演算処理中に、1回目の通信処理の開始時刻の最大値30を計算する。そして、プロセスP0、プロセスP1、及びプロセスP2は、2回目の通信処理の開始時に、最大値30と1回目の通信処理の開始時刻20、10、及び30との差分10、20、及び0をそれぞれ求める。
FIG. 3 shows an example in which the
ここで、ある通信処理と次の通信処理との間の演算処理時間が非常に短い場合、稀にではあるが、ネットワークリダクション機構による最大値演算が完了しない可能性がある。ネットワークリダクション機構が同時に単一の最大値演算しか実行できない場合、各プロセスは、先行する最大値演算が完了するまで後続の最大値演算を指示できないため、並列アプリケーションの挙動が変わってしまう。 Here, when the calculation processing time between one communication process and the next communication process is very short, there is a possibility that the maximum value calculation by the network reduction mechanism may not be completed. If the network reduction mechanism can execute only a single maximum value operation at the same time, each process cannot instruct the subsequent maximum value operation until the preceding maximum value operation is completed, and the behavior of the parallel application is changed.
ネットワークリダクション機構を利用する場合に、並列アプリケーションの挙動が変わることを防ぐ方法はいくつか考えられる。例えば、先行する最大値演算が完了するまで、ネットワークリダクション機構が後続の最大値演算の指示をスキップする方法が挙げられる。しかし、ネットワークリダクション機構による演算がプロセス間で同一時刻に完了するとは限らないため、プロセスごとにスキップした回数が異なる状況が発生し得る。このような状況で後続の最大値演算を行うと、1つの通信処理の開始時刻の最大値の代わりに、複数の異なる通信処理の開始時刻の最大値が計算されてしまう。 There are several ways to prevent the behavior of parallel applications from changing when using a network reduction mechanism. For example, there is a method in which the network reduction mechanism skips the instruction for the subsequent maximum value calculation until the preceding maximum value calculation is completed. However, since the calculation by the network reduction mechanism is not always completed between processes at the same time, a situation may occur in which the number of skips differs for each process. When the subsequent maximum value calculation is performed in such a situation, the maximum value of the start times of a plurality of different communication processes is calculated instead of the maximum value of the start time of one communication process.
他の方法としては、ネットワークインタフェースに複数のネットワークリダクション機構を実装して、それらのネットワークリダクション機構を順番に使用する方法が挙げられる。しかし、ハードウェアの増加が非常に大きくなる。ネットワークリダクション機構による最大値演算が完了しないことは稀に発生する問題であるため、その解決のために大きなハードウェアコストをかけるのは現実的ではない。 As another method, a plurality of network reduction mechanisms are implemented in the network interface, and the network reduction mechanisms are used in order. However, the increase in hardware becomes very large. Since it is a rare problem that the maximum value calculation by the network reduction mechanism is not completed, it is not realistic to apply a large hardware cost to solve the problem.
なお、かかる問題は、並列アプリケーションにおいてプロセス間通信を開始した時刻の最大値を計算する場合に限らず、プロセス間通信を開始した時刻を用いた他の演算を行う場合においても生ずるものである。 Such a problem occurs not only when calculating the maximum value of the time when interprocess communication is started in a parallel application, but also when performing other operations using the time when communication between processes is started.
図4は、実施形態の通信制御装置の構成例を示している。図4の通信制御装置401は、並列計算機システムの各ノードに対応する情報処理装置(コンピュータ)内に設けられ、演算部411を含む。
FIG. 4 shows a configuration example of the communication control apparatus of the embodiment. The
情報処理装置内の演算処理装置は、プログラムを実行し、プログラムに含まれる複数のプロセスのうち第1のプロセスが第1のプロセス間通信を開始した第1の開始時刻に対して第1のシーケンス情報を付与する。そして、第1の開始時刻と第1のシーケンス情報とを情報処理装置内の主記憶装置に書き込む。 The arithmetic processing unit in the information processing apparatus executes a program, and a first sequence with respect to a first start time when a first process among the plurality of processes included in the program starts communication between the first processes. Give information. Then, the first start time and the first sequence information are written to the main storage device in the information processing apparatus.
複数のプロセスのうち第2のプロセスが第2のプロセス間通信を開始した第2の開始時刻に付与された第2のシーケンス情報の方が第1のシーケンス情報よりも新しい場合、通信制御装置401内の演算部411は、第1の開始時刻を用いた演算を行わない。一方、第2のシーケンス情報が第1のシーケンス情報に対応する場合、演算部411は、第1の開始時刻と第2の開始時刻とを用いた演算を行って演算結果を出力する。
When the second sequence information given at the second start time when the second process of the plurality of processes starts the second inter-process communication is newer than the first sequence information, the
シーケンス情報は、各プロセスが行う通信処理の順序を示す情報であり、複数のプロセスの間で、同じ順序の通信処理に対して同じシーケンス情報が付与される。例えば、第2のプロセスが行う1回目の通信処理に付与されるシーケンス情報は、第1のプロセスが行う1回目の通信処理に付与されるシーケンス情報と同じである。また、第2のプロセスが行う2回目の通信処理に付与されるシーケンス情報は、第1のプロセスが行う2回目の通信処理に付与されるシーケンス情報と同じである。 The sequence information is information indicating the order of communication processing performed by each process, and the same sequence information is given to the communication processing in the same order among a plurality of processes. For example, the sequence information given to the first communication process performed by the second process is the same as the sequence information given to the first communication process performed by the first process. Further, the sequence information given to the second communication process performed by the second process is the same as the sequence information given to the second communication process performed by the first process.
第1及び第2のプロセスの間で、それぞれの開始時刻に付与されたシーケンス情報を比較することで、2つの開始時刻が同じ順序の通信処理の開始時刻であるか否かを判定することができる。 By comparing the sequence information given at the respective start times between the first and second processes, it is possible to determine whether the two start times are the start times of the communication processes in the same order. it can.
そして、演算部411は、第2の開始時刻に付与された第2のシーケンス情報の方が第1の開始時刻に付与された第1のシーケンス情報よりも新しい場合、第1の開始時刻を用いた演算を行わない。このため、第1のプロセスは、古い開始時刻を用いた演算の完了を待つことなく、最新の開始時刻を用いた演算を演算部411に対して次々に指示することができる。したがって、並列アプリケーションの実行中に、並列アプリケーションの挙動を変えることなく、プロセス間通信の開始時刻を用いた演算を行うことができる。
Then, the
図5は、実施形態の並列計算機システムの構成例を示している。図5の並列計算機システム500は、ノード501−1〜ノード501−nのn個(nは1以上の整数)の計算ノードとディスクノード502とを含む。ノード501−1〜ノード501−nとディスクノード502は、通信ネットワーク503により互いに接続されている。
FIG. 5 shows a configuration example of the parallel computer system of the embodiment. The
図6は、図5のノード501−i(i=1〜n)に対応する情報処理装置の構成例を示している。図6のノード501−iは、CPU601、メモリ602、媒体駆動装置603、及び通信制御装置401を含む。CPU601、メモリ602、媒体駆動装置603、及び通信制御装置401は、バス604により互いに接続されている。
FIG. 6 shows a configuration example of an information processing apparatus corresponding to the nodes 501-i (i = 1 to n) in FIG. 5. A node 501-i in FIG. 6 includes a
メモリ602は主記憶装置に対応する。メモリ602は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)等の半導体メモリであり、並列アプリケーションプログラム及びその処理に用いられるデータを記憶する。
The
CPU601は演算処理装置(プロセッサ)に対応し、メモリコントローラ及びネットワークインタフェースコントローラを含むことができる。CPU601は、例えば、メモリ602を利用して並列アプリケーションプログラムを実行する。CPU601は、オペレーティングシステム(OS)及びネットワークインタフェースドライバ等のプログラムも実行することができる。
The
媒体駆動装置603は、可搬型記録媒体605を駆動し、その記録内容にアクセスする。可搬型記録媒体605は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。この可搬型記録媒体605は、Compact Disk Read Only Memory(CD−ROM)、Digital Versatile Disk(DVD)、Universal Serial Bus(USB)メモリ等であってもよい。ユーザ又はオペレータは、この可搬型記録媒体605に並列アプリケーションプログラム及びデータを格納しておき、それらをメモリ602にロードして使用することができる。
The
通信制御装置401は、図5の通信ネットワーク503に接続され、他のノードと通信するネットワークインタフェースである。ノード501−iは、並列アプリケーションプログラム及びデータを、並列計算機システムの外部の装置から通信制御装置401を介して受け取り、それらをメモリ602にロードして使用することができる。
The
なお、ノード501−iが図6のすべての構成要素を含む必要はなく、用途や条件に応じて一部の構成要素を省略することも可能である。例えば、可搬型記録媒体605を使用しない場合は、媒体駆動装置603を省略してもよい。
Note that the node 501-i does not have to include all the components shown in FIG. 6, and some of the components can be omitted depending on applications and conditions. For example, when the
図5のディスクノード502は、例えば、図6のノード501−iの構成にディスク装置を追加した構成を有する。ディスク装置は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置等であり、ハードディスクドライブであってもよい。ディスク装置は、並列アプリケーションプログラムの処理に用いられるデータを格納することができる。
The
ノード501−1〜ノード501−nは、例えば、ディスクノード502に格納されたデータを用いて並列アプリケーションを実行する。このとき、各ノード内には1つ以上のプロセスが生成され、ノード501−1〜ノード501−n内の複数のプロセスは、MPIにより並列化されて、すべてのプロセスを対象とする集団通信を繰り返す。
For example, the nodes 501-1 to 501-n execute parallel applications using data stored in the
なお、ノード501−1〜ノード501−nの各々にディスク装置が設けられている場合は、ディスクノード502を省略してもよい。
If a disk device is provided for each of the nodes 501-1 to 501-n, the
図7は、図6の通信制御装置401内の演算部411の構成例を示している。図7の演算部411は、CPU701、メモリ702、インタフェース703、及びインタフェース704を含む。CPU701、メモリ702、インタフェース703、及びインタフェース704は、バス705により互いに接続されている。
FIG. 7 shows a configuration example of the
CPU701は演算処理装置(プロセッサ)に対応し、メモリ702は主記憶装置に対応する。メモリ702は、例えば、ROM、RAM等の半導体メモリであり、制御プログラム及びデータを記憶する。メモリ702が記憶するデータには、図6のCPU601から転送されたデータ、他のノードから受信したデータ等が含まれる。CPU701は、例えば、メモリ702を利用して制御プログラムを実行することで、ネットワークリダクション機構の演算を行って、演算結果をメモリ702に書き込む。
The
ユーザ又はオペレータは、図6の可搬型記録媒体605に制御プログラム及びデータを格納しておき、それらをメモリ702にロードして使用することができる。このように、制御プログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ702又は可搬型記録媒体605のような、物理的な(非一時的な)記録媒体である。
The user or operator can store the control program and data in the
インタフェース703は、図6のバス604に接続されてCPU601と通信し、インタフェース704は、図5の通信ネットワーク503に接続されて他のノードと通信する。インタフェース704を介して、ネットワークリダクション機構の部分的な演算結果をノード間で送受信することで、演算が効率化される。演算部411は、制御プログラム及びデータを、並列計算機システムの外部の装置からインタフェース703又はインタフェース704を介して受け取り、それらをメモリ702にロードして使用することもできる。
The
なお、演算部411の構成は図7の構成には限られず、一部又は全部の処理を布線論理で実装することも可能である。
Note that the configuration of the
図8は、ノード501−1において行われる、プロセス間通信の開始時刻を用いた演算処理の例を示すフローチャートである。この例では、第1のプロセスは、並列アプリケーションの複数のプロセスのうち、ノード501−1内で生成されるプロセスである。第2のプロセスは、並列アプリケーションの複数のプロセスのうち、ノード501−1内で生成されるプロセス、又はノード501−2〜ノード501−nのいずれかで生成されるプロセスである。 FIG. 8 is a flowchart illustrating an example of arithmetic processing using the start time of interprocess communication performed in the node 501-1. In this example, the first process is a process generated in the node 501-1 among a plurality of processes of the parallel application. The second process is a process generated in the node 501-1 among a plurality of processes of the parallel application, or a process generated in any of the nodes 501-2 to 501-n.
ノード501−1内のCPU601は、第1のプロセスが第1のプロセス間通信を開始した第1の開始時刻に対して第1のシーケンス情報を付与する。そして、そのCPU601は、第1の開始時刻と第1のシーケンス情報とをノード501−1内のメモリ602に書き込み、第1の開始時刻と第1のシーケンス情報とを演算部411内のメモリ702へ転送する。ノード501−1内の通信制御装置401は、第1の開始時刻と第1のシーケンス情報とをノード501−2〜ノード501−nへ送信する。
The
第2のプロセスがノード501−1内で生成される場合、ノード501−1内のCPU601は、第2のプロセスが第2のプロセス間通信を開始した第2の開始時刻に対して第2のシーケンス情報を付与する。そして、そのCPU601は、第2の開始時刻と第2のシーケンス情報とをノード501−1内のメモリ602に書き込み、第2の開始時刻と第2のシーケンス情報とを演算部411内のメモリ702へ転送する。ノード501−1内の通信制御装置401は、第2の開始時刻と第2のシーケンス情報とをノード501−2〜ノード501−nへ送信する。
When the second process is generated in the node 501-1, the
第2のプロセスがノード501−2内で生成される場合、ノード501−2内のCPU601は、第2のプロセスが第2のプロセス間通信を開始した第2の開始時刻に対して第2のシーケンス情報を付与する。そして、そのCPU601は、第2の開始時刻と第2のシーケンス情報とをノード501−2内のメモリ602に書き込み、第2の開始時刻と第2のシーケンス情報とを演算部411内のメモリ702へ転送する。ノード501−2内の通信制御装置401は、第2の開始時刻と第2のシーケンス情報とをノード501−1及びノード501−3〜ノード501−nへ送信する。
When the second process is generated in the node 501-2, the
ノード501−3〜ノード501−nの各CPU601も、同様にして、各プロセスがプロセス間通信を開始した開始時刻に対してシーケンス情報を付与する。そして、そのCPU601は、開始時刻とシーケンス情報とをメモリ602に書き込み、開始時刻とシーケンス情報とを演算部411内のメモリ702へ転送する。ノード501−3〜ノード501−nの通信制御装置401は、開始時刻とシーケンス情報とを他のノードへ送信する。
Similarly, each
ノード501−1において、演算部411内のCPU701は、第2の開始時刻に付与された第2のシーケンス情報の方が第1のシーケンス情報よりも新しいか否かをチェックする(ステップ801)。
In node 501-1,
第2のシーケンス情報の方が第1のシーケンス情報よりも新しい場合(ステップ801,YES)、CPU701は、第1の開始時刻を用いた演算を行わない。一方、ステップ801のチェック結果がNOの場合、CPU701は、第2のシーケンス情報が第1のシーケンス情報に対応するか否かをチェックする(ステップ802)。
When the second sequence information is newer than the first sequence information (
第2のシーケンス情報が第1のシーケンス情報に対応する場合(ステップ802,YES)、CPU701は、少なくとも第1の開始時刻と第2の開始時刻とを用いた演算を行って、演算結果をメモリ702に書き込む(ステップ803)。
When the second sequence information corresponds to the first sequence information (
一方、ステップ802のチェック結果がNOの場合、CPU701は、第2の開始時刻を用いた演算を行わず、第2のプロセスが第3のプロセス間通信を開始した第3の開始時刻と第3のシーケンス情報とを受信するまで待機する(ステップ804)。そして、第3のシーケンス情報が第1のシーケンス情報に対応する場合、CPU701は、少なくとも第1の開始時刻と第3の開始時刻とを用いた演算を行って、演算結果をメモリ702に書き込む。
On the other hand, if the check result in
ノード501−2〜ノード501−nの各ノードの演算部411も、ノード501−1の演算部411と同様の演算処理を行うことができる。
The
図9は、図5のノード501−1〜ノード501−nの各ノード内で1つのプロセスが動作している場合に行われる、図8の演算処理の具体例を示すフローチャートである。 FIG. 9 is a flowchart illustrating a specific example of the arithmetic processing in FIG. 8 performed when one process is operating in each of the nodes 501-1 to 501-n in FIG.
シーケンス情報としては、例えば、昇順の非負の整数であるシーケンス番号が用いられる。シーケンス番号は、ネットワークインタフェースドライバにより管理され、並列アプリケーションの開始時に0にリセットされる。各ノード501−i(i=1〜n)内のメモリ602は、プロセスがプロセス間通信を開始した開始時刻T(i)と、そのプロセスのシーケンス番号S(i)とを記憶する。
As the sequence information, for example, a sequence number that is a non-negative integer in ascending order is used. The sequence number is managed by the network interface driver and is reset to 0 at the start of the parallel application. The
各ノード501−i内のCPU601は、並列アプリケーションを実行することでプロセスを動作させ、ネットワークインタフェースドライバのプログラムを実行することでネットワークインタフェースドライバを動作させる。
The
ノード501−i内のプロセスがプロセス間通信を開始したとき、そのプロセスは、ネットワークインタフェースドライバに対して演算処理を指示する(ステップ901)。次に、CPU601は、ネットワークインタフェースドライバとして動作し、開始時刻T(i)とシーケンス番号S(i)とをメモリ602から読み出す(ステップ902)。次に、CPU601は、読み出した開始時刻T(i)とシーケンス番号S(i)とを演算部411内のメモリ702に書き込み、演算部411内のCPU701に対して演算処理を指示する。そして、CPU601は、メモリ602内のシーケンス番号S(i)を1だけインクリメントする。
When a process in the node 501-i starts inter-process communication, the process instructs the network interface driver to perform arithmetic processing (step 901). Next, the
次に、CPU701は、メモリ702に書き込まれた開始時刻T(i)とシーケンス番号S(i)とを他のノード501−j(1≦j≦n,j≠i)へ送信する(ステップ903)。そして、CPU701は、並列アプリケーションの全プロセスの開始時刻とシーケンス番号とがメモリ702に書き込まれているか否かをチェックする(ステップ904)。
Next, the
いずれかのプロセスの開始時刻とシーケンス番号とが書き込まれていない場合(ステップ904,NO)、CPU701は、他のノードから開始時刻とシーケンス番号とを受信したか否かをチェックする(ステップ908)。
When the start time and sequence number of any process are not written (
他のノードから開始時刻とシーケンス番号とを受信していない場合(ステップ908,NO)、CPU701は、ステップ904以降の処理を繰り返す。一方、他のノード501−k(1≦k≦n,k≠i)から開始時刻T(k)とシーケンス番号S(k)とを受信した場合(ステップ908,YES)、CPU701は、受信したシーケンス番号S(k)とシーケンス番号S(i)とを比較する(ステップ909)。
When the start time and the sequence number have not been received from another node (
受信したシーケンス番号S(k)がシーケンス番号S(i)より小さい場合(ステップ909,NO)、CPU701は、ステップ904以降の処理を繰り返す。一方、受信したシーケンス番号S(k)がシーケンス番号S(i)以上である場合(ステップ909,YES)、CPU701は、受信した開始時刻T(k)とシーケンス番号S(k)とをメモリ702に書き込む(ステップ910)。そして、CPU701は、再び、受信したシーケンス番号S(k)とシーケンス番号S(i)とを比較する(ステップ911)。
When the received sequence number S (k) is smaller than the sequence number S (i) (
受信したシーケンス番号S(k)がシーケンス番号S(i)と一致する場合(ステップ911,NO)、CPU701は、ステップ904以降の処理を繰り返す。こうして、全プロセスの開始時刻とシーケンス番号とがメモリ702に書き込まれると(ステップ904,YES)、CPU701は、全プロセスの開始時刻の最大値を求め、メモリ702に書き込む(ステップ905)。
When the received sequence number S (k) matches the sequence number S (i) (
次に、CPU701は、CPU601に割り込み(ステップ906)、CPU601は、ネットワークインタフェースドライバを動作させる。そして、CPU601は、メモリ702から開始時刻の最大値を読み出してメモリ602に書き込み、メモリ702を初期化する(ステップ907)。これにより、メモリ702内の全プロセスの開始時刻とシーケンス番号とが消去される。
Next, the
一方、受信したシーケンス番号S(k)がシーケンス番号S(i)より大きい場合(ステップ911,YES)、CPU701は、CPU601に割り込み、指示された演算処理を中止する旨を通知する(ステップ912)。この通知により、CPU601は、メモリ702を初期化することなく、プロセスがネットワークインタフェースドライバに対して指示した演算処理を中止する。その後、プロセスがネットワークインタフェースドライバに対して次の演算処理を指示したとき、CPU601は、改めてステップ901以降の処理を開始する。
On the other hand, when the received sequence number S (k) is larger than the sequence number S (i) (
図10は、図5のノード501−1〜ノード501−nの各ノード内で複数のプロセスが動作している場合に行われる、図8の演算処理の具体例を示すフローチャートである。 FIG. 10 is a flowchart illustrating a specific example of the arithmetic processing in FIG. 8 performed when a plurality of processes are operating in each of the nodes 501-1 to 501-n in FIG.
シーケンス情報としては、例えば、昇順の非負の整数であるシーケンス番号が用いられる。シーケンス番号は、ネットワークインタフェースドライバにより管理され、並列アプリケーションの開始時に0にリセットされる。ノード501−1〜ノード501−nで動作するプロセスの総数をpとし、m番目のプロセスの識別情報をP(m)とする(m=1〜p)。各ノード501−i(i=1〜n)内のメモリ602は、ノード501−i内の各プロセスがプロセス間通信を開始した開始時刻T(m)と、そのプロセスのシーケンス番号S(m)とを記憶する。
As the sequence information, for example, a sequence number that is a non-negative integer in ascending order is used. The sequence number is managed by the network interface driver and is reset to 0 at the start of the parallel application. Assume that the total number of processes operating in the nodes 501-1 to 501-n is p, and the identification information of the mth process is P (m) (m = 1 to p). The
ノード501−i内の複数のプロセスのうちプロセスP(r)がプロセス間通信を開始したとき、プロセスP(r)は、ネットワークインタフェースドライバに対して演算処理を指示する(ステップ1001)。次に、CPU601は、ネットワークインタフェースドライバとして動作し、プロセスP(r)の開始時刻T(r)とシーケンス番号S(r)とをメモリ602から読み出す(ステップ1002)。次に、CPU601は、読み出した開始時刻T(r)とシーケンス番号S(r)とを演算部411内のメモリ702に書き込み、演算部411内のCPU701に対して演算処理を指示する。そして、CPU601は、メモリ602内のシーケンス番号S(r)を1だけインクリメントする。
When the process P (r) among the plurality of processes in the node 501-i starts inter-process communication, the process P (r) instructs the network interface driver to perform arithmetic processing (step 1001). Next, the
次に、CPU701は、メモリ702に書き込まれた開始時刻T(r)とシーケンス番号S(r)とを他のノード501−j(1≦j≦n,j≠i)へ送信する(ステップ1003)。
Next, the
その後、ノード501−i内の別のプロセスP(x)がプロセス間通信を開始したとき、プロセスP(x)は、ステップ1001と同様に、ネットワークインタフェースドライバに対して演算処理を指示する。また、CPU601は、ステップ1002と同様に、プロセスP(x)の開始時刻T(x)とシーケンス番号S(x)とをメモリ702に書き込み、メモリ602内のシーケンス番号S(x)を1だけインクリメントする。そして、CPU701は、ステップ1003と同様に、メモリ702に書き込まれた開始時刻T(x)とシーケンス番号S(x)とを他のノード501−j(1≦j≦n,j≠i)へ送信する。
Thereafter, when another process P (x) in the node 501-i starts inter-process communication, the process P (x) instructs the network interface driver to perform arithmetic processing, similarly to step 1001. Similarly to step 1002, the
次に、CPU701は、並列アプリケーションの全プロセスの開始時刻とシーケンス番号とがメモリ702に書き込まれているか否かをチェックする(ステップ1004)。いずれかのプロセスの開始時刻とシーケンス番号とが書き込まれていない場合(ステップ1004,NO)、CPU701は、他のノードから開始時刻とシーケンス番号とを受信したか否かをチェックする(ステップ1008)。
Next, the
他のノードから開始時刻とシーケンス番号とを受信していない場合(ステップ1008,NO)、CPU701は、ステップ1004以降の処理を繰り返す。
When the start time and the sequence number have not been received from another node (
この間に、ノード501−i内の別のプロセスP(y)がプロセス間通信を開始したとき、プロセスP(y)は、ステップ1001と同様に、ネットワークインタフェースドライバに対して演算処理を指示する。また、CPU601は、ステップ1002と同様に、プロセスP(y)の開始時刻T(y)とシーケンス番号S(y)とをメモリ702に書き込み、メモリ602内のシーケンス番号S(y)を1だけインクリメントする。そして、CPU701は、ステップ1003と同様に、メモリ702に書き込まれた開始時刻T(y)とシーケンス番号S(y)とを他のノード501−j(1≦j≦n,j≠i)へ送信する。
During this time, when another process P (y) in the node 501-i starts inter-process communication, the process P (y) instructs the network interface driver to perform arithmetic processing in the same manner as in
一方、他のノード501−k(1≦k≦n,k≠i)から開始時刻T(q)とシーケンス番号S(q)とを受信した場合(ステップ1008,YES)、CPU701は、ステップ1009の処理を行う。
On the other hand, when the start time T (q) and the sequence number S (q) are received from another node 501-k (1 ≦ k ≦ n, k ≠ i) (
ステップ1009において、CPU701は、メモリ702に書き込まれたシーケンス番号のうち、ノード501−i内の1つ以上のプロセスに対応するシーケンス番号の最大値を求める。そして、CPU701は、受信したシーケンス番号S(q)とシーケンス番号の最大値とを比較する。受信したシーケンス番号S(q)がシーケンス番号の最大値より小さい場合(ステップ1009,NO)、CPU701は、ステップ1004以降の処理を繰り返す。
In
一方、受信したシーケンス番号S(q)がシーケンス番号の最大値以上である場合(ステップ1009,YES)、CPU701は、受信した開始時刻T(q)とシーケンス番号S(q)とをメモリ702に書き込む(ステップ1010)。そして、CPU701は、再び、受信したシーケンス番号S(q)とシーケンス番号の最大値とを比較する(ステップ1011)。
On the other hand, when the received sequence number S (q) is greater than or equal to the maximum value of the sequence number (
受信したシーケンス番号S(q)がシーケンス番号の最大値と一致する場合(ステップ1011,NO)、CPU701は、ステップ1004以降の処理を繰り返す。ノード501−i内の全プロセスの開始時刻とシーケンス番号とがメモリ702に書き込まれ、それらのシーケンス番号がシーケンス番号S(r)と一致すると、ステップ1009で求められるシーケンス番号の最大値はS(r)となる。
When the received sequence number S (q) matches the maximum value of the sequence number (
並列アプリケーションの全プロセスの開始時刻とシーケンス番号とがメモリ702に書き込まれると(ステップ1004,YES)、CPU701は、全プロセスの開始時刻の最大値を求め、メモリ702に書き込む(ステップ1005)。
When the start times and sequence numbers of all processes of the parallel application are written in the memory 702 (
次に、CPU701は、CPU601に割り込み(ステップ1006)、CPU601は、ネットワークインタフェースドライバを動作させる。そして、CPU601は、メモリ702から開始時刻の最大値を読み出してメモリ602に書き込み、メモリ702を初期化する(ステップ1007)。これにより、メモリ702内の全プロセスの開始時刻とシーケンス番号とが消去される。
Next, the
一方、受信したシーケンス番号S(q)がシーケンス番号の最大値より大きい場合(ステップ1011,YES)、CPU701は、CPU601に割り込み、指示された演算処理を中止する旨を通知する(ステップ1012)。この通知により、CPU601は、メモリ702を初期化することなく、プロセスP(r)がネットワークインタフェースドライバに対して指示した演算処理を中止する。その後、プロセスP(r)又は別のプロセスがネットワークインタフェースドライバに対して次の演算処理を指示したとき、CPU601は、改めてステップ1001以降の処理を開始する。
On the other hand, when the received sequence number S (q) is larger than the maximum value of the sequence number (
図9又は図10の演算処理によれば、演算部411は、演算処理を指示されても、最新のシーケンス番号を持つ全プロセスの開始時刻がメモリ702に書き込まれるまで、開始時刻を用いた演算を行わない。そして、ノード501−i内のプロセスのシーケンス番号がインクリメントされて、受信したシーケンス番号と同じになったとき、そのシーケンス番号を持つ全プロセスの開始時刻を用いた演算処理が行われる。
According to the arithmetic processing in FIG. 9 or 10, the
このように、常に最新のシーケンス番号を持つ開始時刻を対象として演算処理が行われ、各プロセスは、古い開始時刻を用いた演算処理の完了を待つことなく、最新の開始時刻を用いた演算処理を演算部411に対して次々に指示することができる。したがって、並列アプリケーションの実行中に、並列アプリケーションの挙動を変えることなく、プロセス間通信の開始時刻を用いた演算を行うことができる。
In this way, calculation processing is always performed for the start time having the latest sequence number, and each process uses the latest start time without waiting for completion of the calculation processing using the old start time. Can be instructed to the
また、通信制御装置401内に1つの演算部411を設ければよく、複数のネットワークリダクション機構を設ける必要がないため、ハードウェアの増加を抑えることができる。特に、大規模並列計算機システムにおいて、図9又は図10の演算処理による大きな効果が期待できる。
In addition, it is only necessary to provide one
図4及び図7の通信制御装置401、図5の並列計算機システム500、及び図6のノード501−iの構成は一例に過ぎず、並列計算機システムの用途や条件に応じて一部の構成要素を省略又は変更してもよい。
The configurations of the
図8〜図10のフローチャートは一例に過ぎず、並列計算機システムの構成や条件に応じて一部の処理を省略又は変更してもよい。例えば、図9又は図10の演算処理において、シーケンス番号以外の通信処理の順序を示す情報をシーケンス情報として用いることもできる。また、図9のステップ905又は図10のステップ1005において、CPU701は、開始時刻の最大値を求める代わりに、開始時刻の総和、開始時刻の最小値等の他の数値を求めることもできる。
The flowcharts of FIGS. 8 to 10 are merely examples, and some processes may be omitted or changed depending on the configuration and conditions of the parallel computer system. For example, in the arithmetic processing of FIG. 9 or FIG. 10, information indicating the order of communication processing other than the sequence number can be used as sequence information. Further, in
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。 Although the disclosed embodiments and their advantages have been described in detail, those skilled in the art can make various modifications, additions and omissions without departing from the scope of the present invention as explicitly set forth in the claims. Let's go.
図4乃至図10を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
演算処理装置と主記憶装置とに接続する通信制御装置であって、
前記演算処理装置が実行するプログラムに含まれる複数のプロセスのうち第1のプロセスが第1のプロセス間通信を開始した第1の開始時刻に対して前記演算処理装置が付与して、前記主記憶装置に書き込んだ第1のシーケンス情報よりも、前記複数のプロセスのうち第2のプロセスが第2のプロセス間通信を開始した第2の開始時刻に付与された第2のシーケンス情報の方が新しい場合、前記第1の開始時刻を用いた演算を行わず、前記第2のシーケンス情報が前記第1のシーケンス情報に対応する場合、前記第1の開始時刻と前記第2の開始時刻とを用いた演算を行って演算結果を出力する演算部、
を有することを特徴とする通信制御装置。
(付記2)
前記第2のシーケンス情報よりも前記第1のシーケンス情報の方が新しく、前記第2のプロセスが第3のプロセス間通信を開始した第3の開始時刻に付与された第3のシーケンス情報が前記第1のシーケンス情報に対応する場合、前記演算部は、前記第2の開始時刻を用いた演算を行わず、前記第1の開始時刻と前記第3の開始時刻とを用いた演算を行って演算結果を出力することを特徴とする付記1記載の通信制御装置。
(付記3)
前記演算処理装置は、前記第1のプロセスを実行し、前記通信制御装置を介して接続された情報処理装置が有する演算処理装置は、前記第2のプロセスを実行することを特徴とする付記1又は2記載の通信制御装置。
(付記4)
前記第1のシーケンス情報は、前記複数のプロセスのうち、前記第1のプロセスを実行する前記演算処理装置が実行する第4のプロセスが、第4のプロセス間通信を開始した第4の開始時刻に付与された第4のシーケンス情報に対応するか、又は前記第4のシーケンス情報よりも新しいことを特徴とする付記3記載の通信制御装置。
(付記5)
前記演算処理装置は、前記第1のプロセス及び前記第2のプロセスを実行することを特徴とする付記1又は2記載の通信制御装置。
(付記6)
プログラムを実行し、前記プログラムに含まれる複数のプロセスのうち第1のプロセスが第1のプロセス間通信を開始した第1の開始時刻に対して第1のシーケンス情報を付与する演算処理装置と、
前記第1の開始時刻と前記第1のシーケンス情報とを記憶する主記憶装置と、
前記複数のプロセスのうち第2のプロセスが第2のプロセス間通信を開始した第2の開始時刻に付与された第2のシーケンス情報の方が前記第1のシーケンス情報よりも新しい場合、前記第1の開始時刻を用いた演算を行わず、前記第2のシーケンス情報が前記第1のシーケンス情報に対応する場合、前記第1の開始時刻と前記第2の開始時刻とを用いた演算を行って演算結果を出力する通信制御装置と、
を有することを特徴とする情報処理装置。
(付記7)
複数の情報処理装置を有する並列計算機システムであって、
前記複数の情報処理装置のうち少なくとも1つの情報処理装置は、
プログラムを実行し、前記プログラムに含まれる複数のプロセスのうち第1のプロセスが第1のプロセス間通信を開始した第1の開始時刻に対して第1のシーケンス情報を付与する演算処理装置と、
前記第1の開始時刻と前記第1のシーケンス情報とを記憶する主記憶装置と、
前記複数のプロセスのうち第2のプロセスが第2のプロセス間通信を開始した第2の開始時刻に付与された第2のシーケンス情報の方が前記第1のシーケンス情報よりも新しい場合、前記第1の開始時刻を用いた演算を行わず、前記第2のシーケンス情報が前記第1のシーケンス情報に対応する場合、前記第1の開始時刻と前記第2の開始時刻とを用いた演算を行って演算結果を出力する通信制御装置と、
を有することを特徴とする並列計算機システム。
(付記8)
演算処理装置と通信制御装置と主記憶装置とを有する情報処理装置の制御プログラムであって、
前記演算処理装置が実行するプログラムに含まれる複数のプロセスのうち第1のプロセスが第1のプロセス間通信を開始した第1の開始時刻に対して前記演算処理装置が付与して、前記主記憶装置に書き込んだ第1のシーケンス情報よりも、前記複数のプロセスのうち第2のプロセスが第2のプロセス間通信を開始した第2の開始時刻に付与された第2のシーケンス情報の方が新しい場合、前記第1の開始時刻を用いた演算を行わず、前記第2のシーケンス情報が前記第1のシーケンス情報に対応する場合、前記第1の開始時刻と前記第2の開始時刻とを用いた演算を行って演算結果を出力する、
処理を前記通信制御装置内の演算処理装置に実行させることを特徴とする制御プログラム。
(付記9)
複数の情報処理装置を有する並列計算機システムの制御方法であって、
前記複数の情報処理装置のうち少なくとも1つの情報処理装置が、
プログラムを実行し、
前記プログラムに含まれる複数のプロセスのうち第1のプロセスが第1のプロセス間通信を開始した第1の開始時刻に対して第1のシーケンス情報を付与し、
前記複数のプロセスのうち第2のプロセスが第2のプロセス間通信を開始した第2の開始時刻に付与された第2のシーケンス情報の方が前記第1のシーケンス情報よりも新しい場合、前記第1の開始時刻を用いた演算を行わず、前記第2のシーケンス情報が前記第1のシーケンス情報に対応する場合、前記第1の開始時刻と前記第2の開始時刻とを用いた演算を行って演算結果を出力する、
ことを特徴とする制御方法。
Regarding the embodiment described with reference to FIGS. 4 to 10, the following additional notes are disclosed.
(Appendix 1)
A communication control device connected to the arithmetic processing device and the main storage device,
The main processing unit assigns the main memory to a first start time at which a first process among the plurality of processes included in a program executed by the arithmetic processing unit starts a first inter-process communication. The second sequence information given at the second start time at which the second process of the plurality of processes started the second inter-process communication is newer than the first sequence information written in the apparatus. In the case where the calculation using the first start time is not performed and the second sequence information corresponds to the first sequence information, the first start time and the second start time are used. A computation unit that performs the computation and outputs the computation result,
A communication control device comprising:
(Appendix 2)
The first sequence information is newer than the second sequence information, and the third sequence information given at the third start time when the second process starts the third inter-process communication is In the case of corresponding to the first sequence information, the calculation unit does not perform calculation using the second start time, but performs calculation using the first start time and the third start time. The communication control apparatus according to appendix 1, wherein a calculation result is output.
(Appendix 3)
The arithmetic processing unit executes the first process, and the arithmetic processing unit included in the information processing apparatus connected via the communication control unit executes the second process. Or the communication control apparatus of 2.
(Appendix 4)
The first sequence information includes a fourth start time when a fourth process executed by the arithmetic processing unit that executes the first process among the plurality of processes starts a fourth inter-process communication. The communication control device according to
(Appendix 5)
The communication control apparatus according to
(Appendix 6)
An arithmetic processing unit that executes a program and assigns first sequence information to a first start time at which a first process among the plurality of processes included in the program starts first inter-process communication;
A main storage device for storing the first start time and the first sequence information;
When the second sequence information given at the second start time at which the second process of the plurality of processes starts the second inter-process communication is newer than the first sequence information, When the calculation using the start time of 1 is not performed and the second sequence information corresponds to the first sequence information, the calculation using the first start time and the second start time is performed. A communication control device for outputting a calculation result,
An information processing apparatus comprising:
(Appendix 7)
A parallel computer system having a plurality of information processing devices,
At least one information processing apparatus among the plurality of information processing apparatuses is
An arithmetic processing unit that executes a program and assigns first sequence information to a first start time at which a first process among the plurality of processes included in the program starts first inter-process communication;
A main storage device for storing the first start time and the first sequence information;
When the second sequence information given at the second start time at which the second process of the plurality of processes starts the second inter-process communication is newer than the first sequence information, When the calculation using the start time of 1 is not performed and the second sequence information corresponds to the first sequence information, the calculation using the first start time and the second start time is performed. A communication control device for outputting a calculation result,
A parallel computer system characterized by comprising:
(Appendix 8)
A control program for an information processing device having an arithmetic processing device, a communication control device, and a main storage device,
The main processing unit assigns the main memory to a first start time at which a first process among the plurality of processes included in a program executed by the arithmetic processing unit starts a first inter-process communication. The second sequence information given at the second start time at which the second process of the plurality of processes started the second inter-process communication is newer than the first sequence information written in the apparatus. In the case where the calculation using the first start time is not performed and the second sequence information corresponds to the first sequence information, the first start time and the second start time are used. Output the calculation result.
A control program that causes an arithmetic processing unit in the communication control unit to execute processing.
(Appendix 9)
A method for controlling a parallel computer system having a plurality of information processing devices,
At least one information processing device of the plurality of information processing devices is
Run the program
The first sequence information is given to the first start time when the first process among the plurality of processes included in the program starts the first inter-process communication,
When the second sequence information given at the second start time at which the second process of the plurality of processes starts the second inter-process communication is newer than the first sequence information, When the calculation using the start time of 1 is not performed and the second sequence information corresponds to the first sequence information, the calculation using the first start time and the second start time is performed. Output the calculation result.
A control method characterized by that.
101、102 矢印
301 ネットワークリダクション機構
401 通信制御装置
411 演算部
500 並列計算機システム
501−1〜501−n、501−i ノード
502 ディスクノード
503 通信ネットワーク
601、701 CPU
602、702 メモリ
603 媒体駆動装置
604、705 バス
605 可搬型記録媒体
703、704 インタフェース
101, 102
602, 702
Claims (7)
前記演算処理装置が実行するプログラムに含まれる複数のプロセスのうち第1のプロセスが第1のプロセス間通信を開始した第1の開始時刻に対して前記演算処理装置が付与して、前記主記憶装置に書き込んだ第1のシーケンス情報よりも、前記複数のプロセスのうち第2のプロセスが第2のプロセス間通信を開始した第2の開始時刻に付与された第2のシーケンス情報の方が新しい場合、前記第1の開始時刻を用いた演算を行わず、前記第2のシーケンス情報が前記第1のシーケンス情報に対応する場合、前記第1の開始時刻と前記第2の開始時刻とを用いた演算を行って演算結果を出力する演算部、
を有することを特徴とする通信制御装置。 A communication control device connected to the arithmetic processing device and the main storage device,
The main processing unit assigns the main memory to a first start time at which a first process among the plurality of processes included in a program executed by the arithmetic processing unit starts a first inter-process communication. The second sequence information given at the second start time at which the second process of the plurality of processes started the second inter-process communication is newer than the first sequence information written in the apparatus. In the case where the calculation using the first start time is not performed and the second sequence information corresponds to the first sequence information, the first start time and the second start time are used. A computation unit that performs the computation and outputs the computation result,
A communication control device comprising:
前記第1の開始時刻と前記第1のシーケンス情報とを記憶する主記憶装置と、
前記複数のプロセスのうち第2のプロセスが第2のプロセス間通信を開始した第2の開始時刻に付与された第2のシーケンス情報の方が前記第1のシーケンス情報よりも新しい場合、前記第1の開始時刻を用いた演算を行わず、前記第2のシーケンス情報が前記第1のシーケンス情報に対応する場合、前記第1の開始時刻と前記第2の開始時刻とを用いた演算を行って演算結果を出力する通信制御装置と、
を有することを特徴とする情報処理装置。 An arithmetic processing unit that executes a program and assigns first sequence information to a first start time at which a first process among the plurality of processes included in the program starts first inter-process communication;
A main storage device for storing the first start time and the first sequence information;
When the second sequence information given at the second start time at which the second process of the plurality of processes starts the second inter-process communication is newer than the first sequence information, When the calculation using the start time of 1 is not performed and the second sequence information corresponds to the first sequence information, the calculation using the first start time and the second start time is performed. A communication control device for outputting a calculation result,
An information processing apparatus comprising:
前記複数の情報処理装置のうち少なくとも1つの情報処理装置は、
プログラムを実行し、前記プログラムに含まれる複数のプロセスのうち第1のプロセスが第1のプロセス間通信を開始した第1の開始時刻に対して第1のシーケンス情報を付与する演算処理装置と、
前記第1の開始時刻と前記第1のシーケンス情報とを記憶する主記憶装置と、
前記複数のプロセスのうち第2のプロセスが第2のプロセス間通信を開始した第2の開始時刻に付与された第2のシーケンス情報の方が前記第1のシーケンス情報よりも新しい場合、前記第1の開始時刻を用いた演算を行わず、前記第2のシーケンス情報が前記第1のシーケンス情報に対応する場合、前記第1の開始時刻と前記第2の開始時刻とを用いた演算を行って演算結果を出力する通信制御装置と、
を有することを特徴とする並列計算機システム。 A parallel computer system having a plurality of information processing devices,
At least one information processing apparatus among the plurality of information processing apparatuses is
An arithmetic processing unit that executes a program and assigns first sequence information to a first start time at which a first process among the plurality of processes included in the program starts first inter-process communication;
A main storage device for storing the first start time and the first sequence information;
When the second sequence information given at the second start time at which the second process of the plurality of processes starts the second inter-process communication is newer than the first sequence information, When the calculation using the start time of 1 is not performed and the second sequence information corresponds to the first sequence information, the calculation using the first start time and the second start time is performed. A communication control device for outputting a calculation result,
A parallel computer system characterized by comprising:
前記演算処理装置が実行するプログラムに含まれる複数のプロセスのうち第1のプロセスが第1のプロセス間通信を開始した第1の開始時刻に対して前記演算処理装置が付与して、前記主記憶装置に書き込んだ第1のシーケンス情報よりも、前記複数のプロセスのうち第2のプロセスが第2のプロセス間通信を開始した第2の開始時刻に付与された第2のシーケンス情報の方が新しい場合、前記第1の開始時刻を用いた演算を行わず、前記第2のシーケンス情報が前記第1のシーケンス情報に対応する場合、前記第1の開始時刻と前記第2の開始時刻とを用いた演算を行って演算結果を出力する、
処理を前記通信制御装置内の演算処理装置に実行させることを特徴とする制御プログラム。 A control program for an information processing device having an arithmetic processing device, a communication control device, and a main storage device,
The main processing unit assigns the main memory to a first start time at which a first process among the plurality of processes included in a program executed by the arithmetic processing unit starts a first inter-process communication. The second sequence information given at the second start time at which the second process of the plurality of processes started the second inter-process communication is newer than the first sequence information written in the apparatus. In the case where the calculation using the first start time is not performed and the second sequence information corresponds to the first sequence information, the first start time and the second start time are used. Output the calculation result.
A control program that causes an arithmetic processing unit in the communication control unit to execute processing.
前記複数の情報処理装置のうち少なくとも1つの情報処理装置が、
プログラムを実行し、
前記プログラムに含まれる複数のプロセスのうち第1のプロセスが第1のプロセス間通信を開始した第1の開始時刻に対して第1のシーケンス情報を付与し、
前記複数のプロセスのうち第2のプロセスが第2のプロセス間通信を開始した第2の開始時刻に付与された第2のシーケンス情報の方が前記第1のシーケンス情報よりも新しい場合、前記第1の開始時刻を用いた演算を行わず、前記第2のシーケンス情報が前記第1のシーケンス情報に対応する場合、前記第1の開始時刻と前記第2の開始時刻とを用いた演算を行って演算結果を出力する、
ことを特徴とする制御方法。 A method for controlling a parallel computer system having a plurality of information processing devices,
At least one information processing device of the plurality of information processing devices is
Run the program
The first sequence information is given to the first start time when the first process among the plurality of processes included in the program starts the first inter-process communication,
When the second sequence information given at the second start time at which the second process of the plurality of processes starts the second inter-process communication is newer than the first sequence information, When the calculation using the start time of 1 is not performed and the second sequence information corresponds to the first sequence information, the calculation using the first start time and the second start time is performed. Output the calculation result.
A control method characterized by that.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013248579A JP6152786B2 (en) | 2013-11-29 | 2013-11-29 | Communication control apparatus, information processing apparatus, parallel computer system, control program, and parallel computer system control method |
US14/538,846 US9465675B2 (en) | 2013-11-29 | 2014-11-12 | Communication control device, information processing apparatus, parallel computer system, and control method for parallel computer system |
EP14193404.2A EP2879054A3 (en) | 2013-11-29 | 2014-11-17 | Communication control device, information processing apparatus, parallel computer system, and control method for parallel computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013248579A JP6152786B2 (en) | 2013-11-29 | 2013-11-29 | Communication control apparatus, information processing apparatus, parallel computer system, control program, and parallel computer system control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015106311A JP2015106311A (en) | 2015-06-08 |
JP6152786B2 true JP6152786B2 (en) | 2017-06-28 |
Family
ID=51951611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013248579A Expired - Fee Related JP6152786B2 (en) | 2013-11-29 | 2013-11-29 | Communication control apparatus, information processing apparatus, parallel computer system, control program, and parallel computer system control method |
Country Status (3)
Country | Link |
---|---|
US (1) | US9465675B2 (en) |
EP (1) | EP2879054A3 (en) |
JP (1) | JP6152786B2 (en) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11277455B2 (en) | 2018-06-07 | 2022-03-15 | Mellanox Technologies, Ltd. | Streaming system |
JP7159696B2 (en) * | 2018-08-28 | 2022-10-25 | 富士通株式会社 | Information processing device, parallel computer system and control method |
US20200106828A1 (en) * | 2018-10-02 | 2020-04-02 | Mellanox Technologies, Ltd. | Parallel Computation Network Device |
US11625393B2 (en) | 2019-02-19 | 2023-04-11 | Mellanox Technologies, Ltd. | High performance computing system |
EP3699770A1 (en) | 2019-02-25 | 2020-08-26 | Mellanox Technologies TLV Ltd. | Collective communication system and methods |
CN111858017A (en) * | 2019-04-30 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | Method, apparatus and computer program product for processing tasks |
US11750699B2 (en) | 2020-01-15 | 2023-09-05 | Mellanox Technologies, Ltd. | Small message aggregation |
US11252027B2 (en) | 2020-01-23 | 2022-02-15 | Mellanox Technologies, Ltd. | Network element supporting flexible data reduction operations |
US11876885B2 (en) | 2020-07-02 | 2024-01-16 | Mellanox Technologies, Ltd. | Clock queue with arming and/or self-arming features |
US11556378B2 (en) | 2020-12-14 | 2023-01-17 | Mellanox Technologies, Ltd. | Offloading execution of a multi-task parameter-dependent operation to a network device |
US11922237B1 (en) | 2022-09-12 | 2024-03-05 | Mellanox Technologies, Ltd. | Single-step collective operations |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3532037B2 (en) * | 1996-07-31 | 2004-05-31 | 富士通株式会社 | Parallel computer |
JPH1063550A (en) | 1996-08-23 | 1998-03-06 | Fujitsu Ltd | Execution performance analysis display method and medium recording program for executing the method |
US7100021B1 (en) * | 2001-10-16 | 2006-08-29 | Cisco Technology, Inc. | Barrier synchronization mechanism for processors of a systolic array |
US8056087B2 (en) * | 2006-09-25 | 2011-11-08 | International Business Machines Corporation | Effective use of a hardware barrier synchronization register for protocol synchronization |
JP2009059316A (en) * | 2007-09-04 | 2009-03-19 | Nec Corp | Measuring device, measurement program, and measuring method |
JP2009176116A (en) * | 2008-01-25 | 2009-08-06 | Univ Waseda | Multiprocessor system and method for synchronizing multiprocessor system |
JP5304194B2 (en) * | 2008-11-19 | 2013-10-02 | 富士通株式会社 | Barrier synchronization apparatus, barrier synchronization system, and control method of barrier synchronization apparatus |
US8972702B2 (en) | 2009-11-30 | 2015-03-03 | Intenational Business Machines Corporation | Systems and methods for power management in a high performance computing (HPC) cluster |
JP5526914B2 (en) * | 2010-03-25 | 2014-06-18 | 富士通株式会社 | Analysis device, analysis method, and analysis program |
JP5139486B2 (en) | 2010-08-30 | 2013-02-06 | 株式会社東芝 | Trace generation device, system, and program thereof |
JP5549575B2 (en) | 2010-12-17 | 2014-07-16 | 富士通株式会社 | Parallel computer system, synchronization device, and control method for parallel computer system |
WO2012095762A1 (en) | 2011-01-10 | 2012-07-19 | International Business Machines Corporation | Activity recording system for a concurrent software environment |
-
2013
- 2013-11-29 JP JP2013248579A patent/JP6152786B2/en not_active Expired - Fee Related
-
2014
- 2014-11-12 US US14/538,846 patent/US9465675B2/en not_active Expired - Fee Related
- 2014-11-17 EP EP14193404.2A patent/EP2879054A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP2879054A2 (en) | 2015-06-03 |
EP2879054A3 (en) | 2016-06-22 |
US20150154058A1 (en) | 2015-06-04 |
US9465675B2 (en) | 2016-10-11 |
JP2015106311A (en) | 2015-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6152786B2 (en) | Communication control apparatus, information processing apparatus, parallel computer system, control program, and parallel computer system control method | |
CN102981864B (en) | Signal conditioning package and information processing method | |
US10025533B2 (en) | Logical block addresses used for executing host commands | |
CN111522640A (en) | Parallel execution method and equipment of computational graph | |
WO2020173092A1 (en) | Data processing method, redundant array of independent disks controller, and data storage system | |
JPWO2017163441A1 (en) | Image processing apparatus, image processing method, and image processing program | |
CN112631994A (en) | Data migration method and system | |
JPWO2019053915A1 (en) | Image processing apparatus, image processing method, and image processing program | |
JP6449487B2 (en) | Software security verification method, device, and system | |
JP6464739B2 (en) | Information processing system control program, information processing apparatus, and information processing system | |
JP6433645B2 (en) | Arithmetic processing apparatus and method for processing application at high speed | |
JP6228318B2 (en) | Computer and computer system | |
US8806078B2 (en) | Information processing device and program product | |
CN114490074B (en) | Arbitration system, method, electronic device, storage medium and chip | |
JP7225904B2 (en) | Vector operation processing device, array variable initialization method by vector operation processing device, and array variable initialization program by vector operation processing device | |
CN114442925A (en) | Nonvolatile storage hard disk multi-queue submission scheduling method, device and storage medium | |
JP2022178916A (en) | Machine learning system, machine learning program, and machine learning method | |
JP4548505B2 (en) | Information processing apparatus, information processing method, and computer program | |
JP6957910B2 (en) | Information processing device | |
JPWO2004068356A1 (en) | Data communication system, data communication method, and data communication program | |
CN109254936B (en) | Method and device for inserting data transmission queue structure | |
JP6580288B2 (en) | Information processing apparatus, information processing method, and information processing program | |
JP6217386B2 (en) | Program generation method for multiprocessor | |
CN118860492A (en) | Method, device, computer equipment and storage medium for generating control instructions | |
JP7533939B2 (en) | Calculation processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160804 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170424 |
|
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: 20170502 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170515 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6152786 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |