JP2011141703A - System, method and program for arranging resource - Google Patents
System, method and program for arranging resource Download PDFInfo
- Publication number
- JP2011141703A JP2011141703A JP2010001582A JP2010001582A JP2011141703A JP 2011141703 A JP2011141703 A JP 2011141703A JP 2010001582 A JP2010001582 A JP 2010001582A JP 2010001582 A JP2010001582 A JP 2010001582A JP 2011141703 A JP2011141703 A JP 2011141703A
- Authority
- JP
- Japan
- Prior art keywords
- resources
- resource allocation
- data accesses
- rtos
- common
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】資源間の結合強度を解析し、結合強度に基づいて複数のプロセッサコアへの個々の資源の配置方法を決定し、資源配分を行う。
【解決手段】アプリケーションのタスクや共通関数、共通変数などの資源を複数のプロセッサコアに配置する際に、資源間の結合強度を求め、求めた資源間の結合強度に応じて割り付けを行う。これにより、ユーザが任意に割り当てを行うよりも、より最適な割り当てが可能となる。結果として、アプリケーションのパフォーマンスを向上させることが可能となる。
【選択図】図4The present invention analyzes a coupling strength between resources, determines an allocation method of individual resources to a plurality of processor cores based on the coupling strength, and performs resource allocation.
When a resource such as an application task, a common function, or a common variable is allocated to a plurality of processor cores, a coupling strength between resources is obtained, and allocation is performed according to the obtained coupling strength between resources. Thereby, more optimal assignment is possible than the user arbitrarily assigns. As a result, application performance can be improved.
[Selection] Figure 4
Description
本発明は、資源配置システムに関し、特に静的なシステムにおける資源(リソース)の配置を行う資源配置システムに関する。 The present invention relates to a resource allocation system, and more particularly to a resource allocation system that allocates resources in a static system.
従来、マルチプロセッサ対応RTOS(Real−Time Operating System)のような複数のCPU(Central Processing Unit)コアとメモリを持つシステムでは、図1に示すように、複数のCPUコアの各々に対するタスクの配置を、ユーザが決定する。図1では、CPUコアとして、コア1、コア2を記載している。
Conventionally, in a system having a plurality of CPUs (Central Processing Unit) cores such as RTOS (Real-Time Operating System) corresponding to a multiprocessor and a memory, as shown in FIG. The user decides. In FIG. 1, a core 1 and a
このとき、メモリは、図2に示すように、複数のCPUコアの各々に配置されるタスクの基となるソースファイルと、ユーザにより決定されたタスクの配置方法を示すRTOS用情報定義ファイルを保持している。 At this time, as shown in FIG. 2, the memory holds a source file as a basis of a task arranged in each of a plurality of CPU cores and an RTOS information definition file indicating a task arrangement method determined by a user. is doing.
例えば、特開2006−003972号公報(特許文献1)に記載の従来技術では、性能を低下させるようなコンピュータ資源の消費を行わずに、ノード間メモリアクセスを削減する。 For example, in the related art described in Japanese Patent Application Laid-Open No. 2006-003972 (Patent Document 1), memory access between nodes is reduced without consuming computer resources that reduce performance.
従来技術では、CPUコアとメモリが複数存在するccNUMA(Cache Coherent Non−Uniform Memory Access)アーキテクチャを想定している。ccNUMAは、マルチプロセッサ・コンピュータ・システムのためのNUMA(Non−Uniform Memory Access)の変形である。NUMAシステムは、複数のサーバ・ビルディング・ブロックで構成されている。各ブロックには、プロセッサ、メモリ、入出力コンポーネントが含まれている。ccNUMAシステムでは、CPUコアとメモリは、ノードの単位で分割する。分割したノードに、プログラムに含まれる1以上のプロセス(タスク)の各プロセスを割り当てる。 The prior art assumes a ccNUMA (Cache Coherent Non-Uniform Memory Access) architecture having a plurality of CPU cores and memories. ccNUMA is a variation of NUMA (Non-Uniform Memory Access) for multiprocessor computer systems. The NUMA system is composed of a plurality of server building blocks. Each block includes a processor, memory, and input / output components. In the ccNUMA system, the CPU core and the memory are divided in units of nodes. Each process of one or more processes (tasks) included in the program is assigned to the divided node.
例として、あるプロセスAが存在し、プロセスAを実行する予定となっているノード1があるとする。また、プロセスAにアクセスする回数が最も高いノード2があるとする。
As an example, assume that a process A exists and there is a node 1 that is scheduled to execute the process A. Further, it is assumed that there is a
従来技術では、以下の3つの手段を提案している。
(1)上記例のノード1とノード2を検出する。
(2)検出したノード1とノード2が同じでないかを判断する。
(3)検出したノード1とノード2が同じでない場合、プロセスAの割り当てをノード2に変更する。
The prior art has proposed the following three means.
(1) The node 1 and the
(2) It is determined whether the detected node 1 and
(3) If the detected node 1 and
従来技術では、動的にプロセスの割り当てを変更するという考えのもと成り立っている。しかし、静的にプロセスの割り当てを行うシステムも存在する。静的にプロセスの割り当てを行う場合は、動的とは異なり、プロセスの割り当てを行うための判断指標がない。判断指標がないため、ユーザがアプリケーション(アプリケーションプログラム)の構成を理解し、プロセスの割り当てを決定しなければならない。しかし、アプリケーションの構成を知らないユーザが配置を決定する場合は、不適切な配置をしてしまう恐れがある。 The prior art is based on the idea of dynamically changing process assignments. However, there are systems that assign processes statically. When assigning processes statically, unlike dynamic, there is no determination index for assigning processes. Since there is no judgment index, the user must understand the configuration of the application (application program) and decide the process allocation. However, when a user who does not know the configuration of the application decides the arrangement, there is a risk of improper arrangement.
このように、静的なシステムにおける資源(リソース)の配置を行う際には、以下のような2つの問題点があった。 As described above, there are the following two problems when arranging resources in a static system.
(1)システムの膨大化
システムが膨大になるにつれて、ユーザ・アプリケーションで使用するタスク数が増加する。タスク間の結合の関連が難しいため、コアへの資源の配置方法の判断が難しい。
(1) Enlargement of the system As the system becomes enormous, the number of tasks used in the user application increases. It is difficult to determine how to allocate resources to the core because the association between tasks is difficult.
(2)ハードウェア技術の向上
性能や低消費電力の技術化が進み、現在マルチプロセッサのコア数が増加している。つまり、どのタスクをどのコアへ配置すれば良いのかの判断が難しい。
(2) Improvement of hardware technology Technological performance and low power consumption have advanced, and the number of multiprocessor cores is currently increasing. In other words, it is difficult to determine which task should be placed in which core.
上記の2つの問題点のため、マルチプロセッサのコアへの資源の配置方法の決定は難しくなる。 Due to the above two problems, it is difficult to determine how to allocate resources to the multiprocessor core.
関連する技術として、特開2006−003972号公報(特許文献1)にプロセス配置装置、プロセス配置方法及びプロセス配置プログラムが開示されている。この関連技術では、プロセス配置装置は、プログラムに含まれる1以上のプロセスのうちの各プロセスが、ccNUMAアーキテクチャの何れかのノードに属するCPUと何れかのノードに属するメモリを用いて実行される方式に適用される。このプロセス配置装置は、ノード検出手段と、ノード一致判断手段と、CPU割当変更手段を備える。ノード検出手段は、各プロセス毎に、該プロセスを実行するCPUが属するノードである第1ノード及び所定時間内に該CPUがアクセスする回数が最も高いメモリが属するノードである第2ノードを検出する。ノード一致判断手段は、各プロセス毎に、第1ノードと第2ノードが一致するか否かを判断する。CPU割当変更手段は、各プロセス毎に、第1ノードと第2ノードとが一致しない場合に、該プロセスを実行するCPUを、第2ノードに属するCPUに変更する。 As a related technique, Japanese Patent Laid-Open No. 2006-003972 (Patent Document 1) discloses a process placement apparatus, a process placement method, and a process placement program. In this related technique, a process placement apparatus is a method in which each of one or more processes included in a program is executed using a CPU belonging to any node of the ccNUMA architecture and a memory belonging to any node. Applies to This process placement apparatus includes node detection means, node match determination means, and CPU allocation change means. The node detection means detects, for each process, a first node that is a node to which a CPU executing the process belongs and a second node that is a node to which a memory having the highest number of accesses by the CPU within a predetermined time period belongs. . The node match determination means determines whether the first node and the second node match for each process. The CPU allocation changing means changes the CPU executing the process to a CPU belonging to the second node when the first node and the second node do not match for each process.
本発明は、マルチプロセッサ対応RTOSの分野に関するものであり、従来技術の課題であった資源の配置方法をユーザに静的に定義させる方法に対して、資源間の結合強度を解析し、結合強度に基づいて複数のプロセッサコアへの個々の資源の配置方法を決定し、資源配分を行うという工夫を行うことで解決することを図る。 The present invention relates to the field of multi-processor-compatible RTOS, and analyzes the coupling strength between resources in comparison with a method for statically defining a resource allocation method that has been a problem of the prior art. Based on the above, a method for determining the allocation of individual resources to a plurality of processor cores is determined, and a solution is made by allocating resources.
本発明の資源配置システムは、一度アプリケーションプログラムを実行させ、動作結果としてトレース情報を出力するデバッガと、アプリケーションのタスク、共通関数、共通変数を資源として扱い、トレース情報から資源間のデータアクセス回数を算出し、前記算出されたデータアクセス回数を資源間の結合強度として扱い、資源間の結合強度に応じて、マルチプロセッサのコアへの資源配分を行うホストPC(パソコン)とを具備する。 The resource allocation system of the present invention once executes an application program and outputs trace information as an operation result, and handles application tasks, common functions, and common variables as resources, and determines the number of data accesses between resources from the trace information. A host PC (personal computer) that calculates and treats the calculated data access count as a coupling strength between resources, and distributes resources to the cores of the multiprocessor according to the coupling strength between resources.
本発明の資源配置方法では、一度アプリケーションプログラムを実行させ、動作結果としてトレース情報を出力する。次に、アプリケーションのタスク、共通関数、共通変数を資源として扱い、トレース情報から資源間のデータアクセス回数を算出し、前記算出されたデータアクセス回数を資源間の結合強度として扱い、資源間の結合強度に応じて、マルチプロセッサのコアへの資源配分を行う。 In the resource allocation method of the present invention, an application program is executed once, and trace information is output as an operation result. Next, application tasks, common functions, and common variables are treated as resources, the number of data accesses between resources is calculated from the trace information, and the calculated number of data accesses is treated as the connection strength between resources. Depending on the strength, resources are allocated to the cores of the multiprocessor.
本発明の資源配置用プログラムは、一度アプリケーションプログラムを実行させ、動作結果としてトレース情報を出力するステップと、アプリケーションのタスク、共通関数、共通変数を資源として扱い、トレース情報から資源間のデータアクセス回数を算出し、前記算出されたデータアクセス回数を資源間の結合強度として扱い、資源間の結合強度に応じて、マルチプロセッサのコアへの資源配分を行うステップとをコンピュータに実行させるためのプログラムである。なお、本発明の資源配置用プログラムは、記憶装置又は記憶媒体に格納可能である。 The resource allocation program of the present invention executes an application program once, outputs trace information as an operation result, treats application tasks, common functions, and common variables as resources, and counts the number of data accesses between resources from the trace information. A program for causing the computer to execute the step of allocating resources to the cores of the multiprocessor according to the coupling strength between the resources. is there. The resource allocation program of the present invention can be stored in a storage device or a storage medium.
アプリケーションのタスクや共通関数、共通変数などの資源を複数のプロセッサコアに配置する際に、資源間の結合強度を求め、求めた資源間の結合強度に応じて割り付けを行う。これにより、ユーザが任意に割り当てを行うよりも、より最適な割り当てが可能となる。結果として、アプリケーションのパフォーマンスを向上させることが可能となる。 When allocating resources such as application tasks, common functions, and common variables to a plurality of processor cores, the connection strength between resources is obtained, and allocation is performed according to the obtained connection strength between resources. Thereby, more optimal assignment is possible than the user arbitrarily assigns. As a result, application performance can be improved.
以下に、本発明の実施形態について添付図面を参照して説明する。 Embodiments of the present invention will be described below with reference to the accompanying drawings.
<用語の定義>
まず、本発明では、資源(リソース)という言葉を下記のように定義する。
・RTOS資源 = タスク
・共通資源 = 共通関数や共通変数
<Definition of terms>
First, in the present invention, the term “resource” is defined as follows.
-RTOS resource = task-Common resource = Common function and common variable
また、資源間の結合強度の重みを下記のように定義する。
・結合強度 = ある資源から他の資源へのデータアクセス回数
Moreover, the weight of the bond strength between resources is defined as follows.
・ Binding strength = Number of data accesses from one resource to another
<概要>
資源間の結合強度を求め、求めた結合強度の解析を行い、CPUへの割り当てを行う手法が本発明の構成である。具体的な資源間の結合強度の求めかた、及びCPUへの割り当て手法に関しては下記に記述する。
<Overview>
A method of obtaining the bond strength between resources, analyzing the obtained bond strength, and assigning the CPU is the configuration of the present invention. A specific method for determining the bond strength between resources and a method for assigning to CPUs will be described below.
資源間の結合強度をデータアクセス回数と定義した理由は、性能という点に着目し、性能の妨げになるオーバーヘッドを考慮したためである。マルチプロセッサにおいて、コアをまたぐデータアクセスは、オーバーヘッドが発生する。つまり、コアをまたぐデータアクセス回数が多くなればなるほど、そのオーバーヘッドは大きくなる。本発明においては、資源間のデータアクセス回数が他の資源間と比較して相対的に多いものを同じコアに配置し、資源間のデータアクセス回数が他の資源間と比較して相対的に少ないものを別々のコアに配置することで、コア間のオーバーヘッドの短縮を図る。例えば、資源間のデータアクセス回数の平均値(又は中間値)を求め、資源間のデータアクセス回数が平均値(又は中間値)より多い場合、これらの資源を同じコアに配置し、資源間のデータアクセス回数が平均値(又は中間値)以下の場合、これらの資源を別々のコアに配置する。ここでは、平均値(又は中間値)が閾値となる。なお、データアクセス回数の大小については、予め設定された所定の回数を閾値として判断するようにしても良い。或いは、資源間のデータアクセス回数が最小のものから少ない順に、所定の数だけ、別々のコアに配置するようにしても良い。このように、静的に資源の配置を決定するシステムで、資源間のデータアクセス回数を解析し、コア間のオーバーヘッドが少ない資源の配置方法を決定し、資源配分を行う手法が本発明である。 The reason why the strength of coupling between resources is defined as the number of data accesses is that attention is paid to performance, and overhead that hinders performance is taken into consideration. In a multiprocessor, data access across cores generates overhead. That is, as the number of data accesses across cores increases, the overhead increases. In the present invention, those having a relatively large number of data accesses between resources compared to other resources are arranged in the same core, and the number of data accesses between resources is relatively large compared to between other resources. By placing few things on separate cores, the overhead between cores is reduced. For example, if the average value (or intermediate value) of the number of data accesses between resources is obtained and the number of data accesses between resources is greater than the average value (or intermediate value), these resources are placed in the same core and When the number of data accesses is equal to or less than the average value (or intermediate value), these resources are allocated to different cores. Here, the average value (or intermediate value) is the threshold value. Note that the number of data accesses may be determined using a predetermined number of times as a threshold. Alternatively, a predetermined number of data accesses between resources may be arranged in different cores in ascending order. As described above, the present invention is a method for performing resource allocation by analyzing the number of data accesses between resources in a system that statically determines resource allocation, determining a resource allocation method with less overhead between cores. .
<実施例>
ここで、実施例として、図3のようなアプリケーションをユーザが作成した場合を考える。図3のアプリケーションの資源の構成は、下記の表1に示すようになっている。
<Example>
Here, as an example, consider a case where a user creates an application as shown in FIG. The configuration of application resources in FIG. 3 is as shown in Table 1 below.
本発明では、静的に資源のマルチプロセッサへ配置するシステムにおいて、上記の資源の配置方法をユーザ任せにしない。 In the present invention, the resource allocation method described above is not left to the user in a system where resources are statically allocated to multiprocessors.
図4は、コアへの資源の配置を決定する手順の一連の流れを示している。
なお、図4に示すように、本発明の資源配置システムは、ホストPC(パソコン)10と、デバッガ20を備える。ホストPC10は、複数のCPUコアとメモリを持つマルチプロセッサ対応RTOSの計算機である。ホストPC10は、少なくとも、コア1、コア2、メモリを備えるものとする。メモリは、ユーザ・アプリケーションのソースファイルや実行ファイル、RTOS用情報定義ファイルを保持する。実行ファイルの内容は、図3に示す通りである。デバッガ20は、シミュレータ21を備える。シミュレータ21は、CPU22を備える。CPU22は、ユーザ・アプリケーションやRTOSを実行する。
FIG. 4 shows a series of procedures for determining the allocation of resources to the core.
As shown in FIG. 4, the resource allocation system of the present invention includes a host PC (personal computer) 10 and a
ここでは、ホストPC10及びデバッガ20の例として、PCを想定している。他にも、ホストPC10及びデバッガ20の例として、シンクライアント端末/サーバ、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機が考えられる。但し、実際には、これらの例に限定されない。
Here, a PC is assumed as an example of the
ホストPC(パソコン)10とデバッガ20は、ネットワークを介して接続可能である。ネットワークの例として、インターネット、LAN(Local Area Network)、無線LAN(Wireless LAN)、WAN(Wide Area Network)、バックボーン(Backbone)、ケーブルテレビ(CATV)回線、固定電話網、携帯電話網、WiMAX(IEEE 802.16a)、3G(3rd Generation)、専用線(lease line)、IrDA(Infrared Data Association)、Bluetooth(登録商標)、シリアル通信回線、データバス等が考えられる。但し、実際には、これらの例に限定されない。
The host PC (personal computer) 10 and the
また、コア1及びコア2の例として、CPUを想定している。他にも、コア1及びコア2の例として、マイクロプロセッサ(microprocessor)、マイクロコントローラ、或いは、同様の機能を有する半導体集積回路(Integrated Circuit(IC))等が考えられる。但し、実際には、これらの例に限定されない。
Further, a CPU is assumed as an example of the core 1 and the
また、メモリの例として、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)やフラッシュメモリ等の半導体記憶装置、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置、又は、DVD(Digital Versatile Disk)やメモリカード等の記憶媒体(メディア)等が考えられる。但し、実際には、これらの例に限定されない。 Further, as examples of memory, semiconductor storage devices such as RAM (Random Access Memory), ROM (Read Only Memory), EEPROM (Electrically Erasable and Programmable Read Only Memory), flash memory, and HDD (Vard Hard SD) An auxiliary storage device such as State Drive) or a storage medium (media) such as a DVD (Digital Versatile Disk) or a memory card can be considered. However, actually, it is not limited to these examples.
なお、図4では、ホストPC10とデバッガ20は、それぞれ独立した装置として記載しているが、実際には、ホストPC10とデバッガ20は、同一の装置でも良い。
In FIG. 4, the
図5は、コアへの資源の配置を決定する際の詳細な処理フローを示している。 FIG. 5 shows a detailed processing flow when determining the allocation of resources to the core.
(1)ステップS1
ホストPC10は、ユーザからの指示に応じて、ユーザ・アプリケーションを作成する。ここでは、コア1又はコア2が、ユーザからの指示に応じて、ユーザ・アプリケーションのソースファイルを作成する。このとき、ユーザは、資源のコアへの配置を考慮する必要はない。
(1) Step S1
The
(2)ステップS2
ホストPC10は、実行ファイルを作成する。ここでは、コア1又はコア2が、ユーザ・アプリケーションのソースファイルに基づいて、実行ファイルを作成する。例えば、コア1又はコア2は、コンパイルにより、ユーザ・アプリケーションのソースファイルを、コンピュータ上で実行可能な形式に変換する。ホストPC10は、実行ファイルをデバッガ20に提供する。
(2) Step S2
The
(3)ステップS3
デバッガ20は、一定期間、ユーザ・アプリケーションを動作させ、動作結果としてトレース情報を出力する。ユーザ・アプリケーションを動作させる手法として、例えば、ユーザが期待するようなテストパターンを組み込んだ動作手法も効果的である。動作させる環境としては、例えば、ターゲットマルチプロセッサをシングルプロセッサと仮定したシミュレータ上で動作させる。ここでは、デバッガ20は、ホストPC10から実行ファイルをダウンロードする。シミュレータ21は、CPU22により、RTOSと実行ファイルを実行し、一定期間、ユーザ・アプリケーションを動作させ、動作結果としてトレース情報を出力する。なお、トレース情報を出力するためには、そのトレース情報を出力させるための仕組が必要となる。そのため、トレース情報を出力するための仕組みを、RTOSに組み込むようにしても良い。
(3) Step S3
The
(4)ステップS4
ホストPC10は、入力されたトレース情報を参照し、資源間のデータアクセスを解析し、データアクセス回数を結合強度として導き出し、解析結果を出力する。ここでは、コア1又はコア2は、トレース情報から資源間のデータアクセス回数を割り出す。また、トレース情報から解析されるデータアクセスは、「RTOS資源からRTOS資源への状態遷移」、「RTOS資源から共通資源へのデータアクセス」の2点とする。
(4) Step S4
The
(5)ステップS5
ホストPC10は、解析結果に基づいて、資源のコアへの配置方法を決定し、決定した配置方法に従って資源配分を行う。グラフの分割方法に関しては、公知のグラフ理論を使用することで、分割可能である。ここでは、ホストPC10は、コアへの資源の配置方法が示されたRTOS用情報定義ファイルをメモリに記憶する。コア1及びコア2は、RTOS用情報定義ファイルに基づいて、RTOS資源や共通資源を取得する。或いは、ホストPC10内の資源配置専用のコア(図示せず)が、RTOS用情報定義ファイルに基づいて、コア1及びコア2に、RTOS資源や共通資源を配置するようにしても良い。
(5) Step S5
Based on the analysis result, the
図6は、トレース情報からデータアクセス回数を解析する方法の例を示している。
この例では、まずタスク1からタスク2へ状態遷移を行っているので、タスク1とタスク2間のデータアクセスが「1」となる。次に、タスク2から共通資源1へのデータアクセスを行っているので、タスク2と共通資源のデータアクセスが「1」となる。同様に、タスク2からタスク3へ状態遷移を行っているので、タスク2とタスク3間のデータアクセスが「1」となる。このようにして、ある一定期間動作させたトレース情報から、資源間のデータアクセス回数を導き出す。得られたデータアクセス回数を資源間の結合強度として扱う。
FIG. 6 shows an example of a method for analyzing the number of data accesses from the trace information.
In this example, since the state transition is first performed from task 1 to
次に、得られたデータアクセス回数から資源の配置方法を決定する手法を、以下に示す。 Next, a method for determining a resource allocation method from the obtained number of data accesses will be described below.
ホストPC10は、データアクセスの解析結果、資源間のデータアクセス回数が少ない箇所を判断し、その箇所を分割する。分割するアルゴリズムには、公知技術を使用すれば良い。ここでは、分割するアルゴリズムとして、公知の分割統治法の考えを用いる。ホストPC10は、分割した結果、コア間をまたぐデータアクセスが少ない配置方法を決定することができる。
As a result of the data access analysis, the
例として、図7のようなデータアクセスの結果が得られたとする。
図7の矢印に付加されている値は、資源間の結合強度で、データアクセス回数を表している。ホストPC10は、この情報から分割のアルゴリズムを用いて、資源間の結合を切り離し(カット)し、部分集合に分ける。部分集合に分けた後、部分集合毎に、資源のコアへの配置を決定する。カットする方法として、分割統治法のアルゴリズムを応用する。
As an example, assume that a data access result as shown in FIG. 7 is obtained.
The value added to the arrow in FIG. 7 represents the number of data accesses, which is the coupling strength between resources. The
[分割統治法]
分割統治法の手順は以下の通りである。
ホストPC10は、全てのデータアクセス回数の平均値(小数点以下は切り上げ)をとり、その平均値を閾値として定義する。ホストPC10は、データアクセス回数が閾値以下の資源間の結合をカットする。
[Divisional governance law]
The procedure of the Divide-and-Conquer Law is as follows.
The
図7〜図12を参照して説明する。 This will be described with reference to FIGS.
図7の各種矢印は、以下の意味を持つ。
点線矢印:資源間の結合
実線矢印:カットする対象の資源間の結合
The various arrows in FIG. 7 have the following meanings.
Dotted arrows: coupling between resources Solid arrows: coupling between resources to be cut
ここで、全てのデータアクセス回数の平均値は、
(1+7+3+8+5+2+10+6+1+2+6)/11=4.6・・・
となる。つまり、閾値は「5」となる。
Here, the average value of all data accesses is
(1 + 7 + 3 + 8 + 5 + 2 + 10 + 6 + 1 + 2 + 6) /11=4.6.
It becomes. That is, the threshold value is “5”.
図8は、データアクセス回数が閾値以下の資源間のカット対象である。 FIG. 8 shows a cut target between resources whose number of data accesses is equal to or less than a threshold value.
ホストPC10は、上述した方法で得られた結果に対し、更に次の処理を行う。
The
まず、ホストPC10は、次の条件(a)、(b)に適合するか否かの判定を行う。
(a)マルチプロセッサのコア数よりも部分集合が少ない。
(b)マルチプロセッサのコア数よりも部分集合が多い。
First, the
(A) The subset is smaller than the number of cores of the multiprocessor.
(B) There are more subsets than the number of cores of the multiprocessor.
条件(a)は、例えば、2つのコアがあるマルチプロセッサにおいて、分割した部分集合が1つしか存在しないような場合である。この問題に対しては、ホストPC10は、分割統治法で決定した閾値を1増加させ、更にカットを行う。
Condition (a) is, for example, a case where only one divided subset exists in a multiprocessor having two cores. For this problem, the
条件(b)は、例えば、2つのコアがあるマルチプロセッサにおいて、分割した部分集合が3つになった場合である。この問題に対しては、ホストPC10は、部分集合の中で最も資源が少ない部分集合の中で、カットを行ったデータアクセスのデータアクセス回数が最も大きい値となっている箇所の復元を行う。そうすることで、他の部分集合と結合させる。ホストPC10は、最も資源が少ない部分集合が複数該当する場合は、その部分集合の中でのデータアクセスの総和(データアクセス回数)が最大のものを選択する。
The condition (b) is, for example, a case where a multiprocessor having two cores has three divided subsets. In response to this problem, the
図9は、図7をカットした結果である。ここでは、部分集合は4つとなる。
2つのコアのマルチプロセッサに配置しようとすると、部分集合数が多いことがわかる。この場合は、上記の条件(b)に当てはまる。そのため、以下の手順を行う。
FIG. 9 shows the result of cutting FIG. Here, there are four subsets.
It can be seen that there is a large number of subsets when trying to arrange on a multi-processor with two cores. In this case, the above condition (b) applies. Therefore, the following procedure is performed.
ホストPC10は、タスク5が最も資源が少ない部分集合となる。
In the
ホストPC10は、タスク5の部分集合の中で、最もデータアクセス回数が大きい値を復元する。すなわち、タスク5の部分集合の中で、データアクセス回数が最大となる資源間の結合を復元する。ここでは、ホストPC10は、図10に示すように、タスク5とタスク3の結合を復元する。黒色の矢印は、結合の復元を表す。これで、部分集合は3つになる。
The
次に、少ない部分集合は、共通資源1とタスク1、またはタスク6、共通資源2の部分集合である。ホストPC10は、両方のデータアクセスの総和を比べると、共通資源1とタスク1の部分集合の総和の方が大きいため、そちらを選択する。
Next, the small subset is a subset of common resource 1 and task 1 or task 6 and
ホストPC10は、共通資源1とタスク1の部分集合の中で、最もデータアクセス回数が大きい値を復元する。すなわち、共通資源1とタスク1の部分集合の中で、データアクセス回数が最大となる資源間の結合を復元する。ここでは、ホストPC10は、図11に示すように、タスク1とタスク6の結合を復元する。これで、部分集合は2つになる。
The
ホストPC10は、2つに部分集合を分けることができたので、図12に示すように、部分集合単位で資源をそれぞれのコアへ配置する。
Since the
以上の手順で、ホストPC10は、資源間のデータアクセス回数が少ない箇所をカットした配置方法を決定できる。
With the above procedure, the
本実施例では、資源間の結合強度の少ない箇所をカットする方法として、平均値を使った分割統治法で説明したが、この方法に限られない。結合強度の少ない箇所を求めていく方法として、グラフ分割理論の様々なアルゴリズムが適応可能である。例えばダイクストラ法などが知られており、この方法でも適用可能である。 In this embodiment, as a method of cutting a portion having a low bond strength between resources, the divide-and-conquer method using an average value has been described. However, the method is not limited to this method. Various algorithms of the graph partitioning theory can be applied as a method for obtaining a portion having a low coupling strength. For example, the Dijkstra method is known, and this method is also applicable.
なお、本発明における一連の処理は、プログラムで駆動される処理装置等のハードウェアと、そのハードウェアを駆動して所望の処理を実行させるプログラム等のソフトウェアと、そのソフトウェアや各種データを格納する記憶装置によって実現されるようにしても良い。例えば、本発明における一連の処理を資源配置方法とした場合、この資源配置方法をコンピュータに実行させるための資源配置用プログラムを、ホストPC10が実行することによって、資源配置を行うようにしても良い。
The series of processing in the present invention stores hardware such as a processing device driven by a program, software such as a program for driving the hardware to execute desired processing, and the software and various data. It may be realized by a storage device. For example, when the series of processes in the present invention is a resource allocation method, the resource allocation may be performed by the
<問題解決のメカニズム>
システムが増大化すれば、資源が増加するのは明白である。資源の配置を静的に決定するシステムにおいて、資源をどのように配置すれば良いのか、最大限の性能を引き出せているのかなどを判断し、ユーザは配置を決定しなければならない。
<Problem solving mechanism>
Clearly, as the system grows, resources increase. In a system that statically determines the allocation of resources, the user must determine the allocation by determining how the resources should be allocated and whether maximum performance can be derived.
また、近年のプロセッサはコア数を増加させ、性能を向上させる傾向にある。しかし、コア数が増加すればコア間の依存関係など、どのように資源を配置すれば最も性能がよくなるかの考慮しなければならないため、ユーザの判断は難しくなる。 Also, recent processors tend to increase the number of cores and improve performance. However, if the number of cores increases, it is difficult to make a user's judgment because it is necessary to consider how resources are arranged to provide the best performance, such as dependency between cores.
上記の例からわかるように、資源の配置をユーザに決定させるのでなく、資源間の結合強度を解析した結果、分割の判断指標を導き出し、その判断指標から配置を決定することで、資源の配置をユーザが決定する必要がなくなる。 As can be seen from the above example, instead of letting the user decide the resource placement, the analysis of the coupling strength between the resources results in the determination of the division decision index, and the placement is determined from that decision measure. Need not be determined by the user.
<まとめ>
以上のように、本発明の資源配置システムは、資源のマルチプロセッサのコアへの配置を決定する際に使用する判断指標を導き出す。決定する方法として、資源間のデータアクセス回数に着目している。
<Summary>
As described above, the resource allocation system of the present invention derives a determination index used when determining the allocation of resources to the cores of multiprocessors. As a determination method, attention is paid to the number of data accesses between resources.
マルチプロセッサ対応RTOSにおいて、静的にコアへの資源の配置方法を決定するシステムでは、ユーザが決定することになるが、その判断は難しい。原因は、システムの増大化、及びプロセッサのコア数の増加のためである。 In a multiprocessor-compatible RTOS, in a system that statically determines a method for allocating resources to the core, the user determines it, but this is difficult to judge. The cause is an increase in the system and an increase in the number of cores of the processor.
本発明を用いることで、本来ユーザが決定すべきRTOS資源(タスク)や共通資源(共通関数や共通変数)のコアへの配置方法の判断指標を導き出し、その判断指標から資源の配置を決定することができる。まず、ユーザに資源の配置を意識させることなく、アプリケーションを組み、一度アプリケーションを動作させる。動作結果から、資源間のデータアクセス回数を(判断指標として)導き出し、その結果を資源間の結合強度とする。資源間の結合強度の強弱(本発明においては、データアクセス回数の大小)からマルチプロセッサのコアへの資源の配置方法を決定し、資源配分を行う。 By using the present invention, a determination index of an arrangement method of RTOS resources (tasks) and common resources (common functions and common variables) that should be determined by the user to the core is derived, and resource allocation is determined from the determination indexes. be able to. First, an application is assembled and the application is operated once without making the user aware of resource allocation. From the operation result, the number of times of data access between resources is derived (as a judgment index), and the result is defined as the coupling strength between resources. The resource allocation method is determined by determining the resource allocation method to the core of the multiprocessor based on the strength of coupling between resources (in the present invention, the number of times of data access).
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。 As mentioned above, although embodiment of this invention was explained in full detail, actually, it is not restricted to said embodiment, Even if there is a change of the range which does not deviate from the summary of this invention, it is included in this invention.
10… ホストPC
20… デバッガ
21… シミュレータ
22… CPU
10 ... Host PC
20 ...
Claims (16)
前記アプリケーションのタスク、共通関数、共通変数を資源として扱い、前記トレース情報から資源間のデータアクセス回数を算出し、前記算出されたデータアクセス回数を資源間の結合強度として扱い、資源間の結合強度に応じて、マルチプロセッサのコアへの資源配分を行うホストPCと
を具備する
資源配置システム。 A debugger that once executes an application program and outputs trace information as an operation result;
The task, common function, and common variable of the application are treated as resources, the number of data accesses between resources is calculated from the trace information, the calculated number of data accesses is treated as the coupling strength between resources, and the coupling strength between resources And a host PC for allocating resources to the cores of the multiprocessor according to the resource allocation system.
前記ホストPCは、資源間のデータアクセス回数が閾値より多い資源の各々を同じコアに配置し、資源間のデータアクセス回数が閾値以下である資源の各々を別々のコアに配置し、データアクセス回数の増大によるコア間のオーバーヘッドの発生を抑制する
資源配置システム。 The resource allocation system according to claim 1,
The host PC places each resource whose number of data accesses between resources is greater than a threshold value in the same core, and places each resource whose number of data accesses between resources is less than or equal to the threshold value in a separate core. Resource allocation system that suppresses overhead between cores due to increase in the number of cores.
前記ホストPCは、全てのデータアクセス回数の平均値を算出し、データアクセス回数が平均値以下の資源間の結合を切り離して部分集合に分け、部分集合毎に、マルチプロセッサのコアへの資源配分を行う
資源配置システム。 The resource allocation system according to claim 2, wherein
The host PC calculates the average value of all data access times, separates the connections between resources whose data access times are less than the average value, and divides them into subsets, and allocates resources to the cores of multiprocessors for each subset. Do resource allocation system.
前記ホストPCは、最も資源が少ない部分集合から順に、当該部分集合の中で、データアクセス回数が最大となる資源間の結合を復元する
資源配置システム。 The resource allocation system according to claim 3, wherein
The host PC restores the connection between resources having the largest number of data accesses in the subset in order from the subset with the least resources.
前記ホストPCは、タスクをRTOS(Real−Time Operating System)資源として扱い、共通関数及び共通変数を共通資源として扱い、前記トレース情報から、RTOS資源からRTOS資源への状態遷移と、RTOS資源から共通資源へのデータアクセスと、を解析し、資源間のデータアクセス回数を算出する
資源配置システム。 The resource allocation system according to any one of claims 1 to 4,
The host PC treats tasks as RTOS (Real-Time Operating System) resources, treats common functions and variables as common resources, and makes state transition from RTOS resources to RTOS resources and common to RTOS resources from the trace information. A resource allocation system that analyzes data access to resources and calculates the number of data accesses between resources.
前記アプリケーションのタスク、共通関数、共通変数を資源として扱い、前記トレース情報から資源間のデータアクセス回数を算出し、前記前記算出されたデータアクセス回数を資源間の結合強度として扱い、資源間の結合強度に応じて、マルチプロセッサのコアへの資源配分を行うことと
を含む
資源配置方法。 Once the application program is executed and trace information is output as the operation result,
The application task, common function, and common variable are treated as resources, the number of data accesses between resources is calculated from the trace information, the calculated number of data accesses is treated as the connection strength between resources, and the resources are combined Allocating resources to the cores of the multiprocessor according to the strength.
資源間のデータアクセス回数が閾値より多い資源の各々を同じコアに配置し、資源間のデータアクセス回数が閾値以下である資源の各々を別々のコアに配置し、データアクセス回数の増大によるコア間のオーバーヘッドの発生を抑制すること
を更に含む
資源配置方法。 The resource allocation method according to claim 7,
Each resource whose number of data accesses between resources is greater than the threshold is placed in the same core, and each resource whose number of data accesses between resources is less than or equal to the threshold is placed in a separate core. A resource allocation method further comprising suppressing the occurrence of overhead.
全てのデータアクセス回数の平均値を算出し、データアクセス回数が平均値以下の資源間の結合を切り離して部分集合に分け、部分集合毎に、マルチプロセッサのコアへの資源配分を行うこと
を更に含む
資源配置方法。 The resource allocation method according to claim 8,
Calculating an average value of all data access times, separating connections between resources whose data access times are less than the average value and dividing them into subsets, and further allocating resources to the multiprocessor cores for each subset Includes resource allocation methods.
最も資源が少ない部分集合から順に、当該部分集合の中で、データアクセス回数が最大となる資源間の結合を復元すること
を更に含む
資源配置方法。 The resource allocation method according to claim 9, wherein
A resource allocation method further comprising restoring a connection between resources having the largest number of data accesses in the subset in order from the subset having the least resources.
タスクをRTOS(Real−Time Operating System)資源として扱い、共通関数及び共通変数を共通資源として扱い、前記トレース情報から、RTOS資源からRTOS資源への状態遷移と、RTOS資源から共通資源へのデータアクセスと、を解析し、資源間のデータアクセス回数を算出すること
を更に含む
資源配置方法。 The resource allocation method according to any one of claims 7 to 10,
Tasks are treated as RTOS (Real-Time Operating System) resources, common functions and variables are treated as common resources, state transition from RTOS resources to RTOS resources, and data access from RTOS resources to common resources And calculating the number of data accesses between resources.
前記アプリケーションのタスク、共通関数、共通変数を資源として扱い、前記トレース情報から資源間のデータアクセス回数を算出し、前記前記算出されたデータアクセス回数を資源間の結合強度として扱い、資源間の結合強度に応じて、マルチプロセッサのコアへの資源配分を行うステップと
をコンピュータに実行させるための
資源配置用プログラム。 A step of executing an application program once and outputting trace information as an operation result;
The application task, common function, and common variable are treated as resources, the number of data accesses between resources is calculated from the trace information, the calculated number of data accesses is treated as the connection strength between resources, and the resources are combined A resource allocation program for causing a computer to execute a step of allocating resources to cores of a multiprocessor according to strength.
資源間のデータアクセス回数が閾値より多い資源の各々を同じコアに配置し、資源間のデータアクセス回数が閾値以下である資源の各々を別々のコアに配置し、データアクセス回数の増大によるコア間のオーバーヘッドの発生を抑制するステップ
を更にコンピュータに実行させるための
資源配置用プログラム。 A resource allocation program according to claim 12, wherein
Each resource whose number of data accesses between resources is greater than the threshold is placed in the same core, and each resource whose number of data accesses between resources is less than or equal to the threshold is placed in a separate core. A resource allocation program for causing a computer to further execute a step of suppressing the occurrence of overhead.
全てのデータアクセス回数の平均値を算出し、データアクセス回数が平均値以下の資源間の結合を切り離して部分集合に分け、部分集合毎に、マルチプロセッサのコアへの資源配分を行うステップ
を更にコンピュータに実行させるための
資源配置用プログラム。 A program for resource allocation according to claim 13,
Calculating the average value of all data access times, separating the connection between resources whose data access times are less than the average value and dividing them into subsets, and further allocating resources to the multiprocessor cores for each subset A resource allocation program to be executed by a computer.
最も資源が少ない部分集合から順に、当該部分集合の中で、データアクセス回数が最大となる資源間の結合を復元するステップ
を更にコンピュータに実行させるための
資源配置用プログラム。 A resource allocation program according to claim 14, wherein
A resource allocation program for causing a computer to further execute a step of restoring a connection between resources having the largest number of data accesses in the subset in order from a subset having the least resources.
タスクをRTOS(Real−Time Operating System)資源として扱い、共通関数及び共通変数を共通資源として扱い、前記トレース情報から、RTOS資源からRTOS資源への状態遷移と、RTOS資源から共通資源へのデータアクセスと、を解析し、資源間のデータアクセス回数を算出するステップ
を更にコンピュータに実行させるための
資源配置用プログラム。 The resource allocation program according to any one of claims 12 to 15,
Tasks are treated as RTOS (Real-Time Operating System) resources, common functions and variables are treated as common resources, state transition from RTOS resources to RTOS resources, and data access from RTOS resources to common resources And a resource allocation program for causing a computer to further execute a step of calculating the number of data accesses between resources.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010001582A JP2011141703A (en) | 2010-01-06 | 2010-01-06 | System, method and program for arranging resource |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010001582A JP2011141703A (en) | 2010-01-06 | 2010-01-06 | System, method and program for arranging resource |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011141703A true JP2011141703A (en) | 2011-07-21 |
Family
ID=44457502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010001582A Pending JP2011141703A (en) | 2010-01-06 | 2010-01-06 | System, method and program for arranging resource |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011141703A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014010754A (en) * | 2012-07-02 | 2014-01-20 | Denso Corp | Program development supporting device, and program development supporting tool |
JP2021005287A (en) * | 2019-06-27 | 2021-01-14 | 富士通株式会社 | Information processing apparatus and arithmetic program |
KR20210021848A (en) * | 2019-08-19 | 2021-03-02 | 성균관대학교산학협력단 | Method and apparatus for memory allocation in a multi-core processor system, and recoding medium therefor |
KR20210021849A (en) * | 2019-08-19 | 2021-03-02 | 성균관대학교산학협력단 | Method and apparatus for memory allocation in a multi-core processor system, and recoding medium therefor |
US11640321B2 (en) | 2019-08-19 | 2023-05-02 | Research & Business Foundation Sungkyunkwan University | Method and apparatus for memory allocation in a multi-core processor system, and recording medium therefor |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000066904A (en) * | 1998-08-21 | 2000-03-03 | Canon Inc | Method for controlling multitask and storage medium |
JP2009245362A (en) * | 2008-03-31 | 2009-10-22 | Nec Corp | Automatic distribution system and method |
-
2010
- 2010-01-06 JP JP2010001582A patent/JP2011141703A/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000066904A (en) * | 1998-08-21 | 2000-03-03 | Canon Inc | Method for controlling multitask and storage medium |
JP2009245362A (en) * | 2008-03-31 | 2009-10-22 | Nec Corp | Automatic distribution system and method |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014010754A (en) * | 2012-07-02 | 2014-01-20 | Denso Corp | Program development supporting device, and program development supporting tool |
JP2021005287A (en) * | 2019-06-27 | 2021-01-14 | 富士通株式会社 | Information processing apparatus and arithmetic program |
KR20210021848A (en) * | 2019-08-19 | 2021-03-02 | 성균관대학교산학협력단 | Method and apparatus for memory allocation in a multi-core processor system, and recoding medium therefor |
KR20210021849A (en) * | 2019-08-19 | 2021-03-02 | 성균관대학교산학협력단 | Method and apparatus for memory allocation in a multi-core processor system, and recoding medium therefor |
KR102222934B1 (en) | 2019-08-19 | 2021-03-04 | 성균관대학교산학협력단 | Method and apparatus for memory allocation in a multi-core processor system, and recoding medium therefor |
KR102275181B1 (en) * | 2019-08-19 | 2021-07-09 | 성균관대학교산학협력단 | Method and apparatus for memory allocation in a multi-core processor system, and recoding medium therefor |
US11640321B2 (en) | 2019-08-19 | 2023-05-02 | Research & Business Foundation Sungkyunkwan University | Method and apparatus for memory allocation in a multi-core processor system, and recording medium therefor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5911286B2 (en) | Device, method, and program for runtime assignment of functions to hardware accelerators | |
US10037230B2 (en) | Managing data processing resources | |
US8881165B2 (en) | Methods, computer systems, and physical computer storage media for managing resources of a storage server | |
JP6241300B2 (en) | Job scheduling apparatus, job scheduling method, and job scheduling program | |
JP6233413B2 (en) | Task assignment determination device, control method, and program | |
US8458334B2 (en) | Optimized capacity planning | |
US20150161385A1 (en) | Memory Management Parameters Derived from System Modeling | |
KR20200091789A (en) | Platform for concurrent execution of gpu operations | |
KR101471749B1 (en) | Virtual machine allcoation of cloud service for fuzzy logic driven virtual machine resource evaluation apparatus and method | |
CN115373835A (en) | Task resource adjusting method and device for Flink cluster and electronic equipment | |
KR101695013B1 (en) | Method for allocating and managing of adaptive resource | |
CN114048006B (en) | Virtual machine dynamic migration method, device and storage medium | |
US9733982B2 (en) | Information processing device and method for assigning task | |
Khattar et al. | An energy efficient and adaptive threshold VM consolidation framework for cloud environment | |
US20140244846A1 (en) | Information processing apparatus, resource control method, and program | |
JP2011141703A (en) | System, method and program for arranging resource | |
Syed | HAMM: A hybrid algorithm of Min-Min and Max-Min task scheduling algorithms in cloud computing | |
CN109445863B (en) | Data processing method, device, equipment and medium based on FPGA | |
WO2023039711A1 (en) | Efficiency engine in a cloud computing architecture | |
Farzaneh et al. | A novel virtual machine placement algorithm using RF element in cloud infrastructure | |
CN101539872B (en) | Self-adapting dispatching system and method of super computer | |
CN119829226A (en) | Cloud host migration method, computer storage medium and program product | |
KR101695238B1 (en) | System and method for job scheduling using multi computing resource | |
Marinho et al. | LABAREDA: a predictive and elastic load balancing service for cloud-replicated databases | |
Wu et al. | Latency modeling and minimization for large-scale scientific workflows in distributed network environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120725 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130920 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130927 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140207 |