JP6891521B2 - Information processing equipment, information processing methods, programs - Google Patents

Information processing equipment, information processing methods, programs Download PDF

Info

Publication number
JP6891521B2
JP6891521B2 JP2017020910A JP2017020910A JP6891521B2 JP 6891521 B2 JP6891521 B2 JP 6891521B2 JP 2017020910 A JP2017020910 A JP 2017020910A JP 2017020910 A JP2017020910 A JP 2017020910A JP 6891521 B2 JP6891521 B2 JP 6891521B2
Authority
JP
Japan
Prior art keywords
processing
offload
executed
processor
information
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
JP2017020910A
Other languages
Japanese (ja)
Other versions
JP2018128811A (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 JP2017020910A priority Critical patent/JP6891521B2/en
Publication of JP2018128811A publication Critical patent/JP2018128811A/en
Application granted granted Critical
Publication of JP6891521B2 publication Critical patent/JP6891521B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)

Description

本発明は、情報処理装置、情報処理方法、プログラムに関し、特に、メインプロセッサにおいて実行する並列分散プログラムの一部をサブプロセッサで実行するオフロード処理を行う情報処理装置、情報処理方法、プログラムに関する。 The present invention relates to an information processing device, an information processing method, and a program, and more particularly to an information processing device, an information processing method, and a program that perform offload processing in which a part of a parallel distributed program executed by a main processor is executed by a subprocessor.

メインプロセッサとサブプロセッサとを備えるサーバシステムなどの情報処理装置が知られている。このような情報処理装置では、プログラムのレイテンシを短くするなどの目的のため、メインプロセッサで動作するプログラムの実行処理の一部をサブプロセッサに実行させるオフロード処理を行うことがある。 Information processing devices such as a server system including a main processor and a sub-processor are known. In such an information processing device, an offload process may be performed in which a subprocessor executes a part of the execution process of the program running on the main processor for the purpose of shortening the latency of the program.

このようなオフロード処理を行う際に用いられる技術の一つとして、例えば、特許文献1がある。特許文献1には、第1プロセッサと、第2プロセッサと、第1プロセッサと第2プロセッサとをつなぐ通信バスと、通信バス遅延モニタリング部と、オフロード判定・指示部と、を有する演算処理システムが記載されている。特許文献1によると、通信遅延モニタリング部は、通信バスにおける遅延時間を観測して、バス利用率を求める。また、オフロード判定・指示部は、バス利用率に基づいて、入力処理のオフロード判定および指示を行う。このようにバス利用率に基づくオフロード判定、指示を行うことで、サブプロセッサである第2プロセッサによる処理に対する応答時間の制約を満たしつつ、メインプロセッサである第1プロセッサの処理量を減らして消費電力を低減することが出来る。 Patent Document 1 is, for example, one of the techniques used when performing such an offload process. Patent Document 1 describes an arithmetic processing system including a first processor, a second processor, a communication bus connecting the first processor and the second processor, a communication bus delay monitoring unit, and an offload determination / instruction unit. Is described. According to Patent Document 1, the communication delay monitoring unit observes the delay time in the communication bus to obtain the bus utilization rate. In addition, the offload determination / instruction unit makes an offload determination and instruction for input processing based on the bus utilization rate. By performing offload determination and instruction based on the bus utilization rate in this way, the processing amount of the first processor, which is the main processor, is reduced and consumed while satisfying the restriction of the response time for the processing by the second processor, which is the sub-processor. Power can be reduced.

また、関連する技術として、例えば、特許文献2がある。特許文献2には、分散並列処理の各オフロード対象処理のオフロード比率を変更する技術が記載されている。具体的には、特許文献2には、特定処理判定手段と、処理変換手段と、を備えるプログラム変換装置が記載されている。特許文献2によると、特定処理判定手段は、第1のプロセッサが備える第1のリソースの第1の使用量と第2のプロセッサが備える第2のリソースの第2の使用量との使用比率を第1の比率として併用して動作する第1の実行方式指定プログラムを含む対象プログラム中の部分プログラムの範囲を判定する。また、処理変換手段は、部分プログラムを、使用比率を第1の比率とは異なる第2の比率として併用して動作する第2の実行方式指定プログラムに変換し、変換後プログラムを生成する。このような構成により、システムが備えるプロセッサのリソースを最大限に使用し、処理能力を向上させることが出来る。 Further, as a related technique, for example, there is Patent Document 2. Patent Document 2 describes a technique for changing the offload ratio of each offload target process of distributed parallel processing. Specifically, Patent Document 2 describes a program conversion device including a specific processing determination means and a processing conversion means. According to Patent Document 2, the specific processing determination means determines the usage ratio of the first usage amount of the first resource included in the first processor and the second usage amount of the second resource included in the second processor. The range of the partial program in the target program including the first execution method designation program that operates in combination as the first ratio is determined. Further, the processing conversion means converts the partial program into a second execution method designation program that operates by using the usage ratio as a second ratio different from the first ratio, and generates a converted program. With such a configuration, the processor resources of the system can be used to the maximum and the processing capacity can be improved.

特開2016−139271号公報Japanese Unexamined Patent Publication No. 2016-139271 国際公開第2014/002412号International Publication No. 2014/002412

並行して動作するプロセス間でメッセージを送受信するメッセージパッシング型の分散処理プログラムなどにおいては、プロセス間で通信処理や同期処理を行いながらアプリケーションの実行を進めていくことが一般的である。そのため、上記のような分散処理プログラムでは、プロセスごとに通信や同期の待ち時間が発生することになる。 In a message-passing type distributed processing program that sends and receives messages between processes that operate in parallel, it is common to proceed with the execution of the application while performing communication processing and synchronous processing between the processes. Therefore, in the distributed processing program as described above, a waiting time for communication or synchronization occurs for each process.

しかしながら、特許文献1に記載されている技術では、バス利用率のみが考慮されており、上記プロセス間の待ち時間は考慮されていない。そのため、オフロードによって部分的に処理が高速化できたとしても、待ち時間が増加するのみであり、全体としてのアプリケーションの実行時間の短縮には寄与しないことがあった。その結果、オフロード先のリソースを効率的に利用できていないおそれがある、という問題が生じていた。 However, in the technique described in Patent Document 1, only the bus utilization rate is considered, and the waiting time between the processes is not considered. Therefore, even if the processing can be partially speeded up by offloading, the waiting time is only increased, and it may not contribute to shortening the execution time of the application as a whole. As a result, there is a problem that the resources of the offload destination may not be used efficiently.

また、特許文献2に記載されている技術でも、プロセス間の待ち時間は考慮されていない。そのため、特許文献2に記載されている技術は、特許文献1の場合と同様に、全体としてのアプリケーションの実行時間の短縮に寄与せず、オフロード先のリソースを効率的に利用できないおそれがあった。 Further, even in the technique described in Patent Document 2, the waiting time between processes is not considered. Therefore, the technique described in Patent Document 2 does not contribute to shortening the execution time of the application as a whole as in the case of Patent Document 1, and there is a possibility that the resource of the offload destination cannot be used efficiently. It was.

このように、オフロード処理を行う際に、オフロード先のリソースを効率的に利用することが難しい、という問題が生じていた。 As described above, there has been a problem that it is difficult to efficiently use the resources of the offload destination when performing the offload processing.

そこで、本発明の目的は、オフロード処理を行う際に、オフロード先のリソースを効率的に利用することが難しい、という問題を解決する情報処理装置、情報処理方法、プログラムを提供することにある。 Therefore, an object of the present invention is to provide an information processing device, an information processing method, and a program that solve the problem that it is difficult to efficiently use the resources of the offload destination when performing the offload processing. is there.

かかる目的を達成するため本発明の一形態である情報処理装置は、
プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有する情報処理装置であって、
前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成され、
前記情報処理装置は、前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する判断手段を有する
という構成を採る。
The information processing device, which is one embodiment of the present invention, is used to achieve such an object.
An information processing device having a processor capable of causing an external processor to execute a part of process processing and processing a plurality of the processes in parallel.
The process is configured to wait for synchronization with other processes that are executed at the same time after a predetermined process.
The information processing apparatus determines for each process whether or not to let the external processor execute a part of the processing of the process based on the start time of the synchronization wait of each of the processes simultaneously executed by the processor. Take the configuration of having means.

また、本発明の他の形態であるプログラムは、
プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有し、前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置に、
前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する判断手段を実現させるためのプログラムである。
In addition, the program which is another form of the present invention
It has a processor capable of causing a part of the processing of a process to be executed by an external processor and processing a plurality of the processes in parallel, and the processes are executed at the same time after a predetermined processing. For information processing devices that are configured to wait for synchronization with other processes
In order to realize a determination means for each process to determine whether or not a part of the processing of the process is to be executed by the external processor based on the start time of the synchronization wait of each of the processes simultaneously executed by the processor. It is a program.

また、本発明の他の形態である情報処理方法は、
プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有し、前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置により行われる情報処理方法であって、
前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻を取得し、取得した同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する
という構成を採る。
Further, the information processing method, which is another embodiment of the present invention, is
It has a processor capable of causing a part of the processing of a process to be executed by an external processor and processing a plurality of the processes in parallel, and the processes are executed at the same time after a predetermined processing. An information processing method performed by an information processing device that is configured to wait for synchronization with other processes.
Whether or not to acquire the start time of the synchronization wait of each of the processes simultaneously executed by the processor and cause the external processor to execute a part of the processing of the process based on the acquired synchronization wait start time. The structure is to judge each time.

本発明は、以上のように構成されることにより、オフロード処理を行う際に、オフロード先のリソースを効率的に利用することが難しい、という問題を解決する情報処理装置、情報処理方法、プログラムを提供することが可能となる。 The present invention is an information processing apparatus, an information processing method, which solves the problem that it is difficult to efficiently use the resources of the offload destination when performing the offload processing by being configured as described above. It becomes possible to provide a program.

本発明の第1の実施形態に係る計算機システムの全体の構成の一例を示すブロック図である。It is a block diagram which shows an example of the whole structure of the computer system which concerns on 1st Embodiment of this invention. 図1で示す計算機システムで実行されるメッセージパッシング型のアプリケーションプログラムの一例を示す図である。It is a figure which shows an example of the message passing type application program executed in the computer system shown in FIG. 図1で示す計算機が果たす役割の一例を示す図である。It is a figure which shows an example of the role played by the computer shown in FIG. 図1で示す計算機システムで実行される処理の一例を説明するための図である。It is a figure for demonstrating an example of the process executed by the computer system shown in FIG. 変換手段により行われる処理の一例を示すフローチャートである。It is a flowchart which shows an example of the process performed by a conversion means. オフロード実行手段がオフロード比率を決定する際の処理の一例を示すフローチャートである。It is a flowchart which shows an example of the process when the offload execution means determines an offload ratio. オフロード処理を行う際の処理の一例を示すフローチャートである。It is a flowchart which shows an example of the process at the time of performing an offload process. 本発明の第1の実施形態に係る計算機システムにより行われるオフロード処理の一例を示す図である。It is a figure which shows an example of the offload processing performed by the computer system which concerns on 1st Embodiment of this invention. 本発明の第2の実施形態に係る情報処理装置の構成の一例を示す概略ブロック図である。It is a schematic block diagram which shows an example of the structure of the information processing apparatus which concerns on 2nd Embodiment of this invention.

[第1の実施形態]
本発明の第1の実施形態を図1乃至図8を参照して説明する。図1は、計算機システム100の全体の構成の一例を示すブロック図である。図2は、計算機システム100で実行されるメッセージパッシング型のアプリケーションプログラム200の一例を示す図である。図3は、計算機101が果たす役割の一例を示す図である。図4は、計算機システム100で実行される処理の一例を説明するための図である。図5は、変換手段310により行われる処理の一例を示すフローチャートである。図6は、オフロード実行手段320がオフロード比率を決定する際の処理の一例を示すフローチャートである。図7は、オフロード処理を行う際の処理の一例を示すフローチャートである。図8は、計算機システム100により行われるオフロード処理の一例を示す図である。
[First Embodiment]
The first embodiment of the present invention will be described with reference to FIGS. 1 to 8. FIG. 1 is a block diagram showing an example of the overall configuration of the computer system 100. FIG. 2 is a diagram showing an example of a message passing type application program 200 executed by the computer system 100. FIG. 3 is a diagram showing an example of the role played by the computer 101. FIG. 4 is a diagram for explaining an example of processing executed by the computer system 100. FIG. 5 is a flowchart showing an example of processing performed by the conversion means 310. FIG. 6 is a flowchart showing an example of processing when the offload execution means 320 determines the offload ratio. FIG. 7 is a flowchart showing an example of processing when performing offload processing. FIG. 8 is a diagram showing an example of offload processing performed by the computer system 100.

第1の実施形態では、メインプロセッサ300用のメッセージパッシング型の分散並列プログラムであるアプリケーションプログラム200に基づく実行の一部をサブプロセッサ400へオフロードする処理を行うことが可能な計算機システム100について説明する。本実施形態における計算機システム100で実行される分散並列プログラムは、並列して処理されるプロセス(プログラムの実行単位)間で通信処理や同期処理を行いながらアプリケーション実行を進めていく。後述するように、計算機システム100は、当該計算機システム100において並列で処理する各プロセスの通信待ち、同期待ちの待ち時間(あるいは、同期待ちの開始時刻)を考慮して、プロセスおよびオフロード対象処理ごとに、オフロードするか否か、オフロードする際の比率、などを判断する。つまり、計算機システム100は、同期待ちの開始時刻などに基づいて、メインプロセッサ300が実行する処理の一部をサブプロセッサ400に実行させる。このように同期待ちの待ち時間(同期待ちの開始時刻)を考慮したオフロード実行可否の判断を行うことで、アプリケーション全体の実行時間の短縮に寄与しない不要なオフロードを抑制することが可能となり、サブプロセッサ400のリソースを過剰に利用することを抑制することが可能となる。 In the first embodiment, the computer system 100 capable of offloading a part of the execution based on the application program 200, which is a message passing type distributed parallel program for the main processor 300, to the subprocessor 400 will be described. To do. The distributed parallel program executed by the computer system 100 in the present embodiment advances application execution while performing communication processing and synchronous processing between processes (program execution units) processed in parallel. As will be described later, the computer system 100 considers the waiting time for communication and the waiting time for synchronization (or the start time of the synchronization waiting) of each process processed in parallel in the computer system 100, and processes the process and the offload target process. For each, determine whether or not to offload, the ratio when offloading, and so on. That is, the computer system 100 causes the sub-processor 400 to execute a part of the processing executed by the main processor 300 based on the start time of the synchronization wait and the like. By determining whether or not offload execution is possible in consideration of the waiting time for synchronization waiting (start time of synchronization waiting) in this way, it is possible to suppress unnecessary offloading that does not contribute to shortening the execution time of the entire application. , It is possible to suppress excessive use of the resources of the subprocessor 400.

図1は、本発明の第1の実施形態に係る計算機システム100(情報処理装置)の全体の構成の一例を示している。図1を参照すると、計算機システム100は、複数の(例えば、2以上の任意の数の)計算機101を有している。また、複数の計算機101のそれぞれは、バスやネットワークなどの接続網105を介して互いに通信可能なよう接続されている。 FIG. 1 shows an example of the overall configuration of the computer system 100 (information processing apparatus) according to the first embodiment of the present invention. Referring to FIG. 1, the computer system 100 has a plurality of computers 101 (for example, an arbitrary number of two or more). Further, each of the plurality of computers 101 is connected so as to be able to communicate with each other via a connection network 105 such as a bus or a network.

図1で示すように、計算機101は、例えば、演算処理装置102と、記憶装置103と、通信装置104と、を有している。演算処理装置102は、例えば記憶装置103や外部の記憶装置に格納されたプログラムなどに基づいて演算処理を行う。記憶装置103は、メモリなどであり、プログラムや処理に必要な情報などが格納される。通信装置104は、接続網105を介した他の計算機101との通信の際などに用いる。 As shown in FIG. 1, the computer 101 includes, for example, an arithmetic processing unit 102, a storage device 103, and a communication device 104. The arithmetic processing unit 102 performs arithmetic processing based on, for example, a storage device 103 or a program stored in an external storage device. The storage device 103 is a memory or the like, and stores programs, information necessary for processing, and the like. The communication device 104 is used when communicating with another computer 101 via the connection network 105.

本実施形態においては、上記のような計算機101のうち、1つ以上の計算機101がメインプロセッサ300(プロセッサ)の役割を果たし、それ以外の計算機101がサブプロセッサ400(外部プロセッサ)の役割を果たす。また、本実施形態においては、メインプロセッサ300はベクトル処理を高速実行可能なベクトルプロセッサであるとし、サブプロセッサ400は、スカラ処理を高速実行可能なスカラプロセッサであるものとする。換言すると、計算機システム100は、1つ又は複数個の計算機101から構成されるベクトル型のメインプロセッサ300(GPGPU(General-purpose computing on graphics processing units)などでも良い)と、1つ又は複数個の計算機101から構成されるスカラ型のサブプロセッサ400と、から構成されている。 In the present embodiment, among the above-mentioned computers 101, one or more computers 101 play the role of the main processor 300 (processor), and the other computers 101 play the role of the sub-processor 400 (external processor). .. Further, in the present embodiment, it is assumed that the main processor 300 is a vector processor capable of executing vector processing at high speed, and the subprocessor 400 is a scalar processor capable of executing scalar processing at high speed. In other words, the computer system 100 includes a vector-type main processor 300 (may be a GPGPU (General-purpose computing on graphics processing units) or the like) composed of one or a plurality of computers 101, and one or a plurality of computers. It is composed of a scalar type subprocessor 400 composed of a computer 101, and a scalar type subprocessor 400.

ここで、図2を参照して、計算機システム100で実行されるメッセージパッシング型のアプリケーションプログラム200の一例について説明する。 Here, an example of a message passing type application program 200 executed by the computer system 100 will be described with reference to FIG.

図2を参照すると、アプリケーションプログラム200は、オフロード開始指示行201とスカラ処理部202とオフロード終了指示行203とをそれぞれ1つ以上含んでいる。オフロード開始指示行201は、オフロード対象とするコード部分の開始を指定する。スカラ処理部202は、オフロード開始指示行201とオフロード終了指示行との間に挟まれた部分であり、本実施形態におけるオフロード対象処理である。換言すると、計算機システム100は、スカラ処理部202の部分をオフロードするか否か判断するとともに、オフロードする際の比率を判断することになる。オフロード終了指示行203は、オフロード対象とするコード部分の終了を指定する。 Referring to FIG. 2, the application program 200 includes one or more offload start instruction line 201, scalar processing unit 202, and offload end instruction line 203, respectively. The offload start instruction line 201 specifies the start of the code portion to be offloaded. The scalar processing unit 202 is a portion sandwiched between the offload start instruction line 201 and the offload end instruction line, and is the offload target processing in the present embodiment. In other words, the computer system 100 determines whether or not to offload the portion of the scalar processing unit 202, and also determines the ratio at the time of offloading. The offload end instruction line 203 specifies the end of the code portion to be offloaded.

また、アプリケーションプログラム200は、ベクトル処理部204を0個以上含んでおり、プロセス間同期処理部205を1つ以上含んでいる。ベクトル処理部204は、メインプロセッサ300において処理することになる部分である。プロセス間同期処理部205は、同時に実行される他のプロセスとの間での同期処理、通信処理などを行うことになる部分である。 Further, the application program 200 includes 0 or more vector processing units 204, and includes 1 or more interprocess synchronization processing units 205. The vector processing unit 204 is a part to be processed by the main processor 300. The interprocess synchronization processing unit 205 is a part that performs synchronization processing, communication processing, and the like with other processes that are executed at the same time.

なお、アプリケーションプログラム200上での各処理部の出現順序は、図2で示す場合に限定されない。例えば、オフロード開始指示行201より前にベクトル処理部204が存在していても構わない。また、オフロード開始指示行201、オフロード終了指示行203については、図2で示す順での並びを1セットとして、1セット以上をアプリケーションプログラム200が備えるものとする。つまり、アプリケーションプログラム200は、オフロード開始指示行201、オフロード終了指示行203の順番で構成されるセットを1つ以上含んでいる。 The order of appearance of each processing unit on the application program 200 is not limited to the case shown in FIG. For example, the vector processing unit 204 may exist before the offload start instruction line 201. Further, regarding the offload start instruction line 201 and the offload end instruction line 203, one set is arranged in the order shown in FIG. 2, and one or more sets are provided by the application program 200. That is, the application program 200 includes one or more sets composed of the offload start instruction line 201 and the offload end instruction line 203 in this order.

以上が、アプリケーションプログラム200の一例である。続いて、図3及び図4を参照して、メインプロセッサ300とサブプロセッサ400についてより詳細に説明する。 The above is an example of the application program 200. Subsequently, the main processor 300 and the sub-processor 400 will be described in more detail with reference to FIGS. 3 and 4.

メインプロセッサ300は、上述したように、例えばベクトル型のプロセッサである。メインプロセッサ300は、後述する変換手段310により変換されたベクトルプロセッサ向けの実行コードを実行する。また、メインプロセッサ300は、オフロード対象処理の一部又は全部の実行をサブプロセッサ400にオフロードする。 As described above, the main processor 300 is, for example, a vector type processor. The main processor 300 executes the execution code for the vector processor converted by the conversion means 310 described later. Further, the main processor 300 offloads the execution of a part or all of the offload target processing to the subprocessor 400.

図3を参照すると、メインプロセッサ300は、変換手段310とオフロード実行手段320とを有している。上記各手段は、例えば、メインプロセッサ300として動作する計算機101が有する記憶装置103に格納されたプログラムを、当該計算機101が有する演算処理装置102が実行することで、実現される。 Referring to FIG. 3, the main processor 300 has a conversion means 310 and an offload execution means 320. Each of the above means is realized, for example, by executing a program stored in the storage device 103 of the computer 101 operating as the main processor 300 by the arithmetic processing device 102 of the computer 101.

変換手段310は、アプリケーションプログラム200に基づいて、変換後アプリケーションプログラム500を生成する。図4で示すように、変換手段310には、アプリケーションプログラム200が入力される。すると、変換手段310は、アプリケーションプログラム200を入力として、実行形式ファイルである変換後アプリケーションプログラム500を生成する。 The conversion means 310 generates the converted application program 500 based on the application program 200. As shown in FIG. 4, the application program 200 is input to the conversion means 310. Then, the conversion means 310 takes the application program 200 as an input and generates the converted application program 500 which is an execution format file.

図3、図4を参照すると、変換手段310は、ベクトルプロセッサ向けコード生成手段311とオフロード処理コード生成手段312とを有している。 Referring to FIGS. 3 and 4, the conversion means 310 includes a code generation means 311 for a vector processor and an offload processing code generation means 312.

ベクトルプロセッサ向けコード生成手段311は、実行形式ファイルの生成において、メインプロセッサ300であるベクトルプロセッサ上で動作する実行コードを生成する。換言すると、ベクトルプロセッサ向けコード生成手段311は、アプリケーションプログラム200を入力として、ソースコード全体に対して、ベクトルプロセッサ向けの実行コードを生成する。 The code generation means 311 for a vector processor generates an execution code that operates on the vector processor, which is the main processor 300, in the generation of the execution format file. In other words, the code generation means 311 for the vector processor takes the application program 200 as an input and generates the execution code for the vector processor for the entire source code.

オフロード処理コード生成手段312は、実行形式ファイルの生成において、オフロード開始指示行201およびオフロード終了指示行203で挟まれたソースコード部分に対して、サブプロセッサ400であるスカラプロセッサ向けの実行コードを生成する。換言すると、オフロード処理コード生成手段312は、スカラ処理部202に対して、ベクトルプロセッサ向けコード生成手段311により生成済みのベクトルプロセッサ向けコードの分岐処理として、スカラプロセッサ向けの実行コードを生成する。後述するオフロード実行手段320は、オフロード処理コード生成手段312により生成された実行コードに基づいて、オフロード処理を実施することになる。 The offload processing code generation means 312 executes the execution format file for the scalar processor, which is the subprocessor 400, with respect to the source code portion sandwiched between the offload start instruction line 201 and the offload end instruction line 203. Generate code. In other words, the offload processing code generation means 312 generates the execution code for the scalar processor for the scalar processing unit 202 as the branch processing of the code for the vector processor already generated by the code generation means 311 for the vector processor. The offload execution means 320, which will be described later, executes the offload processing based on the execution code generated by the offload processing code generation means 312.

以上のように、変換手段310は、アプリケーションプログラム200を入力として、実行形式ファイルである変換後アプリケーションプログラム500を生成する(図4参照)。変換手段310により生成される変換後アプリケーションプログラム500には、ベクトルプロセッサ向けの実行コードと、スカラプロセッサ向けの実行コードと、が含まれていることになる。 As described above, the conversion means 310 takes the application program 200 as an input and generates the converted application program 500, which is an execution format file (see FIG. 4). The converted application program 500 generated by the conversion means 310 includes an execution code for the vector processor and an execution code for the scalar processor.

オフロード実行手段320は、計算機システム100上で変換後アプリケーションプログラム500と連携して動作する。 The offload execution means 320 operates on the computer system 100 in cooperation with the converted application program 500.

例えば、オフロード実行手段320は、変換後アプリケーションプログラム500を初めて実行する際には、オフロード処理は実施しない。つまり、全ての処理をメインプロセッサ300であるベクトルプロセッサ上でのみ実行する。この際に、オフロード実行手段320は、各処理の性能情報を採取する。そして、オフロード実行手段320は、採取した性能情報に基づく分析を行い、オフロード処理を実行するか否かなどを判断する。また、同一の変換後アプリケーションプログラム500を2回目以降に実行する際には、オフロード実行手段320は、メインプロセッサ300であるベクトルプロセッサだけではなくサブプロセッサ400であるスカラプロセッサも利用して、オフロード処理を伴う実行を行う。この際、オフロード実行手段320は、変換後アプリケーションプログラム500を初めて実行した際の分析結果に基づいて、オフロード処理を実行する。 For example, the offload execution means 320 does not perform the offload process when the converted application program 500 is executed for the first time. That is, all the processing is executed only on the vector processor which is the main processor 300. At this time, the offload execution means 320 collects performance information of each process. Then, the offload execution means 320 performs an analysis based on the collected performance information, and determines whether or not to execute the offload process. Further, when the same converted application program 500 is executed for the second time or later, the offload execution means 320 is turned off by using not only the vector processor which is the main processor 300 but also the scalar processor which is the subprocessor 400. Execute with load processing. At this time, the offload execution means 320 executes the offload process based on the analysis result when the converted application program 500 is executed for the first time.

図3、図4を参照すると、オフロード実行手段320は、処理情報採取手段321と、処理情報分析手段322と、オフロード比率決定手段323と、オフロード処理実行手段324と、を有している。 Referring to FIGS. 3 and 4, the offload execution means 320 includes a processing information collecting means 321, a processing information analysis means 322, an offload ratio determining means 323, and an offload processing executing means 324. There is.

処理情報採取手段321は、変換後アプリケーションプログラム500を初めて実行する際に、スカラ処理やベクトル処理、通信・同期処理などの各処理について性能情報を採取する。処理情報採取手段321は、採取した性能情報を、例えば記憶装置103に格納する。 When the application program 500 after conversion is executed for the first time, the processing information collecting means 321 collects performance information for each processing such as scalar processing, vector processing, communication / synchronization processing, and the like. The processing information collecting means 321 stores the collected performance information in, for example, the storage device 103.

性能情報は、オフロード比率を決定するために利用する情報である。性能情報は、例えば、処理情報分析手段322により利用される。性能情報としては、例えば、CPU(Central Processing Unit)やメモリ、キャッシュ等の利用状況等の計算機システム100のリソース情報、命令の種別や引数、呼び出し回数および実行時間等の命令情報、関数の実行時間、引数、呼び出し回数、呼び出し関係などの関数情報、プロセス間の通信・同期処理の通信サイズ、通信・同期の開始・終了時刻、待ち合わせ時間、通信相手の情報等の通信・同期処理情報などが考えられる。性能情報は、上記例示した一部であっても構わないし、上記例示した以外の情報を含んでいても構わない。 Performance information is information used to determine the offload ratio. The performance information is used, for example, by the processing information analysis means 322. The performance information includes, for example, resource information of the computer system 100 such as usage status of CPU (Central Processing Unit), memory, cache, etc., instruction information such as instruction type and argument, number of calls and execution time, and function execution time. , Arguments, number of calls, function information such as call relations, communication size of communication / synchronization processing between processes, communication / synchronization processing information such as communication / synchronization start / end time, waiting time, communication partner information, etc. Be done. The performance information may be a part of the above-exemplified information, or may include information other than the above-exemplified information.

処理情報分析手段322は、変換後アプリケーションプログラム500の初めての実行が終了した後、処理情報採取手段321が採取した性能情報に基づいて、プロセスごと、オフロード対象処理ごとに、オフロード処理した場合の同期待ちの開始時間の変化などについて分析する。 When the processing information analysis means 322 performs offload processing for each process and each offload target process based on the performance information collected by the processing information collecting means 321 after the first execution of the converted application program 500 is completed. Analyze changes in the start time of the synchronization wait.

例えば、処理情報分析手段322は、変換後アプリケーションプログラム500の初めての実行が終了した後、記憶装置103から性能情報を取得する。そして、処理情報分析手段322は、取得した性能情報に基づいて、オフロードに伴う転送時間も考慮して、予め定められたオフロード比率ごとに、オフロード処理した場合のオフロード対象処理の実行時間の変化、その場合の各通信・同期処理の開始・終了時刻、処理時間および待ち合わせ時間の変化、オフロード処理により消費されるスカラプロセッサのリソース使用量などを分析する。つまり、処理情報分析手段322は、全ての処理をメインプロセッサ300で実行した場合に採取した情報に基づいて、処理の一部をオフロードした場合の通信・同期処理の開始時刻などを推定・分析する。その後、処理情報分析手段322は、分析結果をオフロード比率決定手段323に送信する。 For example, the processing information analysis means 322 acquires performance information from the storage device 103 after the first execution of the converted application program 500 is completed. Then, the processing information analysis means 322 executes the offload target processing when the offload processing is performed for each predetermined offload ratio in consideration of the transfer time associated with the offload based on the acquired performance information. Analyze changes in time, start / end times of each communication / synchronization process in that case, changes in processing time and wait time, resource usage of the scalar processor consumed by offload processing, and so on. That is, the processing information analysis means 322 estimates and analyzes the start time of communication / synchronous processing when a part of the processing is offloaded based on the information collected when all the processing is executed by the main processor 300. To do. After that, the processing information analysis means 322 transmits the analysis result to the offload ratio determination means 323.

なお、処理情報分析手段322が分析を行うオフロード比率は、任意に設定して構わない(例えば、処理情報分析手段322は、オフロード比率が10%ずつ変化した場合のそれぞれの分析を行うなど)。 The offload ratio for analysis by the processing information analysis means 322 may be arbitrarily set (for example, the processing information analysis means 322 performs each analysis when the offload ratio changes by 10%, etc.). ).

オフロード比率決定手段323は、処理情報分析手段322が分析した分析結果に基づいて、プロセス間の同期・通信待ち時間(あるいは、同期待ち開始時刻)を考慮して、アプリケーション全体の実行時間が最小となり、かつ、サブプロセッサ400であるスカラプロセッサのリソース利用量が最小となるように、プロセスごと、オフロード対象処理ごとにオフロード比率を算出する。 The offload ratio determining means 323 considers the synchronization / communication waiting time (or the synchronization waiting start time) between processes based on the analysis result analyzed by the processing information analyzing means 322, and minimizes the execution time of the entire application. The offload ratio is calculated for each process and each offload target process so that the resource usage of the scalar processor, which is the subprocessor 400, is minimized.

例えば、オフロード比率決定手段323は、以下の計算によってオフロード比率を決定する。つまり、オフロード比率決定手段323は、あるプロセスのあるオフロード対象処理とその後に続く同期・通信処理に関して、以下の条件を満たす場合に、オフロード対象処理をオフロード実行することを決定する。
1.“オフロード対象処理のメインプロセッサ300での実行時間” > “オフロード対象処理のサブプロセッサ400での実行時間+オフロード転送時間(往復)”
2.“当該プロセスについて、オフロード対象処理をメインプロセッサ300で実行した場合の同期待ちの開始時刻” > “当該プロセスの同期・通信相手(つまり、並列で実行される他のプロセス)について、オフロード対象処理をオフロード実行(オフロード処理によるオフロード対象処理の実行時間短縮が最も大きい場合のオフロード比率でのオフロード実行)した場合の同期待ちの開始時刻の中で、最も遅い開始時刻”
For example, the offload ratio determining means 323 determines the offload ratio by the following calculation. That is, the offload ratio determining means 323 determines to execute the offload target process when the following conditions are satisfied with respect to a certain offload target process of a certain process and the subsequent synchronization / communication process.
1. 1. "Execution time of offload target processing on main processor 300">"Execution time of offload target processing on subprocessor 400 + offload transfer time (round trip)"
2. "Start time of synchronization wait when the process to be offloaded is executed on the main processor 300 for the process">"The synchronization / communication partner of the process (that is, other processes executed in parallel) is the offload target. The latest start time among the start times of the synchronization wait when the process is executed offload (offload execution at the offload ratio when the execution time reduction of the offload target process by the offload process is the largest) "

このように、オフロード比率決定手段323は、オフロードを実行することで、プロセスの全てをメインプロセッサ300が実行するよりも実行時間が短くなることを第1の条件としてオフロードを実行するか否か判断する。 In this way, does the offload ratio determining means 323 execute the offload on the first condition that the execution time is shorter than that of the main processor 300 executing all the processes by executing the offload? Judge whether or not.

また、オフロード比率決定手段323は、オフロードを実行することで、アプリケーション全体の実行時間が短くなることを第2の条件として、オフロードを実行するか否か判断する。つまり、オフロード比率決定手段323は、メインプロセッサ300で同時に実行されるプロセスそれぞれの同期待ちの開始時刻に基づいて、プロセスの処理の一部をサブプロセッサ400に実行させるか否か判断する。より具体的には、オフロード比率決定手段323は、プロセスをメインプロセッサ300で実行した場合の同期待ちの開始時刻が、並列で実行される他のプロセスにおいてオフロード実行した場合(処理の一部をサブプロセッサ400に実行させた場合)の同期待ちの開始時刻よりも遅くなる場合に、当該プロセスの一部をサブプロセッサ400に実行させる。 Further, the offload ratio determining means 323 determines whether or not to execute the offload on the condition that the execution time of the entire application is shortened by executing the offload. That is, the offload ratio determining means 323 determines whether or not to let the subprocessor 400 execute a part of the process of the process based on the start time of the synchronization wait of each of the processes executed simultaneously in the main processor 300. More specifically, the offload ratio determining means 323 is when the start time of the synchronization wait when the process is executed by the main processor 300 is executed offload in another process executed in parallel (a part of the process). When it is later than the start time of the synchronization wait (when the subprocessor 400 executes the process), the subprocessor 400 is made to execute a part of the process.

また、オフロード比率決定手段323は、オフロード実行すると決定した場合、並列で動作する各プロセスの同期待ちの開始時刻の関係性に基づいて、オフロード対象処理のオフロード比率を決定する。例えば、オフロード比率決定手段323は、上記の条件2において、あるプロセスの同期待ちの開始時刻と当該あるプロセスと並列で動作する他のプロセスの同期待ちの開始時刻とが等しくなるように、オフロード比率を決定する。なお、オフロード比率の変更は、例えば、国際公開第2014/002412号に開示されている方法などを用いて行うことが出来る(例示した以外の方法でオフロード比率を変更しても構わない)。 When the offload ratio determining means 323 determines that the offload is to be executed, the offload ratio determining means 323 determines the offload ratio of the offload target process based on the relationship between the start times of the synchronization waits of the processes operating in parallel. For example, the offload ratio determining means 323 is turned off so that the start time of the synchronization wait of a certain process is equal to the start time of the synchronization wait of another process operating in parallel with the certain process under the above condition 2. Determine the load ratio. The offload ratio can be changed by using, for example, the method disclosed in International Publication No. 2014/002412 (the offload ratio may be changed by a method other than those illustrated). ..

上記のように、オフロード比率決定手段323は、処理情報分析手段322が分析した分析結果に基づいて、プロセスごと、オフロード対象処理ごとに、オフロードするか否か判断するとともに、オフロードする際のオフロード比率を決定する。その後、オフロード比率決定手段323は、判断した結果や決定したオフロード比率を記憶装置103や外部の図示しない記憶装置に格納する。 As described above, the offload ratio determining means 323 determines whether or not to offload for each process and each offload target process based on the analysis result analyzed by the processing information analysis means 322, and offloads. Determine the offload ratio. After that, the offload ratio determining means 323 stores the determined result and the determined offload ratio in the storage device 103 or an external storage device (not shown).

なお、本実施形態においては、オフロード比率決定手段323は、第1の条件、及び、第2の条件を同時に確認し、第1の条件、及び、第2の条件を満たす場合に、オフロードする旨を決定するとした。しかしながら、オフロード比率決定手段323は、例えば、第1の条件を満たす場合にのみ、第2の条件を確認し、第2の条件を満たす場合にオフロードする旨を決定するよう構成しても構わない。 In the present embodiment, the offload ratio determining means 323 simultaneously confirms the first condition and the second condition, and offloads when the first condition and the second condition are satisfied. It was decided to do so. However, the offload ratio determining means 323 may be configured to confirm the second condition only when the first condition is satisfied and determine to offload when the second condition is satisfied, for example. I do not care.

オフロード処理実行手段324は、変換後アプリケーションプログラム500を2回目以降に実行する場合において、オフロード比率決定手段323が決定した情報に基づいて、オフロード処理を実行する。つまり、同一の変換後アプリケーションプログラム500を2回目移行に実行する場合、オフロード処理実行手段324は、オフロード比率決定手段323による判断結果や決定結果を示す情報を取得する。そして、オフロード処理実行手段324は、取得した情報に基づいて、プロセスごと、オフロード対象処理ごとに、サブプロセッサ400へのオフロード対象処理の転送と実行、オフロード処理結果の取得を実行する。 The offload processing execution means 324 executes the offload processing based on the information determined by the offload ratio determining means 323 when the converted application program 500 is executed for the second time or later. That is, when the same converted application program 500 is executed for the second migration, the offload processing execution means 324 acquires the determination result and the information indicating the determination result by the offload ratio determining means 323. Then, the offload process execution means 324 executes the transfer and execution of the offload target process to the subprocessor 400 and the acquisition of the offload process result for each process and each offload target process based on the acquired information. ..

なお、オフロード比率決定手段323によりオフロード実行しないと判断されている部分については、オフロード処理は行わずにメインプロセッサ300でそのまま実行されることになる。 The portion determined not to be executed by the offload ratio determining means 323 is executed as it is by the main processor 300 without performing the offload processing.

以上が、本実施形態における計算機システム100の構成の一例についての説明である。続いて、図5乃至図7を参照して、計算機システム100の動作の一例について説明する。まず、図5を参照して、変換手段310の動作の一例について説明する。 The above is an explanation of an example of the configuration of the computer system 100 in the present embodiment. Subsequently, an example of the operation of the computer system 100 will be described with reference to FIGS. 5 to 7. First, an example of the operation of the conversion means 310 will be described with reference to FIG.

図5を参照すると、変換手段310にアプリケーションプログラム200が入力される。すると、変換手段310のベクトルプロセッサ向けコード生成手段311は、ソースコード全体に対して、ベクトルプロセッサ向けの実行コードを生成する(ステップS101)。 With reference to FIG. 5, the application program 200 is input to the conversion means 310. Then, the code generation means 311 for the vector processor of the conversion means 310 generates the execution code for the vector processor for the entire source code (step S101).

また、変換手段310のオフロード処理コード生成手段312は、オフロード開始指示行201からオフロード終了指示行203に囲まれたソースコード(つまり、スカラ処理部202)に対して、スカラプロセッサ向けの実行コードを生成する(ステップS102)。つまり、オフロード処理コード生成手段312は、上記ステップS101の処理により生成済みのベクトルプロセッサ向けの実行コードの分岐処理として、オフロード処理実行手段324がオフロード処理を実施するスカラプロセッサ向けの実行コードを生成する(ステップS102)。 Further, the offload processing code generation means 312 of the conversion means 310 is intended for the scalar processor with respect to the source code (that is, the scalar processing unit 202) surrounded by the offload start instruction line 201 to the offload end instruction line 203. Generate the execution code (step S102). That is, the offload processing code generation means 312 is the execution code for the scalar processor in which the offload processing execution means 324 executes the offload processing as the branch processing of the execution code for the vector processor generated by the process of step S101. Is generated (step S102).

例えば、上記のような処理により、変換手段310は、入力されたアプリケーションプログラム200に基づいて、ベクトルプロセッサ向けの実行コードとスカラプロセッサ向けの実行コードとを含む変換後アプリケーションプログラム500を生成する。 For example, by the above processing, the conversion means 310 generates the converted application program 500 including the execution code for the vector processor and the execution code for the scalar processor based on the input application program 200.

続いて、図6を参照して、変換後アプリケーションプログラム500を初めて実行する際の処理の流れについて説明する。換言すると、図6を参照して、オフロード実行手段320がオフロード比率を決定する際の処理の一例について説明する。 Subsequently, with reference to FIG. 6, a processing flow when the converted application program 500 is executed for the first time will be described. In other words, with reference to FIG. 6, an example of processing when the offload executing means 320 determines the offload ratio will be described.

図6を参照すると、変換後アプリケーションプログラム500を初めて実行する場合、メインプロセッサ300は、例えばオフロードを行わずに全ての処理を自身で実行する。この際、処理情報採取手段321は、本実行に際して、スカラ処理やベクトル処理、通信・同期処理等の各処理について性能情報を採取する(ステップS201)。処理情報採取手段321が採取可能な性能情報としては、例えば、CPUやメモリ、キャッシュ等の利用状況等の計算機システムリソース情報、命令の種別や引数、呼び出し回数および実行時間等の命令情報、関数の実行時間、引数、呼び出し回数、呼び出し関係などの関数情報、プロセス間の通信・同期処理の通信サイズ、通信・同期の開始・終了時間、待ち合わせ時間、通信相手の情報等の通信・同期処理情報が含まれ得る。 Referring to FIG. 6, when the converted application program 500 is executed for the first time, the main processor 300 executes all the processes by itself without, for example, offloading. At this time, the processing information collecting means 321 collects performance information for each processing such as scalar processing, vector processing, communication / synchronization processing, etc. at the time of this execution (step S201). The performance information that can be collected by the processing information collecting means 321 includes, for example, computer system resource information such as usage status of CPU, memory, cache, etc., instruction information such as instruction type and argument, number of calls and execution time, and function. Function information such as execution time, arguments, number of calls, call relations, communication size of communication / synchronization processing between processes, communication / synchronization processing information such as communication / synchronization start / end time, waiting time, communication partner information, etc. Can be included.

続いて、処理情報分析手段322は、処理情報採取手段321が採取した性能情報に基づいて、オフロードに伴う転送時間も考慮して、オフロード比率ごとに、オフロードを実行した場合の同期待ちの開始時間の変化などを分析する。例えば、処理情報分析手段322は、性能情報に基づいて、オフロード処理した場合のオフロード対象処理の実行時間の変化、その場合の各通信・同期処理の開始・終了時刻、処理時間および待ち合わせ時間の変化、オフロード処理により消費されるスカラプロセッサのリソース使用量などを分析する(ステップS202)。その後、処理情報分析手段322は、分析結果をオフロード比率決定手段323に送信する。 Subsequently, the processing information analysis means 322 waits for synchronization when the offload is executed for each offload ratio, taking into consideration the transfer time associated with the offload, based on the performance information collected by the processing information collection means 321. Analyze changes in the start time of. For example, the processing information analysis means 322 changes the execution time of the offload target processing when the offload processing is performed based on the performance information, and the start / end time, processing time, and waiting time of each communication / synchronous processing in that case. , The resource usage of the scalar processor consumed by the offload processing, and the like are analyzed (step S202). After that, the processing information analysis means 322 transmits the analysis result to the offload ratio determination means 323.

オフロード比率決定手段323は、処理情報分析手段322による分析結果に基づいて、プロセスごと・オフロード対象処理ごとに、サブプロセッサ400へのオフロード比率を決定する。 The offload ratio determining means 323 determines the offload ratio to the subprocessor 400 for each process and each offload target process based on the analysis result by the processing information analysis means 322.

例えば、オフロード比率決定手段323は、以下の条件を満たす場合に、オフロード対象処理をオフロード実行することを決定する。
1.“オフロード対象処理のメインプロセッサ300での実行時間” > “オフロード対象処理のサブプロセッサ400での実行時間+オフロード転送時間(往復)”
2.“当該プロセスについて、オフロード対象処理をメインプロセッサ300で実行した場合の同期待ちの開始時刻” > “当該プロセスの同期・通信相手(つまり、並列で実行される他のプロセス)について、オフロード対象処理をオフロード実行(オフロード処理によるオフロード対象処理の実行時間短縮が最も大きい場合のオフロード比率でのオフロード実行)した場合の同期待ちの開始時刻の中で、最も遅い開始時刻”
For example, the offload ratio determining means 323 determines to execute the offload target process when the following conditions are satisfied.
1. 1. "Execution time of offload target processing on main processor 300">"Execution time of offload target processing on subprocessor 400 + offload transfer time (round trip)"
2. "Start time of synchronization wait when the process to be offloaded is executed on the main processor 300 for the process">"The synchronization / communication partner of the process (that is, other processes executed in parallel) is the offload target. The latest start time among the start times of the synchronization wait when the process is executed offload (offload execution at the offload ratio when the execution time reduction of the offload target process by the offload process is the largest) "

また、オフロード比率決定手段323は、オフロード実行すると決定した場合、上記の条件2において、あるプロセスの同期待ちの開始時刻と当該あるプロセスと並列で動作する他のプロセスの同期待ちの開始時刻とが等しくなるように、オフロード比率を決定する(ステップS203)。 Further, when the offload ratio determining means 323 determines that the offload is to be executed, under the above condition 2, the start time of the synchronization wait of a certain process and the start time of the synchronization wait of another process operating in parallel with the certain process. The offload ratio is determined so that is equal to and equal to (step S203).

このように、オフロード比率決定手段323は、処理情報分析手段322が分析した分析結果に基づいて、プロセスごと、オフロード対象処理ごとに、オフロードするか否か判断するとともに、オフロードする際のオフロード比率を決定する。その後、オフロード比率決定手段323は、判断した結果や決定したオフロード比率を記憶装置103や外部の図示しない記憶装置に格納する。 In this way, the offload ratio determining means 323 determines whether or not to offload for each process and each offload target process based on the analysis result analyzed by the processing information analysis means 322, and when offloading. Determine the offload ratio of. After that, the offload ratio determining means 323 stores the determined result and the determined offload ratio in the storage device 103 or an external storage device (not shown).

続いて、図7を参照して、変換後アプリケーションプログラム500を2回目以降に実行する際の処理の流れについて説明する。換言すると、図7を参照して、オフロード処理を行う際の処理の一例について説明する。 Subsequently, with reference to FIG. 7, the flow of processing when the converted application program 500 is executed from the second time onward will be described. In other words, with reference to FIG. 7, an example of processing when performing offload processing will be described.

図7を参照すると、オフロード処理実行手段324は、実行しようとする処理がオフロード対象であるか否か判断する(ステップS301)。 With reference to FIG. 7, the offload processing execution means 324 determines whether or not the processing to be executed is an offload target (step S301).

ベクトル処理部204に基づいて生成されたベクトルプロセッサ向けのコードなどオフロード対象でない場合(ステップS301、No)、オフロード処理実行手段324は、当該処理をベクトルプロセッサであるメインプロセッサ300上で実行させる(ステップS304)。一方、スカラ処理部202に基づいて生成されたスカラプロセッサ向けのコードなどオフロード対象である場合(ステップS301、Yes)、オフロード処理実行手段324は、オフロード比率決定手段323によりオフロードを行うと判断されているか否か確認する(ステップS302)。 When the code for the vector processor generated based on the vector processing unit 204 is not an offload target (step S301, No), the offload processing execution means 324 executes the processing on the main processor 300 which is a vector processor. (Step S304). On the other hand, when the code for the scalar processor generated based on the scalar processing unit 202 is an offload target (step S301, Yes), the offload processing execution means 324 performs offload by the offload ratio determining means 323. It is confirmed whether or not it is determined (step S302).

オフロード比率決定手段323によりオフロードを行わないと判断されている場合(ステップS302、No)、オフロード処理実行手段324は、オフロード対象処理をそのままベクトルプロセッサ上で動作させる(ステップS304)。一方で、オフロード比率決定手段323によりオフロードを行うと判断されている場合(ステップS302、Yes)、オフロード処理実行手段324は、オフロード比率決定手段323により決定されたオフロード比率に基づいて、オフロード対象処理をサブプロセッサ400上へオフロードする。その後、オフロード処理実行手段324は、サブプロセッサ400からオフロードの処理結果を受け取る(ステップS303)。 When it is determined by the offload ratio determining means 323 that offloading is not performed (step S302, No), the offload processing executing means 324 operates the offload target processing as it is on the vector processor (step S304). On the other hand, when it is determined by the offload ratio determining means 323 to perform offload (step S302, Yes), the offload processing executing means 324 is based on the offload ratio determined by the offload ratio determining means 323. Then, the offload target process is offloaded onto the subprocessor 400. After that, the offload processing execution means 324 receives the offload processing result from the subprocessor 400 (step S303).

変換後アプリケーションプログラム500が実行終了でない場合(ステップS305、No)は、ステップS301へ戻り継続実行する。一方で、変換後アプリケーションプログラム500の実行が終了した場合(ステップS305、Yes)は、オフロード処理実行手段324は、処理を終了する。 If the converted application program 500 has not finished executing (steps S305, No), the process returns to step S301 and is continuously executed. On the other hand, when the execution of the converted application program 500 is completed (step S305, Yes), the offload processing execution means 324 ends the processing.

このように、計算機システム100は、オフロード比率決定手段323とオフロード処理実行手段324とを有するオフロード実行手段320を有している。このような構成により、オフロード処理実行手段324は、オフロード比率決定手段323による判断結果、決定結果に基づいて、オフロード対象処理をオフロードするか否か判断することが出来る。例えば、オフロード処理実行手段324は、オフロードを実行することで、プロセスの全てをメインプロセッサ300が実行するよりも実行時間が短くなり、かつ、オフロードを実行することで、アプリケーション全体の実行時間が短くなる場合に、オフロード対象処理をオフロードすることが可能となる。その結果、オフロードしてもアプリケーション全体の実行時間の短縮に寄与しない不要なオフロードを抑制することが可能となり、サブプロセッサ400のリソースを過剰に利用することを抑制することが可能となる。これにより、例えば、サブプロセッサ400のリソースの利用量を節約できるため、消費電力量の低減や、他アプリケーションからのリソース利用が可能となるなど、システムリソースの有効・効率利用が実現できる。 As described above, the computer system 100 has an offload execution means 320 having an offload ratio determining means 323 and an offload processing execution means 324. With such a configuration, the offload processing execution means 324 can determine whether or not to offload the offload target process based on the determination result by the offload ratio determining means 323 and the determination result. For example, the offload processing execution means 324 executes the offload so that the execution time is shorter than that of the main processor 300 executing all the processes, and the offload is executed to execute the entire application. When the time is shortened, the offload target process can be offloaded. As a result, it is possible to suppress unnecessary offloading that does not contribute to shortening the execution time of the entire application even if it is offloaded, and it is possible to suppress excessive use of resources of the subprocessor 400. As a result, for example, the amount of resources used by the subprocessor 400 can be saved, so that the amount of power consumption can be reduced and the resources can be used by other applications, and the effective and efficient use of system resources can be realized.

ここで、本発明の効果の詳細について、図8を参照して説明する。 Here, the details of the effect of the present invention will be described with reference to FIG.

図8中のオリジナル実行(左の図)は、メッセージパッシング型の分散並列プログラムであるアプリケーションを、メインプロセッサ300上で3プロセス並列実行した場合の処理内容と実行時間を示している。 The original execution (left figure) in FIG. 8 shows the processing content and execution time when an application, which is a message passing type distributed parallel program, is executed in parallel for three processes on the main processor 300.

図8で示す例では、ベクトル処理、スカラ処理、同期処理を順に行う構成となっており、プロセス間で処理インバランスを有している。つまり、メインプロセッサ300上では、プロセスP#0、P#1、P#2が並列で実行されており、それぞれのベクトル処理、スカラ処理の実行時間が異なっている。例えば、図8の例では、プロセスP#0は、他の2プロセス(P#1、P#2)と比較して、同期待ちの開始時刻が早く同期待ちの時間が長くなっている。 In the example shown in FIG. 8, vector processing, scalar processing, and synchronization processing are performed in order, and there is a processing imbalance between the processes. That is, on the main processor 300, the processes P # 0, P # 1, and P # 2 are executed in parallel, and the execution times of the vector processing and the scalar processing are different. For example, in the example of FIG. 8, the process P # 0 has a faster start time of the synchronization wait and a longer synchronization wait time as compared with the other two processes (P # 1 and P # 2).

図8中の本発明(右の図)は、図8のオリジナル実行と同じアプリケーションのうちのスカラ処理をサブプロセッサ400へオフロードする一例を示している。このとき、本発明のオフロード比率決定手段323は、プロセスP#1およびプロセスP#2についてはスカラ処理をオフロードする(オフロード比率100%)旨を決定する。一方で、プロセスP#0については、オフロードしない(オフロード比率0%)旨を決定する。 The present invention (figure on the right) in FIG. 8 shows an example of offloading the scalar processing of the same application as the original execution of FIG. 8 to the subprocessor 400. At this time, the offload ratio determining means 323 of the present invention determines that the scalar processing is offloaded for the process P # 1 and the process P # 2 (offload ratio 100%). On the other hand, it is determined that process P # 0 is not offloaded (offload ratio is 0%).

その理由は、プロセスP#0のスカラ処理をオフロードしたとしても、その後の同期待ち処理があるため、オフロードしない場合と比較してアプリケーション全体の実行時間短縮の効果に違いがないためである。このプロセスP#0のスカラ処理をオフロードしないこと(すなわち、プロセスP#0の同期待ち時間を最小とすること)によって、サブプロセッサ400のリソースが1つ空くことになる。その結果、使用電力の低減や他アプリからのリソース利用が可能となるなど、システムリソースを有効かつ効率的に利用することが可能となる。 The reason is that even if the scalar processing of process P # 0 is offloaded, there is a subsequent synchronization waiting process, so there is no difference in the effect of shortening the execution time of the entire application as compared with the case where it is not offloaded. .. By not offloading the scalar processing of process P # 0 (that is, minimizing the synchronization wait time of process P # 0), one resource of the subprocessor 400 is freed. As a result, system resources can be used effectively and efficiently, such as reducing power consumption and using resources from other applications.

なお、本実施形態においては、計算機システム100がメッセージパッシング型の分散並列プログラムを実行する例について説明した。しかしながら、本発明は、並列して動作するとともに、所定の処理の後、並列して動作する他のプロセスと同期待ちや通信待ちが発生するプログラムであるならば、上記例示した以外のプログラムであっても適用可能である。 In this embodiment, an example in which the computer system 100 executes a message passing type distributed parallel program has been described. However, the present invention is a program other than the above-exemplified program as long as it is a program that operates in parallel and, after a predetermined process, waits for synchronization or communication with another process that operates in parallel. Is also applicable.

また、本実施形態においては、ベクトル型のメインプロセッサ300とスカラ型のサブプロセッサ400とを有する場合について説明した。しかしながら、メインプロセッサ300は必ずしもベクトル型でなくても構わないし、サブプロセッサ400は必ずしもスカラ型でなくても構わない。 Further, in the present embodiment, the case where the vector type main processor 300 and the scalar type subprocessor 400 are provided has been described. However, the main processor 300 does not necessarily have to be a vector type, and the subprocessor 400 does not necessarily have to be a scalar type.

また、本実施形態においては、メインプロセッサ300が変換手段310とオフロード実行手段320とを有するとした。しかしながら、変換手段310やオフロード実行手段320としての機能は、メインプロセッサ300の外部に位置する外部装置が有していても構わない。 Further, in the present embodiment, it is assumed that the main processor 300 has a conversion means 310 and an offload execution means 320. However, the functions as the conversion means 310 and the offload execution means 320 may be possessed by an external device located outside the main processor 300.

また、本実施形態においては、オフロード対象処理について、ユーザがオフロード開始指示行201やオフロード終了指示行203で指定する例について挙げた。しかしながら、オフロード対象処理は、例えば、処理情報採取手段321が採取する性能情報から処理情報分析手段322が自動的に判定しても構わない。例えば、処理情報分析手段322は、性能情報に基づいて、オフロードすることで実行時間の短縮に繋がると判断される部分をオフロード対象処理として判定する。このような構成により、ユーザがソースコードに指示行を追加する作業を省くことが可能となる。また、ユーザが意識していなかったオフロード対象処理を発見することが可能となる。 Further, in the present embodiment, an example in which the user specifies the offload target processing in the offload start instruction line 201 and the offload end instruction line 203 has been given. However, the offload target processing may be automatically determined by the processing information analysis means 322 from the performance information collected by the processing information collecting means 321, for example. For example, the processing information analysis means 322 determines a portion determined to lead to a reduction in execution time by offloading as an offload target process based on the performance information. Such a configuration makes it possible for the user to omit the work of adding instruction lines to the source code. In addition, it becomes possible to discover offload target processing that the user was not aware of.

また、本実施形態においては、変換後アプリケーションプログラム500を1回実行して性能情報を採取し、分析した結果からオフロード比率決定手段323がオフロード比率を決定するとした。しかしながら、必ずしも採取した性能情報の分析結果に基づいてオフロード比率を決定するよう構成しなくても構わない。例えば、アプリケーションプログラム200のソースコードの内容を静的に解析して、当該解析結果に基づいてオフロードするか否か、オフロード比率、を決定するよう構成しても構わない。このように構成することで、性能情報採取向けに変換後アプリケーションプログラム500を1回実行する時間やそれに伴う費用等を節約することが可能となる。 Further, in the present embodiment, it is assumed that the offload ratio determining means 323 determines the offload ratio from the result of executing the conversion application program 500 once to collect the performance information and analyzing the results. However, it is not always necessary to determine the offload ratio based on the analysis result of the collected performance information. For example, the content of the source code of the application program 200 may be statically analyzed, and whether or not to offload and the offload ratio may be determined based on the analysis result. With such a configuration, it is possible to save the time for executing the converted application program 500 once for collecting performance information and the costs associated therewith.

また、オフロード比率については、必ずしも、2回目以降の実行前に性能情報の解析結果からオフロード比率決定手段323が静的に決定する場合に限られない。例えば、他の変換後アプリケーションプログラム500とサブプロセッサ400のリソース利用状況情報を共有し、当該リソース利用状況も加味して実行時に動的にオフロード比率を決定することも考えられる。このように構成することで、より汎用的かつ詳細に、サブプロセッサ400のリソースを効率的に利用することが可能となる。ただし、このように構成した場合、メインプロセッサ300を使用して動的にオフロード比率を判定する処理が発生するため、それに伴うオーバヘッドが発生することになる。 Further, the offload ratio is not necessarily limited to the case where the offload ratio determining means 323 statically determines from the analysis result of the performance information before the second and subsequent executions. For example, it is conceivable to share the resource usage status information of the subprocessor 400 with another converted application program 500, and dynamically determine the offload ratio at the time of execution in consideration of the resource usage status. With this configuration, the resources of the subprocessor 400 can be efficiently used in a more general-purpose and detailed manner. However, in this configuration, the main processor 300 is used to dynamically determine the offload ratio, which causes an overhead.

また、本実施形態においては、オフロード実行について、1回目と2回目以降の実行を同じ実行形式ファイルで実行させるため、オフロード処理実行手段324が動的に1回目と2回目以降の実行でオフロード処理を切り替えて実行する実施例を示した。この代わりに、2回目以降で使用する変換後アプリケーションプログラム500を変更して、オフロード比率100%であるオフロード処理については切り替え処理をなくし、オフロード処理のみ実行するようにするよう構成しても構わない。このように構成することで、切り替え処理分の実行時間を削除できるため、微細ではあるがよりアプリケーション全体の実行時間を短縮することが可能となる。 Further, in the present embodiment, in order to execute the first and second executions in the same execution format file for the offload execution, the offload processing execution means 324 dynamically executes the first and second executions. An example in which the offload processing is switched and executed is shown. Instead, the converted application program 500 used from the second time onward is modified so that the switching process is eliminated for the offload process having an offload ratio of 100% and only the offload process is executed. It doesn't matter. With this configuration, the execution time for the switching process can be deleted, so that the execution time of the entire application can be further shortened, albeit finely.

[第2の実施形態]
次に、図9を参照して、本発明の第2の実施形態について説明する。第2の実施形態では、情報処理装置6の構成の概要について説明する。
[Second Embodiment]
Next, a second embodiment of the present invention will be described with reference to FIG. In the second embodiment, the outline of the configuration of the information processing device 6 will be described.

図9を参照すると、情報処理装置6は、プロセッサ61と、判断手段62と、を有している。判断手段62は、例えば、情報処理装置6が有する図示しない記憶装置に格納されたプログラムを、プロセッサ61や図示しない演算装置が実行することで実現される。 Referring to FIG. 9, the information processing device 6 includes a processor 61 and a determination means 62. The determination means 62 is realized, for example, by executing a program stored in a storage device (not shown) included in the information processing device 6 by a processor 61 or an arithmetic unit (not shown).

プロセッサ61は、プロセスの処理の一部を外部プロセッサ7に実行させることが可能であるとともに、複数のプロセスを並列で処理することが可能である。プロセッサ61で実行されるプロセスは、例えば、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている。 The processor 61 can have the external processor 7 execute a part of the process processing, and can process a plurality of processes in parallel. The process executed by the processor 61 is configured to wait for synchronization with another process executed at the same time after a predetermined process, for example.

判断手段62は、プロセッサ61で同時に実行されるプロセスそれぞれの同期待ちの開始時刻に基づいて、プロセスの処理の一部を外部プロセッサ7に実行させるか否かプロセスごとに判断する。 The determination means 62 determines for each process whether or not to have the external processor 7 execute a part of the process of the process based on the start time of the synchronization wait of each of the processes executed simultaneously by the processor 61.

このように、情報処理装置6は、判断手段62を有している。このような構成により、情報処理装置6は、プロセッサ61で同時に実行されるプロセスそれぞれの同期待ちの開始時刻に基づいて、プロセスの処理の一部を外部プロセッサ7に実行させるか否かプロセスごとに判断することが出来る。その結果、外部プロセッサ7に全体の実行時間の短縮に寄与しない不要な処理を実行させることを抑制することが可能となる。これにより、オフロード先の外部プロセッサ7のリソースを効率的に利用することが可能となる。 As described above, the information processing device 6 has the determination means 62. With such a configuration, the information processing device 6 determines whether or not to let the external processor 7 execute a part of the process of the process based on the start time of the synchronization wait of each of the processes executed simultaneously by the processor 61 for each process. You can judge. As a result, it is possible to suppress the external processor 7 from executing unnecessary processing that does not contribute to shortening the overall execution time. This makes it possible to efficiently use the resources of the external processor 7 at the offload destination.

また、上述した情報処理装置6は、当該情報処理装置6に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、プロセスの処理の一部を外部プロセッサ7に実行させることが可能であるとともに、複数のプロセスを並列で処理することが可能なプロセッサ61を有し、プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置6に、プロセッサ61で同時に実行されるプロセスそれぞれの同期待ちの開始時刻に基づいて、プロセスの処理の一部を外部プロセッサ7に実行させるか否かプロセスごとに判断する判断手段62を実現させるためのプログラムである。 Further, the above-mentioned information processing device 6 can be realized by incorporating a predetermined program into the information processing device 6. Specifically, a program according to another embodiment of the present invention includes a processor 61 capable of causing an external processor 7 to execute a part of process processing and processing a plurality of processes in parallel. The process has, after a predetermined process, starts the synchronization wait of each process executed simultaneously by the processor 61 in the information processing apparatus 6 configured to wait for the synchronization with other processes executed at the same time. This is a program for realizing a determination means 62 for determining whether or not a part of process processing is executed by an external processor 7 for each process based on a time.

また、上述した情報処理装置6により実行される情報処理方法は、プロセスの処理の一部を外部プロセッサ7に実行させることが可能であるとともに、複数のプロセスを並列で処理することが可能なプロセッサ61を有し、プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置6により行われる情報処理方法であって、プロセッサ61で同時に実行されるプロセスそれぞれの同期待ちの開始時刻を取得し、取得した同期待ちの開始時刻に基づいて、プロセスの処理の一部を外部プロセッサ7に実行させるか否かプロセスごとに判断する、という方法である。 Further, the information processing method executed by the above-mentioned information processing apparatus 6 is a processor capable of causing an external processor 7 to execute a part of process processing and processing a plurality of processes in parallel. 61, the process is an information processing method performed by an information processing apparatus 6 configured to wait for synchronization with another process executed at the same time after a predetermined process, and is simultaneously performed by the processor 61. A method in which the start time of the synchronization wait for each process to be executed is acquired, and based on the acquired synchronization wait start time, it is determined for each process whether or not a part of the process processing is executed by the external processor 7. Is.

上述した構成を有する、プログラム、又は、情報処理方法、の発明であっても、上記情報処理装置6と同様の作用を有するために、上述した本発明の目的を達成することが出来る。 Even the invention of the program or the information processing method having the above-mentioned configuration can achieve the above-mentioned object of the present invention because it has the same operation as the above-mentioned information processing apparatus 6.

なお、図9では、情報処理装置6の外部に外部プロセッサ7が存在する場合について例示している。しかしながら、外部プロセッサ7は情報処理装置6が有していても構わない。 Note that FIG. 9 illustrates a case where the external processor 7 exists outside the information processing device 6. However, the information processing device 6 may have the external processor 7.

<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における情報処理装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
<Additional notes>
Part or all of the above embodiments may also be described as in the appendix below. Hereinafter, the outline of the information processing apparatus and the like in the present invention will be described. However, the present invention is not limited to the following configurations.

(付記1)
プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有する情報処理装置であって、
前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成され、
前記情報処理装置は、前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する判断手段を有する
情報処理装置。
(付記2)
付記1に記載の情報処理装置であって、
前記判断手段は、前記プロセスを前記プロセッサで実行した場合の同期待ちの開始時刻と、他のプロセスにおいて処理の一部を前記外部プロセッサに実行させた場合の当該他のプロセスの同期待ちの開始時刻と、に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か判断する
情報処理装置。
(付記3)
付記1又は2に記載の情報処理装置であって、
前記判断手段は、前記プロセスを前記プロセッサで実行した場合の同期待ちの開始時刻が、前記他のプロセスにおいて処理の一部を前記外部プロセッサに実行させた場合の同期待ちの開始時刻よりも遅くなる場合に、当該プロセスの一部を前記外部プロセッサに実行させる
情報処理装置。
(付記4)
付記1乃至3のいずれかに記載の情報処理装置であって、
前記判断手段は、並列で処理する複数の前記プロセスそれぞれの同期待ち開始時刻の関係性に基づいて、前記プロセスの一部を前記外部プロセッサに実行させる処理の比率であるオフロード比率を前記プロセスごとに決定する
情報処理装置。
(付記5)
付記4に記載の情報処理装置であって、
前記判断手段は、並列で処理する複数の前記プロセスそれぞれの同期待ち開始時刻が等しくなるように、前記プロセスの一部を前記外部プロセッサに実行させる処理の比率であるオフロード比率を前記プロセスごとに決定する
情報処理装置。
(付記6)
付記1乃至5のいずれかに記載の情報処理装置であって、
並列で処理する複数の前記プロセスの全てを前記プロセッサが実行した際に、予め定められた性能情報を採取する処理情報採取手段と、
前記処理情報採取手段が採取した前記性能情報に基づいて、予め定められたオフロード比率ごとの複数の前記プロセスそれぞれの同期待ち開始時刻を分析する処理情報分析手段と、
を有し、
前記判断手段は、前記処理情報分析手段による分析結果に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か判断する
情報処理装置。
(付記7)
付記6に記載の情報処理装置であって、
前記処理情報分析手段は、前記処理情報採取手段が採取した前記性能情報に基づいて、前記プロセスの処理のうちの前記外部プロセッサに実行させる部分を判定する
情報処理装置。
(付記8)
付記1乃至7のいずれかに記載の情報処理装置であって、
前記判断手段は、前記プロセスの処理の一部を前記外部プロセッサに実行させることで、当該プロセスを前記プロセッサが実行するよりも実行時間が短くなる場合に、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か判断する
情報処理装置。
(付記9)
プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有し、前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置に、
前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する判断手段を実現させるためのプログラム。
(付記10)
プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有し、前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置により行われる情報処理方法であって、
前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻を取得し、取得した同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する
情報処理方法。
(Appendix 1)
An information processing device having a processor capable of causing an external processor to execute a part of process processing and processing a plurality of the processes in parallel.
The process is configured to wait for synchronization with other processes running at the same time after a predetermined process.
The information processing apparatus determines for each process whether or not to let the external processor execute a part of the processing of the process based on the start time of the synchronization wait of each of the processes simultaneously executed by the processor. An information processing device having means.
(Appendix 2)
The information processing device according to Appendix 1.
The determination means are the start time of the synchronization wait when the process is executed by the processor and the start time of the synchronization wait of the other process when a part of the processing is executed by the external processor in the other process. An information processing device that determines whether or not a part of the processing of the process is executed by the external processor based on the above.
(Appendix 3)
The information processing device according to Appendix 1 or 2.
In the determination means, the start time of the synchronization wait when the process is executed by the processor is later than the start time of the synchronization wait when a part of the processing is executed by the external processor in the other process. An information processing device that causes the external processor to execute a part of the process in the case of a case.
(Appendix 4)
The information processing device according to any one of Supplementary note 1 to 3.
The determination means sets an offload ratio for each process, which is a ratio of processes for causing the external processor to execute a part of the process based on the relationship between synchronization wait start times of each of the plurality of processes processed in parallel. Information processing device to decide.
(Appendix 5)
The information processing device according to Appendix 4,
The determination means sets an offload ratio for each of the processes, which is a ratio of processes in which a part of the processes is executed by the external processor so that the synchronization wait start times of the plurality of processes processed in parallel are equal. Information processing device to decide.
(Appendix 6)
The information processing device according to any one of Appendix 1 to 5.
A processing information collecting means for collecting predetermined performance information when the processor executes all of the plurality of processes to be processed in parallel, and a processing information collecting means.
A processing information analysis means that analyzes the synchronization wait start time of each of the plurality of processes for each predetermined offload ratio based on the performance information collected by the processing information collecting means.
Have,
The determination means is an information processing device that determines whether or not a part of the processing of the process is to be executed by the external processor based on the analysis result by the processing information analysis means.
(Appendix 7)
The information processing device according to Appendix 6.
The processing information analysis means is an information processing device that determines a portion of the processing of the process to be executed by the external processor based on the performance information collected by the processing information collecting means.
(Appendix 8)
The information processing device according to any one of Supplementary note 1 to 7.
The determination means causes the external processor to execute a part of the process of the process, and when the execution time is shorter than that of the processor executing the process, the external processor performs a part of the process of the process. An information processing device that determines whether or not to let a processor execute it.
(Appendix 9)
It has a processor capable of causing a part of the processing of a process to be executed by an external processor and processing a plurality of the processes in parallel, and the processes are executed at the same time after a predetermined processing. For information processing devices that are configured to wait for synchronization with other processes
In order to realize a determination means for each process to determine whether or not a part of the processing of the process is to be executed by the external processor based on the start time of the synchronization wait of each of the processes simultaneously executed by the processor. program.
(Appendix 10)
It has a processor capable of causing a part of the processing of a process to be executed by an external processor and processing a plurality of the processes in parallel, and the processes are executed at the same time after a predetermined processing. An information processing method performed by an information processing device that is configured to wait for synchronization with other processes.
Whether or not to acquire the start time of the synchronization wait of each of the processes simultaneously executed by the processor and cause the external processor to execute a part of the processing of the process based on the acquired synchronization wait start time. Information processing method to judge for each.

なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。 The programs described in each of the above embodiments and appendices may be stored in a storage device or recorded in a computer-readable recording medium. For example, the recording medium is a portable medium such as a flexible disk, an optical disk, a magneto-optical disk, and a semiconductor memory.

以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。 Although the present invention has been described above with reference to each of the above embodiments, the present invention is not limited to the above-described embodiments. Various changes that can be understood by those skilled in the art can be made to the structure and details of the present invention within the scope of the present invention.

100 計算機システム
101 計算機
102 演算処理装置
103 記憶装置
104 通信装置
105 接続網
200 アプリケーションプログラム
201 オフロード開始指示行
202 スカラ処理部
203 オフロード終了指示行
204 ベクトル処理部
205 プロセス間同期処理部
300 メインプロセッサ
310 変換手段
311 ベクトルプロセッサ向けコード生成手段
312 オフロード処理コード生成手段
320 オフロード実行手段
321 処理情報採取手段
322 処理情報分析手段
323 オフロード比率決定手段
324 オフロード処理実行手段
400 サブプロセッサ
500 変換後アプリケーションプログラム
6 情報処理装置
61 プロセッサ
62 判断手段
7 外部プロセッサ
100 Computer system 101 Computer 102 Computational processing unit 103 Storage device 104 Communication device 105 Connection network 200 Application program 201 Offload start instruction line 202 Scalar processing unit 203 Offload end instruction line 204 Vector processing unit 205 Interprocess synchronization processing unit 300 Main processor 310 Conversion means 311 Code generation means for vector processor 312 Offload processing Code generation means 320 Offload execution means 321 Processing information collection means 322 Processing information analysis means 323 Offload ratio determination means 324 Offload processing execution means 400 Subprocessor 500 After conversion Application program 6 Information processing device 61 Processor 62 Judgment means 7 External processor

Claims (10)

プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有する情報処理装置であって、
前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成され、
前記情報処理装置は、過去に前記プロセスを実行した際に取得した情報に基づいて判断される、前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する判断手段を有する
情報処理装置。
An information processing device having a processor capable of causing an external processor to execute a part of process processing and processing a plurality of the processes in parallel.
The process is configured to wait for synchronization with other processes running at the same time after a predetermined process.
The information processing apparatus processes the process based on the start time of the synchronization wait of each of the processes simultaneously executed by the processor, which is determined based on the information acquired when the process is executed in the past. An information processing device having a determination means for determining whether or not a part of the process is to be executed by the external processor for each process.
請求項1に記載の情報処理装置であって、
前記判断手段は、前記プロセスを前記プロセッサで実行した場合の同期待ちの開始時刻と、他のプロセスにおいて処理の一部を前記外部プロセッサに実行させた場合の当該他のプロセスの同期待ちの開始時刻と、に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か判断する
情報処理装置。
The information processing device according to claim 1.
The determination means are the start time of the synchronization wait when the process is executed by the processor and the start time of the synchronization wait of the other process when a part of the processing is executed by the external processor in the other process. An information processing device that determines whether or not a part of the processing of the process is executed by the external processor based on the above.
請求項1又は2に記載の情報処理装置であって、
前記判断手段は、前記プロセスを前記プロセッサで実行した場合の同期待ちの開始時刻が、前記他のプロセスにおいて処理の一部を前記外部プロセッサに実行させた場合の同期待ちの開始時刻よりも遅くなる場合に、当該プロセスの一部を前記外部プロセッサに実行させる
情報処理装置。
The information processing device according to claim 1 or 2.
In the determination means, the start time of the synchronization wait when the process is executed by the processor is later than the start time of the synchronization wait when a part of the processing is executed by the external processor in the other process. An information processing device that causes the external processor to execute a part of the process in the case of a case.
請求項1乃至3のいずれかに記載の情報処理装置であって、
前記判断手段は、並列で処理する複数の前記プロセスそれぞれの同期待ち開始時刻の関係性に基づいて、前記プロセスの一部を前記外部プロセッサに実行させる処理の比率であるオフロード比率を前記プロセスごとに決定する
情報処理装置。
The information processing device according to any one of claims 1 to 3.
The determination means sets an offload ratio for each process, which is a ratio of processes for causing the external processor to execute a part of the process based on the relationship between synchronization wait start times of each of the plurality of processes processed in parallel. Information processing device to decide.
請求項4に記載の情報処理装置であって、
前記判断手段は、並列で処理する複数の前記プロセスそれぞれの同期待ち開始時刻が等しくなるように、前記プロセスの一部を前記外部プロセッサに実行させる処理の比率であるオフロード比率を前記プロセスごとに決定する
情報処理装置。
The information processing device according to claim 4.
The determination means sets an offload ratio for each of the processes, which is a ratio of processes in which a part of the processes is executed by the external processor so that the synchronization wait start times of the plurality of processes processed in parallel are equal. Information processing device to decide.
請求項1乃至5のいずれかに記載の情報処理装置であって、
並列で処理する複数の前記プロセスの全てを前記プロセッサが実行した際に、予め定められた性能情報を採取する処理情報採取手段と、
前記処理情報採取手段が採取した前記性能情報に基づいて、予め定められたオフロード比率ごとの複数の前記プロセスそれぞれの同期待ち開始時刻を分析する処理情報分析手段と、
を有し、
前記判断手段は、前記処理情報分析手段による分析結果に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か判断する
情報処理装置。
The information processing device according to any one of claims 1 to 5.
A processing information collecting means for collecting predetermined performance information when the processor executes all of the plurality of processes to be processed in parallel, and a processing information collecting means.
A processing information analysis means that analyzes the synchronization wait start time of each of the plurality of processes for each predetermined offload ratio based on the performance information collected by the processing information collecting means.
Have,
The determination means is an information processing device that determines whether or not a part of the processing of the process is to be executed by the external processor based on the analysis result by the processing information analysis means.
請求項6に記載の情報処理装置であって、
前記処理情報分析手段は、前記処理情報採取手段が採取した前記性能情報に基づいて、前記プロセスの処理のうちの前記外部プロセッサに実行させる部分を判定する
情報処理装置。
The information processing device according to claim 6.
The processing information analysis means is an information processing device that determines a portion of the processing of the process to be executed by the external processor based on the performance information collected by the processing information collecting means.
請求項1乃至7のいずれかに記載の情報処理装置であって、
前記判断手段は、前記プロセスの処理の一部を前記外部プロセッサに実行させることで、当該プロセスを前記プロセッサが実行するよりも実行時間が短くなる場合に、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か判断する
情報処理装置。
The information processing device according to any one of claims 1 to 7.
The determination means causes the external processor to execute a part of the process of the process, and when the execution time is shorter than that of the processor executing the process, the external processor performs a part of the process of the process. An information processing device that determines whether or not to let a processor execute it.
プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有し、前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置に、
過去に前記プロセスを実行した際に取得した情報に基づいて判断される、前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する判断手段を実現させるためのプログラム。
It has a processor capable of causing a part of the processing of a process to be executed by an external processor and processing a plurality of the processes in parallel, and the processes are executed at the same time after a predetermined processing. For information processing devices that are configured to wait for synchronization with other processes
A part of the processing of the process is performed by the external processor based on the start time of the synchronization wait of each of the processes simultaneously executed by the processor, which is determined based on the information acquired when the process was executed in the past. A program for realizing a judgment means for determining whether or not to execute a process for each process.
プロセスの処理の一部を外部プロセッサに実行させることが可能であるとともに、複数の前記プロセスを並列で処理することが可能なプロセッサを有し、前記プロセスは、所定の処理の後、同時に実行される他のプロセスとの同期待ちを行うよう構成されている情報処理装置により行われる情報処理方法であって、
過去に前記プロセスを実行した際に取得した情報に基づいて判断される、前記プロセッサで同時に実行される前記プロセスそれぞれの同期待ちの開始時刻を取得し、取得した同期待ちの開始時刻に基づいて、前記プロセスの処理の一部を前記外部プロセッサに実行させるか否か前記プロセスごとに判断する
情報処理方法。
It has a processor capable of causing a part of the processing of a process to be executed by an external processor and processing a plurality of the processes in parallel, and the processes are executed at the same time after a predetermined processing. An information processing method performed by an information processing device that is configured to wait for synchronization with other processes.
Acquires the start time of the synchronization wait for each of the processes simultaneously executed by the processor, which is determined based on the information acquired when the process was executed in the past, and based on the acquired start time of the synchronization wait. An information processing method for determining whether or not a part of the processing of the process is executed by the external processor for each process.
JP2017020910A 2017-02-08 2017-02-08 Information processing equipment, information processing methods, programs Active JP6891521B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017020910A JP6891521B2 (en) 2017-02-08 2017-02-08 Information processing equipment, information processing methods, programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017020910A JP6891521B2 (en) 2017-02-08 2017-02-08 Information processing equipment, information processing methods, programs

Publications (2)

Publication Number Publication Date
JP2018128811A JP2018128811A (en) 2018-08-16
JP6891521B2 true JP6891521B2 (en) 2021-06-18

Family

ID=63172994

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017020910A Active JP6891521B2 (en) 2017-02-08 2017-02-08 Information processing equipment, information processing methods, programs

Country Status (1)

Country Link
JP (1) JP6891521B2 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5343523B2 (en) * 2008-11-17 2013-11-13 富士通株式会社 Job management apparatus, job management method, and job management program
JP2011197803A (en) * 2010-03-17 2011-10-06 Ricoh Co Ltd Program execution control method
JPWO2012023175A1 (en) * 2010-08-17 2013-10-28 富士通株式会社 Parallel processing control program, information processing apparatus, and parallel processing control method
JP6070078B2 (en) * 2012-11-01 2017-02-01 日本電気株式会社 Hybrid parallel processing system, hybrid parallel processing method, and computer program
EP2950211B1 (en) * 2013-01-23 2021-07-07 Waseda University Parallelism extraction method and method for making program
JP6428476B2 (en) * 2015-05-14 2018-11-28 株式会社デンソー Parallelizing compilation method and parallelizing compiler

Also Published As

Publication number Publication date
JP2018128811A (en) 2018-08-16

Similar Documents

Publication Publication Date Title
TWI559153B (en) Distributed computing framework
WO2019001092A1 (en) Load balancing engine, client, distributed computing system, and load balancing method
JP5245722B2 (en) Scheduler, processor system, program generation device, and program generation program
WO2016112701A9 (en) Method and device for task scheduling on heterogeneous multi-core reconfigurable computing platform
CN102109997A (en) Accelerating opencl applications by utilizing a virtual opencl device as interface to compute clouds
Jia et al. Improving the performance of distributed tensorflow with RDMA
Gu et al. Partitioning and offloading in smart mobile devices for mobile cloud computing: State of the art and future directions
CN104536937A (en) Big data appliance realizing method based on CPU-GPU heterogeneous cluster
EP2808789B1 (en) Multi-core apparatus and job scheduling method thereof
US20110161965A1 (en) Job allocation method and apparatus for a multi-core processor
JP2010079622A (en) Multi-core processor system and task control method thereof
CN114982210A (en) Management of serverless functional deployments in a computing network
US20070124523A1 (en) Heterogeneous multiprocessor system and OS configuration method thereof
WO2018233299A1 (en) Method, apparatus and device for scheduling processor, and medium
KR20110049507A (en) Apparatus and method for executing application
CN114911612B (en) Task scheduling method for CPU-GPU heterogeneous resources
US9471387B2 (en) Scheduling in job execution
US10866838B2 (en) Cluster computing service assurance apparatus and method
JPWO2014002412A1 (en) Program conversion apparatus and method, process switching method, execution method determination method and program storage medium, processor system, and parallel execution method
TW201541347A (en) Multiprocessors systems and processes scheduling methods thereof
JP2013186770A (en) Data processing device
Kaushik et al. Computation and communication aware run-time mapping for NoC-based MPSoC platforms
CN111242776A (en) Accounting method and device based on block chain, storage medium and electronic equipment
JP2007172322A (en) Distributed processing type multiprocessor system, control method, multiprocessor interruption controller, and program
Liu et al. Task offloading with execution cost minimization in heterogeneous mobile cloud computing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210303

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210331

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210510

R150 Certificate of patent or registration of utility model

Ref document number: 6891521

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150