JP6070078B2 - Hybrid parallel processing system, hybrid parallel processing method, and computer program - Google Patents

Hybrid parallel processing system, hybrid parallel processing method, and computer program Download PDF

Info

Publication number
JP6070078B2
JP6070078B2 JP2012241994A JP2012241994A JP6070078B2 JP 6070078 B2 JP6070078 B2 JP 6070078B2 JP 2012241994 A JP2012241994 A JP 2012241994A JP 2012241994 A JP2012241994 A JP 2012241994A JP 6070078 B2 JP6070078 B2 JP 6070078B2
Authority
JP
Japan
Prior art keywords
waiting time
threads
processes
transfer
thread
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.)
Active
Application number
JP2012241994A
Other languages
Japanese (ja)
Other versions
JP2014092873A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2012241994A priority Critical patent/JP6070078B2/en
Publication of JP2014092873A publication Critical patent/JP2014092873A/en
Application granted granted Critical
Publication of JP6070078B2 publication Critical patent/JP6070078B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、コンピュータによる並列処理に関し、特にコンピュータによる並列処理における負荷分散技術に関する。   The present invention relates to parallel processing by a computer, and more particularly to a load distribution technique in parallel processing by a computer.

コンピュータによる並列処理(並列計算または並列コンピューティングと呼ばれることもある)とは、コンピュータプログラム(以下、単に「プログラム」と称する)の実行やデータ処理、計算等を、逐次的に行うのでは無く、同時並列的に行う処理である。コンピュータによる並列処理の分類として、スレッド並列処理と、プロセス並列処理が挙げられる。スレッド並列処理は、共有メモリ型並列処理またはノード内並列処理と呼ばれることもある。プロセス並列処理は、分散メモリ型並列処理またはノード間並列処理と呼ばれることもある。スレッド並列処理は、主に共有メモリ型計算機上で、例えばOpenMP等を利用することにより実現される。プロセス並列処理は、例えばMPI(Message Passing Interface)等を利用することにより実現される。   Parallel processing by a computer (sometimes referred to as parallel computing or parallel computing) is not a computer program (hereinafter simply referred to as “program”) execution, data processing, calculation, or the like, This process is performed in parallel. The parallel processing classification by computer includes thread parallel processing and process parallel processing. The thread parallel processing is sometimes called shared memory parallel processing or intra-node parallel processing. Process parallel processing is sometimes called distributed memory type parallel processing or inter-node parallel processing. The thread parallel processing is realized mainly by using, for example, OpenMP on a shared memory type computer. Process parallel processing is realized by using, for example, MPI (Message Passing Interface).

プロセス並列処理を行う際に、各プロセス内でスレッド並列処理を行う並列処理はハイブリッド並列処理と呼ばれる。ハイブリッド並列処理においては、各プロセスの処理量(計算負荷)とスレッド数により各プロセスの処理時間が変わる。例えば、各プロセスの処理量が均一ではないにもかかわらずスレッド数が同じであれば、各プロセスの処理時間に差が生じる。このような場合、プロセス間の同期処理あるいはデータ転送処理のタイミングにおいて、先に終了したプロセスが他の実行中のプロセスの終了を待ち合わせる時間が発生する。このことにより、並列処理の実行性能が低下する(すなわち、並列処理全体の実行時間が増大する)。特に、HPC(High Performance Computing)分野で利用されるアプリケーションプログラム等においては、その実行時間が長時間にわたるため、実行性能低下の影響が大きい。すなわち、実行性能低下の影響が蓄積されることが、アプリケーションプログラムの高速実行を阻害する大きな要因となり得る。   When performing process parallel processing, parallel processing for performing thread parallel processing within each process is called hybrid parallel processing. In the hybrid parallel processing, the processing time of each process varies depending on the processing amount (calculation load) of each process and the number of threads. For example, if the number of threads is the same even though the processing amount of each process is not uniform, a difference occurs in the processing time of each process. In such a case, at the timing of the synchronization process or the data transfer process between the processes, a time occurs in which the process that has ended first waits for the end of another process being executed. This decreases the execution performance of parallel processing (that is, the execution time of the entire parallel processing increases). In particular, in an application program used in the HPC (High Performance Computing) field, the execution time is long, so the influence of a decrease in execution performance is great. In other words, accumulation of the effect of the decrease in execution performance can be a major factor that hinders high-speed execution of application programs.

上記のような問題を防止するためには、各プロセスに適切なスレッド数を設定する必要がある。すなわち、処理量が多いプロセスのスレッド数を増やし、処理量が少ないプロセスのスレッド数を減らすことにより、並列処理の効果を上げることができる。例えば、OpenMPにおいては、利用者がプロセスごとのスレッド数を明示的に指定することができる。   In order to prevent the above problems, it is necessary to set an appropriate number of threads for each process. That is, the effect of parallel processing can be improved by increasing the number of threads of a process with a large amount of processing and reducing the number of threads of a process with a small amount of processing. For example, in OpenMP, the user can explicitly specify the number of threads for each process.

しかしながら、適切なスレッド数の見積もりおよび決定は、プロセッサ数等のハードウェア構成やプロセス数等のソフトウェア設定、実行時の入力データ等を考慮する必要があり、非常に困難である。   However, it is very difficult to estimate and determine an appropriate number of threads because it is necessary to consider hardware configuration such as the number of processors, software settings such as the number of processes, input data at the time of execution, and the like.

このような問題点を解決する技術が特許文献1に記載されている。特許文献1に記載のハイブリッド並列処理システムは、直近の共有メモリ型並列処理(スレッド並列処理)の処理時間に基づき、各プロセス間のスレッド数調整を動的に行う。   A technique for solving such problems is described in Patent Document 1. The hybrid parallel processing system described in Patent Document 1 dynamically adjusts the number of threads between processes based on the processing time of the latest shared memory type parallel processing (thread parallel processing).

また、特許文献2に記載の解析装置は、プロセス間通信の待機時間に基づいて、複数のプロセスに対する処理の配分状態を評価する。   Moreover, the analysis apparatus described in Patent Document 2 evaluates the distribution state of processing for a plurality of processes based on the standby time for interprocess communication.

特開2011−180725号公報JP 2011-180725 A 特開2011−203994号公報JP 2011-203994 A

上述したハイブリッド並列処理システムは、スレッド並列処理を実行する度にその処理時間を計測する必要がある。すなわち、全てのプロセスで時間計測処理が発生する。また、例えばプロセス間で処理時間が均一であるためスレッド数調整が不要な場合においても時間計測処理が発生する。このため、時間計測処理のオーバーヘッドが蓄積することにより、並列処理全体の性能が低下するという問題点がある。   The hybrid parallel processing system described above needs to measure the processing time each time the thread parallel processing is executed. That is, time measurement processing occurs in all processes. Further, for example, the processing time is uniform among the processes, so that the time measurement process occurs even when the number of threads does not need to be adjusted. For this reason, there is a problem in that the performance of the entire parallel processing deteriorates due to the accumulation of time measurement processing overhead.

本発明は、上述した課題を解決し、ハイブリッド並列処理における効率的な並列処理を実現することを主たる目的とする。   The main object of the present invention is to solve the above-described problems and realize efficient parallel processing in hybrid parallel processing.

上記目的を達成する本発明に係るハイブリッド並列処理システムは、
並列処理される複数のプロセスを備え、
プロセスの各々が、
プロセスに割り当てられた処理を実行する1つ以上のスレッドと、
プロセス間のデータ転送処理を行うデータ転送処理手段と、
スレッド数の再設定を行うスレッド数再設定手段とを含み、
データ転送処理手段が、プロセス間のデータ転送処理における転送待ち合わせ時間を計測する転送待ち合わせ時間計測手段を含み、転送待ち合わせ時間を他のプロセスと送受信し、
スレッド数再設定手段が、転送待ち合わせ時間に基づいてスレッド数の再設定を行う。
The hybrid parallel processing system according to the present invention that achieves the above object is as follows.
With multiple processes in parallel,
Each of the processes
One or more threads that perform the processing assigned to the process;
Data transfer processing means for performing data transfer processing between processes;
Thread number resetting means for resetting the number of threads,
The data transfer processing means includes a transfer waiting time measuring means for measuring a transfer waiting time in the data transfer processing between processes, and transmits / receives the transfer waiting time to / from another process,
The thread number resetting means resets the number of threads based on the transfer waiting time.

また、上記目的を達成する本発明に係るハイブリッド並列処理方法は、
複数のプロセスを並列処理し、
プロセスの各々が割り当てられた処理を1つ以上のスレッドにより実行し、
プロセス間のデータ転送処理における転送待ち合わせ時間を計測し、
転送待ち合わせ時間をプロセスが他のプロセスと送受信し、
転送待ち合わせ時間に基づいてスレッド数の再設定を行う。
The hybrid parallel processing method according to the present invention for achieving the above object is
Process multiple processes in parallel,
Each of the processes performs the assigned processing by one or more threads,
Measure the transfer waiting time in the data transfer process between processes,
The process sends and receives the transfer waiting time to and from other processes,
Reset the number of threads based on the transfer waiting time.

そして、上記目的を達成する本発明に係るプログラムは、
複数のプロセスを並列処理可能なプロセッサを用いて、
プロセスの各々が割り当てられた処理を1つ以上のスレッドにより実行し、
プロセス間のデータ転送処理における転送待ち合わせ時間を計測し、
転送待ち合わせ時間をプロセスが他のプロセスと送受信し、
転送待ち合わせ時間に基づいてスレッド数の再設定を行う処理をコンピュータに実行させる。
And the program concerning the present invention which achieves the above-mentioned object is
Using a processor that can process multiple processes in parallel,
Each of the processes performs the assigned processing by one or more threads,
Measure the transfer waiting time in the data transfer process between processes,
The process sends and receives the transfer waiting time to and from other processes,
Causes the computer to execute processing for resetting the number of threads based on the transfer waiting time.

なお、同目的は、係るプログラムを格納したコンピュータ読み取り可能な記憶媒体によっても達成される。   This object can also be achieved by a computer-readable storage medium storing such a program.

本発明によれば、ハイブリッド並列処理における効率的な並列処理を実現する。   According to the present invention, efficient parallel processing in hybrid parallel processing is realized.

本発明の第1の実施形態に係るハイブリッド並列処理システムの構成を表すブロック構成図である。It is a block block diagram showing the structure of the hybrid parallel processing system which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係るハイブリッド並列処理システムS1における、各プロセスのスレッド数既定値決定処理を説明するフローチャートである。It is a flowchart explaining the thread number default value determination process of each process in the hybrid parallel processing system S1 which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係るハイブリッド並列処理システムS1における、各プロセスのスレッド数調整処理(プロセス間通信処理およびスレッド数再設定処理)を説明するフローチャートである。It is a flowchart explaining the thread number adjustment process (interprocess communication process and thread number reset process) of each process in the hybrid parallel processing system S1 according to the first embodiment of the present invention. 本発明の第1の実施形態に係るハイブリッド並列処理システムS1と、スレッド数調整処理を行わないハイブリッド並列処理システムの処理を比較説明する図である。It is a figure explaining comparatively the process of the hybrid parallel processing system S1 which concerns on the 1st Embodiment of this invention, and the hybrid parallel processing system which does not perform a thread number adjustment process. 本発明の第2の実施形態に係るハイブリッド並列処理システムの構成を表すブロック構成図である。It is a block block diagram showing the structure of the hybrid parallel processing system which concerns on the 2nd Embodiment of this invention. コンピュータを構成する要素の例を表すブロック構成図である。And FIG. 11 is a block diagram illustrating an example of elements constituting a computer.

次に、本発明の実施の形態について図面を参照して詳細に説明する。   Next, embodiments of the present invention will be described in detail with reference to the drawings.

[第1の実施形態]
図1は、本発明の第1の実施形態に係るハイブリッド並列処理システムの構成を表すブロック構成図である。本発明の第1の実施形態に係るハイブリッド並列処理システムS1は、プロセス10−1〜10−mを備える。プロセス10−1〜10−mは、それぞれ、スレッド11−1〜11−nと、スレッド数既定値設定部12と、スレッド数再設定部13と、データ転送処理部14とを備える。データ転送処理部14は、転送待ち合わせ時間計測部141を備える。
[First Embodiment]
FIG. 1 is a block diagram showing the configuration of the hybrid parallel processing system according to the first embodiment of the present invention. The hybrid parallel processing system S1 according to the first embodiment of the present invention includes processes 10-1 to 10-m. Each of the processes 10-1 to 10-m includes threads 11-1 to 11-n, a thread number default value setting unit 12, a thread number resetting unit 13, and a data transfer processing unit 14. The data transfer processing unit 14 includes a transfer waiting time measuring unit 141.

プロセス10−1〜10−mは、同一ホスト上で実行される複数のプロセスである。スレッド11−1〜11−nは、プロセスに割り当てられた処理を実行するために、各プロセスに割り当てられたスレッドである。プロセス10−1〜10−mのそれぞれに含まれるスレッドの数は、同じでもよいし、異なっていてもよい。スレッド数既定値設定部12は、プロセス実行開始時にスレッド数の既定値を決定する。スレッド数再設定部13は、後述する転送待ち合わせ時間(期間)に基づいて各プロセスのスレッド数を再設定する。データ転送処理部14は、データ転送処理およびプロセス間同期処理を行う。転送待ち合わせ時間計測部141は、データ転送処理における転送待ち合わせ時間と、プロセス間同期処理における同期待ち合わせ時間を計測する。   Processes 10-1 to 10-m are a plurality of processes executed on the same host. The threads 11-1 to 11-n are threads assigned to each process in order to execute processing assigned to the process. The number of threads included in each of the processes 10-1 to 10-m may be the same or different. The thread number default value setting unit 12 determines a default value of the thread number at the start of process execution. The thread number resetting unit 13 resets the thread number of each process based on a transfer waiting time (period) described later. The data transfer processing unit 14 performs data transfer processing and inter-process synchronization processing. The transfer waiting time measuring unit 141 measures the transfer waiting time in the data transfer process and the synchronization waiting time in the inter-process synchronization process.

図2は、本発明の第1の実施形態に係るハイブリッド並列処理システムS1における、各プロセスのスレッド数既定値決定処理を説明するフローチャートである。また、図3は、本発明の第1の実施形態に係るハイブリッド並列処理システムS1における、各プロセスのスレッド数調整処理(プロセス間通信処理およびスレッド数再設定処理)を説明するフローチャートである。以下、ハイブリッド並列処理システムS1の処理動作について図面を参照して詳細に説明する。   FIG. 2 is a flowchart for explaining the thread number default value determination process of each process in the hybrid parallel processing system S1 according to the first embodiment of the present invention. FIG. 3 is a flowchart for explaining thread number adjustment processing (inter-process communication processing and thread number resetting processing) of each process in the hybrid parallel processing system S1 according to the first embodiment of the present invention. Hereinafter, the processing operation of the hybrid parallel processing system S1 will be described in detail with reference to the drawings.

ハイブリッド並列処理によるプログラムの実行開始時、プロセス毎に、スレッド数既定値設定部12が、スレッド数の既定値を決定する。図2を参照すると、最初に、スレッド数既定値設定部12は、スレッド数指定用の環境変数を参照する(ステップS201)。なお、例えばOpenMPにおいては、環境変数を介して利用者がスレッド数を指定することができる。   At the start of program execution by hybrid parallel processing, the thread number default value setting unit 12 determines the default value of the thread number for each process. Referring to FIG. 2, first, the thread number default value setting unit 12 refers to an environment variable for specifying the thread number (step S201). For example, in OpenMP, the user can specify the number of threads via an environment variable.

環境変数の指定が有る場合は(ステップS202においてYES)、この環境変数に基づいてスレッド数が設定される(ステップS203)。環境変数の指定が無い場合は(ステップS202においてNO)、システムの既定値からスレッド数が設定される(ステップS204)。   If an environment variable is specified (YES in step S202), the number of threads is set based on this environment variable (step S203). If no environment variable is specified (NO in step S202), the number of threads is set from the system default value (step S204).

スレッド数が設定された後、プロセス並列処理が開始する。各プロセスは、スレッド並列処理を行い、その後でプロセス間通信処理(プロセス間同期処理またはプロセス間のデータ転送処理)を行う。なお、以降ではプロセス間のデータ転送処理を行う場合について説明するが、プロセス間同期処理を行う場合においても、転送待ち合わせ時間の計測およびスレッド数の再設定の処理は同様である。   After the number of threads is set, process parallel processing starts. Each process performs thread parallel processing, and then performs inter-process communication processing (inter-process synchronization processing or inter-process data transfer processing). In the following, the case of performing the data transfer process between processes will be described, but the process of measuring the transfer waiting time and resetting the number of threads is the same when performing the inter-process synchronization process.

図3を参照すると、プロセス間通信処理を行う際に、データ転送処理部14は、データ転送処理が開始可能か否かを判断する(ステップS301)。直ちにデータ転送処理が開始可能であれば(ステップS301においてYES)、転送待ち合わせ時間計測部141は、転送待ち合わせ時間=ゼロとする(ステップS302)。そして、処理はステップS307へ進む。   Referring to FIG. 3, when performing the inter-process communication process, the data transfer processing unit 14 determines whether or not the data transfer process can be started (step S301). If the data transfer process can be started immediately (YES in step S301), the transfer waiting time measuring unit 141 sets the transfer waiting time to zero (step S302). Then, the process proceeds to step S307.

一方で、データ転送処理が開始できない場合は(ステップS301においてNO)、転送待ち合わせ時間計測部141は、転送待ち合わせ開始時刻(S)を取得する(ステップS303)。すなわち、転送待ち合わせ時間計測部141は、この時点の時刻を転送待ち合わせ開始時刻(S)として記憶する。なお、データ転送処理が開始できない理由としては、転送対象となるプロセス(転送相手のプロセス)がプロセス内の処理(スレッド並列処理等)を完了していないためにデータ転送の準備が整っていない場合等がある。   On the other hand, when the data transfer process cannot be started (NO in step S301), the transfer waiting time measuring unit 141 acquires the transfer waiting start time (S) (step S303). That is, the transfer waiting time measuring unit 141 stores the time at this time as the transfer waiting start time (S). The reason why data transfer processing cannot be started is that the process to be transferred (transfer partner process) has not completed the processing in the process (thread parallel processing, etc.) and is not ready for data transfer. Etc.

次に、データ転送処理部14および転送待ち合わせ時間計測部141は、データ転送が可能になるまで待機する(ステップS304)。   Next, the data transfer processing unit 14 and the transfer waiting time measuring unit 141 stand by until data transfer is possible (step S304).

待機状態が解けてデータ転送が開始できる状態になったことを検出すると、転送待ち合わせ時間計測部141は、転送待ち合わせ終了時刻(E)を取得する(ステップS305)。そして、転送待ち合わせ時間計測部141は、転送待ち合わせ時間(E−S)を計算する(ステップS306)。   When it is detected that the standby state has been solved and data transfer can be started, the transfer waiting time measuring unit 141 acquires the transfer waiting end time (E) (step S305). Then, the transfer waiting time measuring unit 141 calculates a transfer waiting time (ES) (step S306).

その後、データ転送処理部14は、データ転送処理を実行する(ステップS307)。データ転送処理の終了後、各プロセスは、転送待ち合わせ時間および現在のスレッド数を交換する。すなわち、転送待ち合わせ時間および現在のスレッド数をお互いに送受信する。そして、各プロセスのスレッド数再設定部13は、自プロセスおよび他プロセスの転送待ち合わせ時間とスレッド数に基づき、後続のスレッド並列処理を実行するスレッド数を算出し、算出したスレッド数を新たなスレッド数として設定する。   Thereafter, the data transfer processing unit 14 executes a data transfer process (step S307). After the end of the data transfer process, each process exchanges the transfer waiting time and the current number of threads. That is, the transfer waiting time and the current number of threads are transmitted to and received from each other. Then, the thread number resetting unit 13 of each process calculates the number of threads for executing subsequent thread parallel processing based on the transfer waiting time and the number of threads of the own process and other processes, and the calculated number of threads is set as a new thread. Set as a number.

以降において、新たなスレッド数を算出する手順および計算式について詳細に説明する。なお、これら手順および計算方法の概要(方針)は、以下の通りである。
・各プロセスの転送待ち合わせ時間と各プロセスのスレッド数との積を集計(総和を計算)し、その転送待ち合わせ時間の総和を全プロセスに均等に再配分する。すなわち、各スレッドの転送待ち合わせ時間の総和を全プロセス数で割った値(平均待ち合わせ時間)を求め、各プロセスに送信する。そして、各プロセスにおいて、各プロセスの転送待ち合わせ時間と再配分された転送待ち合わせ時間(平均待ち合わせ時間)を比較する。
・自プロセスの転送待ち合わせ時間が、再配分された転送待ち合わせ時間を上回る場合、現在割り当てられているスレッド数が過多である(処理量の少なさの割にスレッド数が多い)と見なす。そして、他プロセスに一部スレッドを譲渡する。
・自プロセスの転送待ち合わせ時間が、再配分された転送待ち合わせ時間を下回る場合、現在割り当てられているスレッド数が過少である(処理量の多さの割にスレッド数が少ない)と見なす。そして、他プロセスから一部スレッドを譲り受ける。
Hereinafter, a procedure and a calculation formula for calculating the new number of threads will be described in detail. The outline (policy) of these procedures and calculation methods is as follows.
The product of the transfer waiting time of each process and the number of threads of each process is aggregated (calculated), and the total of the transfer waiting time is evenly redistributed to all processes. That is, a value (average waiting time) obtained by dividing the total transfer waiting time of each thread by the total number of processes is obtained and transmitted to each process. In each process, the transfer waiting time of each process is compared with the redistributed transfer waiting time (average waiting time).
When the transfer waiting time of the own process exceeds the redistributed transfer waiting time, it is considered that the number of currently allocated threads is excessive (the number of threads is large for a small amount of processing). Then, some threads are transferred to another process.
When the transfer waiting time of the own process is less than the redistributed transfer waiting time, the number of currently assigned threads is considered to be too small (the number of threads is small for the large amount of processing). Then, a part of the thread is acquired from another process.

新たなスレッド数を算出する計算式に関する各変数を、下表のように定義する。   Each variable related to the formula for calculating the new number of threads is defined as shown in the table below.

Figure 0006070078
Figure 0006070078

aveとDは、それぞれ下記の計算式のように計算される。

Figure 0006070078
W ave and D n are calculated according to the following formulas, respectively.
Figure 0006070078

ここで、D>0であれば、プロセスnは、転送待ち合わせ時間が平均待ち合わせ時間Waveより長いため、割り当てられているスレッド数が過大であると見なされる。この場合、プロセスnに割り当てられているスレッドの一部が他プロセスへ譲渡される。 Here, if D n > 0, the process n is considered to have an excessive number of assigned threads because the transfer waiting time is longer than the average waiting time W ave . In this case, a part of the thread assigned to the process n is transferred to another process.

>0であるプロセスの再設定後のプロセス数T newは以下のように求められる。まず、プロセスnに再設定するスレッド数の最小値であるT minを下記の計算式で求める。

Figure 0006070078
The number of processes T n new after resetting a process with D n > 0 is obtained as follows. First, T n min which is the minimum value of the number of threads reset to the process n is obtained by the following calculation formula.
Figure 0006070078

次に、T minからTまでの平均値を計算することにより、T newを求める。あるいは、T minの数値からTの数値までの中央値を求めることにより、T newを求めてもよい。例えば、下記の計算式によりT newが求められる。

Figure 0006070078
Then, by calculating the average values from T n min to T n, determine the T n new new. Alternatively, by determining the median of the numerical values of T n min to a value of T n, may be calculated T n new new. For example, T n new is obtained by the following calculation formula.
Figure 0006070078

一方、D<0であれば、プロセスnは、転送待ち合わせ時間が平均待ち合わせ時間Waveより短いため、割り当てられているスレッド数が過少であると見なされる。この場合、プロセスnは他プロセスからスレッドの譲渡を受ける。譲渡を受けるスレッド数は、D>0であるプロセスから譲渡された全スレッドを、D<0であるプロセス間でDの大きさ(比率)に応じて分配することにより求められる。 On the other hand, if D n <0, the process n is considered to have an insufficient number of threads because the transfer waiting time is shorter than the average waiting time W ave . In this case, the process n receives a thread transfer from another process. The number of threads to be transferred is obtained by distributing all the threads transferred from the process with D n > 0 according to the size (ratio) of D n among the processes with D n <0.

例えば、

Figure 0006070078
For example,
Figure 0006070078

とした場合、D<0であるプロセスの再設定後のプロセス数T newは下記の計算式により求められる。

Figure 0006070078
In this case, the number of processes T n new after resetting a process where D n <0 is obtained by the following calculation formula.
Figure 0006070078

以下、プロセス数が2(p=2)である場合における、スレッド数調整処理(新たなスレッド数の計算)の例を説明する。   Hereinafter, an example of thread number adjustment processing (calculation of a new thread number) when the number of processes is 2 (p = 2) will be described.

以降の説明において、2つのプロセスのそれぞれを「プロセス1」,「プロセス2」と呼称する。開始時におけるプロセス1とプロセス2のスレッド数は共に8(T=T=8)である。プロセス1は計算負荷が低かったため、プロセス2より先にプロセス間通信処理が開始したことにより、4秒の転送待ち合わせ時間が発生した(W=4)。一方、プロセス2は計算負荷が高かったため、プロセス間通信処理開始後直ちにデータ転送が可能であったことにより、転送待ち時間はゼロであった(W=0)。以上により、

Figure 0006070078
In the following description, the two processes are referred to as “process 1” and “process 2”, respectively. The number of threads of process 1 and process 2 at the start is 8 (T 1 = T 2 = 8). Since the calculation load of the process 1 is low, a transfer waiting time of 4 seconds occurs due to the start of inter-process communication processing prior to the process 2 (W 1 = 4). On the other hand, since the process 2 has a high calculation load, the data transfer can be performed immediately after the start of the inter-process communication process, so that the transfer waiting time is zero (W 2 = 0). With the above,
Figure 0006070078

である。D>0かつD<0であるため、プロセス1からプロセス2へのスレッドの譲渡が行われる。 It is. Since D 1 > 0 and D 2 <0, the thread is transferred from the process 1 to the process 2.

プロセス1のスレッド数の調整(新たなスレッド数T newの計算)は以下のように行われる。

Figure 0006070078
Adjustment of the number of threads of process 1 (calculation of a new number of threads T 1 new ) is performed as follows.
Figure 0006070078

すなわち、プロセス1のスレッド数が8から6に減少する。そして、減少した2スレッドが他プロセスへ譲渡される。   That is, the number of threads in process 1 is reduced from 8 to 6. Then, the reduced two threads are transferred to another process.

プロセス2のスレッド数の調整(新たなスレッド数T newの計算)は以下のように行われる。

Figure 0006070078
The adjustment of the number of threads of the process 2 (calculation of a new number of threads T 2 new ) is performed as follows.
Figure 0006070078

すなわち、プロセス1から譲渡された2スレッドがプロセス2に割り当てられることにより、プロセス2のスレッド数が8から10に増加する。   That is, the number of threads in process 2 is increased from 8 to 10 by assigning 2 threads transferred from process 1 to process 2.

図4は、本発明の第1の実施形態に係るハイブリッド並列処理システムS1と、スレッド数調整処理を行わないハイブリッド並列処理システムの処理を比較説明する図である。図4の左側の(a)は、スレッド数調整処理を行わないハイブリッド並列処理システムの処理を表わしている。図4の右側の(b)は、本発明の第1の実施形態に係るハイブリッド並列処理システムS1の処理を表わしている。図4の(a)および(b)においては、プロセス数は共に2であるものとする。   FIG. 4 is a diagram for comparing and explaining the processing of the hybrid parallel processing system S1 according to the first embodiment of the present invention and the hybrid parallel processing system that does not perform the thread number adjustment processing. (A) on the left side of FIG. 4 represents processing of a hybrid parallel processing system that does not perform thread number adjustment processing. 4B on the right side of FIG. 4 represents processing of the hybrid parallel processing system S1 according to the first embodiment of the present invention. In FIGS. 4A and 4B, it is assumed that the number of processes is two.

図4の(a)を参照すると、スレッド数調整処理を行わないハイブリッド並列処理システムは、処理量が少ないプロセス1のスレッド並列処理Iが先に終了する。このため、プロセス1においては、プロセス間通信処理の段階で、プロセス2のスレッド並列処理Iが終了するまで通信待ちの時間(転送待ち合わせ時間)が発生する。そして、後続の処理においても、プロセス1の処理量が少ないため、先程と同様に処理量が少ないプロセス1のスレッド並列処理IIが先に終了する。このため、プロセス1に常に待ち合わせの時間が発生する。   Referring to FIG. 4A, in the hybrid parallel processing system that does not perform the thread number adjustment processing, the thread parallel processing I of the process 1 with a small amount of processing ends first. For this reason, in the process 1, a communication waiting time (transfer waiting time) occurs until the thread parallel processing I of the process 2 is completed at the stage of the interprocess communication processing. Also in the subsequent processing, since the processing amount of the process 1 is small, the thread parallel processing II of the process 1 having the small processing amount is completed first as before. For this reason, the process 1 always has a waiting time.

一方で、図4の(b)を参照すると、本発明の第1の実施形態に係るハイブリッド並列処理システムS1は、プロセス間通信処理の段階で、通信待ち時間の交換を行う。そして、通信待ち時間に基づいて、各プロセスの負荷に応じたスレッド数再設定を行う。すなわち、処理量が多いプロセス1のスレッド数が増加し、処理量が少ないプロセス2のスレッド数が減少する。このように各プロセスのスレッド数が処理量に応じた数に調整されることにより、後続の処理において各プロセスの処理時間(スレッド並列処理IIの処理時間)が平準化する。このことにより、転送待ち合わせ時間が減少するため、並列処理全体の実行時間が短縮する。すなわち、並列処理の効率が改善される。   On the other hand, referring to FIG. 4B, the hybrid parallel processing system S <b> 1 according to the first embodiment of the present invention exchanges communication waiting time at the stage of inter-process communication processing. Based on the communication waiting time, the number of threads is reset according to the load of each process. That is, the number of threads of process 1 with a large amount of processing increases, and the number of threads of process 2 with a small amount of processing decreases. As described above, the number of threads of each process is adjusted to a number corresponding to the processing amount, so that the processing time of each process (processing time of the thread parallel processing II) is leveled in the subsequent processing. As a result, the transfer waiting time is reduced, so that the execution time of the entire parallel processing is shortened. That is, the efficiency of parallel processing is improved.

以上のように、本発明の第1の実施形態に係るハイブリッド並列処理システムS1は、転送待ち合わせ時間計測部141が計測する転送待ち合わせ時間に基づいて、スレッド数再設定部13が各プロセスのスレッド数を処理量に応じた数に再設定する。このことにより、各プロセスの処理時間が平準化するため、転送待ち合わせ時間が減少し、並列処理全体の実行時間が短縮する。このように、本発明の第1の実施形態に係るハイブリッド並列処理システムS1は、プロセス間の動的な負荷分散を行うことにより、並列処理の効率を改善する。   As described above, in the hybrid parallel processing system S1 according to the first embodiment of the present invention, the thread number resetting unit 13 determines the number of threads of each process based on the transfer waiting time measured by the transfer waiting time measuring unit 141. Is reset to a number according to the processing amount. As a result, the processing time of each process is leveled, the transfer waiting time is reduced, and the execution time of the entire parallel processing is reduced. As described above, the hybrid parallel processing system S1 according to the first embodiment of the present invention improves the efficiency of parallel processing by performing dynamic load distribution between processes.

また、転送待ち合わせ時間計測部141は、転送待ち合わせ時間が存在しない場合(プロセス間通信処理を行う際に、直ちにデータ転送処理が開始可能な場合)、時間計測処理を行わない。このため、全てのプロセスで時間計測処理が発生する特許文献1に記載のハイブリッド並列処理システムに比べ、本発明の第1の実施形態に係るハイブリッド並列処理システムS1は、時間計測処理による性能低下が少ない。   Further, the transfer waiting time measuring unit 141 does not perform the time measuring process when there is no transfer waiting time (when the data transfer process can be started immediately when performing the inter-process communication process). For this reason, compared with the hybrid parallel processing system described in Patent Document 1 in which time measurement processing occurs in all processes, the hybrid parallel processing system S1 according to the first embodiment of the present invention has a performance degradation due to time measurement processing. Few.

[第2の実施形態]
次に、本発明の第2の実施の形態を説明する。
[Second Embodiment]
Next, a second embodiment of the present invention will be described.

図5は、本発明の第2の実施形態に係るハイブリッド並列処理システムの構成を表すブロック構成図である。本発明の第2の実施形態に係るハイブリッド並列処理システムS2は、並列処理される複数のプロセスであるプロセス10−1〜10−mを備える。プロセス10−1〜10−mは、それぞれ、各プロセスに割り当てられた処理を実行する1つ以上のスレッドであるスレッド11−1〜11−nと、スレッド数の再設定を行うスレッド数再設定部13と、プロセス間のデータ転送処理を行うデータ転送処理部14とを備える。データ転送処理部14は、プロセス間のデータ転送処理における転送待ち合わせ時間を計測する転送待ち合わせ時間計測部141を備える。   FIG. 5 is a block diagram showing the configuration of the hybrid parallel processing system according to the second embodiment of the present invention. The hybrid parallel processing system S2 according to the second embodiment of the present invention includes processes 10-1 to 10-m that are a plurality of processes to be processed in parallel. Each of the processes 10-1 to 10-m is a thread 11-1 to 11-n that is one or more threads that execute processing assigned to each process, and a thread number resetting that resets the number of threads. Unit 13 and a data transfer processing unit 14 that performs data transfer processing between processes. The data transfer processing unit 14 includes a transfer waiting time measuring unit 141 that measures a transfer waiting time in data transfer processing between processes.

転送待ち合わせ時間計測部141は、転送待ち合わせ時間を他のプロセスと送受信する。そして、スレッド数再設定部13は、転送待ち合わせ時間に基づいてスレッド数の再設定を行う。   The transfer waiting time measuring unit 141 transmits / receives the transfer waiting time to / from another process. Then, the thread number resetting unit 13 resets the thread number based on the transfer waiting time.

以上のように、本発明の第2の実施形態に係るハイブリッド並列処理システムS2は、転送待ち合わせ時間計測部141が計測する転送待ち合わせ時間に基づいて、スレッド数再設定部13が各プロセスのスレッド数を再設定する。このことにより、各プロセスの処理時間が平準化するため、転送待ち合わせ時間が減少し、並列処理全体の実行時間が短縮する。このように、本発明の第2の実施形態に係るハイブリッド並列処理システムS1は、並列処理の効率を改善する。   As described above, in the hybrid parallel processing system S2 according to the second embodiment of the present invention, the thread number resetting unit 13 determines the number of threads of each process based on the transfer waiting time measured by the transfer waiting time measuring unit 141. To reset. As a result, the processing time of each process is leveled, the transfer waiting time is reduced, and the execution time of the entire parallel processing is reduced. Thus, the hybrid parallel processing system S1 according to the second embodiment of the present invention improves the efficiency of parallel processing.

図6は、コンピュータを構成する要素の例を表すブロック構成図である。図6のコンピュータ900は、CPU(Central Processing Unit)910と、RAM(Random Access Memory)920と、ROM(Read Only Memory)930と、ハードディスクドライブ940と、通信インタフェース950とを備える。CPU910は、CPUコア911および912を含む。   FIG. 6 is a block diagram illustrating an example of elements constituting the computer. 6 includes a CPU (Central Processing Unit) 910, a RAM (Random Access Memory) 920, a ROM (Read Only Memory) 930, a hard disk drive 940, and a communication interface 950. The CPU 910 includes CPU cores 911 and 912.

コンピュータ900は、他のコンピュータ900と通信インタフェース950により図示しないネットワーク等を介して接続されていてもよい。この場合、複数のコンピュータ900は、お互いにデータの送受信が可能なように構成される。   The computer 900 may be connected to another computer 900 via a communication interface 950 via a network (not shown). In this case, the plurality of computers 900 are configured to be able to transmit / receive data to / from each other.

CPU910は、複数のプロセスを並列処理可能である。CPU910に含まれるCPUコアの数は2個でなくともよい。また、CPU910は、単一のCPUではなく、複数のCPUからなるマルチプロセッサであってもよい。   The CPU 910 can process a plurality of processes in parallel. The number of CPU cores included in the CPU 910 need not be two. The CPU 910 may be a multiprocessor including a plurality of CPUs instead of a single CPU.

前述したハイブリッド並列処理システムS1およびS2の構成要素は、プログラムがコンピュータ900のCPU910において実行されることにより実現されてもよい。具体的には、前述した図1あるいは5に記載の構成要素である、スレッド数既定値設定部12,スレッド数再設定部13,データ転送処理部14および転送待ち合わせ時間計測部141は、CPU910がROM930あるいはハードディスクドライブ940からプログラムを読み込み、読み込んだプログラムを、例えば図3および4に示したフローチャートの手順の如くCPU910が実行することにより実現されてもよい。そして、このような場合において、上述した実施形態を例に説明した本発明は、係るコンピュータプログラムを表わすコードあるいはそのコンピュータプログラムを表わすコードが格納されたコンピュータ読み取り可能な記憶媒体(例えばハードディスクドライブ940や、不図示の着脱可能な磁気ディスク媒体,光学ディスク媒体やメモリカード等)によって構成されると捉えることができる。   The components of the hybrid parallel processing systems S1 and S2 described above may be realized by executing a program in the CPU 910 of the computer 900. Specifically, the thread number default value setting unit 12, the thread number resetting unit 13, the data transfer processing unit 14, and the transfer waiting time measuring unit 141, which are the components described in FIG. The program may be realized by reading a program from the ROM 930 or the hard disk drive 940 and executing the read program by the CPU 910 as shown in the flowcharts of FIGS. 3 and 4, for example. In such a case, the present invention described with reference to the above-described embodiment is an example of a computer-readable storage medium (for example, hard disk drive 940 or the like) that stores a code representing the computer program or a code representing the computer program. It can be understood that it is constituted by a removable magnetic disk medium, optical disk medium, memory card, etc. (not shown).

あるいは、スレッド数既定値設定部12,スレッド数再設定部13,データ転送処理部14および転送待ち合わせ時間計測部141は、専用のハードウェアで実現されてもよい。また、ハイブリッド並列処理システムS1およびS2は、これら構成要素を備える専用のハードウェアであってもよい。   Alternatively, the thread number default value setting unit 12, the thread number resetting unit 13, the data transfer processing unit 14, and the transfer waiting time measuring unit 141 may be realized by dedicated hardware. Further, the hybrid parallel processing systems S1 and S2 may be dedicated hardware including these components.

S1,S2 ハイブリッド並列処理システム
10−1〜10−m プロセス
11−1〜11−n スレッド
12 スレッド数既定値設定部
13 スレッド数再設定部
14 データ転送処理部
141 転送待ち合わせ時間計測部
900 コンピュータ
910 CPU
911,912 CPUコア
920 RAM
930 ROM
940 ハードディスクドライブ
950 通信インタフェース
S1, S2 Hybrid parallel processing system 10-1 to 10-m Process 11-1 to 11-n Thread 12 Thread number default value setting unit 13 Thread number resetting unit 14 Data transfer processing unit 141 Transfer waiting time measuring unit 900 Computer 910 CPU
911, 912 CPU core 920 RAM
930 ROM
940 Hard disk drive 950 Communication interface

Claims (7)

並列処理される複数のプロセスを備え、
前記プロセスの各々が、
前記プロセスに割り当てられた処理を実行する1つ以上のスレッドと、
前記プロセス間のデータ転送処理を行うデータ転送処理手段と、
前記スレッド数の再設定を行うスレッド数再設定手段とを含み、
前記データ転送処理手段が、前記プロセス間のデータ転送処理における転送待ち合わせ時間を計測する転送待ち合わせ時間計測手段を含み、前記転送待ち合わせ時間を他のプロセスと送受信し、
前記スレッド数再設定手段が、各スレッドの前記転送待ち合わせ時間の総和を前記プロセスの数で割った値である平均待ち合わせ時間を算出し、前記プロセスの前記スレッド数と前記転送待ち合わせ時間の積から前記平均待ち合わせ時間を引いた差を算出し、前記算出された差が正の値であるプロセスのスレッドの一部を、前記算出された差が負の値であるプロセスに譲渡することにより、前記スレッド数の再設定を行うハイブリッド並列処理システム。
With multiple processes in parallel,
Each of the processes
One or more threads that perform processing assigned to the process;
Data transfer processing means for performing data transfer processing between the processes;
Thread number resetting means for resetting the number of threads,
The data transfer processing means includes a transfer waiting time measuring means for measuring a transfer waiting time in the data transfer processing between the processes, and transmits and receives the transfer waiting time to and from another process;
The thread number resetting means calculates an average waiting time that is a value obtained by dividing the total transfer waiting time of each thread by the number of processes, and calculates the product of the number of threads of the process and the transfer waiting time. Calculating a difference obtained by subtracting an average waiting time, and transferring a part of a thread of a process having a positive value to the calculated difference to a process having a negative value in the calculated difference. A hybrid parallel processing system that resets the number.
前記スレッド数再設定手段が、前記算出された差が正の値であるプロセスそれぞれにおいて、前記平均待ち合わせ時間を前記プロセスの前記転送待ち合わせ時間で割った商と再設定前のスレッド数とに基づいて譲渡されるスレッドの数を決定し、前記算出された差が負の値であるプロセスそれぞれにおいて、前記譲渡されるスレッドの全てを前記算出された差の値の比率に応じて分配することにより前記スレッド数の再設定を行う請求項に記載のハイブリッド並列処理システム。 In each of the processes in which the calculated difference is a positive value, the thread number resetting means is based on a quotient obtained by dividing the average waiting time by the transfer waiting time of the process and the number of threads before resetting. Determining the number of threads to be transferred, and distributing each of the transferred threads according to a ratio of the calculated difference values in each of the processes in which the calculated difference is a negative value. The hybrid parallel processing system according to claim 1 , wherein the number of threads is reset. 前記プロセスが、前記プロセスの実行開始時のスレッド数の既定値を決定するスレッド数既定値設定手段を含む請求項1または2に記載のハイブリッド並列処理システム。 The process is a hybrid parallel processing system according to claim 1 or 2 including a number of threads default value setting means for determining a default value for the number of threads at the start of the execution of the process. 複数のプロセスを並列処理可能なプロセッサを用いて、
前記プロセスの各々が割り当てられた処理を1つ以上のスレッドにより実行し、
前記プロセス間のデータ転送処理における転送待ち合わせ時間を計測し、
前記転送待ち合わせ時間を前記プロセスが他のプロセスと送受信し、
各スレッドの前記転送待ち合わせ時間の総和を前記プロセスの数で割った値である平均待ち合わせ時間を算出し、
前記プロセスの前記スレッド数と前記転送待ち合わせ時間の積から前記平均待ち合わせ時間を引いた差を算出し、
前記算出された差が正の値であるプロセスのスレッドの一部を前記算出された差が負の値であるプロセスに譲渡することにより前記スレッド数の再設定を行うハイブリッド並列処理方法。
Using a processor that can process multiple processes in parallel,
Each of the processes executes the assigned process by one or more threads;
Measure the transfer waiting time in the data transfer process between the processes,
The process sends / receives the transfer waiting time to / from other processes,
Calculate the average waiting time which is a value obtained by dividing the total transfer waiting time of each thread by the number of processes.
Calculate the difference obtained by subtracting the average waiting time from the product of the number of threads of the process and the transfer waiting time,
A hybrid parallel processing method for resetting the number of threads by transferring a part of a thread of a process whose calculated difference is a positive value to a process whose calculated difference is a negative value .
前記算出された差が正の値であるプロセスそれぞれにおいて、前記平均待ち合わせ時間をプロセスの前記転送待ち合わせ時間で割った商および再設定前のスレッド数に基づいて譲渡されるスレッドの数を決定し、
前記算出された差が負の値であるプロセスそれぞれにおいて、前記譲渡されるスレッドの全てを前記算出された差の値の比率に応じて分配することにより前記スレッド数の再設定を行う請求項に記載のハイブリッド並列処理方法。
In each process where the calculated difference is a positive value, determine the number of threads to be transferred based on the quotient obtained by dividing the average waiting time by the transfer waiting time of the process and the number of threads before resetting;
In each process the calculated difference is a negative value, according to claim 4 for resetting the number of the threads by dispensing in accordance with all threads that are the transfer to the ratio of the value of the calculated difference The hybrid parallel processing method described in 1.
複数のプロセスを並列処理し、
前記プロセスの各々が割り当てられた処理を1つ以上のスレッドにより実行し、
前記プロセス間のデータ転送処理における転送待ち合わせ時間を計測し、
前記転送待ち合わせ時間を前記プロセスが他のプロセスと送受信し、
各スレッドの前記転送待ち合わせ時間の総和を前記プロセスの数で割った値である平均待ち合わせ時間を算出し、
前記プロセスの前記スレッド数と前記転送待ち合わせ時間の積から前記平均待ち合わせ時間を引いた差を算出し、
前記算出された差が正の値であるプロセスのスレッドの一部を前記算出された差が負の値であるプロセスに譲渡することにより前記スレッド数の再設定を行う処理をコンピュータに実行させるプログラム。
Process multiple processes in parallel,
Each of the processes executes the assigned process by one or more threads;
Measure the transfer waiting time in the data transfer process between the processes,
The process sends / receives the transfer waiting time to / from other processes,
Calculate the average waiting time which is a value obtained by dividing the total transfer waiting time of each thread by the number of processes.
Calculate the difference obtained by subtracting the average waiting time from the product of the number of threads of the process and the transfer waiting time,
A program for causing a computer to execute a process of resetting the number of threads by transferring a part of a thread of a process whose calculated difference is a positive value to a process whose calculated difference is a negative value .
前記算出された差が正の値であるプロセスそれぞれにおいて、前記平均待ち合わせ時間をプロセスの前記転送待ち合わせ時間で割った商および再設定前のスレッド数に基づいて譲渡されるスレッドの数を決定し、
前記算出された差が負の値であるプロセスそれぞれにおいて、前記譲渡されるスレッドの全てを前記算出された差の値の比率に応じて分配することにより前記スレッド数の再設定を行う処理をコンピュータに実行させる請求項に記載のプログラム。
In each process where the calculated difference is a positive value, determine the number of threads to be transferred based on the quotient obtained by dividing the average waiting time by the transfer waiting time of the process and the number of threads before resetting;
In each of the processes in which the calculated difference is a negative value, a process for resetting the number of threads by distributing all of the transferred threads according to the ratio of the calculated difference values The program according to claim 6 , wherein the program is executed.
JP2012241994A 2012-11-01 2012-11-01 Hybrid parallel processing system, hybrid parallel processing method, and computer program Active JP6070078B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012241994A JP6070078B2 (en) 2012-11-01 2012-11-01 Hybrid parallel processing system, hybrid parallel processing method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012241994A JP6070078B2 (en) 2012-11-01 2012-11-01 Hybrid parallel processing system, hybrid parallel processing method, and computer program

Publications (2)

Publication Number Publication Date
JP2014092873A JP2014092873A (en) 2014-05-19
JP6070078B2 true JP6070078B2 (en) 2017-02-01

Family

ID=50936919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012241994A Active JP6070078B2 (en) 2012-11-01 2012-11-01 Hybrid parallel processing system, hybrid parallel processing method, and computer program

Country Status (1)

Country Link
JP (1) JP6070078B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6435980B2 (en) * 2015-04-27 2018-12-12 富士通株式会社 Parallel computer, thread reallocation determination method, and thread reallocation determination program
JP6891521B2 (en) * 2017-02-08 2021-06-18 日本電気株式会社 Information processing equipment, information processing methods, programs
JP7434925B2 (en) * 2020-01-23 2024-02-21 日本電気株式会社 Information processing device, information processing method and program

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4591310B2 (en) * 2005-10-31 2010-12-01 株式会社日立製作所 Flow control method
JP2009059316A (en) * 2007-09-04 2009-03-19 Nec Corp Measuring device, measurement program, and measuring method
JP5343523B2 (en) * 2008-11-17 2013-11-13 富士通株式会社 Job management apparatus, job management method, and job management program
JP5521644B2 (en) * 2010-02-26 2014-06-18 日本電気株式会社 Hybrid parallel processing system, method, and program
JP5526914B2 (en) * 2010-03-25 2014-06-18 富士通株式会社 Analysis device, analysis method, and analysis program

Also Published As

Publication number Publication date
JP2014092873A (en) 2014-05-19

Similar Documents

Publication Publication Date Title
EP2437168B1 (en) Method and device for balancing load of multiprocessor system
JP6168576B2 (en) Method, apparatus and system for virtual machine migration management
JP6886964B2 (en) Load balancing method and equipment
US8756600B2 (en) Judging apparatus, method, and recording medium of program for estimating the effect of deployment of an application in a virtual machine environment
EP2808789A2 (en) Multi-core apparatus and job scheduling method thereof
WO2021073130A1 (en) Frequency modulation method and apparatus for processor, and computing device
US10198370B2 (en) Memory distribution across multiple non-uniform memory access nodes
WO2024119763A1 (en) Computing power scheduling method for container cluster, and related apparatus
WO2018157586A1 (en) Method for optimising processor resources of computing node, computing node, and server cluster
CN107544845B (en) GPU resource scheduling method and device
CN109729113B (en) Method, server system and computer program product for managing dedicated processing resources
WO2015144008A1 (en) Method and device for allocating physical machine to virtual machine
EP3423940A1 (en) A method and device for scheduling resources
KR20120066189A (en) Apparatus for dynamically self-adapting of software framework on many-core systems and method of the same
JP6070078B2 (en) Hybrid parallel processing system, hybrid parallel processing method, and computer program
US20230305880A1 (en) Cluster distributed resource scheduling method, apparatus and device, and storage medium
JP5521644B2 (en) Hybrid parallel processing system, method, and program
US11269686B2 (en) Adaptive consumer thread pool
US8775767B2 (en) Method and system for allocating memory to a pipeline
CN112882827B (en) Method, electronic device and computer program product for load balancing
US20160055037A1 (en) Analysis controller, analysis control method and computer-readable medium
WO2020076394A1 (en) Resource allocation using restore credits
US9563532B1 (en) Allocation of tasks in large scale computing systems
JP2007172322A (en) Distributed processing type multiprocessor system, control method, multiprocessor interruption controller, and program
CN102945214B (en) Based on the method for IO distribution optimization time delay interrupt processing task

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151015

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160712

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160909

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161219

R150 Certificate of patent or registration of utility model

Ref document number: 6070078

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150