JP6212823B2 - Parallelization support device, execution device, control system, parallelization support method, and program - Google Patents

Parallelization support device, execution device, control system, parallelization support method, and program Download PDF

Info

Publication number
JP6212823B2
JP6212823B2 JP2013247077A JP2013247077A JP6212823B2 JP 6212823 B2 JP6212823 B2 JP 6212823B2 JP 2013247077 A JP2013247077 A JP 2013247077A JP 2013247077 A JP2013247077 A JP 2013247077A JP 6212823 B2 JP6212823 B2 JP 6212823B2
Authority
JP
Japan
Prior art keywords
program
core
logic
execution
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013247077A
Other languages
Japanese (ja)
Other versions
JP2015106233A (en
Inventor
中出 実
実 中出
信一 戸田
信一 戸田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Power Ltd
Original Assignee
Mitsubishi Hitachi Power Systems Ltd
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 Mitsubishi Hitachi Power Systems Ltd filed Critical Mitsubishi Hitachi Power Systems Ltd
Priority to JP2013247077A priority Critical patent/JP6212823B2/en
Publication of JP2015106233A publication Critical patent/JP2015106233A/en
Application granted granted Critical
Publication of JP6212823B2 publication Critical patent/JP6212823B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、並列化支援装置、実行装置、制御システム、並列化支援方法及びプログラムに関する。   The present invention relates to a parallelization support device, an execution device, a control system, a parallelization support method, and a program.

ガスタービンなどのプラント設備で使用される制御システムにおいては、例えばプラントに備えられた計測器などから各種の状態量を取得しその状態量が示す変化に応じてプラントを適切に制御できるように速やかに応答することが求められる。その為、制御システムのOS(Operating System)には所望の時間内に処理を完了することできるリアルタイムOSが採用されることが一般的である。また、そのような制御用システムにおけるコンピュータでは、制御対象をコントロールするために制御に必要な信号を入力しそれに応じて演算を行うという一連のサイクルを短い周期で繰り返す定周期演算に多くの時間を費やしていることが多い。   In a control system used in a plant facility such as a gas turbine, for example, various state quantities are acquired from a measuring instrument provided in the plant, and the plant can be quickly controlled so that the plant can be appropriately controlled according to changes indicated by the state quantities. Is required to respond. Therefore, a real-time OS that can complete the processing within a desired time is generally adopted as an OS (Operating System) of the control system. Further, in a computer in such a control system, a large amount of time is required for a constant cycle calculation that repeats a series of cycles of inputting a signal necessary for control to control a controlled object and performing a calculation in accordance with the signal in a short cycle. Often spent.

ところで、近年では汎用のPCサーバ等においてもマルチコアのCPU(Central Processing Unit)が搭載され、上記の定周期演算においてもマルチコアを利用した並列処理を行うことによって高速化を図ることが可能である。しかし、マルチコアに対応していないアプリケーションをマルチコアのCPUが搭載されたコンピュータで実行させても並列化の効果はほとんど得られないことが一般的に知られている。マルチコアの能力を活用するためには、プログラマが専門的な知識を使ってそのアプリケーションのプログラムをマルチコアに対応するように書き換える必要がある。例えば特許文献1には、プログラム内の関数ごとにコアへ割り当て定義を行い、プログラマがその定義を読み込んでビルドしたプログラムを実行しながら期待する性能に近づけていく開発手法が記載されている。   By the way, in recent years, a general-purpose PC server or the like is also equipped with a multi-core CPU (Central Processing Unit), and it is possible to increase the speed by performing parallel processing using the multi-core even in the above-described periodic operation. However, it is generally known that even if an application that does not support multi-core is executed on a computer equipped with a multi-core CPU, the effect of parallelization is hardly obtained. In order to take advantage of multi-core capabilities, programmers need to rewrite their application programs to support multi-cores using specialized knowledge. For example, Patent Document 1 describes a development method in which a definition is assigned to a core for each function in a program, and a programmer approaches the expected performance while executing the program that is read and built.

特開2011−134055号公報JP 2011-134055 A

一般にアプリケーションエンジニアはアプリケーションの仕様に精通しているがプログラミングの知識には精通していないことが多い。また、逆にプログラマはプログラミングができてもアプリケーションの仕様に精通していないことが多い。従ってアプリケーションエンジニアは、アプリケーションを構成するプログラムによる処理のうちどの処理が並列実行が可能かを容易に判断することができるが、アプリケーションを並列化させる技術がなかったためにその知識を用いてマルチコアの能力を引き出すことができなかった。   In general, application engineers are familiar with application specifications but are not familiar with programming knowledge. Conversely, programmers are often not familiar with application specifications even though they can program. Therefore, the application engineer can easily determine which of the processes by the program that constitutes the application can be executed in parallel. However, since there was no technology to parallelize the application, the knowledge of the multi-core can be obtained using that knowledge. Could not be pulled out.

そこでこの発明は、上述の課題を解決することのできる並列化支援装置、実行装置、制御システム、並列化支援方法及びプログラムを提供することを目的としている。   Accordingly, an object of the present invention is to provide a parallelization support device, an execution device, a control system, a parallelization support method, and a program that can solve the above-described problems.

本発明の第1の態様は、逐次実行が必要な一纏まりの処理に対応する予め定められた小単位のプログラムであるロジックシートについて、複数の前記ロジックシート間における実行順や依存関係を表示するロジックシート関係出力部と、前記複数のロジックシートのうちの少なくとも一部を、実行を開始してから要求された時間内に完了を求められる実行単位のプログラムへ割り当てる操作を受け付けるロジックシート集約受付部と、前記割り当てられたロジックシートを含んで構成された前記実行単位のプログラムを複数のコアのいずれに実行させるかの選択を受け付けるコア選択受付部と、前記実行単位のプログラムを、前記コアに割り当てるための指標を表示するコア選択支援情報表示部と、を備えることを特徴とするアプリケーションの並列化支援装置である。 The first aspect of the present invention displays the execution order and dependency among a plurality of logic sheets for a logic sheet that is a predetermined small unit program corresponding to a group of processes that need to be sequentially executed. Logic sheet-related output unit and a logic sheet aggregation receiving unit that receives an operation of assigning at least a part of the plurality of logic sheets to a program of an execution unit that is required to be completed within a requested time after the execution is started A core selection receiving unit that receives a selection of a plurality of cores to execute the execution unit program configured to include the assigned logic sheet, and assigns the execution unit program to the cores. A core selection support information display unit for displaying an index for Which is a parallel support device.

また本発明の第2の態様における前記指標は、前記選択を受け付けたコアにおいて前記実行単位のプログラムを前記要求された時間内に完了するように実行させた場合における、当該コアの負荷率であることを特徴とする。 In the second aspect of the present invention, the index is a load factor of the core when the execution unit program is executed so as to be completed within the requested time in the core that has received the selection. It is characterized by that.

また本発明の第3の態様における前記指標は、前記選択を受け付けたコアにおいて前記実行単位のプログラムだけを実行した場合における、当該プログラムの実行に要する時間であることを特徴とする。 The index according to the third aspect of the present invention is a time required for executing the program when only the program of the execution unit is executed in the core that has received the selection.

また本発明の第の態様における前記ロジックシート集約受付部は、1つの前記実行単位のプログラムに含まれる前記ロジックシートのうち一つ又は複数を、他の実行単位のプログラムに移動する操作を受け付けることを特徴とする。 The logic sheet aggregation receiving unit according to the fourth aspect of the present invention receives an operation of moving one or more of the logic sheets included in one execution unit program to another execution unit program. It is characterized by that.

また本発明の第の態様は、実行するプログラムについて、上記の並列化支援装置において前記コア選択受付部が受け付けたコアの識別子を取得し、取得した識別子が示すコアにおいて前記実行単位のプログラムを実行することを特徴とするアプリケーションの実行装置である。 According to a fifth aspect of the present invention, for the program to be executed, the identifier of the core received by the core selection receiving unit in the parallelization support apparatus is acquired, and the program of the execution unit is acquired in the core indicated by the acquired identifier. An application execution apparatus characterized by executing the application.

また本発明の第の態様は、第の態様の実行装置によってプラントにおける装置の制
御を行うことを特徴とするプラントの制御システムである。
According to a sixth aspect of the present invention, there is provided a plant control system characterized in that the apparatus in the plant is controlled by the execution device according to the fifth aspect.

また本発明の第の態様は、逐次実行が必要な一纏まりの処理に対応する予め定められた小単位のプログラムであるロジックシートについて、複数の前記ロジックシート間における実行順や依存関係を表示し、前記複数のロジックシートのうちの少なくとも一部を、実行を開始してから要求された時間内に完了を求められる実行単位のプログラムへ割り当てる操作を受け付け、前記割り当てられたロジックシートを含んで構成された前記実行単位のプログラムを複数のコアのいずれに実行させるかの選択を受け付け、前記実行単位のプログラムを、前記コアに割り当てるための指標を表示することを特徴とするアプリケーションの並列化支援方法である。 According to a seventh aspect of the present invention, for a logic sheet that is a predetermined small unit program corresponding to a group of processes that need to be executed sequentially, the execution order and dependency relationships between the plurality of logic sheets are displayed. And accepting an operation of assigning at least a part of the plurality of logic sheets to a program of an execution unit that is requested to be completed within a requested time from the start of execution, and including the assigned logic sheet Supporting parallelization of an application, wherein selection of which of the plurality of cores executes the configured execution unit program is received, and an index for assigning the execution unit program to the core is displayed. Is the method.

また本発明の第の態様は、アプリケーションの並列化支援装置のコンピュータを、逐次実行が必要な一纏まりの処理に対応する予め定められた小単位のプログラムであるロジックシートについて、複数の前記ロジックシート間における実行順や依存関係を表示する手段、前記複数のロジックシートのうちの少なくとも一部を、実行を開始してから要求された時間内に完了を求められる実行単位のプログラムへ割り当てる操作を受け付ける手段、前記割り当てられたロジックシートを含んで構成された前記実行単位のプログラムを複数のコアのいずれに実行させるかの選択を受け付ける手段、前記実行単位のプログラムを、前記コアに割り当てるための指標を表示する手段、として機能させることを特徴とするプログラムである。
According to an eighth aspect of the present invention, a computer of an application parallelization support apparatus performs a plurality of the logics on a logic sheet that is a predetermined small unit program corresponding to a group of processes that need to be sequentially executed. Means for displaying the order of execution and dependency between sheets, and an operation of assigning at least a part of the plurality of logic sheets to a program of an execution unit that is required to be completed within a requested time from the start of execution. Means for accepting, means for accepting selection of which of the plurality of cores execute the execution unit program configured to include the assigned logic sheet, and an index for assigning the execution unit program to the core It is a program characterized by functioning as a means for displaying .

本発明によれば、アプリケーションエンジニアが自身の知識を用いてマルチコアの能力を引き出すことができるようになる。   According to the present invention, it becomes possible for an application engineer to draw out multi-core capabilities using his / her own knowledge.

本発明の第一の実施形態による並列化支援装置及び実行装置を含む制御システムの概略図である。It is the schematic of the control system containing the parallelization assistance apparatus and execution apparatus by 1st embodiment of this invention. 本発明の第一の実施形態における制御ロジック演算機能の説明図である。It is explanatory drawing of the control logic arithmetic function in 1st embodiment of this invention. 本発明の第一の実施形態による並列化支援装置の機能ブロック図である。It is a functional block diagram of the parallelization assistance apparatus by 1st embodiment of this invention. 本発明の第一の実施形態による並列化支援装置の操作画面の一例を示す第1の図である。It is a 1st figure which shows an example of the operation screen of the parallelization assistance apparatus by 1st embodiment of this invention. 本発明の第一の実施形態による並列化支援装置の操作画面の一例を示す第2の図である。It is a 2nd figure which shows an example of the operation screen of the parallelization assistance apparatus by 1st embodiment of this invention. 本発明の第一の実施形態による並列化支援装置の処理フローを示す図である。It is a figure which shows the processing flow of the parallelization assistance apparatus by 1st embodiment of this invention. 本発明の第一の実施形態による並列化支援装置の操作画面の一例を示す第3の図である。It is a 3rd figure which shows an example of the operation screen of the parallelization assistance apparatus by 1st embodiment of this invention. 本発明の第一の実施形態による並列化支援装置の操作画面の一例を示す第4の図である。It is a 4th figure which shows an example of the operation screen of the parallelization assistance apparatus by 1st embodiment of this invention.

<第一の実施形態>
以下、本発明の第一の実施形態によるアプリケーションの並列化支援装置及び実行装置を図1〜図8を参照して説明する。
図1は第1の実施形態によるアプリケーションの並列化支援装置及び実行装置を含む制御システムの概略図である。
図1に示すように本実施形態の制御システムは、並列化支援装置10と、実行装置20と、制御対象装置30と、を備えている。
並列化支援装置10は、コンピュータを備えており、ユーザが使用する設計ツールのアプリケーションプログラムがインストールされ稼働している。
実行装置20は、コンピュータを備えており、リアルタイムOS(以下、RTOSと称する)や制御用アプリケーションプログラムがインストールされ稼働している。実行装置20のコンピュータは、マルチコアのCPUを備えている。実行装置20は、制御システムにおけるコントローラであって制御対象装置30を制御する。なお、以下ではアプリケーションプログラムをアプリケーションと略して表記する。
制御対象装置30は、制御対象となる例えばガスタービンなどの制御対象31と、センサや操作端などの制御機器32で構成されている。
<First embodiment>
An application parallelization support apparatus and execution apparatus according to a first embodiment of the present invention will be described below with reference to FIGS.
FIG. 1 is a schematic diagram of a control system including an application parallelization support apparatus and an execution apparatus according to the first embodiment.
As shown in FIG. 1, the control system of the present embodiment includes a parallelization support device 10, an execution device 20, and a control target device 30.
The parallelization support apparatus 10 includes a computer, and an application program for a design tool used by a user is installed and operated.
The execution device 20 includes a computer, and a real-time OS (hereinafter referred to as RTOS) and a control application program are installed and operating. The computer of the execution device 20 includes a multi-core CPU. The execution device 20 is a controller in the control system and controls the control target device 30. Hereinafter, an application program is abbreviated as an application.
The control target device 30 includes a control target 31 such as a gas turbine to be controlled and a control device 32 such as a sensor or an operation end.

この制御システムでは、並列化支援装置10の設計ツールによって、並列化支援装置10が実行装置20のコンピュータに備わる複数のCPUコアのうちどのコアで制御用アプリケーションを構成する様々なプログラムを実行するかをユーザが指定する。符号100は、ユーザが操作する設計ツールの操作画面の一例を示している。また、実行装置20では制御用アプリケーションを構成する様々なプログラムを指定されたコアによって実行し、制御対象装置30の挙動を制御する。   In this control system, with which design tool of the parallelization support device 10 the parallelization support device 10 executes various programs constituting the control application on which of a plurality of CPU cores provided in the computer of the execution device 20 Is specified by the user. Reference numeral 100 indicates an example of an operation screen of a design tool operated by a user. Further, the execution device 20 executes various programs constituting the control application by the designated core, and controls the behavior of the control target device 30.

ここで、図2を使用して以下で使用する用語の説明を行う。まず実行装置20が実行する制御用アプリケーションを制御ロジック演算機能アプリケーションという。制御ロジック演算機能アプリケーションは、複数の機能演算グループと呼ばれるプログラムから構成されている。機能演算グループが示すプログラムは実行単位のプログラムモジュールであって、RTOS等のタスク、すなわちスレッドやプロセスとして実行される。各機能演算グループが示すプログラムは、その機能演算グループの処理に課せられた演算周期等に基づき優先度付けされ、RTOSのスケジューリング機能によってスケジューリングされて実行装置20の備えるCPUによって実行される。   Here, the terms used below will be described with reference to FIG. First, the control application executed by the execution device 20 is referred to as a control logic operation function application. The control logic operation function application is composed of programs called a plurality of function operation groups. The program indicated by the functional operation group is a program module of an execution unit, and is executed as a task such as an RTOS, that is, a thread or a process. A program indicated by each functional calculation group is prioritized based on a calculation cycle or the like imposed on the processing of the functional calculation group, is scheduled by the scheduling function of the RTOS, and is executed by the CPU of the execution device 20.

各機能演算グループは、複数のロジックシートと呼ばれるより小さい単位のプログラムで構成されている。ロジックシートは、逐次実行が必要な一纏まりの処理に対応するプログラムであって、複数の機能演算ブロックとそれらの処理順序や入出力の関係を示したデータフローの情報とを含んでいる。図2においてはデータフローを矢印で表している。ここで、機能演算ブロックとは、予め定められた実数演算、整数演算、論理演算を行う演算の単位である。各機能演算グループ内のロジックシートが示すプログラムは登録もしくは設定された順番に実行され、各ロジックシート内の機能演算ブロックは自動付番もしくは設定された順番に実行される。なお、各ロジックシートが示す処理は互いに実行順序が決まっており、機能演算グループ内の処理は、逐次的に実行される。
また、以下においてユーザは、制御システムの仕様、要求に精通しているアプリケーションエンジニアの意味で用いる。プログラマは、コーディングを行うことはできるが、制御対象の制御方法(制御ロジック)に対する深い知識を有しない者という意味に用いる。上記の機能演算グループやロジックシートが示すプログラムの作成はプログラマが行う。
Each functional calculation group is composed of a smaller unit program called a plurality of logic sheets. The logic sheet is a program corresponding to a group of processes that need to be sequentially executed, and includes a plurality of functional operation blocks and data flow information indicating their processing order and input / output relationships. In FIG. 2, the data flow is represented by arrows. Here, the functional operation block is a unit of operations for performing predetermined real number operations, integer operations, and logical operations. The programs indicated by the logic sheets in each functional calculation group are executed in the order in which they are registered or set, and the functional calculation blocks in each logic sheet are executed automatically in the order assigned or set. Note that the processing order indicated by each logic sheet is determined in the order of execution, and the processing within the functional calculation group is executed sequentially.
In the following, the user is used in the sense of an application engineer who is familiar with the specifications and requirements of the control system. The programmer is used to mean a person who can perform coding but does not have deep knowledge of a control method (control logic) of a control target. The programmer creates the program indicated by the above functional calculation group and logic sheet.

図3は、本発明の第一の実施形態による並列化支援装置の機能ブロック図である。
図3を用いて本実施形態における並列化支援装置10について説明する。
図3に示す通り、並列化支援装置10は、コア選択支援情報表示部101、コア選択受付部102、選択コア記録部103、機能演算グループ出力部104、ロジックシート関係出力部105、ロジックシート集約受付部106、コア情報出力部107、操作検出部108、記憶部200を備えている。
FIG. 3 is a functional block diagram of the parallelization support apparatus according to the first embodiment of the present invention.
The parallelization support apparatus 10 in this embodiment is demonstrated using FIG.
As illustrated in FIG. 3, the parallelization support apparatus 10 includes a core selection support information display unit 101, a core selection reception unit 102, a selected core recording unit 103, a functional calculation group output unit 104, a logic sheet related output unit 105, and logic sheet aggregation. A reception unit 106, a core information output unit 107, an operation detection unit 108, and a storage unit 200 are provided.

コア選択支援情報表示部101は、ユーザがどの機能演算グループのプログラムをどのコアで実行させるかを決定するのを助ける指標となる情報を出力する。指標となる情報とは、例えば機能演算グループのプログラムを実行するのに要する時間やCPUコアごとのCPU負荷率などである。プラントなどの制御システムでは、少しの処理の遅れによって制御に狂いが生じ思わぬ事故などを招くおそれがあることから各処理が確実に定められた時間内に完了することが求められる場合が多い。従ってマルチコアのCPUが持つ能力を活用し、各機能演算グループのプログラムを各コアに割り当てて実行することで負荷分散し、各処理が遅れずに実行できるようにすることが望ましい。ユーザは、コア選択支援情報表示部101が出力する情報を参照することで、各機能演算グループの処理が所望の時間内に完了できるかや、各コアに負荷が平滑化して割り当てられているかなどを確認することができる。   The core selection support information display unit 101 outputs information that serves as an index for helping the user to determine which functional calculation group program is executed on which core. The information serving as an index is, for example, the time required to execute the program of the functional calculation group, the CPU load factor for each CPU core, and the like. In a control system such as a plant, it is often required to complete each process within a predetermined time because a control delay may cause a control error due to a slight process delay, resulting in an unexpected accident. Therefore, it is desirable to utilize the capability of a multi-core CPU and distribute the load by assigning and executing the program of each functional calculation group to each core so that each process can be executed without delay. By referring to the information output by the core selection support information display unit 101, the user can complete the processing of each functional calculation group within a desired time, whether the load is smoothed and allocated to each core, etc. Can be confirmed.

コア選択受付部102は、ユーザがどの機能演算グループのプログラムをどのコアで実行させるかを選択した結果の情報の入力を受け付ける。
選択コア記録部103は、コア選択受付部102が受け付けた情報に基づいて、各機能演算グループの識別子とコアの識別子とを対応付けて記憶部200に記録する。
機能演算グループ出力部104は、コアに対して割り当てを行う対象となる機能演算グループやロジックシートの一覧を出力する。ユーザは、機能演算グループ出力部104が出力する一覧から機能演算グループを選択してその機能演算グループのプログラムを実行するコアの割り当てを行う。
The core selection accepting unit 102 accepts input of information as a result of the user selecting which functional operation group the program of which core is to be executed on.
Based on the information received by the core selection receiving unit 102, the selected core recording unit 103 records the identifier of each functional operation group and the core identifier in the storage unit 200 in association with each other.
The functional calculation group output unit 104 outputs a list of functional calculation groups and logic sheets to be assigned to the core. The user selects a functional calculation group from the list output by the functional calculation group output unit 104 and assigns a core for executing the program of the functional calculation group.

ロジックシート関係出力部105は、ロジックシート間の関係を出力する。ロジックシート間の関係とは、「ロジックシート1」の処理と「ロジックシート2」の処理との実行順序や依存関係のことをいう。例えば、「ロジックシート1」と「ロジックシート2」のプログラムは、「ロジックシート1」、「ロジックシート2」の順に逐次的に実行しなければならない、あるいは「ロジックシート1」、「ロジックシート2」の処理と「ロジックシート3」の処理は並列して実行が可能であるといったことである。   The logic sheet relation output unit 105 outputs a relation between logic sheets. The relationship between logic sheets refers to the execution order and dependency between the processes of “logic sheet 1” and “logic sheet 2”. For example, the programs of “logic sheet 1” and “logic sheet 2” must be sequentially executed in the order of “logic sheet 1” and “logic sheet 2”, or “logic sheet 1” and “logic sheet 2”. "And the process of" logic sheet 3 "can be executed in parallel.

ロジックシート集約受付部106は、ユーザによるロジックシートを実行プログラムである機能演算グループへ割り当てる操作を受け付ける。具体的には、ユーザが機能演算グループに新たにロジックシートを追加したり、あるロジックシートを別の機能演算グループへ移動させる場合などにその変更の入力を受け付ける。例えば、「機能演算グループ1」のプログラムが「ロジックシート1」〜「ロジックシート10」で構成されていて、この「機能演算グループ1」のプログラムに1つのコアを占有させて処理を行ったとしても制御システムが要求する処理時間内に処理を完了させることができないような場合を考える。このような場合に「機能演算グループ1」のプログラムが「ロジックシート1」〜「ロジックシート5」と「ロジックシート6」〜「ロジックシート10」に分割できるとする。すると、ユーザは、ロジックシート集約受付部106の機能を使用して「機能演算グループ1」を例えば「機能演算グループ1A」、「機能演算グループ1B」に分割することができる。さらにユーザは、「機能演算グループ1A」のプログラムに「ロジックシート1」〜「ロジックシート5」を割り当て、「機能演算グループ1B」のプログラムに「ロジックシート6」〜「ロジックシート10」を割り当てることができる。なお、ユーザが1つの機能演算グループにロジックシートを割り当てる操作のことを「集約する」という。ロジックシート集約受付部106は、集約結果を記憶部200に記録する。   The logic sheet aggregation receiving unit 106 receives an operation of assigning a logic sheet by a user to a functional calculation group that is an execution program. Specifically, when the user adds a new logic sheet to the functional calculation group or moves a certain logic sheet to another functional calculation group, the change input is accepted. For example, suppose that the program of “functional calculation group 1” is composed of “logic sheet 1” to “logic sheet 10”, and the program of “functional calculation group 1” is processed by occupying one core. Consider a case where the processing cannot be completed within the processing time required by the control system. In such a case, it is assumed that the program of “functional operation group 1” can be divided into “logic sheet 1” to “logic sheet 5” and “logic sheet 6” to “logic sheet 10”. Then, the user can divide “functional calculation group 1” into, for example, “functional calculation group 1A” and “functional calculation group 1B” using the function of the logic sheet aggregation receiving unit 106. Further, the user assigns “logic sheet 1” to “logic sheet 5” to the program of “functional computation group 1A” and assigns “logic sheet 6” to “logic sheet 10” to the program of “functional computation group 1B”. Can do. Note that an operation in which a user assigns a logic sheet to one functional calculation group is referred to as “aggregation”. The logic sheet aggregation receiving unit 106 records the aggregation result in the storage unit 200.

コア情報出力部107は、ユーザが割り当てたCPUコアと機能演算グループとの対応関係を出力する。
操作検出部108は、ユーザによるマウスやキーボードによる入力操作等を検出し、その操作指示情報を取得する。
記憶部200は、実行装置20ごと機能演算グループごとにCPU負荷率や処理に要する時間を格納している。CPU負荷率は制御システムが要求する時間内に実行が完了するようにその機能演算グループのプログラムを実行した場合においてCPUが自分の処理能力のうちどの程度をそのプログラムの実行に費やしたかを示す値である。この値は、実際に1つのコアを占有させて機能演算グループのプログラムを実行したときのCPU負荷率の実測値の平均値でもよいし、処理の複雑さなどに基づいて計算した値でもよい。また、処理に要する時間は、機能演算グループのプログラムを1つのコアを占有して実行した場合に実行の開始から完了までに要する時間である。
The core information output unit 107 outputs the correspondence relationship between the CPU cores assigned by the user and the functional calculation groups.
The operation detection unit 108 detects an input operation or the like by a user using a mouse or a keyboard, and acquires the operation instruction information.
The storage unit 200 stores the CPU load factor and the time required for processing for each function calculation group for each execution device 20. The CPU load factor is a value indicating how much of the CPU's own processing capacity is spent executing the program when the program of the functional calculation group is executed so that the execution is completed within the time required by the control system. It is. This value may be an average value of actually measured values of CPU load factors when a function calculation group program is executed while actually occupying one core, or may be a value calculated based on the complexity of processing. The time required for processing is the time required from the start of execution to the completion when the program of the functional calculation group occupies one core and is executed.

図4は本実施形態による並列化支援装置の操作画面の一例を示す第1の図である。
図4を用いてユーザが機能演算グループにCPUコアを割り当てる際に用いる操作画面について説明する。
前提として実行装置20のCPUには、2つのコアが備えられているとする。また、ユーザが所定の操作により、これからコアの割り当てを行う対象となるプログラムを含むアプリケーションとして「制御ロジック演算機能1」を選択したものとする。
図4(a)の領域41には、機能演算グループ出力部104が出力した「制御ロジック演算機能1」の機能演算グループ及びロジックシートの一覧が表示されている。
図4(a)の領域42には、2つのCPUコアのうちの一つである「コア1」へ割り当てられた機能演算グループが表示されている。図4(a)の符号43は所定の操作によってユーザに選択された機能演算グループを示している。所定の操作とは、例えばある機能演算グループを「コア1」へ割り当てる場合、領域41でその機能演算グループを選択し、領域42へドラッグアンドドロップするといった操作でもよい。図4(a)の符号44は、「機能演算グループ1」のプログラムを「コア1」へ割り当てて実行したときのCPU負荷率を示している。図4(a)の符号45は、「コア1」へ割り当てられた機能演算グループ全てによるCPU負荷率を示している。これらのCPU負荷率は、コア選択支援情報表示部101が出力した情報である。同様にして図4(a)の領域46には、「コア2」へ割り当てられた機能演算グループとそれぞれのプログラムを実行したときのCPU負荷率が表示されている。
FIG. 4 is a first diagram illustrating an example of an operation screen of the parallelization support apparatus according to the present embodiment.
An operation screen used when a user assigns a CPU core to a function calculation group will be described with reference to FIG.
It is assumed that the CPU of the execution device 20 includes two cores. Further, it is assumed that the user selects “control logic operation function 1” as an application including a program to be assigned a core by a predetermined operation.
In the area 41 of FIG. 4A, a list of function calculation groups and logic sheets of “control logic calculation function 1” output by the function calculation group output unit 104 is displayed.
In the area 42 of FIG. 4A, a functional calculation group assigned to “Core 1” which is one of the two CPU cores is displayed. Reference numeral 43 in FIG. 4A indicates a functional calculation group selected by the user by a predetermined operation. The predetermined operation may be an operation in which, for example, when a certain functional calculation group is assigned to “core 1”, the functional calculation group is selected in the area 41 and dragged and dropped to the area 42. Reference numeral 44 in FIG. 4A indicates the CPU load factor when the program of “functional operation group 1” is assigned to “core 1” and executed. Reference numeral 45 in FIG. 4A indicates the CPU load factor of all the functional calculation groups assigned to “Core 1”. These CPU load factors are information output by the core selection support information display unit 101. Similarly, in the area 46 of FIG. 4A, the function calculation group assigned to “Core 2” and the CPU load factor when each program is executed are displayed.

この図4(a)の例の場合、「コア1」に「機能演算グループ1」が割り当てられ、2つのコアのうちの残りの一つである「コア2」に「機能演算グループ2」、「機能演算グループ3」、「機能演算グループ4」が割り当てられている。「機能演算グループ1」のCPU負荷率は50%(符号44)であるから「コア1」のCPU負荷率の総計は50%となる。それに対し、「機能演算グループ2」のCPU負荷率は40%(符号47)、「機能演算グループ3」のCPU負荷率は50%(符号48)、「機能演算グループ4」のCPU負荷率は20%(符号49)であるから、「コア2」のCPU負荷率の総計は110%(符号50)である。
ユーザはこの画面を見て「コア2」のCPU負荷率は100%を超えているので、「コア2」に割り当てられた「機能演算グループ2」、「機能演算グループ3」、「機能演算グループ4」のプログラムは要求処理時間内に実行を完了できないことを把握することができる。また、ユーザは、所定の操作によって例えば「機能演算グループ4」を「コア2」から「コア1」へ割り当て直すことができる。所定の操作とは、この図の場合領域46で「機能演算グループ4」を選択し、領域42へドラッグアンドドロップするといった操作でもよい。
In the case of the example of FIG. 4A, “functional calculation group 1” is assigned to “core 1”, and “functional calculation group 2” is assigned to “core 2” which is the remaining one of the two cores. “Functional calculation group 3” and “functional calculation group 4” are assigned. Since the CPU load factor of “function calculation group 1” is 50% (reference numeral 44), the total CPU load factor of “core 1” is 50%. On the other hand, the CPU load factor of “Function calculation group 2” is 40% (reference numeral 47), the CPU load factor of “function calculation group 3” is 50% (reference numeral 48), and the CPU load factor of “function calculation group 4” is Since it is 20% (reference numeral 49), the total CPU load factor of “core 2” is 110% (reference numeral 50).
The user sees this screen and the CPU load factor of “Core 2” exceeds 100%. Therefore, “Function calculation group 2”, “Function calculation group 3”, “Function calculation group” assigned to “Core 2”. The program “4” can grasp that the execution cannot be completed within the requested processing time. Further, the user can reassign, for example, “functional calculation group 4” from “core 2” to “core 1” by a predetermined operation. The predetermined operation may be an operation of selecting “Functional calculation group 4” in the area 46 and dragging and dropping the area 42 in the case of FIG.

図4(b)は、そのようにしてユーザが機能演算グループのコアへの割り当てを変更した結果の画面である。図4(b)が示す画面では「コア1」に「機能演算グループ1」と「機能演算グループ4」が割り当てられ、「コア2」に「機能演算グループ2」と「機能演算グループ3」が割り当てられている。このように割り当てることによって「コア1」のCPU負荷率の総計は70%(符号45)、「コア2」のCPUの負荷率の総計は90%(符号50)となり、100%以内に抑えることができる。
なお、負荷率100%をプログラムの割り当ての上限とするのは例であって、その基準は、例えば各コアのCPU負荷率の上限を60%以内にするなどであってもよい。
符合40は、OKボタンを示している。操作検出部108がユーザによるOKボタン40の押下を検出すると、選択コア記録部103が各コアの負荷率の総計が所定の閾値(100%など)を超えていないか否かを判断し、超えていなければ選択コア記録部103が各機能演算グループの識別子と割り当てられたコアの識別子とを対応付けて記憶部200に記録する。各コアの負荷率の総計が所定の閾値を超えていればコア情報出力部107が、エラーメッセージを出力してもよい。
FIG. 4B is a screen as a result of the user changing the assignment of the functional calculation group to the core in this way. In the screen shown in FIG. 4B, “functional calculation group 1” and “functional calculation group 4” are assigned to “core 1”, and “functional calculation group 2” and “functional calculation group 3” are assigned to “core 2”. Assigned. By assigning in this way, the total CPU load factor of “Core 1” is 70% (reference numeral 45), and the total load factor of the CPU of “Core 2” is 90% (reference numeral 50), which is kept within 100%. Can do.
Note that the load factor of 100% is an example of the upper limit of program allocation, and the criterion may be, for example, the upper limit of the CPU load factor of each core being within 60%.
Reference numeral 40 indicates an OK button. When the operation detection unit 108 detects that the user presses the OK button 40, the selected core recording unit 103 determines whether or not the total load factor of each core exceeds a predetermined threshold (such as 100%). If not, the selected core recording unit 103 records the identifier of each functional calculation group and the assigned core identifier in the storage unit 200 in association with each other. If the total load factor of each core exceeds a predetermined threshold, the core information output unit 107 may output an error message.

図5は本実施形態による並列化支援装置の操作画面の一例を示す第2の図である。
図5を用いてコア選択支援情報表示部101が出力する指標となる情報の他の例について説明する。
図5は、図4における符号42、46の領域のみを示した図である。この図5(a)は、コア選択支援情報表示部101がCPU負荷率ではなく、機能演算グループごとに所要時間と要求処理時間を出力する例を示している。所要時間は、機能演算グループをユーザが指定したCPUコアに割り当てて実行させた場合における実行完了に要する時間のことである。この値は、例えば記憶部200に格納された「処理に要する時間」とCPU負荷率の総計とから計算した値である。例えば、「機能演算グループ1」の「処理に要する時間」が50msecで、CPU負荷率の総計が200%であるときの所要時間は100mecであると計算してもよい。要求処理時間は、その機能演算グループが示すプログラムの実行に要求される処理時間の上限値である。コア選択支援情報表示部101は、要求処理時間の代わりにその機能演算グループのプログラムを実行する周期を示す制御周期を出力してもよい。
この図の場合、「コア1」に割り当てられている「機能演算グループ1」及び「機能演算グループ4」の所要時間はどちらも要求処理時間内に収まっている(符号51、52)。例えば「機能演算グループ1」の要求処理時間は15msecであるのに対し、所要時間は10msecである。しかし、「コア2」に割り当てられている「機能演算グループ2」及び「機能演算グループ3」の所要時間はどちらも要求処理時間内に収まっていない(符号53、54)。
この表示を見て、ユーザは「機能演算グループ2」と「機能演算グループ3」の処理が要求処理時間内に完了できないことを把握し、CPUコアへの機能演算グループの割り当て方を検討することができる。
FIG. 5 is a second diagram illustrating an example of an operation screen of the parallelization support apparatus according to the present embodiment.
Another example of information serving as an index output by the core selection support information display unit 101 will be described with reference to FIG.
FIG. 5 is a diagram showing only regions 42 and 46 in FIG. FIG. 5A shows an example in which the core selection support information display unit 101 outputs the required time and the requested processing time for each function calculation group, not the CPU load factor. The required time is the time required to complete the execution when the functional operation group is assigned to the CPU core designated by the user and executed. This value is, for example, a value calculated from the “time required for processing” stored in the storage unit 200 and the total CPU load factor. For example, it may be calculated that the required time when the “time required for processing” of the “functional calculation group 1” is 50 msec and the total CPU load factor is 200% is 100 mec. The requested processing time is an upper limit value of the processing time required for executing the program indicated by the functional calculation group. The core selection support information display unit 101 may output a control cycle indicating a cycle for executing the program of the functional calculation group instead of the request processing time.
In the case of this figure, the required time of “functional calculation group 1” and “functional calculation group 4” assigned to “core 1” is both within the required processing time (reference numerals 51 and 52). For example, the request processing time of “Functional calculation group 1” is 15 msec, while the required time is 10 msec. However, the required time of “functional calculation group 2” and “functional calculation group 3” assigned to “core 2” does not fall within the required processing time (reference numerals 53 and 54).
Looking at this display, the user should understand that the processing of “functional calculation group 2” and “functional calculation group 3” cannot be completed within the requested processing time, and consider how to allocate the functional calculation group to the CPU core. Can do.

図5(b)は、コア選択支援情報表示部101が指標となる情報を出力する別の例を示している。この例では、各コアへの負荷の状況が機能演算グループごとに「高」、「中」、「低」で表されている(符号55、56、58、59)。そしてコアごとに機能演算グループを割り当てた結果の総負荷がやはり「高」、「中」、「低」で表示されている(符号57,60)。総負荷の表示については、例えば1つの機能演算グループにおける負荷が「低」ならば、「20%」、「中」ならば「40%」、高ならば「60%」などの数値に置き換えて、それらを合計した総負荷の値が「40%」未満なら「低」、「40%」以上「60%」未満なら「中」などと表示してもよい。仮に総負荷が予め定められた最大負荷(例えば100%)を超えている場合は、「過大」などの表示をしてもよい。また、「高」、「中」、「低」ではなく、負荷の状況に応じて「赤」、「黄」、「青」などの色別に表示してもよい。   FIG. 5B shows another example in which the core selection support information display unit 101 outputs information serving as an index. In this example, the state of the load on each core is represented by “high”, “medium”, and “low” for each functional calculation group (reference numerals 55, 56, 58, 59). The total load as a result of assigning the functional operation group to each core is also displayed as “high”, “medium”, and “low” (reference numerals 57 and 60). The total load display is replaced with a numerical value such as “20%” if the load in one function calculation group is “low”, “40%” if “medium”, “60%” if high, etc. If the total load value is less than “40%”, “low” may be displayed, and if “40%” or more and less than “60%”, “medium” may be displayed. If the total load exceeds a predetermined maximum load (for example, 100%), “excessive” may be displayed. Further, instead of “high”, “medium”, and “low”, display may be performed according to colors such as “red”, “yellow”, and “blue” according to the load state.

図6は第一の実施形態による並列化支援装置の処理フローを示す図である。
図6の処理フローを用いて並列化支援装置において機能演算グループを実行するコアを設定する処理について説明する。
前提として、ユーザによる設定開始を指示する所定の操作により制御ロジック演算機能アプリケーションとそのアプリケーションを実行する実行装置20が指定されているものとする。
まず、機能演算グループ出力部104が予め指定された制御ロジック演算機能アプリケーションの識別子を用いて記憶部200からその制御ロジック演算機能アプリケーションに含まれる機能演算グループ及びロジックシートの情報を読み出す。そして機能演算グループ出力部104は、機能演算グループの一覧情報を例えば図4の領域41で示したように出力する(ステップS1)。
また、コア情報出力部107が、指定された実行装置20の識別子を用いて記憶部200からその実行装置20の備えるCPUのコア数を取得する。そしてコア情報出力部107は、図4の領域42、領域46で示したようにコアに機能演算グループを割り当てる領域をコアの個数分表示する。また、コア情報出力部107は記憶部200からユーザが指定した機能演算グループとそのプログラムを実行させるCPUコアとの関係を読み出し、CPUコアと機能演算グループと対応関係を出力する(ステップS2)。例えば、図4〜5で示したように領域42には「コア1」に割り当てた機能演算グループの一覧を出力する。
FIG. 6 is a diagram showing a processing flow of the parallelization support apparatus according to the first embodiment.
Processing for setting a core for executing a functional operation group in the parallelization support apparatus will be described using the processing flow of FIG.
As a premise, it is assumed that the control logic operation function application and the execution device 20 that executes the application are designated by a predetermined operation instructing the user to start the setting.
First, the function calculation group output unit 104 reads information on the function calculation group and the logic sheet included in the control logic calculation function application from the storage unit 200 using the identifier of the control logic calculation function application designated in advance. Then, the function calculation group output unit 104 outputs the list information of the function calculation groups as indicated by the area 41 in FIG. 4 (step S1).
In addition, the core information output unit 107 acquires the number of CPU cores included in the execution device 20 from the storage unit 200 using the specified identifier of the execution device 20. Then, the core information output unit 107 displays, as shown by the areas 42 and 46 in FIG. Further, the core information output unit 107 reads the relationship between the functional calculation group designated by the user and the CPU core that executes the program from the storage unit 200, and outputs the correspondence relationship between the CPU core and the functional calculation group (step S2). For example, as shown in FIGS. 4 to 5, a list of functional operation groups assigned to “Core 1” is output to the area 42.

次に、操作検出部108がユーザによる機能演算グループをコアへ割り当てるユーザの操作を検出する(ステップS3)。すると、操作検出部108が割り当て操作があった旨の信号をコア選択支援情報表示部101、コア選択受付部102に出力する。そして、コア選択受付部102は、実行装置20の識別子と、ユーザがドラッグアンドドロップ操作などにより割り当てたCPUコアの識別子と機能演算グループの識別子とを対応付けてメモリ等に格納する。
次に、コア選択支援情報表示部101は、コア選択受付部102が格納した情報をメモリから読み取り、機能演算グループの識別子と実行装置20の識別子とを用いて記憶部200から当該機能演算グループのプログラムを当該実行装置20で実行した場合におけるCPU負荷や所要時間など指標となる情報を読み出す。そして、コア選択支援情報表示部101は図4の符号44などで示したようCPU負荷などを出力する。また、コア選択支援情報表示部101は、コア単位でCPU負荷率の総計を計算して図4の符号45等で示したように出力する(ステップS4)。
Next, the operation detection unit 108 detects the user's operation for assigning the functional calculation group to the core by the user (step S3). Then, the operation detection unit 108 outputs a signal indicating that an allocation operation has been performed to the core selection support information display unit 101 and the core selection reception unit 102. Then, the core selection receiving unit 102 stores the identifier of the execution device 20, the identifier of the CPU core assigned by the user through a drag-and-drop operation, and the identifier of the functional operation group in a memory or the like.
Next, the core selection support information display unit 101 reads the information stored in the core selection reception unit 102 from the memory, and uses the identifier of the function calculation group and the identifier of the execution device 20 to store the function calculation group from the storage unit 200. Information serving as an index such as CPU load and required time when the program is executed by the execution device 20 is read. Then, the core selection support information display unit 101 outputs the CPU load and the like as indicated by reference numeral 44 in FIG. Further, the core selection support information display unit 101 calculates the total CPU load factor for each core and outputs it as shown by reference numeral 45 in FIG. 4 (step S4).

次に操作検出部108がユーザによる機能演算グループのコアへの割り当てが完了したかどうかを検出する(ステップS5)。具体的には、操作検出部108がユーザによるOKボタン40の押下を検出すると、割り当てが完了したと判断すればよい。操作検出部108が割り当て完了を検出しない場合(ステップS5=No)、ステップS3からの処理を繰り返す。
操作検出部108が割り当て完了を検出した場合(ステップS5=Yes)、選択コア記録部103は、コア選択受付部102がメモリに格納した情報を読み取り、実行装置20の識別子とユーザが指定したCPUコアの識別子と機能演算グループの識別子とを対応付けて記憶部200に記録する(ステップS6)。
以上で本処理フローを終了する。
Next, the operation detecting unit 108 detects whether or not the assignment of the function calculation group to the core by the user is completed (step S5). Specifically, when the operation detection unit 108 detects that the user presses the OK button 40, it may be determined that the assignment has been completed. When the operation detection unit 108 does not detect the completion of assignment (step S5 = No), the processing from step S3 is repeated.
When the operation detection unit 108 detects the completion of assignment (step S5 = Yes), the selected core recording unit 103 reads the information stored in the memory by the core selection receiving unit 102, and the identifier of the execution device 20 and the CPU specified by the user The identifier of the core and the identifier of the functional calculation group are associated and recorded in the storage unit 200 (step S6).
This processing flow is completed.

そしてこのようにしてユーザがコアの割り当てを行った機能演算グループのプログラムが実行装置20において実行されるときは、実行装置20のタスク制御プログラムが、各機能演算グループが示すプログラムにユーザが指定したCPUコアを割り当てて実行を行う。記憶部200に格納された機能演算グループとCPUコアとの対応関係の情報は、実行装置20が例えばネットワークを介して取得する。   And when the program of the functional calculation group to which the user has assigned the core in this way is executed in the execution device 20, the task control program of the execution device 20 designates the program indicated by each functional calculation group by the user. Allocate CPU cores and execute. The execution device 20 acquires the information on the correspondence relationship between the functional calculation group and the CPU core stored in the storage unit 200 via a network, for example.

本実施形態によれば、ユーザがアプリケーションを構成するプログラムをマルチコアのうちのいずれに実行させるかを選択することができる。また、ユーザは自分でプログラムを各コアに割り当てた場合の影響(CPU負荷や処理時間)を把握することができる。それによってマルチコアに対応する為のプログラミング技術を持たないユーザであっても、自身が持つアプリケーションの仕様に関する知識を用いてマルチコアCPUの能力を引き出すことができるようになる。   According to the present embodiment, the user can select which of the multi-cores to execute the program constituting the application. Further, the user can grasp the influence (CPU load and processing time) when the program is assigned to each core. As a result, even a user who does not have a programming technique for dealing with multi-cores can draw out the capabilities of the multi-core CPU by using his / her knowledge of application specifications.

図7は本実施形態による並列化支援装置の操作画面の一例を示す第3の図である。
図7を用いて機能演算グループ出力部104が出力する、機能演算グループ一覧の他の例について説明する。
図7(a)の符合61は、関係表示ボタンである。操作検出部108がユーザによる関係表示ボタン61の押下を検出すると、ロジックシート関係出力部105が図7(b)の情報を出力する。図7(a)の例の場合、「コア1」に「機能演算グループ1」が割り当てられ、「機能演算グループ1」のプログラムを実行したときのCPU負荷率が110%であるため、「コア1」のCPU負荷率の総計も110%となり100%を超えてしまう。そこでユーザは、図7(b)に示すロジックシート間の関係を示す図を参照しながら「機能演算グループ1」が分割できないかを検討する。
FIG. 7 is a third diagram illustrating an example of an operation screen of the parallelization support apparatus according to the present embodiment.
Another example of the functional calculation group list output by the functional calculation group output unit 104 will be described with reference to FIG.
Reference numeral 61 in FIG. 7A is a relationship display button. When the operation detection unit 108 detects that the user has pressed the relationship display button 61, the logic sheet relationship output unit 105 outputs the information shown in FIG. 7B. In the case of the example in FIG. 7A, since “functional calculation group 1” is assigned to “core 1” and the CPU load factor when the program of “functional calculation group 1” is executed is 110%, The total CPU load factor of “1” is also 110%, exceeding 100%. Therefore, the user examines whether or not “functional operation group 1” can be divided with reference to the diagram showing the relationship between the logic sheets shown in FIG.

図7(b)は、ロジックシート関係出力部105が出力するロジックシート間の関係を示す図である。この図は、機能演算グループ1を構成する「ロジックシート1−1」、「ロジックシート1−2」、「ロジックシート1−3」の依存関係を表示する図の一例である。この図は、「ロジックシート1−1」の処理と「ロジックシート1−2」の処理は逐次実行が必要であり、「ロジックシート1−3」の処理は、これらの処理とは独立して実行できることを示している。
ユーザは、この図に示す情報から例えば「機能演算グループ1」を2つのプログラム「機能演算グループ1A」、「機能演算グループ1B」に分割して「ロジックシート1−1」及び「ロジックシート1−2」と、「ロジックシート1−3」とを別々の機能演算グループに集約し、さらに「機能演算グループ1A」、「機能演算グループ1B」のそれぞれのプログラムを別々のCPUコアに割り当てることを検討することもできる。
なお、ロジックシート間の関係を示す情報は予め記憶部200に格納されており、ロジックシート関係出力部105がその情報を記憶部200から読み出して所定の記述方法でロジックシート間の関係を示す情報を出力してもよい。ロジックシート関係出力部105が出力するロジックシート間の関係を示す情報は、例えばポップアップ表示されてもよい。また、ロジックシート関係出力部105は、ロジックシート間の関係に加えて、例えばCPU負荷率などの処理の重さに関する情報を各ロジックシートごとに出力してもよい。
FIG. 7B is a diagram illustrating a relationship between logic sheets output by the logic sheet relationship output unit 105. This diagram is an example of a diagram that displays the dependency relationships of “logic sheet 1-1”, “logic sheet 1-2”, and “logic sheet 1-3” that make up the functional operation group 1. FIG. In this figure, the processing of “logic sheet 1-1” and the processing of “logic sheet 1-2” need to be executed sequentially, and the processing of “logic sheet 1-3” is independent of these processing. Indicates that it can be executed.
For example, the user divides “functional calculation group 1” into two programs “functional calculation group 1A” and “functional calculation group 1B” from the information shown in FIG. 2 ”and“ Logic Sheet 1-3 ”are consolidated into separate functional operation groups, and further consideration is given to assigning each program of“ functional operation group 1A ”and“ functional operation group 1B ”to separate CPU cores. You can also
Information indicating the relationship between the logic sheets is stored in the storage unit 200 in advance, and the logic sheet relationship output unit 105 reads the information from the storage unit 200 and indicates the relationship between the logic sheets by a predetermined description method. May be output. Information indicating the relationship between logic sheets output by the logic sheet relationship output unit 105 may be displayed in a pop-up, for example. Further, in addition to the relationship between the logic sheets, the logic sheet relationship output unit 105 may output information on the processing weight such as a CPU load factor for each logic sheet.

図8は本実施形態による並列化支援装置の操作画面の一例を示す第4の図である。
図8は、図7の状態からユーザが所定の操作によって「機能演算グループ1」を「機能演算グループ1A」と「機能演算グループ1B」に分け、「機能演算グループ1A」に「ロジックシート1−1」及び「ロジックシート1−2」を集約し、「機能演算グループ1B」に「ロジックシート1−3」を集約した結果の操作画面の一例である。図8は、ロジックシートを集約した結果、「機能演算グループ1A」のプログラムを実行したときのCPU負荷率は95%、「機能演算グループ1B」のプログラムを実行したときのCPU負荷率は15%となり、さらに「機能演算グループ1B」のプログラムを「コア2」に割り当てることで、「コア1」のCPU負荷率の総計が95%(符号45)、「コア2」のCPU負荷率の総計が75%(符号50)となったことを示している。
FIG. 8 is a fourth diagram illustrating an example of an operation screen of the parallelization support apparatus according to the present embodiment.
FIG. 8 shows that “functional calculation group 1” is divided into “functional calculation group 1A” and “functional calculation group 1B” by a predetermined operation from the state of FIG. 1 ”and“ logic sheet 1-2 ”are examples of an operation screen as a result of integrating“ logic sheet 1-3 ”into“ functional operation group 1B ”. FIG. 8 shows that, as a result of collecting the logic sheets, the CPU load factor when executing the program of “Functional calculation group 1A” is 95%, and the CPU load factor when executing the program of “Functional calculation group 1B” is 15%. Furthermore, by assigning the program of “Functional calculation group 1B” to “Core 2”, the total CPU load factor of “Core 1” is 95% (reference numeral 45), and the total CPU load factor of “Core 2” is It shows that it became 75% (symbol 50).

本実施形態によればユーザは各機能演算グループにおけるロジックシートの集約数を変更しの並列化を調整することができる。それによって各コアへのプログラムの割り当てをより柔軟に平滑化することが可能になり、コアの利用効率を高め、処理の高速化を図ることができる。   According to the present embodiment, the user can adjust the parallelization by changing the number of aggregation of logic sheets in each functional calculation group. As a result, program assignment to each core can be smoothed more flexibly, the utilization efficiency of the core can be improved, and the processing speed can be increased.

ところで、図8のように割り当てた「機能演算グループ1A」と「機能演算グループ1B」のプログラムは別々のコアで実行される為、同期を取るような仕組みを利用しない限り実行のタイミングが異なる。例えば、「機能演算グループ1A」のプログラムと「機能演算グループ1B」のプログラムとを別々のコアに割り当てて実行させると、「ロジックシート1−2」の処理が一定の周期で2回実行されている間に「ロジックシート1−3」の処理が1回しか実行されないことも起こり得る。さらに「ロジックシート1−2」プログラムと「ロジックシート1−3」プログラムとの実行結果を用いる後続の「ロジックシート1−4」と、「ロジックシート1−2」プログラムの実行結果だけを用いる「ロジックシート1−5」が存在するとする。この場合、「ロジックシート1−4」のプログラムが「ロジックシート1−3」のプログラムの実行完了を待ってから処理が開始されるのに対して、「ロジックシート1−5」のプログラムは「ロジックシート1−2」のプログラムが完了すると直ぐに実行される。このとき「ロジックシート1−4」と「ロジックシート1−5」の処理を実行するタイミングのずれによる影響が、プラントを制御する上で許容できるかどうかといった判断は、プログラマでは困難である場合が多い。仮にユーザがそのずれがプラントを制御する上で許容できないと判断すれば、ユーザは、「ロジックシート1−2」と「ロジックシート1−3」を例えば「機能演算グループ1A」に集約することができる。ここで「機能演算グループ1A」のプログラムが1回実行されると「ロジックシート1−2」及び「ロジックシート1−3」の処理が1回ずつ実行されるように設定されているとする。するとユーザが上記のように「機能演算グループ1A」に集約し、「機能演算グループ1A」のプログラムを実行すれば、「ロジックシート1−2」の処理と「ロジックシート1−3」の処理は同じ回数だけ実行されるため上記のようなずれは生じない。なお、このようにロジックシートを集約した結果CPU負荷率の総和が100%を超える場合、ユーザは、他の性能の良いCPUが搭載された実行装置20で「機能演算グループ1A」のプログラムを実行することを検討することもできる。
本実施形態によればこのような場合でもユーザは、ロジックシート関係出力部105が出力する情報や自身の持つ制御システムに関する知識に基づいてロジックシートを適切に集約して1つの機能演算グループとし、それらを別々のコアに割り当てることでCPU資源をより有効に利用することができる。
By the way, since the programs of “functional calculation group 1A” and “functional calculation group 1B” assigned as shown in FIG. 8 are executed by different cores, the execution timings are different unless a mechanism for achieving synchronization is used. For example, if the program of “functional calculation group 1A” and the program of “functional calculation group 1B” are assigned to different cores and executed, the process of “logic sheet 1-2” is executed twice at a constant cycle. During this time, the process of “logic sheet 1-3” may be executed only once. Furthermore, only the execution result of the subsequent “logic sheet 1-4” using the execution results of the “logic sheet 1-2” program and the “logic sheet 1-3” program and the execution result of the “logic sheet 1-2” program are used. It is assumed that the logic sheet 1-5 ”exists. In this case, the process of the “logic sheet 1-4” is started after the execution of the program of the “logic sheet 1-3” is completed, whereas the program of the “logic sheet 1-5” As soon as the program of “logic sheet 1-2” is completed, it is executed. At this time, it may be difficult for a programmer to determine whether the influence of the timing difference between the execution of the processes of “logic sheet 1-4” and “logic sheet 1-5” is acceptable in controlling the plant. Many. If the user determines that the deviation is unacceptable for controlling the plant, the user may consolidate the “logic sheet 1-2” and the “logic sheet 1-3” into, for example, the “functional operation group 1A”. it can. Here, it is assumed that the processing of “logic sheet 1-2” and “logic sheet 1-3” is executed once each time the program of “functional operation group 1A” is executed once. Then, if the user aggregates into “functional calculation group 1A” as described above and executes the program of “functional calculation group 1A”, the processes of “logic sheet 1-2” and “logic sheet 1-3” are Since the process is executed the same number of times, the above deviation does not occur. When the sum of the CPU load factors exceeds 100% as a result of the aggregation of the logic sheets as described above, the user executes the program of the “functional operation group 1A” on the execution device 20 on which another CPU with good performance is mounted. You can also consider doing it.
According to the present embodiment, even in such a case, the user appropriately aggregates the logic sheets based on information output from the logic sheet related output unit 105 and knowledge about the control system that the user has, and forms one functional operation group. CPU resources can be used more effectively by assigning them to different cores.

図7から図8への機能演算グループの分割とロジックシートの集約は例えば以下のような処理によって実現される。
ユーザによる機能演算グループ作成指示の操作を操作検出部108が検出すると、操作検出部108は、その指示信号をロジックシート集約受付部106に出力する。ロジックシート集約受付部106は、追加した機能演算グループを加えた各機能演算グループとロジックシートとの対応関係(この場合新たに生成した機能演算グループを構成するロジックシートはまだ存在しない)を生成し、記憶部200に格納する。一方、機能演算グループ出力部104は新たに生成された機能演算グループとロジックシートとの対応関係を示す一覧情報を記憶部200から読み出し例えば図4の領域41で示したように出力する。
次にユーザによるロジックシートの集約操作を操作検出部108が検出すると、操作検出部108は、その指示信号をロジックシート集約受付部106に出力する。そしてロジックシート集約受付部106は、「機能演算グループ1A」の識別子と「ロジックシート1−1」及び「ロジックシート1−2」の識別子とを対応付けて記憶部200に格納する。また、ロジックシート集約受付部106は、「機能演算グループ1B」の識別子と「ロジックシート1−3」の識別子とを対応付けて記憶部200に格納する。そして、機能演算グループ出力部104は新たに生成された機能演算グループとロジックシートとの対応関係を示す一覧情報を記憶部200から読み出し領域41に出力する。また、コア情報出力部107はCPUコアと機能演算グループとの対応関係を記憶部200から読み出し例えば図4の領域42、領域46で示したように出力する。
The division of the functional calculation group and the aggregation of the logic sheets from FIG. 7 to FIG. 8 are realized by the following processing, for example.
When the operation detection unit 108 detects an operation of a function calculation group creation instruction by the user, the operation detection unit 108 outputs the instruction signal to the logic sheet aggregation reception unit 106. The logic sheet aggregation receiving unit 106 generates a correspondence relationship between each functional calculation group to which the added functional calculation group is added and the logic sheet (in this case, a logic sheet constituting the newly generated functional calculation group does not yet exist). And stored in the storage unit 200. On the other hand, the functional calculation group output unit 104 reads out the list information indicating the correspondence relationship between the newly generated functional calculation group and the logic sheet from the storage unit 200 and outputs the list information, for example, as indicated by an area 41 in FIG.
Next, when the operation detection unit 108 detects the logic sheet aggregation operation by the user, the operation detection unit 108 outputs the instruction signal to the logic sheet aggregation reception unit 106. Then, the logic sheet aggregation receiving unit 106 associates the identifier of “functional operation group 1A” with the identifiers of “logic sheet 1-1” and “logic sheet 1-2” and stores them in the storage unit 200. Further, the logic sheet aggregation receiving unit 106 stores the identifier of “functional calculation group 1B” and the identifier of “logic sheet 1-3” in the storage unit 200 in association with each other. Then, the functional calculation group output unit 104 outputs list information indicating the correspondence between the newly generated functional calculation group and the logic sheet from the storage unit 200 to the reading area 41. Further, the core information output unit 107 reads the correspondence between the CPU core and the function calculation group from the storage unit 200 and outputs the same as shown in, for example, the areas 42 and 46 in FIG.

なお、上述の並列化支援装置は内部にコンピュータを有している。そして、上述した並列化支援装置の各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。   The parallelization support apparatus described above has a computer inside. Each process of the parallelization support apparatus described above is stored in a computer-readable recording medium in the form of a program, and the above process is performed by the computer reading and executing this program. Here, the computer-readable recording medium means a magnetic disk, a magneto-optical disk, a CD-ROM, a DVD-ROM, a semiconductor memory, or the like. Alternatively, the computer program may be distributed to the computer via a communication line, and the computer that has received the distribution may execute the program.

また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。   The program may be for realizing a part of the functions described above. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer system, what is called a difference file (difference program) may be sufficient.

その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。   In addition, it is possible to appropriately replace the components in the above-described embodiments with known components without departing from the spirit of the present invention. The technical scope of the present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the spirit of the present invention.

10・・・並列化支援装置
20・・・実行装置
30・・・制御対象装置
31・・・制御対象
32・・・制御機器
101・・・コア選択支援情報表示部
102・・・コア選択受付部
103・・・選択コア記録部
104・・・機能演算グループ出力部
105・・・ロジックシート関係出力部
106・・・ロジックシート集約受付部
107・・・コア情報出力部
108・・・操作検出部
200・・・記憶部
DESCRIPTION OF SYMBOLS 10 ... Parallelization assistance apparatus 20 ... Execution apparatus 30 ... Control object apparatus 31 ... Control object 32 ... Control apparatus 101 ... Core selection assistance information display part 102 ... Core selection reception Unit 103 ... selected core recording unit 104 ... function calculation group output unit 105 ... logic sheet related output unit 106 ... logic sheet aggregation receiving unit 107 ... core information output unit 108 ... operation detection Part 200 ... Storage part

Claims (8)

逐次実行が必要な一纏まりの処理に対応する予め定められた小単位のプログラムであるロジックシートについて、複数の前記ロジックシート間における実行順や依存関係を表示するロジックシート関係出力部と、
前記複数のロジックシートのうちの少なくとも一部を、実行を開始してから要求された時間内に完了を求められる実行単位のプログラムへ割り当てる操作を受け付けるロジックシート集約受付部と、
前記割り当てられたロジックシートを含んで構成された前記実行単位のプログラムを複数のコアのいずれに実行させるかの選択を受け付けるコア選択受付部と、
前記実行単位のプログラムを、前記コアに割り当てるための指標を表示するコア選択支援情報表示部と、
を備えることを特徴とするアプリケーションの並列化支援装置。
For a logic sheet that is a predetermined small unit program corresponding to a group of processes that need to be sequentially executed, a logic sheet relation output unit that displays an execution order and dependency among a plurality of the logic sheets;
A logic sheet aggregation receiving unit that receives an operation of assigning at least a part of the plurality of logic sheets to a program of an execution unit that is requested to be completed within a requested time after starting execution;
A core selection receiving unit that receives selection of which of the plurality of cores to execute the program of the execution unit configured to include the assigned logic sheet;
A core selection support information display unit for displaying an index for allocating the program of the execution unit to the core;
An apparatus for supporting parallelization of an application, comprising:
前記指標は、前記選択を受け付けたコアにおいて前記実行単位のプログラムを前記要求された時間内に完了するように実行させた場合における、当該コアの負荷率である
ことを特徴とする請求項1に記載のアプリケーションの並列化支援装置。
The index is a load factor of the core when the execution unit program is executed to be completed within the requested time in the core that has received the selection. The application parallelization support apparatus described.
前記指標は、前記選択を受け付けたコアにおいて前記実行単位のプログラムだけを実行した場合における、当該プログラムの実行に要する時間である
ことを特徴とする請求項1又は請求項2に記載のアプリケーションの並列化支援装置。
3. The parallel application according to claim 1, wherein the index is a time required for executing the program when only the program of the execution unit is executed in the core that has received the selection. 4. Support device.
前記ロジックシート集約受付部は、1つの前記実行単位のプログラムに含まれるロジックシートのうち一つ又は複数を、他の実行単位のプログラムに移動する操作を受け付ける、
請求項1から請求項の何れか1項に記載のアプリケーションの並列化支援装置。
The logic sheet aggregation receiving unit receives an operation of moving one or a plurality of logic sheets included in one execution unit program to another execution unit program,
The application parallelization support apparatus according to any one of claims 1 to 3 .
実行するプログラムについて、請求項1から請求項の何れか1項に記載のアプリケーションの並列化支援装置において前記コア選択受付部が受け付けたコアの識別子を取得し、取得した識別子が示すコアにおいて前記実行単位のプログラムを実行することを特徴とするアプリケーションの実行装置。 The program to be executed acquires an identifier of a core received by the core selection receiving unit in the application parallelization support device according to any one of claims 1 to 4 , and the core indicated by the acquired identifier An application execution apparatus that executes an execution unit program. 請求項に記載のアプリケーションの実行装置によってプラントにおける装置の制御を行うことを特徴とするプラントの制御システム。 6. A plant control system, wherein an apparatus in the plant is controlled by the application execution apparatus according to claim 5 . 逐次実行が必要な一纏まりの処理に対応する予め定められた小単位のプログラムであるロジックシートについて、複数の前記ロジックシート間における実行順や依存関係を表示し、
前記複数のロジックシートのうちの少なくとも一部を、実行を開始してから要求された時間内に完了を求められる実行単位のプログラムへ割り当てる操作を受け付け、
前記割り当てられたロジックシートを含んで構成された前記実行単位のプログラムを複数のコアのいずれに実行させるかの選択を受け付け、
前記実行単位のプログラムを、前記コアに割り当てるための指標を表示する
ことを特徴とするアプリケーションの並列化支援方法。
For logic sheets that are predetermined small unit programs corresponding to a group of processes that need to be executed sequentially, display the execution order and dependency among the plurality of logic sheets,
Accepting an operation of assigning at least a part of the plurality of logic sheets to a program of an execution unit that is required to be completed within a requested time from the start of execution,
Accepting selection of which of the plurality of cores to execute the program of the execution unit configured to include the assigned logic sheet;
An index for allocating the execution unit program to the core is displayed.
アプリケーションの並列化支援装置のコンピュータを、
逐次実行が必要な一纏まりの処理に対応する予め定められた小単位のプログラムであるロジックシートについて、複数の前記ロジックシート間における実行順や依存関係を表示する手段、
前記複数のロジックシートのうちの少なくとも一部を、実行を開始してから要求された時間内に完了を求められる実行単位のプログラムへ割り当てる操作を受け付ける手段、
前記割り当てられたロジックシートを含んで構成された前記実行単位のプログラムを複数のコアのいずれに実行させるかの選択を受け付ける手段、
前記実行単位のプログラムを、前記コアに割り当てるための指標を表示する手段、
として機能させることを特徴とするプログラム。
Computer for application parallelization support device,
Means for displaying execution order and dependency among a plurality of logic sheets for a logic sheet that is a predetermined small unit program corresponding to a group of processes that need to be sequentially executed ;
Means for accepting an operation of assigning at least a part of the plurality of logic sheets to a program of an execution unit that is required to be completed within a requested time from the start of execution;
Means for accepting selection of which of a plurality of cores to execute the program of the execution unit configured to include the assigned logic sheet;
Means for displaying an index for allocating the execution unit program to the core;
A program characterized by functioning as
JP2013247077A 2013-11-29 2013-11-29 Parallelization support device, execution device, control system, parallelization support method, and program Active JP6212823B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013247077A JP6212823B2 (en) 2013-11-29 2013-11-29 Parallelization support device, execution device, control system, parallelization support method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013247077A JP6212823B2 (en) 2013-11-29 2013-11-29 Parallelization support device, execution device, control system, parallelization support method, and program

Publications (2)

Publication Number Publication Date
JP2015106233A JP2015106233A (en) 2015-06-08
JP6212823B2 true JP6212823B2 (en) 2017-10-18

Family

ID=53436312

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013247077A Active JP6212823B2 (en) 2013-11-29 2013-11-29 Parallelization support device, execution device, control system, parallelization support method, and program

Country Status (1)

Country Link
JP (1) JP6212823B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6890738B2 (en) * 2019-02-26 2021-06-18 三菱電機株式会社 Information processing equipment, information processing methods and information processing programs

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184717A (en) * 1997-12-22 1999-07-09 Toshiba Corp Scheduling analytic device and method therefor and recording medium for recording software for scheduling analysis
JP5429214B2 (en) * 2011-03-01 2014-02-26 新日鐵住金株式会社 Program creation support apparatus, program creation support method, and computer program

Also Published As

Publication number Publication date
JP2015106233A (en) 2015-06-08

Similar Documents

Publication Publication Date Title
EP3129880B1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
Ananthanarayanan et al. {GRASS}: Trimming stragglers in approximation analytics
JP6241300B2 (en) Job scheduling apparatus, job scheduling method, and job scheduling program
JP6364880B2 (en) Parallel computer system, control program for job management apparatus, and control method for parallel computer system
CN100377091C (en) Grouped hard realtime task dispatching method of built-in operation system
US20200019436A1 (en) Control device, control method, and control program
CN102779075A (en) Method, device and system for scheduling in multiprocessor nuclear system
CN111399986A (en) Method and device for configuring Pod resource quota
US20140026145A1 (en) Parallel processing in human-machine interface applications
JPWO2012020478A1 (en) Scheduler, multi-core processor system, and scheduling method
CN106547522B (en) Method and device for optimizing stream application
CN103677990A (en) Virtual machine real-time task scheduling method and device and virtual machine
EP2902948A1 (en) Data analysis device and program
CN109992366A (en) Method for scheduling task and dispatching device
JP5178778B2 (en) Virtual machine and CPU allocation method
US20120253482A1 (en) Function block execution framework
JP5740338B2 (en) Virtual environment operation support system
US20200151033A1 (en) Programmable controller, management device, and control system
KR101212497B1 (en) Method of monitoring resource and apparatus performing the same
JP6212823B2 (en) Parallelization support device, execution device, control system, parallelization support method, and program
US9319291B2 (en) Server system, management device, server management method, and program
JP2012181578A (en) Update control device and program
CN109709900B (en) Numerical controller
JP2015152987A (en) control device
CN113225269B (en) Container-based workflow scheduling method, device and system and storage medium

Legal Events

Date Code Title Description
A625 Written request for application examination (by other person)

Free format text: JAPANESE INTERMEDIATE CODE: A625

Effective date: 20151104

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160809

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20161006

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170404

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170525

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170526

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170606

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170822

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170901

R150 Certificate of patent or registration of utility model

Ref document number: 6212823

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350