[go: up one dir, main page]

JP2011141703A - System, method and program for arranging resource - Google Patents

System, method and program for arranging resource Download PDF

Info

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
Application number
JP2010001582A
Other languages
Japanese (ja)
Inventor
Atsushi Fujioka
篤志 藤岡
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010001582A priority Critical patent/JP2011141703A/en
Publication of JP2011141703A publication Critical patent/JP2011141703A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】資源間の結合強度を解析し、結合強度に基づいて複数のプロセッサコアへの個々の資源の配置方法を決定し、資源配分を行う。
【解決手段】アプリケーションのタスクや共通関数、共通変数などの資源を複数のプロセッサコアに配置する際に、資源間の結合強度を求め、求めた資源間の結合強度に応じて割り付けを行う。これにより、ユーザが任意に割り当てを行うよりも、より最適な割り当てが可能となる。結果として、アプリケーションのパフォーマンスを向上させることが可能となる。
【選択図】図4
The 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 core 2 are shown as CPU cores.

このとき、メモリは、図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 node 2 having the highest number of accesses to the process 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 node 2 in the above example are detected.
(2) It is determined whether the detected node 1 and node 2 are not the same.
(3) If the detected node 1 and node 2 are not the same, the allocation of process A is changed to node 2.

従来技術では、動的にプロセスの割り当てを変更するという考えのもと成り立っている。しかし、静的にプロセスの割り当てを行うシステムも存在する。静的にプロセスの割り当てを行う場合は、動的とは異なり、プロセスの割り当てを行うための判断指標がない。判断指標がないため、ユーザがアプリケーション(アプリケーションプログラム)の構成を理解し、プロセスの割り当てを決定しなければならない。しかし、アプリケーションの構成を知らないユーザが配置を決定する場合は、不適切な配置をしてしまう恐れがある。   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.

特開2006−003972号公報JP 2006-003972 A

本発明は、マルチプロセッサ対応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.

静的なシステムにおける資源の配置図である。It is a resource allocation diagram in a static system. RTOSを使用したアプリケーション開発の際における資源の配置方法の概要図である。It is a schematic diagram of a resource arrangement method during application development using RTOS. 本発明の実施例の図である。It is a figure of the Example of this invention. 本発明の構成及び処理の流れの図である。It is a figure of the structure and process flow of this invention. 本発明の処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process of this invention. 資源間のデータアクセス回数解析例の図である。It is a figure of the example of data access frequency analysis between resources. 資源間の結合解析結果の図である。It is a figure of the joint analysis result between resources. 資源の分割アルゴリズムの説明の図である。It is a figure of description of the division | segmentation algorithm of a resource. 資源の分割アルゴリズムの説明の図である。It is a figure of description of the division | segmentation algorithm of a resource. 資源の分割アルゴリズムの説明の図である。It is a figure of description of the division | segmentation algorithm of a resource. 資源の分割アルゴリズムの説明の図である。It is a figure of description of the division | segmentation algorithm of a resource. 分割結果の反映の図である。It is a figure of reflection of a division result.

以下に、本発明の実施形態について添付図面を参照して説明する。   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.

Figure 2011141703
Figure 2011141703

本発明では、静的に資源のマルチプロセッサへ配置するシステムにおいて、上記の資源の配置方法をユーザ任せにしない。   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 debugger 20. The host PC 10 is a multiprocessor-compatible RTOS computer having a plurality of CPU cores and memories. The host PC 10 includes at least a core 1, a core 2, and a memory. The memory holds the source file and execution file of the user application, and the RTOS information definition file. The contents of the executable file are as shown in FIG. The debugger 20 includes a simulator 21. The simulator 21 includes a CPU 22. The CPU 22 executes user applications and RTOS.

ここでは、ホストPC10及びデバッガ20の例として、PCを想定している。他にも、ホストPC10及びデバッガ20の例として、シンクライアント端末/サーバ、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機が考えられる。但し、実際には、これらの例に限定されない。   Here, a PC is assumed as an example of the host PC 10 and the debugger 20. In addition, as examples of the host PC 10 and the debugger 20, a computer such as a thin client terminal / server, a workstation, a mainframe, and a supercomputer can be considered. However, actually, it is not limited to these examples.

ホスト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 debugger 20 can be connected via a network. Examples of networks include the Internet, a LAN (Local Area Network), a wireless LAN (Wireless LAN), a WAN (Wide Area Network), a backbone (Backbone), a cable television (CATV) line, a fixed telephone network, a mobile phone network, WiMAX ( IEEE 802.16a), 3G (3rd Generation), leased line, IrDA (Infrared Data Association), Bluetooth (registered trademark), serial communication line, data bus, and the like can be considered. However, actually, it is not limited to these examples.

また、コア1及びコア2の例として、CPUを想定している。他にも、コア1及びコア2の例として、マイクロプロセッサ(microprocessor)、マイクロコントローラ、或いは、同様の機能を有する半導体集積回路(Integrated Circuit(IC))等が考えられる。但し、実際には、これらの例に限定されない。   Further, a CPU is assumed as an example of the core 1 and the core 2. Other examples of the core 1 and the core 2 include a microprocessor, a microcontroller, or a semiconductor integrated circuit (Integrated Circuit (IC)) having a similar function. However, actually, it is not limited to these examples.

また、メモリの例として、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 host PC 10 and the debugger 20 are described as independent devices, but actually, the host PC 10 and the debugger 20 may be the same device.

図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 host PC 10 creates a user application in response to an instruction from the user. Here, the core 1 or the core 2 creates a source file of the user application in accordance with an instruction from the user. At this time, the user does not need to consider the allocation of resources to the core.

(2)ステップS2
ホストPC10は、実行ファイルを作成する。ここでは、コア1又はコア2が、ユーザ・アプリケーションのソースファイルに基づいて、実行ファイルを作成する。例えば、コア1又はコア2は、コンパイルにより、ユーザ・アプリケーションのソースファイルを、コンピュータ上で実行可能な形式に変換する。ホストPC10は、実行ファイルをデバッガ20に提供する。
(2) Step S2
The host PC 10 creates an execution file. Here, the core 1 or the core 2 creates an execution file based on the source file of the user application. For example, the core 1 or the core 2 converts the source file of the user application into a format that can be executed on a computer by compiling. The host PC 10 provides the executable file to the debugger 20.

(3)ステップS3
デバッガ20は、一定期間、ユーザ・アプリケーションを動作させ、動作結果としてトレース情報を出力する。ユーザ・アプリケーションを動作させる手法として、例えば、ユーザが期待するようなテストパターンを組み込んだ動作手法も効果的である。動作させる環境としては、例えば、ターゲットマルチプロセッサをシングルプロセッサと仮定したシミュレータ上で動作させる。ここでは、デバッガ20は、ホストPC10から実行ファイルをダウンロードする。シミュレータ21は、CPU22により、RTOSと実行ファイルを実行し、一定期間、ユーザ・アプリケーションを動作させ、動作結果としてトレース情報を出力する。なお、トレース情報を出力するためには、そのトレース情報を出力させるための仕組が必要となる。そのため、トレース情報を出力するための仕組みを、RTOSに組み込むようにしても良い。
(3) Step S3
The debugger 20 operates the user application for a certain period and outputs trace information as an operation result. For example, an operation method incorporating a test pattern expected by the user is also effective as a method for operating the user application. As an operating environment, for example, the target multiprocessor is operated on a simulator assuming a single processor. Here, the debugger 20 downloads an execution file from the host PC 10. The simulator 21 causes the CPU 22 to execute the RTOS and the execution file, operate the user application for a certain period, and output trace information as an operation result. In order to output the trace information, a mechanism for outputting the trace information is required. Therefore, a mechanism for outputting trace information may be incorporated in the RTOS.

(4)ステップS4
ホストPC10は、入力されたトレース情報を参照し、資源間のデータアクセスを解析し、データアクセス回数を結合強度として導き出し、解析結果を出力する。ここでは、コア1又はコア2は、トレース情報から資源間のデータアクセス回数を割り出す。また、トレース情報から解析されるデータアクセスは、「RTOS資源からRTOS資源への状態遷移」、「RTOS資源から共通資源へのデータアクセス」の2点とする。
(4) Step S4
The host PC 10 refers to the input trace information, analyzes data access between resources, derives the number of data accesses as a coupling strength, and outputs an analysis result. Here, the core 1 or the core 2 calculates the number of data accesses between resources from the trace information. The data access analyzed from the trace information has two points: “state transition from RTOS resource to RTOS resource” and “data access from RTOS resource to common resource”.

(5)ステップS5
ホストPC10は、解析結果に基づいて、資源のコアへの配置方法を決定し、決定した配置方法に従って資源配分を行う。グラフの分割方法に関しては、公知のグラフ理論を使用することで、分割可能である。ここでは、ホストPC10は、コアへの資源の配置方法が示されたRTOS用情報定義ファイルをメモリに記憶する。コア1及びコア2は、RTOS用情報定義ファイルに基づいて、RTOS資源や共通資源を取得する。或いは、ホストPC10内の資源配置専用のコア(図示せず)が、RTOS用情報定義ファイルに基づいて、コア1及びコア2に、RTOS資源や共通資源を配置するようにしても良い。
(5) Step S5
Based on the analysis result, the host PC 10 determines a resource allocation method to the core, and performs resource allocation according to the determined allocation method. The graph can be divided by using a well-known graph theory. Here, the host PC 10 stores, in a memory, an RTOS information definition file indicating a method for allocating resources to the core. The cores 1 and 2 acquire RTOS resources and common resources based on the RTOS information definition file. Alternatively, a core dedicated to resource allocation (not shown) in the host PC 10 may allocate RTOS resources and common resources to the cores 1 and 2 based on the RTOS information definition file.

図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 task 2, data access between task 1 and task 2 is “1”. Next, since the data access from the task 2 to the common resource 1 is performed, the data access of the task 2 and the common resource becomes “1”. Similarly, since state transition is performed from task 2 to task 3, data access between task 2 and task 3 is “1”. In this way, the number of data accesses between resources is derived from the trace information operated for a certain period. The obtained data access count is treated as the coupling strength between resources.

次に、得られたデータアクセス回数から資源の配置方法を決定する手法を、以下に示す。   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 host PC 10 determines a location where the number of data accesses between resources is small, and divides the location. A known technique may be used as an algorithm for dividing. Here, the idea of a known divide-and-conquer method is used as an algorithm for dividing. As a result of the division, the host PC 10 can determine an arrangement method with less data access across cores.

例として、図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 host PC 10 separates (cuts) the connection between resources by using a division algorithm from this information, and divides it into subsets. After dividing into subsets, the allocation of resources to the core is determined for each subset. Apply the divide and conquer algorithm as a cutting method.

[分割統治法]
分割統治法の手順は以下の通りである。
ホストPC10は、全てのデータアクセス回数の平均値(小数点以下は切り上げ)をとり、その平均値を閾値として定義する。ホストPC10は、データアクセス回数が閾値以下の資源間の結合をカットする。
[Divisional governance law]
The procedure of the Divide-and-Conquer Law is as follows.
The host PC 10 takes the average value of all data access times (rounded up after the decimal point) and defines the average value as a threshold value. The host PC 10 cuts the connection between resources whose data access count is less than or equal to the threshold value.

図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 host PC 10 further performs the following processing on the result obtained by the above-described method.

まず、ホストPC10は、次の条件(a)、(b)に適合するか否かの判定を行う。
(a)マルチプロセッサのコア数よりも部分集合が少ない。
(b)マルチプロセッサのコア数よりも部分集合が多い。
First, the host PC 10 determines whether or not the following conditions (a) and (b) are met.
(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 host PC 10 increases the threshold value determined by the divide-and-conquer method by 1, and further performs cutting.

条件(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 host PC 10 restores the portion where the data access frequency of the cut data access is the largest in the subset with the least resources in the subset. By doing so, it is combined with other subsets. When there are a plurality of subsets with the fewest resources, the host PC 10 selects the one with the largest sum of data access (number of data accesses) in the subset.

図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 host PC 10, the task 5 is a subset having the least resources.

ホストPC10は、タスク5の部分集合の中で、最もデータアクセス回数が大きい値を復元する。すなわち、タスク5の部分集合の中で、データアクセス回数が最大となる資源間の結合を復元する。ここでは、ホストPC10は、図10に示すように、タスク5とタスク3の結合を復元する。黒色の矢印は、結合の復元を表す。これで、部分集合は3つになる。   The host PC 10 restores the value having the largest number of data accesses in the task 5 subset. That is, in the subset of task 5, the connection between resources that maximizes the number of data accesses is restored. Here, the host PC 10 restores the combination of task 5 and task 3 as shown in FIG. Black arrows represent the restoration of binding. Now there are three subsets.

次に、少ない部分集合は、共通資源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 common resource 2. The host PC 10 selects the sum of both data accesses because the sum of the subsets of the common resource 1 and the task 1 is larger.

ホストPC10は、共通資源1とタスク1の部分集合の中で、最もデータアクセス回数が大きい値を復元する。すなわち、共通資源1とタスク1の部分集合の中で、データアクセス回数が最大となる資源間の結合を復元する。ここでは、ホストPC10は、図11に示すように、タスク1とタスク6の結合を復元する。これで、部分集合は2つになる。   The host PC 10 restores the value with the largest number of data accesses among the subsets of the common resource 1 and the task 1. That is, in the subset of the common resource 1 and the task 1, the connection between the resources having the maximum number of data accesses is restored. Here, the host PC 10 restores the combination of task 1 and task 6 as shown in FIG. Now there are two subsets.

ホストPC10は、2つに部分集合を分けることができたので、図12に示すように、部分集合単位で資源をそれぞれのコアへ配置する。   Since the host PC 10 was able to divide the subset into two, as shown in FIG. 12, the resources are allocated to each core in units of subsets.

以上の手順で、ホストPC10は、資源間のデータアクセス回数が少ない箇所をカットした配置方法を決定できる。   With the above procedure, the host PC 10 can determine an arrangement method in which a portion where the number of data accesses between resources is small is cut.

本実施例では、資源間の結合強度の少ない箇所をカットする方法として、平均値を使った分割統治法で説明したが、この方法に限られない。結合強度の少ない箇所を求めていく方法として、グラフ分割理論の様々なアルゴリズムが適応可能である。例えばダイクストラ法などが知られており、この方法でも適用可能である。   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 host PC 10 executing a resource allocation program for causing a computer to execute this resource allocation method. .

<問題解決のメカニズム>
システムが増大化すれば、資源が増加するのは明白である。資源の配置を静的に決定するシステムにおいて、資源をどのように配置すれば良いのか、最大限の性能を引き出せているのかなどを判断し、ユーザは配置を決定しなければならない。
<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 ... Debugger 21 ... Simulator 22 ... CPU

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.
請求項1に記載の資源配置システムであって、
前記ホスト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.
請求項2に記載の資源配置システムであって、
前記ホスト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.
請求項3に記載の資源配置システムであって、
前記ホスト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.
請求項1乃至4のいずれか一項に記載の資源配置システムであって、
前記ホスト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.
請求項1乃至5のいずれか一項に記載の資源配置システムで、デバッガ及びホストPCのうち少なくとも一方として使用されるコンピュータ。   A computer used as at least one of a debugger and a host PC in the resource allocation system according to any one of claims 1 to 5. 一度アプリケーションプログラムを実行させ、動作結果としてトレース情報を出力することと、
前記アプリケーションのタスク、共通関数、共通変数を資源として扱い、前記トレース情報から資源間のデータアクセス回数を算出し、前記前記算出されたデータアクセス回数を資源間の結合強度として扱い、資源間の結合強度に応じて、マルチプロセッサのコアへの資源配分を行うことと
を含む
資源配置方法。
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.
請求項7に記載の資源配置方法であって、
資源間のデータアクセス回数が閾値より多い資源の各々を同じコアに配置し、資源間のデータアクセス回数が閾値以下である資源の各々を別々のコアに配置し、データアクセス回数の増大によるコア間のオーバーヘッドの発生を抑制すること
を更に含む
資源配置方法。
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.
請求項8に記載の資源配置方法であって、
全てのデータアクセス回数の平均値を算出し、データアクセス回数が平均値以下の資源間の結合を切り離して部分集合に分け、部分集合毎に、マルチプロセッサのコアへの資源配分を行うこと
を更に含む
資源配置方法。
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.
請求項9に記載の資源配置方法であって、
最も資源が少ない部分集合から順に、当該部分集合の中で、データアクセス回数が最大となる資源間の結合を復元すること
を更に含む
資源配置方法。
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.
請求項7乃至10のいずれか一項に記載の資源配置方法であって、
タスクを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.
請求項12に記載の資源配置用プログラムであって、
資源間のデータアクセス回数が閾値より多い資源の各々を同じコアに配置し、資源間のデータアクセス回数が閾値以下である資源の各々を別々のコアに配置し、データアクセス回数の増大によるコア間のオーバーヘッドの発生を抑制するステップ
を更にコンピュータに実行させるための
資源配置用プログラム。
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.
請求項13に記載の資源配置用プログラムであって、
全てのデータアクセス回数の平均値を算出し、データアクセス回数が平均値以下の資源間の結合を切り離して部分集合に分け、部分集合毎に、マルチプロセッサのコアへの資源配分を行うステップ
を更にコンピュータに実行させるための
資源配置用プログラム。
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.
請求項14に記載の資源配置用プログラムであって、
最も資源が少ない部分集合から順に、当該部分集合の中で、データアクセス回数が最大となる資源間の結合を復元するステップ
を更にコンピュータに実行させるための
資源配置用プログラム。
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.
請求項12乃至15のいずれか一項に記載の資源配置用プログラムであって、
タスクを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.
JP2010001582A 2010-01-06 2010-01-06 System, method and program for arranging resource Pending JP2011141703A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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