JP6322968B2 - Information processing apparatus, information processing method, and program - Google Patents

Information processing apparatus, information processing method, and program Download PDF

Info

Publication number
JP6322968B2
JP6322968B2 JP2013239098A JP2013239098A JP6322968B2 JP 6322968 B2 JP6322968 B2 JP 6322968B2 JP 2013239098 A JP2013239098 A JP 2013239098A JP 2013239098 A JP2013239098 A JP 2013239098A JP 6322968 B2 JP6322968 B2 JP 6322968B2
Authority
JP
Japan
Prior art keywords
application
execution
specific description
additional information
loop structure
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
JP2013239098A
Other languages
Japanese (ja)
Other versions
JP2015099494A (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 JP2013239098A priority Critical patent/JP6322968B2/en
Publication of JP2015099494A publication Critical patent/JP2015099494A/en
Application granted granted Critical
Publication of JP6322968B2 publication Critical patent/JP6322968B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、アプリケーションの実行に適した計算リソースに、そのアプリケーションの実行を割り当てる技術に関する。   The present invention relates to a technique for assigning execution of an application to a computing resource suitable for execution of the application.

一般に、計算ノード間のデータ通信は通信ネットワーク(以降、単に「ネットワーク」とも称する)を介して実施され、ファイルI/O(Input/Output:入出力)はストレージディスクに対して行われる。   In general, data communication between computation nodes is performed via a communication network (hereinafter also simply referred to as “network”), and file I / O (Input / Output: input / output) is performed with respect to a storage disk.

データ通信やファイルI/Oの実行仕様、すなわち特性に応じて、データ通信やファイルI/Oの実行に適するネットワークやストレージディスクは異なる。これらネットワークやストレージディスクといった要素を用いてシステムを構築する場合、複数の上記特性に適した要素を多く用いると、様々な特性を備えたアプリケーションの実行に適したシステムを構築できる(、すなわちアプリケーションの実行性能を向上できる)という利点がある。   Depending on the execution specifications of data communication and file I / O, that is, characteristics, the network and storage disk suitable for execution of data communication and file I / O differ. When constructing a system using these elements such as network and storage disks, if a large number of elements suitable for the above characteristics are used, a system suitable for executing an application having various characteristics can be constructed (that is, the application The execution performance can be improved).

一方、複数の特性に適した要素を利用したシステムは、一部の特性のみに適した要素を利用したシステムと比較して、一般に構築費用が高額になるという問題がある。そこで、構築費用を抑えながら、複数の特性に適したシステムを構築することが考えられている。例えば、システムを構成するすべての要素を、複数の特性に対応可能な要素にて構築するのではなく、システムを構成する要素をいくつかのグループに分割すると共に、グループ間で異なる特性に対応する要素を採用することが考えられる。   On the other hand, a system using elements suitable for a plurality of characteristics generally has a problem that the construction cost is higher than a system using elements suitable for only some characteristics. Therefore, it is considered to construct a system suitable for a plurality of characteristics while suppressing the construction cost. For example, instead of building all the elements that make up the system with elements that can support multiple characteristics, the elements that make up the system are divided into several groups, and the characteristics that differ between groups It is possible to adopt elements.

しかしながら、上記方法にてシステムを構築するには、エンドユーザが、アプリケーションおよびシステムを構成する各要素の特性を把握すると共に、手動にてシステム内におけるグループを使い分ける作業が必要となる。   However, in order to construct a system by the above method, it is necessary for the end user to grasp the characteristics of the elements constituting the application and the system and to manually use the groups in the system manually.

上記作業は、計算機の知識を必要とし、また煩雑であるため、単に計算結果のみを必要とする、計算機に精通していないエンドユーザには困難である。一方で、計算ノード間のネットワークにおける通信や、ディスクストレージへのファイルI/Oは、アプリケーションの実行性能に大きく影響するので、これらの実行に適したシステムでの実行が望まれる。   The above work requires knowledge of the computer and is complicated, and is difficult for an end user who is only familiar with the calculation result and is not familiar with the computer. On the other hand, the communication in the network between the computation nodes and the file I / O to the disk storage greatly affect the execution performance of the application. Therefore, it is desired to execute in a system suitable for these executions.

上記技術に関連して、例えば、特許文献1は、命令セット及び構成の異なるプロセッサエレメントを複数備えたヘテロジニアス・マルチプロセッサシステムを開示する。このマルチプロセッサシステムは、特定のプロセッサエレメントのリソースが不足することを防ぐことにより、マルチプロセッサシステム全体の処理を向上させる手段を備える。   In relation to the above technique, for example, Patent Document 1 discloses a heterogeneous multiprocessor system including a plurality of processor elements having different instruction sets and configurations. The multiprocessor system includes means for improving the processing of the entire multiprocessor system by preventing a shortage of resources of a specific processor element.

また、特許文献2は、ソースプログラムに基づいてプログラムの特性を判別することにより、スケジューリングに活かす方式を開示する。   Japanese Patent Application Laid-Open No. 2004-228561 discloses a scheme that is utilized for scheduling by determining program characteristics based on a source program.

特許第4936517号公報Japanese Patent No. 4936517 特開2003−271405号公報JP 2003-271405 A

上述のように、システムを構成する要素をいくつかのグループに分割すると共に、グループ間で特性の異なる要素を採用するようにシステムを構築するには、計算機の知識および煩雑な作業が必要となるため、一般のエンドユーザには実施困難であるという課題がある。   As described above, in order to divide the elements constituting the system into several groups and construct the system so as to adopt elements having different characteristics between the groups, knowledge of computers and complicated work are required. Therefore, there is a problem that it is difficult for general end users to implement.

また、上記特許文献1に開示される手段は、異種のリソースにおいてタスクを効率よく動作させるものの、プロセッサの処理のみに着目しているため、計算ノード間のネットワークにおける通信や、ディスクストレージへのファイルI/Oに適用することはできない。   Further, although the means disclosed in the above-mentioned Patent Document 1 allows tasks to operate efficiently on different types of resources, it focuses only on the processing of the processor, so communication in the network between computation nodes and file storage to disk storage It cannot be applied to I / O.

また、上記特許文献2には、計算機の知識および煩雑な作業を必要とせずに、アプリケーションの実行性能を向上する技術は開示されていない。   Further, Patent Document 2 does not disclose a technique for improving the execution performance of an application without requiring knowledge of a computer and complicated work.

本願発明は、上記課題を鑑みてなされたものであり、構築費用を低減できると共に、エンドユーザの手間を不要としながらアプリケーションの実行性能を向上することができる情報処理装置等を提供することを主要な目的とする。   The present invention has been made in view of the above problems, and mainly provides an information processing apparatus and the like that can reduce the construction cost and can improve the execution performance of the application while eliminating the trouble of the end user. With a purpose.

本発明の第1の情報処理装置は、アプリケーションの実行特性に影響を及ぼす特定記述が当該アプリケーションに含まれる場合、前記特定記述によって呼び出される命令または関数の実行頻度に関する付加情報を生成する特定記述解析手段と、前記付加情報に基づいて、前記命令または関数の実行に適した計算リソースを判断すると共に、当該計算リソースを前記アプリケーションの実行に割り当てる計算リソース割当手段とを備える。   The first information processing apparatus according to the present invention, when a specific description that affects an execution characteristic of an application is included in the application, generates a specific description analysis that generates additional information related to an execution frequency of an instruction or a function called by the specific description And a calculation resource allocation unit that determines a calculation resource suitable for execution of the instruction or function based on the additional information and allocates the calculation resource to execution of the application.

本発明の第1の情報処理方法は、コンピュータによって、アプリケーションの実行特性に影響を及ぼす特定記述が当該アプリケーションに含まれる場合、前記特定記述によって呼び出される命令または関数の実行頻度に関する付加情報を生成し、前記付加情報に基づいて、前記命令または関数の実行に適した計算リソースを判断すると共に、当該計算リソースを前記アプリケーションの実行に割り当てる。   The first information processing method of the present invention generates additional information regarding the execution frequency of an instruction or a function called by the specific description when the application includes a specific description that affects the execution characteristics of the application. Based on the additional information, a calculation resource suitable for execution of the instruction or function is determined, and the calculation resource is allocated to execution of the application.

なお同目的は、上記の各構成を有する情報処理装置または情報処理方法を、コンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。   This object is also achieved by a computer program that implements the information processing apparatus or information processing method having the above-described configurations by a computer, and a computer-readable storage medium that stores the computer program. .

本願発明によれば、構築費用を低減できると共に、エンドユーザの手間をかけることなくアプリケーションの実行性能を向上することができるという効果が得られる。   According to the present invention, it is possible to reduce the construction cost and improve the execution performance of the application without taking the trouble of the end user.

本発明の第1の実施形態に係る情報処理システムの構成の概要を示す図である。It is a figure which shows the outline | summary of a structure of the information processing system which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る情報処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the information processing system which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る情報処理システムにおいて、同時に全てのプロセス間でデータ交換が行われる例を示す図である。It is a figure which shows the example in which data exchange is simultaneously performed between all the processes in the information processing system which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る情報処理システムにおいて、プロセス間でリング状にデータ交換が行われる例を示す図である。It is a figure which shows the example in which data exchange is performed in the shape of a ring between processes in the information processing system which concerns on the 1st Embodiment of this invention. 情報処理システムにおいてバイセクショナルバンド幅が高いネットワークトポロジによって全てのノードを構成した場合の動作を示すフローチャートである。It is a flowchart which shows operation | movement at the time of comprising all the nodes by the network topology with a high bisection bandwidth in an information processing system. 情報処理システムにおいてバイセクショナルバンド幅が低いネットワークトポロジによって全てのノードを構成した場合の動作を示すフローチャートである。It is a flowchart which shows operation | movement at the time of comprising all the nodes by the network topology with a low bisection bandwidth in an information processing system. 本発明の第1の実施形態に係る情報処理システムにおいてアプリケーションを実行するシステムを振り分ける動作を示すフローチャートである。It is a flowchart which shows the operation | movement which distributes the system which performs an application in the information processing system which concerns on the 1st Embodiment of this invention. アプリケーションプログラムの記述の例を示す図である。It is a figure which shows the example of description of an application program. アプリケーションプログラムの記述の例を示す図である。It is a figure which shows the example of description of an application program. アプリケーションプログラムの記述の例を示す図である。It is a figure which shows the example of description of an application program. 情報処理システムにおいてSAS(Serial Attached SCSI)ディスクによって全てのノードを構成した場合の動作を示すフローチャートである。It is a flowchart which shows operation | movement at the time of comprising all the nodes by the SAS (Serial Attached SCSI) disk in the information processing system. 情報処理システムにおいてSATA(Serial ATA)ディスクによって全てのノードを構成した場合の動作を示すフローチャートである。It is a flowchart which shows operation | movement at the time of comprising all the nodes by the SATA (Serial ATA) disk in the information processing system. 本発明の第1の実施形態に係る情報処理システムにおいてアプリケーションをSASディスクによるシステムとSATAディスクによるシステムとに振り分ける動作を示すフローチャートである。6 is a flowchart showing an operation of distributing an application between a system using a SAS disk and a system using a SATA disk in the information processing system according to the first embodiment of the present invention. 本発明の第2の実施形態に係る情報処理システムの構成を示すブロック図である。It is a block diagram which shows the structure of the information processing system which concerns on the 2nd Embodiment of this invention. アプリケーションプログラムの例の一部を示す図である。It is a figure which shows a part of example of an application program. プリケーション実行バイナリを逆アセンブルした結果である命令リストを示す図である。It is a figure which shows the instruction list which is the result of disassembling the application execution binary. 本発明の第3の実施形態に係る情報処理システムの構成の概要を示す図である。It is a figure which shows the outline | summary of a structure of the information processing system which concerns on the 3rd Embodiment of this invention. 本発明の各実施形態に係る情報処理システムを実現可能な情報処理装置のハードウエア構成を例示する図である。It is a figure which illustrates the hardware constitutions of the information processing apparatus which can implement | achieve the information processing system which concerns on each embodiment of this invention.

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

第1の実施形態
図1は、本発明の第1の実施形態に係る情報処理システム100の構成の概要を示す図である。図1に示すように、情報処理システム100は、ジョブスケジューラ110、計算システム120、120、・・・、120を備える。アプリケーションの実行要求は、エンドユーザからジョブスケジューラに送られる。このとき、エンドユーザは、アプリケーションの実行に必要となる各計算システム内のCPU(Central Processing Unit)コアの数やメモリ容量なども要求する。本実施形態において、アプリケーションとは、情報処理システム100において実行される特定の機能を実現可能なソフトウエアプログラム(コンピュータプログラム)を表す。
First Embodiment FIG. 1 is a diagram showing an outline of a configuration of an information processing system 100 according to a first embodiment of the present invention. As shown in FIG. 1, the information processing system 100 includes a job scheduler 110, computing system 120 1, 120 2, ..., and 120 n. The application execution request is sent from the end user to the job scheduler. At this time, the end user also requests the number of CPUs (Central Processing Units) cores in each computing system and the memory capacity necessary for executing the application. In the present embodiment, an application represents a software program (computer program) that can realize a specific function executed in the information processing system 100.

情報処理システム100は、HPC(High Performance Computing)の分野に属する。   The information processing system 100 belongs to the field of HPC (High Performance Computing).

一般的なHPCの分野に属するシステムでは、複数のユーザによりシステムを共有すると共に、アプリケーションの実行量を最大化するためにジョブスケジューラと呼ばれるソフトウェアが用いられる。   In a system belonging to the general HPC field, software called a job scheduler is used in order to share the system among a plurality of users and maximize the amount of execution of an application.

ジョブスケジューラは、エンドユーザから要求されたCPUコアの数やメモリ容量を備えた計算システムを確保できた段階で、要求されたアプリケーションを、上記確保した計算システムにおいて実行する。このように、ジョブスケジューラによってアプリケーションを実行する計算システムの選択は自動的に行われる。   The job scheduler executes the requested application in the secured computing system when the computing system having the number of CPU cores and the memory capacity requested by the end user can be secured. As described above, the selection of the computing system for executing the application is automatically performed by the job scheduler.

ここで、HPC分野では、アプリケーションを実現可能なアプリケーションプログラムを記述するのに用いられるプログラミング言語には、一部の種類(言語)が多く使われる。また、複数の計算システムに処理を分割し並列に処理する分散並列処理を行うためのライブラリのAPI(Application Programming Interface)にも、一部の種類が多く使われる。このようなプログラミング言語内の特定記述(詳細は後述する)や、ライブラリのAPIは、それらに使用される種類毎に実行に適するシステムが異なるという特徴がある。   Here, in the HPC field, some types (languages) are often used as programming languages used to describe application programs capable of realizing applications. Some types of APIs (Application Programming Interfaces) for a library for performing distributed parallel processing in which processing is divided into a plurality of computing systems and processed in parallel are also frequently used. The specific description (details will be described later) in the programming language and the API of the library are characterized in that the system suitable for execution differs depending on the type used for them.

また、HPC分野のアプリケーションは、一般的に一部の処理を繰り返し実行するという特徴がある。繰り返し実行はプログラミング言語のループ構造によって記述される。   In addition, an application in the HPC field generally has a feature that a part of processing is repeatedly executed. The repeated execution is described by a loop structure of a programming language.

このように、実行に適する環境が異なるプログラム中の記述と、その記述が存在する場所のループ構造とを調べることにより、そのアプリケーションの実行に適する特性を高い精度で予測することが可能である。また、予測した結果を、ジョブスケジューラに入力することにより、エンドユーザによる手動の操作を必要とすることなく、アプリケーションの実行に適するシステムによりアプリケーションを実行することが自動で可能となる。   In this way, by examining the description in a program having a different environment suitable for execution and the loop structure where the description exists, it is possible to predict the characteristics suitable for execution of the application with high accuracy. Further, by inputting the predicted result to the job scheduler, the application can be automatically executed by a system suitable for executing the application without requiring manual operation by the end user.

以下に、本実施形態に係る情報処理システム100の詳細を説明する。   Details of the information processing system 100 according to the present embodiment will be described below.

図2は、本発明の第1の実施形態に係る情報処理システム100の構成を示すブロック図である。図2に示すように、情報処理システム100は、コンパイラ210、ジョブスケジューラ220、システム230,240を備える。   FIG. 2 is a block diagram showing the configuration of the information processing system 100 according to the first embodiment of the present invention. As illustrated in FIG. 2, the information processing system 100 includes a compiler 210, a job scheduler 220, and systems 230 and 240.

コンパイラ210は、コンパイラ通常機能部211、特定記述解析部212および付加情報生成部213を備える。ジョブスケジューラ220は、アプリケーション実行受付部221、反復回数閾値設定部222、ループ構造深さ閾値設定部223、付加情報解析部224および計算リソース割当部225を備える。   The compiler 210 includes a compiler normal function unit 211, a specific description analysis unit 212, and an additional information generation unit 213. The job scheduler 220 includes an application execution receiving unit 221, an iteration count threshold setting unit 222, a loop structure depth threshold setting unit 223, an additional information analysis unit 224, and a calculation resource allocation unit 225.

コンパイラ210は、アプリケーション実行要求310を出力する。アプリケーション実行要求310は、アプリケーション実行バイナリ311、反復回数付加情報312およびループ構造深さ付加情報313を含む。アプリケーション実行要求310は、エンドユーザによって、ジョブスケジューラ220にアプリケーションの実行を要求するときに渡される。   The compiler 210 outputs an application execution request 310. The application execution request 310 includes application execution binary 311, iteration number additional information 312, and loop structure depth additional information 313. The application execution request 310 is passed when an end user requests the job scheduler 220 to execute an application.

コンパイラ210は、アプリケーションプログラム200を受け取ると、コンパイラ通常機能部211において、通常のコンパイル機能を実施する。コンパイラ通常機能部211は、アプリケーションプログラム200に基づいて、アプリケーション実行バイナリ311を生成する。続いて、コンパイラ通常機能部211は、アプリケーションプログラム200を特定記述解析部212に送る。   When the compiler 210 receives the application program 200, the compiler normal function unit 211 performs a normal compilation function. The compiler normal function unit 211 generates an application execution binary 311 based on the application program 200. Subsequently, the compiler normal function unit 211 sends the application program 200 to the specific description analysis unit 212.

特定記述解析部212は、アプリケーションプログラム200において特定記述が記述されている箇所を調べる。特定記述とは、アプリケーションプログラムを構成する記述のうち、当該アプリケーションプログラムの実行特性に影響を及ぼす少なくとも一部のプログラムコードによる記述である。特定記述解析部212は、特定記述が見つかると、それが記述されている箇所のループ構造の深さと、ループの繰り返し回数を調べる。   The specific description analysis unit 212 examines a location where the specific description is described in the application program 200. The specific description is a description in at least a part of the program code that affects the execution characteristics of the application program among the descriptions constituting the application program. When the specific description is found, the specific description analysis unit 212 checks the depth of the loop structure where the specific description is described and the number of loop iterations.

特定記述解析部212は、調べた結果を付加情報生成部213に送る。付加情報生成部213は、ループの繰り返し回数を反復回数付加情報312、ループ構造の深さをループ構造深さ付加情報313として生成する。なお、ループの繰り返し回数がアプリケーションプログラム200において静的に与えられていない場合、付加情報生成部213は、それを識別することができる固有の値(例えば、「−1」)を反復回数付加情報312として生成する。   The specific description analysis unit 212 sends the result of the examination to the additional information generation unit 213. The additional information generation unit 213 generates the number of loop iterations as the iteration number additional information 312 and the loop structure depth as the loop structure depth additional information 313. If the loop repetition count is not statically given in the application program 200, the additional information generation unit 213 uses a unique value (for example, “−1”) that can identify the loop repetition count additional information. 312 is generated.

ジョブスケジューラ220は、計算リソース割当部225において、通常のジョブスケジューラと同様の機能を実施する。すなわち、計算リソース割当部225は、アプリケーション実行要求310にしたがって、アプリケーションを実行する計算システムを確保すると共に、確保した計算システムにおいてアプリケーションの実行を指示する。   The job scheduler 220 performs the same function as the normal job scheduler in the calculation resource allocation unit 225. That is, the computing resource allocation unit 225 secures a computing system that executes an application according to the application execution request 310 and instructs the execution of the application in the secured computing system.

また、ジョブスケジューラ220は、反復回数閾値設定部222、ループ構造深さ閾値設定部223において、プログラム中の特定記述が実行される傾向を判断するのに利用する閾値を保持する。閾値には、アプリケーションプログラム200における、ループ構造の繰り返し回数との比較に使われる閾値と、ループ構造の深さとの比較に使われる閾値とがある。ループ構造の繰り返し回数との比較に使われる閾値は、反復回数閾値設定部222に保持される。ループ構造の深さとの比較に使われる閾値は、ループ構造深さ閾値設定部223に保持される。閾値は、システム管理者によってあらかじめジョブスケジューラ220に保持されてもよい。   In addition, the job scheduler 220 holds a threshold value used to determine a tendency that a specific description in a program is executed in the iteration count threshold setting unit 222 and the loop structure depth threshold setting unit 223. The threshold value includes a threshold value used for comparison with the loop structure repetition count in the application program 200 and a threshold value used for comparison with the loop structure depth. The threshold used for comparison with the loop structure iteration count is held in the iteration count threshold setting unit 222. The threshold used for comparison with the depth of the loop structure is held in the loop structure depth threshold setting unit 223. The threshold may be stored in the job scheduler 220 in advance by the system administrator.

ジョブスケジューラ220は、アプリケーション実行受付部221において、アプリケーション実行要求310を受け取る。アプリケーション実行受付部221は、アプリケーション実行要求310に含まれる反復回数付加情報312とループ構造深さ付加情報313を付加情報解析部224に渡す。また、アプリケーション実行受付部221は、アプリケーション実行要求310を、計算リソース割当部225に渡す。   The job scheduler 220 receives the application execution request 310 at the application execution receiving unit 221. The application execution receiving unit 221 passes the repetition count additional information 312 and the loop structure depth additional information 313 included in the application execution request 310 to the additional information analysis unit 224. In addition, the application execution receiving unit 221 passes the application execution request 310 to the calculation resource allocation unit 225.

付加情報解析部224は、まず、受け取った反復回数付加情報312と、反復回数閾値設定部222に設定された値とを比較する。付加情報解析部224は、反復回数閾値設定部222に設定された値より、受け取った反復回数付加情報312が大きい場合は、アプリケーションプログラム200は、「特定記述の実行が多い」という特性に当てはまると判断する。   The additional information analysis unit 224 first compares the received iteration count additional information 312 with the value set in the iteration count threshold setting unit 222. If the received additional iteration number information 312 is larger than the value set in the iteration count threshold setting unit 222, the additional information analysis unit 224 applies to the characteristic that “specific description is often executed”. to decide.

ここで、反復回数付加情報312に、アプリケーションプログラム200においてループの繰り返し回数が静的に与えられていないことを識別する固有の値が設定されていた場合は、付加情報解析部224は、上記比較は行わず、ループ構造深さに関する比較を行う。すなわち、付加情報解析部224は、受け取ったループ構造深さ付加情報313と、ループ構造深さ閾値設定部223に設定された値とを比較する。   Here, if the unique value for identifying that the iteration count of the loop is not statically given in the application program 200 is set in the iteration count additional information 312, the additional information analysis unit 224 determines that the comparison Without comparison, a comparison is made regarding the loop structure depth. That is, the additional information analysis unit 224 compares the received loop structure depth additional information 313 with the value set in the loop structure depth threshold setting unit 223.

ループ構造深さ閾値設定部223に設定された値よりループ構造深さ付加情報313が大きい場合、付加情報解析部224は、アプリケーションプログラム200は、「特定記述の実行が多い」という特性に当てはまると判断する。付加情報解析部224は、判断結果を、計算リソース割当部225に渡す。   When the loop structure depth additional information 313 is larger than the value set in the loop structure depth threshold setting unit 223, the additional information analysis unit 224 indicates that the application program 200 applies to the characteristic that “specific description is often executed”. to decide. The additional information analysis unit 224 passes the determination result to the calculation resource allocation unit 225.

計算リソース割当部225は、アプリケーション実行受付部221から渡されたアプリケーション実行要求310と、付加情報解析部224から渡された判断結果に基づいて、アプリケーションを実行するシステムを判断する。計算リソース割当部225は、特定記述の実行が多いという特性を持つアプリケーション実行に対して、特定記述の実行に適したシステム230を割り当てる。一方、計算リソース割当部225は、特定記述の実行が多いという特性を持たないアプリケーションの実行に対しては、特定記述の実行に適さないシステム240を割り当てる。   The calculation resource allocation unit 225 determines a system for executing the application based on the application execution request 310 passed from the application execution reception unit 221 and the determination result passed from the additional information analysis unit 224. The computing resource allocation unit 225 allocates a system 230 suitable for execution of the specific description for application execution having a characteristic that the specific description is frequently executed. On the other hand, the calculation resource allocation unit 225 allocates a system 240 that is not suitable for execution of a specific description for the execution of an application that does not have the characteristic that the specific description is frequently executed.

以上のように、情報処理システム100は、アプリケーションの実行に適したシステムを判断すると共に、当該システムにアプリケーションの実行を振り分ける。   As described above, the information processing system 100 determines a system suitable for executing an application and distributes the execution of the application to the system.

次に、具体的な例を用いて、上記構成の詳細について説明する。   Next, details of the above configuration will be described using a specific example.

ここで、MPI(Message Passing Interface)を利用したプログラムに着目する。HPCの分野では、計算量の増加に伴い、複数の計算機に処理を分散する分散並列計算を行うことがよく使われる手法として存在する。分散並列計算を行うにはいくつかの手法が存在し、その中でもMPIと呼ばれるメッセージパッシングAPIの標準規格によって分散並列計算を行うことが今日では一般的となっている。すなわち、本実施形態においてMPIを利用したアプリケーションプログラムを対象にすることは、HPC分野のアプリケーションにおいて大きな割合を占めることになる。   Here, attention is focused on a program using MPI (Message Passing Interface). In the field of HPC, as the amount of computation increases, distributed parallel computation that distributes processing to a plurality of computers exists as a commonly used technique. There are several methods for performing distributed parallel computation, and among them, it is now common to perform distributed parallel computation according to a message passing API standard called MPI. That is, targeting an application program that uses MPI in this embodiment occupies a large proportion of applications in the HPC field.

そこで、以下に、MPIを利用したアプリケーションプログラムを本実施形態において実行する場合の情報処理システム100の動作について説明する。   Therefore, the operation of the information processing system 100 when an application program using MPI is executed in this embodiment will be described below.

MPIは、分散並列計算をメッセージパッシングによって実現するAPIであり、MPIが備える通信APIの種類は、大きく分けて「1対1通信系API」と、「集団通信系API」に分類される。例えば、「集団通信系API」の一関数である”MPI_Alltoall()”は、図3に示すように、同時に全てのプロセス(0〜3)間においてデータ交換が行われる場合に使われる。一方、「1対1通信系API」の一関数である”MPI_Sendrecv()”は、図4に示すように、プロセス(0〜3)間でリング状にデータ交換をする場合によく使われる。ネットワークのバイセクショナルバンド幅(バイセクションバンド幅:2分割帯域幅)としては、集団通信系APIの実行には、1対1通信系APIの実行に比べて、高いバイセクショナルバンド幅が要求される。バイセクショナルバンド幅とは、ネットワークを2つに分割し、その間にある全リンクのバンド幅を合計したものである。ここでは、例えば、バイセクショナルバンド幅が、所定の閾値より高いネットワークトポロジにより構成されるシステムを、「バイセクショナルバンド幅が高いシステム」と称する。また、バイセクショナルバンド幅が、所定の閾値より低いネットワークトポロジにより構成されるシステムを、「バイセクショナルバンド幅が低いシステム」と称する。   MPI is an API that implements distributed parallel computation by message passing, and the types of communication APIs provided by MPI are broadly classified into “one-to-one communication APIs” and “collective communication APIs”. For example, “MPI_Alltoall ()”, which is a function of “collective communication system API”, is used when data is exchanged between all processes (0 to 3) at the same time as shown in FIG. On the other hand, “MPI_Sendrecv ()”, which is a function of “one-to-one communication system API”, is often used when data is exchanged between processes (0 to 3) as shown in FIG. As for the bi-sectional bandwidth of the network (bi-section bandwidth: divided bandwidth), the execution of the collective communication system API requires a higher bi-section bandwidth compared to the execution of the one-to-one communication system API. . The bi-sectional bandwidth is obtained by dividing the network into two and adding up the bandwidths of all the links between them. Here, for example, a system configured with a network topology having a bi-sectional bandwidth higher than a predetermined threshold is referred to as a “system with a high bi-sectional bandwidth”. Further, a system configured with a network topology having a bisexual bandwidth lower than a predetermined threshold is referred to as a “system with a low bisexual bandwidth”.

例えば、アプリケーションを実行するシステムを1000台のノードを用いて構成することを考える。図5に示すように、バイセクショナルバンド幅が所定の閾値より高いネットワークトポロジによって1000ノード全てを構成した場合、どの計算ノードにてアプリケーションを実行したとしても、MPIが備える集団通信系APIは、性能低下することなく実行される。   For example, consider a system that executes an application using 1000 nodes. As shown in FIG. 5, when all 1000 nodes are configured with a network topology having a bi-sectional bandwidth higher than a predetermined threshold, the collective communication system API provided in the MPI can It is executed without degradation.

しかしながら、一般に、バイセクショナルバンド幅が高いシステムは、バイセクショナルバンド幅が低いシステムに比べて、構築費用が高いという特徴がある。   However, in general, a system having a high bisectional bandwidth is characterized by a higher construction cost than a system having a low bisectional bandwidth.

一方、図6に示すように、バイセクショナルバンド幅が低いネットワークトポロジによって1000ノード全てを構成すると、システムの構築費用を安くすることが可能となる反面、MPIが備える集団通信系APIの実行性能が低下するという問題が生じる。   On the other hand, as shown in FIG. 6, if all 1000 nodes are configured with a network topology having a low bi-sectional bandwidth, the construction cost of the system can be reduced, but the execution performance of the collective communication API provided by MPI is low. The problem of deteriorating arises.

そこで、本実施形態では、図7に示すように、情報処理システム100が、MPIを利用したアプリケーションプログラムを実行するシステムを振り分ける動作について説明する。すなわち、ジョブスケジューラは、MPIを利用したアプリケーションプログラムの特性を判断し、その判断結果に基づいて、バイセクショナルバンド幅が高いシステムと、バイセクショナルバンド幅が低いシステムに、プログラムの実行を振り分ける。   Therefore, in the present embodiment, as shown in FIG. 7, an operation in which the information processing system 100 distributes a system that executes an application program using MPI will be described. In other words, the job scheduler determines the characteristics of the application program using MPI, and distributes the execution of the program to a system having a high bisection bandwidth and a system having a low bisection bandwidth based on the determination result.

図8は、MPIが備える集団通信系APIである関数”MPI_Alltoall()”を、ループ構造の深さが「3」の位置(a)で呼び出すアプリケーションプログラム(ソースプログラム)の記述(プログラムコード)の一部の例を示す図である。図8に示すアプリケーションプログラムが、図2に示すコンパイラ210に供給されると、コンパイラ210のコンパイラ通常機能部211は、コンパイルを実施することによりアプリケーション実行バイナリ311を生成する。   FIG. 8 shows a description (program code) of an application program (source program) that calls a function “MPI_Alltoall ()” that is a collective communication system API provided by MPI at a position (a) having a loop structure depth “3”. It is a figure which shows some examples. When the application program shown in FIG. 8 is supplied to the compiler 210 shown in FIG. 2, the compiler normal function unit 211 of the compiler 210 generates an application execution binary 311 by performing compilation.

コンパイラ通常機能部211はまた、アプリケーションプログラムを特定記述解析部212に送る。特定記述解析部212は、アプリケーションプログラムにおいて集団通信系APIの有無を解析する。図8に示すように、当該アプリケーションプログラムでは、”MPI_Alltoall()”を呼び出しているので、特定記述解析部212はそれを検出する。   The compiler normal function unit 211 also sends the application program to the specific description analysis unit 212. The specific description analysis unit 212 analyzes the presence or absence of the collective communication system API in the application program. As shown in FIG. 8, since the application program calls “MPI_Alltoall ()”, the specific description analysis unit 212 detects it.

続いて特定記述解析部212は、”MPI_Alltoall()”が呼び出されている箇所におけるループ構造を解析する。図8に示す(a)の位置では、ループ構造の深さは「3」と識別できる。一方、ループの繰り返し回数は、「N1」、「N2」、「N3」と示され、静的に与えられていない。よって、特定記述解析部212は、ループの繰り返し回数が静的に与えられていないことを示す「−1」を解析結果とする。特定記述解析部212は、解析結果を付加情報生成部213に送る。ここでは、反復回数付加情報312として「−1」、ループ構造深さ付加情報313として「3」が、生成される。   Subsequently, the specific description analysis unit 212 analyzes the loop structure at the place where “MPI_Alltoall ()” is called. At the position (a) shown in FIG. 8, the depth of the loop structure can be identified as “3”. On the other hand, the number of loop iterations is indicated as “N1”, “N2”, “N3”, and is not given statically. Therefore, the specific description analysis unit 212 sets “−1” indicating that the loop iteration count is not statically given as an analysis result. The specific description analysis unit 212 sends the analysis result to the additional information generation unit 213. Here, “−1” is generated as the additional number of iterations information 312 and “3” is generated as the loop structure depth additional information 313.

上述のように、コンパイラ210によって生成されたアプリケーション実行バイナリ311、反復回数付加情報312、ループ構造深さ付加情報313は、アプリケーション実行要求310としてジョブスケジューラ220に渡される。なお、ここでは、ジョブスケジューラ220の反復回数閾値設定部222に「1000」、ループ構造深さ閾値設定部223に「2」が、あらかじめシステム管理者によって設定されている。   As described above, the application execution binary 311, the iteration count additional information 312, and the loop structure depth additional information 313 generated by the compiler 210 are passed to the job scheduler 220 as the application execution request 310. Here, “1000” is set in the iteration count threshold setting unit 222 of the job scheduler 220 and “2” is set in the loop structure depth threshold setting unit 223 in advance by the system administrator.

ジョブスケジューラ220は、アプリケーション実行要求310をアプリケーション実行受付部221において受け取る。アプリケーション実行受付部221は、アプリケーション実行要求310を計算リソース割当部225に送る。また、アプリケーション実行受付部221は、アプリケーション実行要求310に含まれる反復回数付加情報312と、ループ構造深さ付加情報313を、付加情報解析部224に送る。   The job scheduler 220 receives the application execution request 310 at the application execution reception unit 221. The application execution receiving unit 221 sends an application execution request 310 to the calculation resource allocation unit 225. In addition, the application execution reception unit 221 sends the repetition count additional information 312 and the loop structure depth additional information 313 included in the application execution request 310 to the additional information analysis unit 224.

付加情報解析部224は、受け取った反復回数付加情報312と、ループ構造深さ付加情報313を、それぞれ、反復回数閾値設定部222に設定された値と、ループ構造深さ閾値設定部223に設定された値と比較する。そして、付加情報解析部224は、その比較の結果に基づいて、アプリケーションプログラムの特性を判断する。   The additional information analysis unit 224 sets the received iteration count additional information 312 and loop structure depth additional information 313 to the value set in the iteration count threshold setting unit 222 and the loop structure depth threshold setting unit 223, respectively. Compare with the value obtained. Then, the additional information analysis unit 224 determines the characteristics of the application program based on the comparison result.

ここでは、反復回数付加情報312にループの繰り返し回数が静的に与えられていないことを示す「−1」が設定されるので、付加情報解析部224は、ループの反復回数に関する比較結果は採用せず、ループ構造深さに関する比較の結果を採用する。すなわち、ループ構造深さ閾値設定部223に設定された値「2」と、ループ構造深さ付加情報313の値「3」とを比較すると、ループ構造付加情報313の値の方が大きい。よって、付加情報解析部224は、「MPIが備える集団通信系APIの実行が多い」と判断する。   Here, since “−1” indicating that the loop iteration count is not statically given is set in the iteration count additional information 312, the additional information analysis unit 224 adopts the comparison result regarding the loop iteration count. Without adopting the comparison results regarding the loop structure depth. That is, when the value “2” set in the loop structure depth threshold setting unit 223 is compared with the value “3” of the loop structure depth additional information 313, the value of the loop structure additional information 313 is larger. Therefore, the additional information analysis unit 224 determines that “the collective communication system API provided by MPI is often executed”.

付加情報解析部224は、上記判断の結果を計算リソース割当部225に送る。計算リソース割当部225は、「MPIが備える集団通信系APIの実行が多い」との判断に基づいて、図7に示したバイセクショナルバンド幅が高いシステム(図2に示すシステム230)を、当該アプリケーションプログラムの実行に割り当てる。システム230は、当該アプリケーションプログラムの実行を行う。以上の動作により、本実施形態に係る情報処理システム100は、MPIを利用したアプリケーションプログラムを実行するシステムを振り分ける。   The additional information analysis unit 224 sends the determination result to the calculation resource allocation unit 225. The calculation resource allocation unit 225 determines that the system (system 230 shown in FIG. 2) with the high bi-sectional bandwidth shown in FIG. Assign to the execution of the application program. The system 230 executes the application program. With the above operation, the information processing system 100 according to the present embodiment distributes systems that execute application programs using MPI.

次に、上記とは異なるアプリケーションプログラムを実行する例について説明する。   Next, an example of executing an application program different from the above will be described.

図9は、MPIを利用したアプリケーションプログラムの他の記述の例を示す図である。図9に示すアプリケーションプログラムでは、MPIの集団通信系APIが記述されている箇所(b)において、ループの繰り返し回数が静的に与えられている。すなわち、ループの繰り返し回数は「1000」と与えられている。さらに、当該箇所におけるループは2重に記述されているので、繰り返し回数の合計は「1000000」である。   FIG. 9 is a diagram illustrating an example of another description of an application program using MPI. In the application program shown in FIG. 9, the number of loop iterations is statically given at the location (b) where the MPI collective communication API is described. That is, the number of loop iterations is given as “1000”. Furthermore, since the loop at the location is described twice, the total number of repetitions is “1000000”.

図9に示すアプリケーションプログラムを受け取ると、情報処理システム100は、上記と同様に動作する。すなわち、コンパイラ210は、付加情報生成部213において、反復回数付加情報312として「1000000」を、ループ構造深さ付加情報313として「2」を生成する。上述したように、ジョブスケジューラ220の反復回数閾値設定部222には「1000」が設定されるので、付加情報解析部224は、「MPIが備える集団通信系APIの実行が多い」と判断する。   When the application program shown in FIG. 9 is received, the information processing system 100 operates in the same manner as described above. That is, the compiler 210 causes the additional information generation unit 213 to generate “1000000” as the iteration count additional information 312 and “2” as the loop structure depth additional information 313. As described above, since “1000” is set in the iteration count threshold setting unit 222 of the job scheduler 220, the additional information analysis unit 224 determines that “the collective communication system API included in MPI is often executed”.

さらに、上記とは異なるアプリケーションプログラムを実行する例について説明する。   Furthermore, an example of executing an application program different from the above will be described.

HPCの分野では、科学技術計算を行うことを目的として作られた言語であるFORTRAN(登録商標)によってアプリケーションプログラムが記述されることが多い。したがって、ここでは、FORTANによって記述されたアプリケーションプログラムに着目し、このようなアプリケーションプログラムを本実施形態に係る情報処理システム100により実行する場合の動作を説明する。   In the field of HPC, application programs are often written in FORTRAN (registered trademark), which is a language created for the purpose of performing scientific and technical calculations. Therefore, here, focusing on an application program described in FORTAN, an operation when such an application program is executed by the information processing system 100 according to the present embodiment will be described.

図10は、FORTANによって記述されたアプリケーションプログラムの記述の例を示す図である。FORTRANによるファイルI/Oは、OPEN文の呼出しにより対象とするファイルとプログラムで使用する識別子とを紐づけると共に、その後にその識別子を指定してWRITE文またはREAD文を呼び出すことによって実施される。   FIG. 10 is a diagram illustrating an example of the description of an application program described in FORTAN. File I / O by FORTRAN is implemented by associating a target file with an identifier used in a program by calling an OPEN statement, and then calling the WRITE statement or the READ statement by specifying the identifier.

このとき、本実施形態では、ファイルI/Oの規則性に応じてOPEN文の呼出し時にACCESS指定子に指定する値を変更する。すなわち、ファイルI/Oの規則性がシーケンシャルファイルアクセスである場合、ACCESS指定子に「SEQUENTIAL」を指定する。一方、ファイルI/Oの規則性がランダムアクセスの場合、ACCESS指定子に「DIRECT」を指定する。なお、ACCESS指定子の記述を省略した場合、「SEQUENTIAL」を指定した場合と同等になるようにしてもよい。   At this time, in the present embodiment, the value specified in the ACCESS specifier when the OPEN statement is called is changed according to the regularity of the file I / O. That is, when the regularity of the file I / O is sequential file access, “SEQUENTIAL” is specified in the ACCESS specifier. On the other hand, when the regularity of the file I / O is random access, “DIRECT” is designated in the ACCESS specifier. If the description of the ACCESS specifier is omitted, it may be equivalent to the case where “SEQUENTIAL” is specified.

ここで、ファイルの入出力先となるストレージディスク(記憶装置)は、今日ではSATA(Serial ATA)ディスクとSAS(Serial Attached SCSI)ディスクが多く使われている。SATAディスクとSASディスクを比較した場合、一般的にシーケンシャルアクセス性能に大きな差は出ないものの、ランダムアクセス性能はSASディスクの方が優れている。また、SATAディスクの方がSASディスクに比べて安価に入手できるという特徴がある。   Here, as a storage disk (storage device) as a file input / output destination, a SATA (Serial ATA) disk and a SAS (Serial Attached SCSI) disk are often used today. When a SATA disk and a SAS disk are compared, the random access performance is generally superior to the SAS disk, although there is no significant difference in sequential access performance. In addition, the SATA disk has a feature that it can be obtained at a lower cost than the SAS disk.

例えば、アプリケーションを実行するシステムを1000台のノードを用いて構成することを考える。図11に示すように、SASディスクによって1000ノード全てを構成した場合、どの計算ノードによりアプリケーションを実行したとしても、FORTRANにより記述されたアプリケーションプログラムのファイルI/Oは、性能低下することなく実行される。しかしながら、この場合、システムの構築費用が高額になるという問題がある。   For example, consider a system that executes an application using 1000 nodes. As shown in FIG. 11, when all 1000 nodes are configured by SAS disks, the file I / O of the application program described by FORTRAN is executed without any performance degradation, regardless of which calculation node is used to execute the application. The However, in this case, there is a problem that the construction cost of the system becomes high.

一方、図12に示すようにSATAディスクによって1000ノード全てを構成した場合、システムの構築費用が安価になるが、その反面、ランダムアクセスのファイルI/Oの実行性能が低下するという問題がある。   On the other hand, when all 1000 nodes are configured with SATA disks as shown in FIG. 12, the construction cost of the system becomes low, but on the other hand, there is a problem that the execution performance of the random access file I / O is lowered.

そこで、以下では、図13に示すように、FORTANによって記述されたアプリケーションプログラム中のOPEN文の記述に基づいてファイルI/Oの特性を判断し、判断の結果に基づいていずれかのシステムにプログラムの実行を振り分ける動作について説明する。   Therefore, in the following, as shown in FIG. 13, the characteristics of the file I / O are determined based on the description of the OPEN statement in the application program described in FORTAN, and the program is programmed in any system based on the determination result. The operation for distributing the executions of will be described.

図10は、FOTRANによって記述されたアプリケーションプログラムにおいて、「ACCESS=DIRECT」である指定子によってOPEN文が実行されたファイルに対して、ループ構造の深さが「3」の位置でWRITE文を実行する部分を示す。   FIG. 10 shows that an WRITE statement is executed at a position where the depth of the loop structure is “3” for a file in which an OPEN statement is executed by a specifier “ACCESS = DIRECT” in an application program described by FOTRAN. The part to do is shown.

このアプリケーションプログラムが図2に示すコンパイラ210に入力されると、コンパイラ通常機能部211は、アプリケーション実行バイナリ311を生成する。次に、コンパイラ通常機能部211は、アプリケーションプログラムを特定記述解析部212に送る。特定記述解析部212は、「ACCESS=DIRECT」である指定子を含むOPEN文の有無を調べる。   When this application program is input to the compiler 210 shown in FIG. 2, the compiler normal function unit 211 generates an application execution binary 311. Next, the compiler normal function unit 211 sends the application program to the specific description analysis unit 212. The specific description analysis unit 212 checks whether there is an OPEN statement including a specifier of “ACCESS = DIRECT”.

図10に示すアプリケーションプログラムでは、「ACCESS=DIRECT」である指定子を含むOPEN文を呼び出しているため、特定記述解析部212は、それが記述されている部分を検出する。次に、特定記述解析部212は、「ACCESS=DIRECT」によりOPEN文を実行したファイルに、WRITE文またはREAD文を実行する箇所のループ構造を解析する。   In the application program shown in FIG. 10, since the OPEN statement including the specifier “ACCESS = DIRECT” is called, the specific description analysis unit 212 detects the portion in which it is described. Next, the specific description analysis unit 212 analyzes the loop structure of the portion where the WRITE statement or the READ statement is executed in the file in which the OPEN statement is executed by “ACCESS = DIRECT”.

図10に示すプログラムでは、WRITE文を実行する箇所のループ構造の深さは「3」である。一方、ループの繰り返し回数は「N1」、「N2」、「N3」と記述され静的に与えられていない。したがって、特定記述解析部212は、ループ構造の深さを「3」、ループの繰り返し回数を静的に与えられていないことを示す「−1」として、解析結果を出力する。特定記述解析部212は、解析結果を付加情報生成部213に送る。ここでは、反復回数付加情報312として「−1」、ループ構造深さ付加情報313として「3」が、それぞれ生成される。   In the program shown in FIG. 10, the depth of the loop structure at the location where the WRITE statement is executed is “3”. On the other hand, the number of loop iterations is described as “N1”, “N2”, “N3” and is not given statically. Therefore, the specific description analysis unit 212 outputs the analysis result by setting the depth of the loop structure as “3” and the number of loop repetitions as “−1” indicating that it is not given statically. The specific description analysis unit 212 sends the analysis result to the additional information generation unit 213. Here, “−1” is generated as the additional number of repetitions information 312, and “3” is generated as the loop structure depth additional information 313.

コンパイラ210は、生成したアプリケーション実行バイナリ311、反復回数付加情報312、ループ構造深さ付加情報313を含むアプリケーション実行要求310を、ジョブスケジューラ220に渡す。なお、ここでは、ジョブスケジューラ220の反復回数閾値設定部222に「1000」、ループ構造深さ閾値設定部223に「2」があらかじめシステム管理者によって設定されている。   The compiler 210 passes the generated application execution binary 311, the iteration count additional information 312, and the loop structure depth additional information 313 to the job scheduler 220. In this case, “1000” is set in the iteration count threshold setting unit 222 of the job scheduler 220 and “2” is set in the loop structure depth threshold setting unit 223 in advance by the system administrator.

アプリケーション実行要求310を受け取ったアプリケーション実行受付部221は、アプリケーション実行要求310を計算リソース割当部225に渡す。また、アプリケーション実行受付部221は、アプリケーション実行要求310に含まれる反復回数付加情報312と、ループ構造深さ付加情報313を、付加情報解析部224に送る。付加情報解析部224は、まず反復回数閾値設定部222に設定された値と、反復回数付加情報312の値とを比較する。ここでは、反復回数付加情報312の値は、ループの繰り返し回数が静的に与えられていないことを示す「−1」であるので、付加情報解析部224は、反復回数に関する比較結果は採用しない。続いて、付加情報解析部224は、ループ構造深さ閾値設定部223に設定された値「2」と、ループ構造深さ付加情報313の値「3」とを比較する。その結果、ループ構造付加情報313の値の方が大きい。したがって、付加情報解析部224は、「ランダムアクセスによりOPEN文を実行したファイルへのI/Oは多い」と判断する。   Upon receiving the application execution request 310, the application execution reception unit 221 passes the application execution request 310 to the calculation resource allocation unit 225. In addition, the application execution reception unit 221 sends the repetition count additional information 312 and the loop structure depth additional information 313 included in the application execution request 310 to the additional information analysis unit 224. The additional information analysis unit 224 first compares the value set in the iteration count threshold setting unit 222 with the value of the iteration count additional information 312. Here, since the value of the iteration count additional information 312 is “−1” indicating that the loop iteration count is not statically given, the additional information analysis unit 224 does not employ the comparison result regarding the iteration count. . Subsequently, the additional information analysis unit 224 compares the value “2” set in the loop structure depth threshold setting unit 223 with the value “3” of the loop structure depth additional information 313. As a result, the value of the loop structure additional information 313 is larger. Therefore, the additional information analysis unit 224 determines that “there are many I / Os to the file that has executed the OPEN statement by random access”.

付加情報解析部224は、上記判断結果を計算リソース割当部225に渡す。計算リソース割当部225は上記判断結果に基づいて、当該アプリケーションプログラムに、図13に示す、SASディスクを備えたシステムを割り当る。SASディスクを備えたシステムは、割り当てられたアプリケーションプログラムを実行する。   The additional information analysis unit 224 passes the determination result to the calculation resource allocation unit 225. Based on the determination result, the calculation resource allocation unit 225 allocates a system having a SAS disk shown in FIG. 13 to the application program. A system having a SAS disk executes an assigned application program.

以上のように、本第1の実施形態によれば、コンパイラ210は、特定記述解析部212により、アプリケーションプログラムの実行特性に影響を及ぼす特定記述の有無を調べ、特定記述がある場合、その特定記述が記述されている箇所のループ構造の深さとループの繰り返し回数を調べる。ジョブスケジューラ220における付加情報解析部224は、上記ループ構造の深さと、ループの繰り返し回数の少なくともいずれかが閾値より大きい場合、当該アプリケーションプログラムは、「特定記述の実行が多い」という特性に当てはまると判断する。計算リソース割当部225は、特定記述の実行が多いと判断されたアプリケーションプログラムに、実行に適したシステムを割り当てる。   As described above, according to the first embodiment, the compiler 210 uses the specific description analysis unit 212 to check whether there is a specific description that affects the execution characteristics of the application program. Check the depth of the loop structure where the description is written and the number of loop iterations. If at least one of the depth of the loop structure and the number of loop repetitions is greater than the threshold value, the additional information analysis unit 224 in the job scheduler 220 applies to the characteristic that “specific description is often executed”. to decide. The computing resource allocation unit 225 allocates a system suitable for execution to an application program that is determined to have a lot of specific description execution.

上記構成を採用することにより、本第1の実施形態によれば、MPIが備える集団通信系APIの実行が多いアプリケーションプログラムの実行に、バイセクショナルバンド幅が高いシステムを割り当てることができる。また、FORTRANにより記述され、ランダムアクセスによりOPEN文を実行したファイルへのI/Oが多いアプリケーションプログラムの実行に、SASディスクを備えたシステムを割り当てることができる。   By adopting the above configuration, according to the first embodiment, it is possible to assign a system having a high bi-sectional bandwidth to the execution of an application program that frequently executes the collective communication API provided in the MPI. In addition, a system having a SAS disk can be allocated to the execution of an application program that is described in FORTRAN and that has a lot of I / O to a file that has been executed with an OPEN statement by random access.

つまり、アプリケーションを構成するプログラムの特性をコンパイラによって解析した結果に基づいて、アプリケーションの実行に適した計算リソースを割り当てることができるので、システムの構築コストを抑えながら、エンドユーザに手間をかけずにアプリケーションの実行性能を最大化できるという効果が得られる。   In other words, calculation resources suitable for application execution can be allocated based on the results of analyzing the characteristics of the programs that make up the application by using a compiler, so that it is possible to reduce the system construction cost and save effort for the end user. The effect that the execution performance of the application can be maximized is obtained.

第2の実施形態
図14は、本発明の第2の実施形態に係る情報処理システム400の構成を示すブロック図である。図14に示すように、情報処理システム400は、ジョブスケジューラ420、システム450、システム460を備える。ジョブスケジューラ420は、アプリケーション実行要求410を受け取る。
Second Embodiment FIG. 14 is a block diagram showing a configuration of an information processing system 400 according to a second embodiment of the present invention. As illustrated in FIG. 14, the information processing system 400 includes a job scheduler 420, a system 450, and a system 460. The job scheduler 420 receives the application execution request 410.

本実施形態に係る情報処理システム400では、一般的なコンパイラによってアプリケーションプログラムをコンパイルし、エンドユーザによって、アプリケーションの実行がジョブスケジューラ420に要求される。   In the information processing system 400 according to the present embodiment, an application program is compiled by a general compiler, and an end user requests the job scheduler 420 to execute the application.

図14に示すように、ジョブスケジューラ420は、アプリケーション実行受付部421、ループ構造深さ閾値設定部422、特定記述解析部423、付加情報生成部424、ループ構造深さ付加情報425、付加情報解析部426、計算リソース割当部427を備える。   As shown in FIG. 14, the job scheduler 420 includes an application execution receiving unit 421, a loop structure depth threshold setting unit 422, a specific description analyzing unit 423, an additional information generating unit 424, a loop structure depth additional information 425, and additional information analysis. Unit 426 and calculation resource allocation unit 427.

ジョブスケジューラ420は、エンドユーザからのアプリケーション実行要求410をアプリケーション実行受付部421において受け付ける。アプリケーション実行要求410は、一般的なコンパイラによってコンパイルされたアプリケーション実行バイナリ411を指定する。   The job scheduler 420 receives an application execution request 410 from an end user in the application execution receiving unit 421. The application execution request 410 specifies an application execution binary 411 compiled by a general compiler.

アプリケーション実行受付部421は、アプリケーション実行要求410において指定されたアプリケーション実行バイナリ411を、外部の逆アセンブラ430に渡す。逆アセンブラ430は、情報処理システム400と通信可能な情報処理装置で実行可能であり、アプリケーション実行バイナリ411に対して逆アセンブルを実行する。   The application execution reception unit 421 passes the application execution binary 411 specified in the application execution request 410 to the external disassembler 430. The disassembler 430 can be executed by an information processing apparatus that can communicate with the information processing system 400, and executes disassembly for the application execution binary 411.

逆アセンブリ430による実行の結果、アプリケーションの命令リスト440が生成される。命令リスト440は、ジョブスケジューラ420の特定記述解析部423に送られる。特定記述解析部423は、命令リスト440に基づいてアプリケーションの実行特性に影響を及ぼす特定記述の箇所を調べると共に、当該箇所が見つかった場合は、当該箇所におけるループ構造の深さを調べる。   As a result of execution by disassembly 430, an instruction list 440 for the application is generated. The instruction list 440 is sent to the specific description analysis unit 423 of the job scheduler 420. Based on the instruction list 440, the specific description analysis unit 423 examines the location of the specific description that affects the execution characteristics of the application, and if the location is found, examines the depth of the loop structure at the location.

特定記述解析部423は、上記調べた結果を付加情報生成部424に送る。付加情報生成部424は、ループ構造の深さに関する結果を、ループ構造深さ付加情報425として生成すると共に、生成したループ構造深さ付加情報425を付加情報解析部426に送る。   The specific description analysis unit 423 sends the result of the above examination to the additional information generation unit 424. The additional information generation unit 424 generates a result related to the depth of the loop structure as the loop structure depth additional information 425 and sends the generated loop structure depth additional information 425 to the additional information analysis unit 426.

付加情報解析部426は、ループ構造深さ付加情報425とループ構造深さ閾値設定部422に設定された値とを比較する。ループ構造深さ閾値設定部422に設定された値より、ループ構造深さ付加情報425の値が大きい場合、付加情報解析部426は、当該アプリケーションプログラムは、「特定記述の実行が多い」という特性に当てはまると判断する。その判断の結果を特性情報と称する。   The additional information analysis unit 426 compares the loop structure depth additional information 425 with the value set in the loop structure depth threshold setting unit 422. When the value of the loop structure depth additional information 425 is larger than the value set in the loop structure depth threshold setting unit 422, the additional information analysis unit 426 has a characteristic that the application program has “specific description is often executed”. Judge that it is true. The result of the determination is referred to as characteristic information.

付加情報解析部426は、上記特性情報を計算リソース割当部427に渡す。なお、ループ構造深さ閾値設定部422には、システム管理者によってあらかじめ閾値が設定される。   The additional information analysis unit 426 passes the characteristic information to the calculation resource allocation unit 427. In the loop structure depth threshold setting unit 422, a threshold is set in advance by the system administrator.

計算リソース割当部427は、アプリケーション実行受付部421から渡されたアプリケーション実行要求410と、付加情報解析部426から渡された特性情報とに基づいて、アプリケーションを実行するシステムを判断する。この場合、計算リソース割当部427は、当該アプリケーションプログラムに、特定記述の実行に適したシステム450を割り当てる。システム450は、割り当てられたアプリケーションプログラムを実行する。   The calculation resource allocation unit 427 determines a system for executing the application based on the application execution request 410 passed from the application execution receiving unit 421 and the characteristic information passed from the additional information analysis unit 426. In this case, the computing resource allocation unit 427 allocates a system 450 suitable for executing the specific description to the application program. The system 450 executes the assigned application program.

次に、具体的な例を用いて情報処理システム400の動作について説明する。ここでは、MPIを利用したアプリケーションの実行バイナリから、アプリケーションの集団通信系APIの呼出し状況を判断すると共に、バイセクショナルバンド幅が高いシステムと、バイセクショナルバンド幅が低いシステムに、アプリケーションの実行を振り分ける動作について説明する。   Next, the operation of the information processing system 400 will be described using a specific example. Here, the call status of the collective communication API of the application is determined from the execution binary of the application using MPI, and the execution of the application is distributed to a system having a high bisection bandwidth and a system having a low bisection bandwidth. The operation will be described.

図15は、MPIの集団通信系APIである”MPI_Alltoall()”を、3重のループ構造の中(c)で呼び出すアプリケーションプログラムの記述の一部を示す。   FIG. 15 shows a part of a description of an application program that calls “MPI_Alltoall ()”, which is a collective communication system API of MPI, in a triple loop structure (c).

図15を含むソースプログラムをコンパイルした結果として生成されたアプリケーション実行バイナリを、図14に示すアプリケーション実行バイナリ411とする。このアプリケーション実行バイナリ411を含むアプリケーション実行要求410が、ジョブスケジューラ420に送られると、ジョブスケジューラ420はそのアプリケーション実行要求410をアプリケーション実行受付部421で受け付ける。   An application execution binary generated as a result of compiling the source program including FIG. 15 is referred to as an application execution binary 411 shown in FIG. When the application execution request 410 including the application execution binary 411 is sent to the job scheduler 420, the job scheduler 420 receives the application execution request 410 by the application execution reception unit 421.

アプリケーション実行受付部421は、アプリケーション実行要求410において指定されたアプリケーション実行バイナリ411を、逆アセンブラ430に渡す。逆アセンブラ430は、アプリケーション実行バイナリ411に対して逆アセンブルを実行する。   The application execution reception unit 421 passes the application execution binary 411 specified in the application execution request 410 to the disassembler 430. The disassembler 430 executes disassembly on the application execution binary 411.

逆アセンブルした結果、アプリケーションの命令リスト440が生成される。図16は、アプリケーション実行バイナリを逆アセンブルした結果から、図15に示す部分に相当する部分を抜き出した命令リストを示す図である。   As a result of the disassembly, an instruction list 440 of the application is generated. FIG. 16 is a diagram showing an instruction list in which a portion corresponding to the portion shown in FIG. 15 is extracted from the result of disassembling the application execution binary.

命令「callq 400850 <MPI_Alltoall@plt>」431は、”MPI_Alltoall()”の呼出しを示す。また、ループ432−434で示される各範囲は、図15に示すfor文の各範囲に相当する。命令リスト440は、特定記述解析部423に渡される。   The instruction “callq 400850 <MPI_Alltoall @ plt>” 431 indicates a call to “MPI_Alltoall ()”. Each range indicated by the loops 432 to 434 corresponds to each range of the for sentence shown in FIG. The instruction list 440 is passed to the specific description analysis unit 423.

特定記述解析部423は、受け取った命令リスト440に基づいて、MPIの集団通信系APIの呼出しの有無を調べる。ここでは、”MPI_Alltoall()”の呼出しが見つかる。また、特定記述解析部423は、MPIの集団通信系APIが呼び出される箇所におけるループ構造の深さを調べる。ここでは、特定記述解析部423は、ループ構造の深さを「3」と検出する。   The specific description analysis unit 423 checks whether the MPI collective communication API is called based on the received instruction list 440. Here, a call to “MPI_Alltoall ()” is found. Further, the specific description analysis unit 423 examines the depth of the loop structure at the location where the MPI collective communication API is called. Here, the specific description analysis unit 423 detects the depth of the loop structure as “3”.

特定記述解析部423は、上記調べた結果を付加情報生成部424に送る。付加情報生成部424は、ループ構造深さ付加情報425として「3」を生成すると共に、それを付加情報解析部426に送る。   The specific description analysis unit 423 sends the result of the above examination to the additional information generation unit 424. The additional information generation unit 424 generates “3” as the loop structure depth additional information 425 and sends it to the additional information analysis unit 426.

ここで、ループ構造深さ閾値設定部422には、あらかじめシステム管理者によって「2」が設定さる。付加情報解析部426は、ループ構造深さ閾値設定部422に設定された「2」と、ループ構造深さ付加情報425である「3」とを比較する。ループ構造深さ付加情報425の方が大きいので、付加情報解析部426は、「集団通信系APIの呼出しが多い」という特性に当てはまると判断する。   Here, “2” is set in advance in the loop structure depth threshold setting unit 422 by the system administrator. The additional information analysis unit 426 compares “2” set in the loop structure depth threshold setting unit 422 with “3” that is the loop structure depth additional information 425. Since the loop structure depth additional information 425 is larger, the additional information analysis unit 426 determines that the characteristic of “the number of calls of the collective communication system API” is applicable.

付加情報解析部426は、上記調べた特性情報を、計算リソース割当部427に渡す。計算リソース割当部427は、当該アプリケーションプログラムに、特定記述の実行に適したシステム450を割り当てる。システム450は、割り当てられたアプリケーションプログラムを実行する。   The additional information analysis unit 426 passes the checked characteristic information to the calculation resource allocation unit 427. The computing resource allocation unit 427 allocates a system 450 suitable for executing the specific description to the application program. The system 450 executes the assigned application program.

以上のように、本実施形態によれば、情報処理システム400におけるジョブスケジューラ420は、アプリケーション実行バイナリ411を逆アセンブラ430に渡すと共に、逆アセンブルの実行結果として命令リスト440を受け取る。ジョブスケジューラ420は、特定記述解析部423において、命令リスト440に特定記述があるか否かを調べ、ある場合はその箇所におけるループ構造深さを調べる。ループ構造深さが閾値よりも大きい場合、付加情報解析部426は、命令リスト440に対応するアプリケーションプログラムは、特定記述の実行が多いと判断する。計算リソース割当部427は、そのアプリケーションプログラムに、その実行に適したシステムを割り当てる。   As described above, according to the present embodiment, the job scheduler 420 in the information processing system 400 passes the application execution binary 411 to the disassembler 430 and receives the instruction list 440 as an execution result of disassembly. In the specific description analysis unit 423, the job scheduler 420 checks whether or not there is a specific description in the instruction list 440. If there is, the job scheduler 420 checks the loop structure depth at that location. When the loop structure depth is larger than the threshold value, the additional information analysis unit 426 determines that the application program corresponding to the instruction list 440 is frequently executed with the specific description. The calculation resource allocation unit 427 allocates a system suitable for the execution to the application program.

上記構成を採用することにより、本第2の実施形態によれば、ソースプログラムが与えられずコンパイラによるプログラムの特性解析が不可能な場合でも、上記第1の実施形態と同様の効果が得られる。すなわち、アプリケーションの実行バイナリを解析することにより、アプリケーションの実行に適した計算リソースを割り当てることができるので、システムの構築コストを抑えながら、エンドユーザに手間をかけずにアプリケーションの実行性能を最大化できるという効果が得られる。   By adopting the above configuration, according to the second embodiment, even when the source program is not given and the characteristic analysis of the program by the compiler is impossible, the same effect as the first embodiment can be obtained. . In other words, computing resources suitable for application execution can be allocated by analyzing application execution binaries, maximizing application execution performance without the need for end users while reducing system construction costs. The effect that it can be obtained.

第3の実施形態
図17は、本発明の第3の実施形態に係る情報処理装置50の構成の概要を示す図である。図17に示すように、情報処理装置50は、特定記述解析部51と計算リソース割当部52とを備える。
Third Embodiment FIG. 17 is a diagram showing an outline of a configuration of an information processing apparatus 50 according to a third embodiment of the present invention. As illustrated in FIG. 17, the information processing apparatus 50 includes a specific description analysis unit 51 and a calculation resource allocation unit 52.

特定記述解析部51は、アプリケーションの実行特性に影響を及ぼす特定記述が当該アプリケーションに含まれる場合、前記特定記述によって呼び出される命令または関数の実行頻度に関する付加情報を生成する。計算リソース割当部52は、前記付加情報に基づいて、前記命令または関数の実行に適した計算リソースを判断すると共に、当該計算リソースを前記アプリケーションの実行に割り当てる。   When a specific description that affects the execution characteristics of an application is included in the application, the specific description analysis unit 51 generates additional information regarding the execution frequency of an instruction or function called by the specific description. The calculation resource allocation unit 52 determines a calculation resource suitable for execution of the instruction or function based on the additional information, and allocates the calculation resource to execution of the application.

上記構成を採用することにより、本第3の実施形態によれば、構築費用を低減できると共に、エンドユーザの手間をかけることなくアプリケーションの実行性能を向上することができるという効果が得られる。   By adopting the above configuration, according to the third embodiment, it is possible to reduce the construction cost and to improve the execution performance of the application without taking the trouble of the end user.

なお、図2、図14に示したコンパイラおよびジョブスケジューラの各部は、図18に例示するハードウエア資源において実現される。すなわち、図18に示す構成は、CPU10、RAM(Random Access Memory)11、ROM(Read Only Memory)12、外部接続インタフェース13および記憶媒体14を備える。CPU10は、ROM12または記憶媒体14に記憶された各種ソフトウエア・プログラム(コンピュータ・プログラム)を、RAM11に読み出して実行することにより、コンパイラおよびジョブスケジューラの全体的な動作を司る。すなわち、上記各実施形態において、CPU10は、ROM12または記憶媒体14を適宜参照しながら、コンパイラおよびジョブスケジューラが備える各機能(各部)を実行するソフトウエア・プログラムを実行する。   Each part of the compiler and job scheduler shown in FIGS. 2 and 14 is realized by the hardware resources illustrated in FIG. That is, the configuration shown in FIG. 18 includes a CPU 10, a RAM (Random Access Memory) 11, a ROM (Read Only Memory) 12, an external connection interface 13, and a storage medium 14. The CPU 10 controls the overall operation of the compiler and job scheduler by reading various software programs (computer programs) stored in the ROM 12 or the storage medium 14 into the RAM 11 and executing them. That is, in each of the above embodiments, the CPU 10 executes a software program that executes each function (each unit) included in the compiler and the job scheduler while appropriately referring to the ROM 12 or the storage medium 14.

また、上述した各実施形態では、図2、図14に示したコンパイラおよびジョブスケジューラにおける各ブロックに示す機能を、図18に示すCPU10が実行する一例として、ソフトウエア・プログラムによって実現する場合について説明した。しかしながら、図2、図14に示した各ブロックに示す機能は、一部または全部を、ハードウエアとして実現してもよい。   Further, in each of the above-described embodiments, a case where the functions shown in each block in the compiler and job scheduler shown in FIGS. 2 and 14 are realized by a software program as an example executed by the CPU 10 shown in FIG. did. However, some or all of the functions shown in the blocks shown in FIGS. 2 and 14 may be realized as hardware.

また、各実施形態を例に説明した本発明は、コンパイラおよびジョブスケジューラに対して、上記説明した機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、CPU10がRAM11に読み出して実行することによって達成される。   Further, in the present invention described by taking each embodiment as an example, after supplying a computer program capable of realizing the functions described above to the compiler and job scheduler, the CPU 10 reads the computer program into the RAM 11. Achieved by executing.

また、係る供給されたコンピュータ・プログラムは、読み書き可能なメモリ(一時記憶媒体)またはハードディスク装置等のコンピュータ読み取り可能な記憶デバイスに格納すればよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムを表すコード或いは係るコンピュータ・プログラムを格納した記憶媒体によって構成されると捉えることができる。   The supplied computer program may be stored in a computer-readable storage device such as a readable / writable memory (temporary storage medium) or a hard disk device. In such a case, the present invention can be understood as being configured by a code representing the computer program or a storage medium storing the computer program.

本発明は、例えば、ハイパフォーマンスコンピューティングの分野に適用できる。   The present invention can be applied to, for example, the field of high performance computing.

10 CPU
11 RAM
12 ROM
13 外部接続インタフェース
14 記憶媒体
100、400 情報処理システム
110、220、420 ジョブスケジューラ
210 コンパイラ
221、421 アプリケーション実行受付部
222 反復回数閾値設定部
223、422 ループ構造深さ閾値設定部
224、426 付加情報解析部
225、427 計算リソース割当部
230、240、450、460 システム
310、410 アプリケーション実行要求
311、411 アプリケーション実行バイナリ
312 反復回数付加情報
313、425 ループ構造深さ付加情報
10 CPU
11 RAM
12 ROM
13 External connection interface 14 Storage medium 100, 400 Information processing system 110, 220, 420 Job scheduler 210 Compiler 221, 421 Application execution reception unit 222 Repetition count threshold setting unit 223, 422 Loop structure depth threshold setting unit 224, 426 Additional information Analysis unit 225, 427 Calculation resource allocation unit 230, 240, 450, 460 System 310, 410 Application execution request 311 411 Application execution binary 312 Iteration number additional information 313, 425 Loop structure depth additional information

Claims (6)

アプリケーションの実行特性に影響を及ぼす、ループ構造を含む少なくとも一部のプログラムコードによる記述である特定記述が当該アプリケーションに含まれる場合、前記特定記述によって呼び出される命令または関数の実行頻度に関する付加情報を生成する特定記述解析手段と、
前記付加情報に基づいて、前記命令または関数の実行に適した計算リソースを判断すると共に、当該計算リソースを前記アプリケーションの実行に割り当てる計算リソース割当手段とを備え、
前記特定記述解析手段は、前記特定記述によって呼び出される命令または関数に関する前記ループ構造における、ループの繰り返し回数とループ構造の深さとを含む付加情報を生成し、
前記計算リソース割当手段は、前記ループの繰り返し回数と前記ループ構造の深さのうち少なくともいずれかがそれぞれの閾値より大きい場合、前記アプリケーションの実行を、前記命令または関数の実行に適した計算リソースに割り当てる
報処理装置。
If the application contains a specific description that is a description of at least part of the program code including the loop structure that affects the execution characteristics of the application, additional information on the execution frequency of the instruction or function called by the specific description is generated. Specific description analysis means to
Based on the additional information, a calculation resource suitable for execution of the instruction or function is determined, and a calculation resource allocation unit that allocates the calculation resource to execution of the application is provided.
The specific description analyzing means generates additional information including the number of loop iterations and the depth of the loop structure in the loop structure related to an instruction or function called by the specific description,
When at least one of the number of iterations of the loop and the depth of the loop structure is greater than the respective threshold value, the calculation resource allocation unit makes the execution of the application a calculation resource suitable for execution of the instruction or function. assign
Information processing apparatus.
前記特定記述解析手段は、前記アプリケーションの実行プログラム、または当該実行プログラムがコンパイルされて生成される実行バイナリが逆アセンブルされた結果に基づいて、前記特定記述の有無を判断する
請求項1記載の情報処理装置。
The specific description analyzing means, the application executable or execution binary which the executable program is generated is compiled on the basis of the disassembled result, No placement claim 1 Symbol determines the presence or absence of the specific description Information processing device.
前記特定記述解析手段は、前記アプリケーションにおいて集団通信関数を呼び出す記述を特定記述として抽出し、
前記計算リソース割当手段は、前記集団通信関数の繰り返し回数が閾値より大きい場合、前記アプリケーションの実行を、帯域幅が所定値より高い通信ネットワークを用いて構成された計算リソースに割り当てる
請求項または請求項記載の情報処理装置。
The specific description analyzing means extracts a description that calls a collective communication function in the application as a specific description,
The computing resource allocation means, if the repeat count is greater than the threshold value of the collective communication function, the execution of the application, bandwidth allocated to computational resources that are configured with a high communication network than the predetermined value according to claim 1, wherein Item 3. The information processing device according to Item 2 .
前記特定記述解析手段は、前記アプリケーションにおいてランダムアクセスでのファイルへの読み出し命令または書き込み命令を呼び出す記述を特定記述として抽出し、
前記計算リソース割当手段は、前記読み出し命令または前記書き込み命令の繰り返し回数が閾値より大きい場合、前記アプリケーションの実行を、ランダムアクセスに適した記憶装置を用いて構成された計算リソースに割り当てる
請求項または請求項記載の情報処理装置。
The specific description analyzing means extracts, as the specific description, a description that calls a read instruction or a write instruction to a file with random access in the application,
The computing resource allocation means, the case read command or the repeat count is greater than the threshold of the write instruction, the execution of the application, Claim assigned to configured computing resources by using a storage device which is suitable for random access one or The information processing apparatus according to claim 2 .
コンピュータによって、
アプリケーションの実行特性に影響を及ぼす、ループ構造を含む少なくとも一部のプログラムコードによる記述である特定記述が当該アプリケーションに含まれる場合、前記特定記述によって呼び出される命令または関数の実行頻度に関する付加情報を生成し、
前記付加情報に基づいて、前記命令または関数の実行に適した計算リソースを判断すると共に、当該計算リソースを前記アプリケーションの実行に割り当て、
前記付加情報は、前記特定記述によって呼び出される命令または関数に関する前記ループ構造における、ループの繰り返し回数とループ構造の深さとを含み、
前記計算リソースは、前記ループの繰り返し回数と前記ループ構造の深さのうち少なくともいずれかがそれぞれの閾値より大きい場合、前記アプリケーションの実行が割り当てられる
情報処理方法。
By computer
If the application contains a specific description that is a description of at least part of the program code including the loop structure that affects the execution characteristics of the application, additional information on the execution frequency of the instruction or function called by the specific description is generated. And
Based on the additional information, determine a computing resource suitable for execution of the instruction or function, and assign the computing resource to execution of the application,
The additional information includes the number of loop iterations and the depth of the loop structure in the loop structure related to the instruction or function called by the specific description,
An information processing method in which execution of the application is allocated when at least one of the number of repetitions of the loop and the depth of the loop structure is greater than each threshold value of the calculation resource .
アプリケーションの実行特性に影響を及ぼす、ループ構造を含む少なくとも一部のプログラムコードによる記述である特定記述が当該アプリケーションに含まれる場合、前記特定記述によって呼び出される命令または関数の実行頻度に関する付加情報を生成する処理と、
前記付加情報に基づいて、前記命令または関数の実行に適した計算リソースを判断すると共に、当該計算リソースを前記アプリケーションの実行に割り当てる処理とを
コンピュータに実行させ、
前記付加情報は、前記特定記述によって呼び出される命令または関数に関する前記ループ構造における、ループの繰り返し回数とループ構造の深さとを含み、
前記計算リソースは、前記ループの繰り返し回数と前記ループ構造の深さのうち少なくともいずれかがそれぞれの閾値より大きい場合、前記アプリケーションの実行が割り当てられる
プログラム。
If the application contains a specific description that is a description of at least part of the program code including the loop structure that affects the execution characteristics of the application, additional information on the execution frequency of the instruction or function called by the specific description is generated. Processing to
Based on the additional information, a computing resource suitable for execution of the instruction or function is determined, and a process of assigning the computing resource to execution of the application is executed by a computer,
The additional information includes the number of loop iterations and the depth of the loop structure in the loop structure related to the instruction or function called by the specific description,
The calculation resource is assigned to execute the application when at least one of the number of loop iterations and the depth of the loop structure is greater than a respective threshold value .
JP2013239098A 2013-11-19 2013-11-19 Information processing apparatus, information processing method, and program Active JP6322968B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013239098A JP6322968B2 (en) 2013-11-19 2013-11-19 Information processing apparatus, information processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013239098A JP6322968B2 (en) 2013-11-19 2013-11-19 Information processing apparatus, information processing method, and program

Publications (2)

Publication Number Publication Date
JP2015099494A JP2015099494A (en) 2015-05-28
JP6322968B2 true JP6322968B2 (en) 2018-05-16

Family

ID=53376068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013239098A Active JP6322968B2 (en) 2013-11-19 2013-11-19 Information processing apparatus, information processing method, and program

Country Status (1)

Country Link
JP (1) JP6322968B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6439623B2 (en) * 2015-08-05 2018-12-19 富士通株式会社 Computer, operating frequency determination program, and operating frequency determination method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3640081B2 (en) * 1999-12-27 2005-04-20 日本電気株式会社 Optimization method for compiling MPI programs
US20100235843A1 (en) * 2007-04-04 2010-09-16 Bae Systems Plc. Improvements relating to distributed computing
JP2009140451A (en) * 2007-12-11 2009-06-25 Hitachi Ltd Compiler device, compiling method, and program thereof
US8799884B2 (en) * 2008-08-13 2014-08-05 Qualcomm Incorporated Software application performance enhancement
JP2011107983A (en) * 2009-11-17 2011-06-02 Nec Corp System, method, and program for storing information

Also Published As

Publication number Publication date
JP2015099494A (en) 2015-05-28

Similar Documents

Publication Publication Date Title
US10942760B2 (en) Predictive rightsizing for virtual machines in cloud computing systems
US9483319B2 (en) Job scheduling apparatus and method therefor
KR101332840B1 (en) Cluster system, Host node, Computing node, and application execution method based on parallel computing framework
US8671418B2 (en) Environment modification in a hybrid node computing environment
JP2007041720A (en) Job step execution program and job step execution method
Malakar et al. Optimal execution of co-analysis for large-scale molecular dynamics simulations
US9733982B2 (en) Information processing device and method for assigning task
KR101695013B1 (en) Method for allocating and managing of adaptive resource
JP7282823B2 (en) MEMORY ACCESS REQUEST SCHEDULING METHOD, APPARATUS, ELECTRONIC DEVICE, COMPUTER READABLE MEDIUM AND COMPUTER PROGRAM
WO2016092856A1 (en) Information processing device, information processing system, task processing method, and storage medium for storing program
KR20200091790A (en) Platform for concurrent execution of gpu operations
Pathania et al. Task scheduling for many-cores with S-NUCA caches
JP2007188523A (en) Task execution method and multiprocessor system
US8977752B2 (en) Event-based dynamic resource provisioning
US10853137B2 (en) Efficient resource allocation for concurrent graph workloads
WO2018079162A1 (en) Information processing system
JP6322968B2 (en) Information processing apparatus, information processing method, and program
JP6694683B2 (en) Scheduler computing device, data node of distributed computing system including the same, and method thereof
JP2017204086A (en) Information processing device, job management method and job management program
JP6156379B2 (en) Scheduling apparatus and scheduling method
US20180210762A1 (en) Apparatus, method, and program medium for parallel-processing parameter determination
KR101332839B1 (en) Host node and memory management method for cluster system based on parallel computing framework
CA2820230A1 (en) Data splitting for multi-instantiated objects
KR101558807B1 (en) Processor scheduling method for the cooperation processing between host processor and cooperation processor and host processor for performing the method
KR101470695B1 (en) Method and system of biogeography based optimization for grid computing scheduling

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161014

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170821

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170829

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171027

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180326

R150 Certificate of patent or registration of utility model

Ref document number: 6322968

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150