WO2023007618A1 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
WO2023007618A1
WO2023007618A1 PCT/JP2021/027911 JP2021027911W WO2023007618A1 WO 2023007618 A1 WO2023007618 A1 WO 2023007618A1 JP 2021027911 W JP2021027911 W JP 2021027911W WO 2023007618 A1 WO2023007618 A1 WO 2023007618A1
Authority
WO
WIPO (PCT)
Prior art keywords
bare
metal
jitter
environment
operating system
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.)
Ceased
Application number
PCT/JP2021/027911
Other languages
English (en)
French (fr)
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 Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to DE112021008039.3T priority Critical patent/DE112021008039T5/de
Priority to CN202180100894.XA priority patent/CN117693736A/zh
Priority to PCT/JP2021/027911 priority patent/WO2023007618A1/ja
Priority to JP2023537818A priority patent/JP7504301B2/ja
Priority to US18/290,916 priority patent/US20250103349A1/en
Publication of WO2023007618A1 publication Critical patent/WO2023007618A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Definitions

  • the information processing device 1000 includes an arithmetic device 1001 and a storage device 1002 .
  • the information processing apparatus 1000 is connected to a network 1005 via a NW (Network) device 1003 and acquires data from an IO (Input Output) device 1004 .
  • NW Network
  • IO Input Output
  • the NW device 1003 is serial communication, Ethernet (registered trademark), etc., and forms a connection between one or more IO devices 1004 and the arithmetic device 1001 .
  • the IO device 1004 is, for example, various sensors.
  • the storage device 1002 stores programs and data necessary for executing the programs.
  • the storage device 1002 is, for example, cache memory, RAM (Random Access Memory), ROM (Read Only Memory), or HDD (Hard Disk Drive).
  • FIG. 2 is a flowchart showing an example of the operation of the OS jitter statistical information acquisition unit 1211.
  • FIG. 2 is a flowchart showing an example of the operation of the OS jitter statistical information acquisition unit 1211.
  • the probability distribution of the occurrence of OS jitter such as kernel processing, IO processing, and memory management of the operating system described above fluctuates from moment to moment depending on the execution status of applications. For example, when the number of applications to be executed increases, or when the processing load of the applications being executed increases, it becomes difficult to schedule threads in the kernel, so there are cases where the processing time per execution increases. be. In addition, it is also assumed that the physical memory is depleted and the memory management function frequently causes page-outs or swaps.
  • step S1202 the bare metal necessity determination unit 1242 inquires of the computation load table 1222 about the processing time of the processing block corresponding to the input value acquired by the input value acquisition unit 1221, and acquires the computation load level of the processing block. .
  • FIG. 10 is a diagram showing an example of the bare metal build latency table 1244.
  • FIG. 10 is a diagram showing an example of the bare metal build latency table 1244.
  • the calculation load learning unit 3211 stores the created model in the calculation load model storage unit 3212.
  • an RNN Recurrent Neural Network
  • the algorithm used for learning is not limited to RNN.
  • the learning of the processing time for the input value may be performed during the operation stage. For example, when the function of a calculation application is updated, even if the input value is the same, the calculation load may change due to the change in internal processing.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本開示は、専用ハードウェアを備えることなくアプリケーションの実行状況に応じてオペレーティングシステムによるジッタを削減することが可能な情報処理装置を提供することを目的とする。本開示による情報処理装置は、複数のプロセッサコアを含む演算装置とオペレーティングシステムとを備え、オペレーティングシステムは、オペレーティングシステムのOSジッタ統計情報を取得するOSジッタ統計情報取得部と、OSジッタ統計情報に対応付けられたOSジッタレベルが規定されたOSジッタ統計情報テーブルと、アプリケーションの入力値を取得する入力値取得部と、入力値に対応付けられた演算負荷レベルが規定された演算負荷テーブルと、OSジッタレベルおよび演算負荷レベルに基づいて処理ブロックをオペレーティングシステムが実行されないベアメタル環境で実行する必要があるか否かを判定するベアメタル要否判定部とを備える。

Description

情報処理装置
 本開示は、リアルタイムシステムにおけるアプリケーションの実行状況に基づいて、オペレーティングシステムによるジッタを削減した実行環境を提供する情報処理装置に関する。
 従来、リアルタイムシステムにおけるコントローラは、アプリケーション(リアルタイムアプリケーション)のリアルタイム性を保証するために、専用のRTOS(Real Time Operating System)を採用してきた。近年、単一の高性能コントローラ上で、高リアルタイム性が要求される制御系アプリケーションと、情報系アプリケーションとを同時運用して相互に連携し合うといった統合化および分散協調が図られている。しかし、RTOSは、リアルタイム性の保証に特化した機能しか持たず、IoT(Internet of Things)またはAI(Artificial Intelligence)技術を活用した情報系アプリケーションに必要なライブラリおよびランタイム等の実行環境を提供していない。そのため、リアルタイムシステムでは、Linux(登録商標、以下同じ)等の汎用OS(Operating System)を採用したコントローラが普及している。
 汎用OSは、多様な処理を行うため、制御系アプリケーションおよび情報系アプリケーションのみならず、カーネル内のスレッド処理、および他の機器との接続を行うためのI/O処理等、汎用OS自身の処理によるジッタ(以下、「OSジッタ」という)がRTOSと比べて大きいため、リアルタイム性の保証が困難である。加えて、上述したコントローラの統合化および分散協調により、システムが大規模になるほど、一つのアプリケーションの処理時間がOSジッタによって伸長することは、システム全体の性能に影響を及ぼし易くなる。例えば、FA(Factory Automation)分野におけるビジュアルフィードバックでは、画像処理アプリケーションはそれ自体がハードリアルタイムではないかも知れないが、後続の位置決め等を行う制御系アプリケーションがハードリアルタイムである場合、画像処理アプリケーションの実行中に処理時間の長いOSジッタが発生することによって制御系アプリケーションが落ちることは回避されなければならない。このように、リアルタイムシステムでは、発生頻度は低くても処理時間が長いOSジッタにも対処することが、今後の新たな課題としてより一層の対処が求められる。
 コントローラの統合化および分散協調は、一方で、ソフトウェアアップデートおよびアプリケーションの追加といった機能進化の側面も併せ持つ。システムを運用していく中で、アプリケーションの実行状況が経時的に変化し、それに伴ってOSジッタの発生状況も変化する。アプリケーションの実行状況によっては、OSジッタがシステム全体の性能にクリティカルに影響するため削減しなければならないケース、または、反対に対処する必要がないケースが考えられる。そのため、アプリケーションの実行状況に応じて、動的にOSジッタを削減する実行環境が求められる。
 従来のリアルタイムアプリケーションを実行する情報処理装置では、アプリケーションの一部実行処理時に、FPGA(Field Programmable Gate Array)などの専用ハードウェアに一部処理をオフロードすることによって、汎用OSでの性能の揺らぎおよび他アプリケーションの干渉を抑制している(例えば、特許文献1参照)。
特開2020-166427号公報
 特許文献1のようなリアルタイムアプリケーションを実行する情報処理装置は、専用ハードウェアが装置に予め具備されていることを前提としているため、専用ハードウェアを搭載しない情報処理装置には適用することができない、あるいは製品化のコストが高くなるという問題点があった。また、動的に専用ハードウェアにアプリケーションの一部処理をオフロードする機構は備えていない。そのため、アプリケーションの実況状況の変化に応じて、オペレーティングシステムのジッタを削減することができないという問題点があった。
 本開示は、このような問題を解決するためになされたものであり、専用ハードウェアを備えることなく、アプリケーションの実行状況に応じてオペレーティングシステムによるジッタを削減することが可能な情報処理装置を提供することを目的とする。
 上記の課題を解決するために、本開示による情報処理装置は、複数のプロセッサコアを含む演算装置と、演算装置で実行されるオペレーティングシステムとを備え、アプリケーションを実行する情報処理装置であって、オペレーティングシステムは、オペレーティングシステムの処理において発生するOSジッタの統計情報であるOSジッタ統計情報を取得するOSジッタ統計情報取得部と、OSジッタ統計情報に対応付けられたOSジッタのレベルであるOSジッタレベルが規定されたOSジッタ統計情報テーブルと、アプリケーションの入力値を取得する入力値取得部と、入力値に対応付けられた、アプリケーションを構成する処理ブロックの演算負荷のレベルである演算負荷レベルが規定された演算負荷テーブルと、OSジッタレベルおよび演算負荷レベルに基づいて、処理ブロックをオペレーティングシステムが実行されないベアメタル環境で実行する必要があるか否かを判定するベアメタル要否判定部とを備える。
 本開示によれば、専用ハードウェアを備えることなく、アプリケーションの実行状況に応じてオペレーティングシステムによるジッタを削減することが可能となる。
 本開示の目的、特徴、態様、および利点は、以下の詳細な説明と添付図面とによって、より明白となる。
実施の形態1による情報処理装置の構成の一例を示すブロック図である。 実施の形態1によるOSジッタ統計情報取得部の動作の一例を示すフローチャートである。 実施の形態1によるOSジッタ統計情報テーブルの一例を示す図である。 実施の形態1によるOSジッタが発生した場合における処理時間変動のイメージの一例を示す図である。 実施の形態1による入力値取得部の動作の一例を示すフローチャートである。 実施の形態1による演算負荷テーブルの一例を示す図である。 実施の形態1によるベアメタル要否判定テーブルの一例を示す図である。 実施の形態1によるベアメタル要否判定部の動作の一例を示すフローチャートである。 実施の形態1によるベアメタル構築部の動作の一例を示すフローチャートである。 実施の形態1によるベアメタル構築レイテンシテーブルの一例を示す図である。 実施の形態1によるベアメタルローダ部の動作の一例を示すフローチャートである。 実施の形態1によるベアメタル連携部の動作の一例を示すフローチャートである。 実施の形態1による演算アプリ生成部の動作の一例を示すフローチャートである。 実施の形態1による関数テーブルの一例を示す図である。 実施の形態2による情報処理装置の構成の一例を示すブロック図である。 実施の形態2によるキャッシュ統計情報テーブルの一例を示す図である。 実施の形態2によるベアメタル要否判定テーブルの一例を示す図である。 実施の形態2によるベアメタル要否判定部の動作の一例を示すフローチャートである。 実施の形態3による情報処理装置の構成の一例を示すブロック図である。 実施の形態3による演算負荷学習部の動作の一例を示すフローチャートである。 実施の形態3による演算負荷推定部の動作の一例を示すフローチャートである。
 <実施の形態1>
 図1は、実施の形態1による情報処理装置1000の構成の一例を示すブロック図である。
 情報処理装置1000は、演算装置1001および記憶装置1002を備えている。情報処理装置1000は、NW(Network)装置1003を介してネットワーク1005に接続されており、IO(Input Output)装置1004からのデータを取得する。NW装置1003は、シリアル通信、Ethernet(登録商標)等であり、1以上のIO装置1004と演算装置1001との接続を形成している。IO装置1004は、例えば、各種のセンサである。
 演算装置1001は、各種のプログラムを実行する。演算装置1001は、1以上のプロセッサ1100で構成されている。プロセッサ1100は、例えばCPU(Central Processing Unit)である。プロセッサ1100は、2以上のプロセッサコア1100-1~1100-4を備える。なお、図1では、4つのプロセッサコア1100-1~1100-4を示しているが、これに限定されるものではない。
 記憶装置1002は、プログラムおよびプログラムの実行に必要なデータを格納する。記憶装置1002は、例えば、キャッシュメモリ、RAM(Random Access Memory)、ROM(Read Only Memory)、またはHDD(Hard Disk Drive)等である。
 次に、記憶装置1002の機能構成について説明する。記憶装置1002は、オペレーティングシステム1200およびコンパイラ部1300を備える。オペレーティングシステム1200は、Linux等の汎用OSであり、汎用OSが備える機能を有する。コンパイラ部1300では、OSが実行される環境(以下、「OS環境(オペレーティングシステム環境)」という)と、OSが実行されない環境(以下、「ベアメタル環境」という)との両方で実行可能な実行バイナリを、演算アプリ生成部1310によって生成する。以下、OS環境で実行可能な実行バイナリのことを「OS環境用実行バイナリ(オペレーティングシステム環境用実行バイナリ)」といい、ベアメタル環境で実行可能な実行バイナリのことを「ベアメタル環境用実行バイナリ」という。OS環境用実行バイナリおよびベアメタル環境用実行バイナリは、演算アプリ本体コード1320および関数テーブル1330から生成された演算アプリ合成コード1340に基づいて生成される。
 オペレーティングシステム1200は、OSジッタ同定部1210と、演算負荷同定部1220と、テーブル設定I/F1230と、ベアメタル制御部1240とを備える。
 OSジッタ同定部1210は、OSジッタ統計情報取得部1211およびOSジッタ統計情報テーブル1212を備える。OSジッタ統計情報取得部1211は、オペレーティングシステムの各種処理に関する統計情報を取得する。OSジッタ統計情報テーブル1212は、OSジッタの種類とモニタリングする項目ごとに、それぞれ数値範囲とそれに対応するレベル(OSジッタレベル)とをユーザが事前に規定する。OSジッタ統計情報取得部1211およびOSジッタ統計情報テーブル1212に基づいて、現在のOSジッタレベルが同定される。
 演算負荷同定部1220は、入力値取得部1221および演算負荷テーブル1222を備える。入力値取得部1221は、NW装置1003を介してIO装置1004からの入力値を取得する。演算負荷テーブル1222は、入力値に対応付けて、処理時間の数値範囲とそれに対応するレベル(演算負荷レベル)とをユーザが事前に規定する。入力値取得部1221および演算負荷テーブル1222に基づいて、現在の演算負荷レベルが同定される。
 ベアメタル制御部1240は、ベアメタル要否判定テーブル1241、ベアメタル要否判定部1242、ベアメタル構築部1243、ベアメタル構築レイテンシテーブル1244、ベアメタルローダ部1245、およびベアメタル連携部1246を備える。ユーザは、テーブル設定I/F1230を介して、各処理ブロックをベアメタル環境で実行するために必要な条件を設定し、その設定がベアメタル要否判定テーブル1241に反映される。なお、処理ブロックの粒度は、アプリケーションの単位でも良く、アプリケーションの構成要素の単位(例えば、関数)でも良い。
 ベアメタル要否判定部1242は、OSジッタ同定部1210によって同定された現在のOSジッタレベルと、演算負荷同定部1220によって同定された現在の演算負荷レベルとを、ベアメタル要否判定テーブル1241に問い合わせ、該当処理ブロック(実行対象の処理ブロック)をベアメタル環境で実行すべきか否かを判定する。
 ベアメタル構築部1243は、該当処理ブロックの判定結果に基づいて、プロセッサコア1100―1~1100―4のうちのいずれか1以上のプロセッサコアに対してベアメタル環境を構築する。
 ベアメタル構築レイテンシテーブル1244は、ベアメタル環境の構築に要するオペレーションのオーバヘッド時間を保持し、ベアメタル環境の構築時に遅延影響が出ないように制御するために用いられる。
 ベアメタルローダ部1245は、該当処理ブロックのベアメタル環境用実行バイナリを予め定められた仮想アドレスに展開する。ベアメタル連携部1246は、ベアメタル環境用実行バイナリの実行ステータスに基づいて、OS環境用実行バイナリの実行制御を行う。
 図2は、OSジッタ統計情報取得部1211の動作の一例を示すフローチャートである。
 ステップS1001において、OSジッタ統計情報取得部1211は、ユーザによって設定されたOSジッタの種類の情報を、後述するOSジッタ統計情報テーブル1212から取得する。
 ステップS1002において、OSジッタ統計情報取得部1211は、取得したOSジッタの種類について、汎用OSが提供するシステム監視ツールを用いてその統計情報を取得する。例えば、Linuxでカーネル処理に関する統計情報を取得する場合、topコマンドを用いることによってユーザ時間割合またはシステム時間割合を取得することができる。
 図3は、OSジッタ統計情報テーブル1212の一例を示す図である。
 OSジッタ統計情報テーブル1212は、ユーザによって選択されたOSジッタの種類について、モニタリングする項目と、各項目の数値範囲に対応したOSジッタレベルとを保持するテーブルである。OSジッタは、例えば、オペレーティングシステムにおけるカーネル処理、IO処理、メモリ管理など様々な種類がある。ユーザは、準備段階時に、OSジッタの種類、種類ごとのモニタリング項目、およびモニタリング項目ごとの数値範囲とOSジッタレベルとを設定する。
 図3の例では、OSジッタの種類として、カーネル処理1212-1、IO処理1212-2、およびメモリ管理1212-3の3つを設定している。また、カーネル処理1212―1では、モニタリング項目として、ユーザ時間割合、コンテキストスイッチ数、およびシステム時間割合の3つを設定している。なお、OSジッタの種類およびモニタリング項目は、これらに限定されるものではない。モニタリング項目は、1種類のOSジッタにつき1つでも良く、複数でも良い。複数の場合は、AND条件とする項目を同じ欄に設定し、OR条件とする項目をそれぞれ異なる欄に設定する。図3の例では、カーネル処理1212―1に関して、ユーザ時間割合およびコンテキストスイッチ数は、互いにAND条件とするために「項目1」の欄に設定している。システム時間割合は、ユーザ時間割合およびコンテキストスイッチ数をOR条件とするために「項目2」の欄に設定している。また、OSジッタレベルは、「低」、「中」、および「高」の3段階設定とし、各レベルでモニタリング項目の数値範囲を設定している。なお、OSジッタレベルおよび数値範囲は、これらに限定されるものではない。
 図4は、OSジッタが発生した場合における処理時間変動のイメージの一例を示す図である。
 上述したオペレーティングシステムのカーネル処理、IO処理、およびメモリ管理等のOSジッタは、アプリケーションの実行状況によって時々刻々と発生の確立分布が変動する。例えば、実行されるアプリケーションの数が増大したとき、または実行中のアプリケーションの処理負荷が増大したときに、カーネル内のスレッドはスケジューリングされにくくなるため1回の実行あたりの処理時間が増大するケースがある。その他、物理メモリが枯渇してメモリ管理機能によりページアウトまたはスワップが頻繁に発生するケースも想定される。
 図4の例では、OSジッタレベルが「低」、「中」、および「高」と変動した場合において処理ブロックの処理時間が変動する様子を模式的に表しており、システム全体の性能に影響が出ないようにアプリケーションの実行状況に応じて、シビアにOSジッタを対処しなければならないケースがあることを示唆している。例えば、あるアプリケーションにおいて、OSジッタレベルが「低」のときは、システム全体に重大エラーを引き起こすような処理時間が長いOSジッタが発生する確率が限りなく低いため、対処する必要はない。一方、OSジッタレベルが「高」のときは、その確率が50%以上と高くなるため、対処しなければならないといったケースが想定される。
 図5は、入力値取得部1221の動作の一例を示すフローチャートである。
 情報処理装置1000が準備段階か、または運用段階かによって処理内容が異なる。
 ステップS1101において、入力値取得部1221は、情報処理装置1000が準備段階か否かを判断する。
 ステップS1102において、入力値取得部1221は、IO装置1004から入力値を取得する割込みハンドラ関数を、割込みベクタテーブルに事前登録する。対象の演算アプリによって取得する入力値は異なるため、この割込みハンドラ関数はユーザによって定義されるものである。
 ステップS1103において、運用段階に移り、入力値取得部1221は、NW装置1003からのハードウェア割込みを検出すると、登録した割込みハンドラ関数を呼び出す。
 ステップS1104において、入力値取得部1221は、IO装置1004からの入力値を取得する。
 図6は、演算負荷テーブル1222の一例を示す図である。
 ユーザは、準備段階時に、入力値に対応付けて処理ブロックごとの処理時間および処理負荷レベルを設定する。処理時間の計測については、例えば、準備段階時に対象とするアプリケーションのみをベアメタル環境で実行し、処理ブロックごとの処理時間を計測する。
 図6の例では、処理ブロックAはテーブル1222-1、処理ブロックBはテーブル1222-2、処理ブロックCはテーブル1222-3といった具合で、処理ブロックごとに別のテーブルとする。演算負荷レベルについては、ユーザが準備段階時に処理時間に対して数値範囲を決めて定義するものである。図6では、「低」、「中」、および「高」の3段階としているが、これに限定されるものではない。
 図7は、ベアメタル要否判定テーブル1241の一例を示す図である。
 ユーザは、準備段階時にテーブル判定I/F1230を介して、先行処理ブロック(該当処理ブロックの1つ前に行う処理ブロック)、および処理ブロックごとのベアメタル実行条件を設定する。ベアメタル実行条件とは、該当処理ブロックがベアメタル環境での実行が必要となる条件のことをいう。ベアメタル環境での実行が必要な条件として、OSジッタ統計情報テーブル1212のOSジッタの種類とそのOSジッタレベル、またはユーザが準備段階時に設定する演算負荷テーブル1222の演算負荷レベルを、ベアメタル実行条件欄に設定する。このとき、AND条件とするOSジッタの種類または演算負荷は同じ欄に設定し、OR条件とするOSジッタの種類または演算負荷はそれぞれ異なる欄に設定する。
 図7の例では、処理ブロックAについて、カーネル処理および演算負荷を互いにAND条件とするために「条件1」の欄に設定し、IO処理は、カーネル処理および演算負荷をOR条件とするために「条件2」の欄に設定している。なお、OSジッタ統計情報テーブル1212で設定したOSジッタの種類、および演算負荷テーブル1222で設定した演算負荷のうち、すべてを設定する必要はなく、該当処理ブロックがベアメタル環境での実行が必要と判断するために必要なもののみを設定すれば良い。
 図8は、ベアメタル要否判定部1242の動作の一例を示すフローチャートである。なお、ベアメタル要否判定部1242によるベアメタル要否判定の処理は、該当処理ブロックの先行処理ブロックの実行時に行うことを想定している。
 ステップS1201において、ベアメタル要否判定部1242は、OSジッタ統計情報取得部1211から現在のOSジッタ統計情報を取得し、OSジッタ統計情報テーブル1212に問い合わせて、対応するOSジッタレベルを取得する。
 ステップS1202において、ベアメタル要否判定部1242は、入力値取得部1221が取得した入力値に対応する該当処理ブロックの処理時間を演算負荷テーブル1222に問い合わせて、該当処理ブロックの演算負荷レベルを取得する。
 ステップS1203において、ベアメタル要否判定部1242は、現在のOSジッタレベルおよび演算負荷レベルをベアメタル要否判定テーブル1241に問い合わせて、現在のOSジッタレベルおよび演算負荷レベルが該当処理ブロックのベアメタル実行条件に当てはまるか否かを確認する。ベアメタル実行条件に当てはまる場合は、ステップS1204に移行する。一方、ベアメタル実行条件に当てはまらない場合は、ステップS1205に移行する。
 ステップS1204において、ベアメタル要否判定部1242は、該当処理ブロックがベアメタル環境での実行が必要であると判定する。
 ステップS1205において、ベアメタル要否判定部1242は、ベアメタル環境での実行が不要であると判定する。
 図9は、ベアメタル構築部1243の動作の一例を示すフローチャートである。
 ステップS1301において、ベアメタル構築部1243は、該当処理ブロックがベアメタル環境での実行が必要と判定されたか否かを確認する。ベアメタル環境での実行が必要である場合は、ステップS1302に移行する。一方、ベアメタル環境での実行が必要でない場合は、図9の動作を終了する。
 ステップS1302において、ベアメタル構築部1243は、該当処理ブロックが並列実行(マルチコア並列実行)されるか否かを判定する。当該判定は、演算アプリ本体コード1320の該当処理ブロックにあたる箇所に、並列化ライブラリ(例えば、OpenMP(登録商標))のディレクティブが挿入されているか否かを検出することにより行う。該当処理ブロックが並列実行される場合、該当処理ブロックが要求するコア数は、並列化ライブラリの環境変数を参照することによって同定することができる。
 ステップS1303において、ベアメタル構築部1243は、ステップS1301において該当処理ブロックがベアメタル環境での実行が必要と判定した場合、すでに必要な数のコアに対して、ベアメタル環境を構築しているか否かを確認する。必要な数のコアに対してベアメタル環境を構築している場合は、ステップS1304に移行する。一方、必要な数のコアに対してベアメタル環境を構築していない場合は、ステップS1306に移行する。
 ステップS1304において、ベアメタル構築部1243は、すでに必要な数より多い数のコアに対してベアメタル環境を構築しているか否かを確認する。すでに必要な数より多い数のコアに対してベアメタル環境を構築している場合は、図9の動作を終了する。一方、すでに必要な数より多い数のコアに対してベアメタル環境を構築していない場合は、ステップS1305に移行する。
 ステップS1305において、ベアメタル構築部1243は、例えば、オペレーティングシステム1200が有するHotplug機能を使用して不要な数のコアを論理オンとすることによって、オペレーティングシステム1200が管轄するコアに復帰させる。
 ステップS1306において、ベアメタル構築部1243は、ステップS1303で必要な数のコアに対してベアメタル環境を構築していないと判定した場合、後述するベアメタル構築レイテンシテーブル1244からベアメタル環境構築に係る一連のオペレーションのオーバヘッド時間を取得する。
 ステップS1307において、ベアメタル構築部1243は、ステップS1306で取得したオーバヘッド時間の合計値が、該当処理ブロックの次の周期の開始時刻に間に合うか否かを判定する。該当処理ブロックの次の周期の開始時刻に間に合う場合は、ステップS1308に移行する。一方、該当処理ブロックの次の周期の開始時刻に間に合わない場合は、ステップS1309に移行する。
 ステップS1308において、ベアメタル構築部1243は、オペレーティングシステム1200のHotplug機能を使用して、必要な数のコアを論理オフとする。
 ステップS1309において、ベアメタル構築部1243は、次の周期はOS環境で実行し、その次の周期で必要な数のコアを論理オフとする。なお、ベアメタル環境を構築する対象のコアは、演算装置1001が備えるプロセッサコア1100-1~1100―4のいずれかであり、オペレーティングシステム1200によって論理オフされていないコアである。
 図10は、ベアメタル構築レイテンシテーブル1244の一例を示す図である。
 ベアメタル構築レイテンシテーブル1244は、ベアメタル環境の構築に係るオペレーションごとにオーバヘッド時間(所要時間)を保持している。オペレーションのオーバヘッド時間は、準備段階時に計測し、ベアメタル構築レイテンシテーブル1244に反映する。なお、図10に記載の各オペレーションのオーバヘッド時間は参考値である。
 図11は、ベアメタルローダ部1245の動作の一例を示すフローチャートである。
 ステップS1401において、ベアメタルローダ部1245は、該当処理ブロックがベアメタル環境での実行が必要であると判定されたか否かを確認する。該当処理ブロックがベアメタル環境での実行が必要である場合は、ステップS1402に移行する。一方、該当処理ブロックがベアメタル環境での実行が必要でない場合は、ステップS1404に移行する。
 ステップS1402において、ベアメタルローダ部1245は、該当処理ブロックのベアメタル環境用実行バイナリを、演算装置1001が備える図示しない主記憶装置上のロード先の仮想アドレスに展開する。なお、ロード先の仮想アドレスは、事前にユーザによって指定されていることを前提とする。
 ステップS1403において、ベアメタルローダ部1245は、ベアメタル環境のコアのプログラムカウンタに該当処理ブロックの仮想アドレス(エントリポイント)を設定し、RUNNING状態とする。
 なお、各コアのプログラムカウンタを含むレジスタ情報は、例えば、Linuxの場合はデバイスツリーから取得することができる。また、RUNNING状態とされた該当処理ブロックは、後述する関数テーブル1330のポーリング関数を使用することによって、起動を知らせる割込み要求をポーリングし、割込み要求を検知したら処理を実行させる。
 ステップS1404において、ベアメタルローダ部1245は、該当処理ブロックのOS環境用実行バイナリをオペレーティングシステム1200が有するスケジューラで実行する。
 図12は、ベアメタル連携部1246の動作の一例を示すフローチャートである。
 ステップS1501において、ベアメタル連携部1246は、ベアメタル環境用実行バイナリを起動するための割込み要求を検知したか否かを判定する。ベアメタル環境用実行バイナリを起動するための割込み要求を検知した場合は、ステップS1502に移行する。一方、ベアメタル環境用実行バイナリを起動するための割込み要求を検知していない場合は、図12の動作を終了する。
 ステップS1502において、ベアメタル連携部1246は、実行アドレスに基づいて、OS環境での該当処理ブロックの起動を中止する。
 ステップS1503において、ベアメタル連携部1246は、該当処理ブロックがベアメタル環境で実行されて、実行完了を知らせるための割込み要求を検知するまで待機する。
 ステップS1504において、ベアメタル連携部1246は、ステップS1503で割込み要求を検知したら、該当処理ブロックが先行処理ブロックとなっている処理ブロック(つまり、後行処理ブロック)を起動する。
 図13は、演算アプリ生成部1310の動作の一例を示すフローチャートである。
 ステップS1601において、演算アプリ生成部1310は、演算アプリ本体コード1320に後述する関数テーブル1330内のOS環境用関数を挿入して、OS環境用の演算アプリ合成コード1340を生成する。
 ステップS1602において、演算アプリ生成部1310は、OS環境用の演算アプリ合成コード1340をOS用コンパイラ(例えば、GCC(GNU Compiler Collection(登録商標))でコンパイルして、OS環境用実行バイナリを生成する。
 ステップS1603において、演算アプリ生成部1310は、演算アプリ本体コード1320に関数テーブル1330内のベアメタル環境用関数を挿入して、ベアメタル環境用の演算アプリ合成コード1340を生成する。
 ステップS1604において、演算アプリ生成部1310は、ベアメタル環境用の演算アプリ合成コード1340をベアメタル用コンパイラでコンパイルし、ロード先の仮想アドレスを指定してベアメタル環境用実行バイナリを生成する。ロード先の仮想アドレスは、ユーザが事前に決定し、ベアメタル環境用実行バイナリをロードした後に関数テーブル1330のメモリのロック関数を使用して、このロード先仮想アドレスから始まる任意のサイズの領域をスワップアウトされない領域として確保する。これにより、ベアメタル環境で動作するアプリケーションは、その実行時にスワップアウトによるジッタが入ることを防ぐ効果がある。
 図14は、関数テーブル1330の一例を示す図である。
 演算アプリ本体コード1320に対して、関数テーブル1330に記載された各関数を挿入することによって、OS環境用実行バイナリとベアメタル環境用実行バイナリとを連携させて動作させることが可能となる。
 ベアメタル環境用実行バイナリは、仮想アドレス空間上の事前にユーザによって決められたサイズの領域に展開されることを想定している。通常、主記憶装置の物理アドレス空間が使い果たされると、OSのメモリ管理によってスワップアウトが発生し、ジッタが発生する可能性がある。そのため、ベアメタル環境用実行バイナリに用いる領域は、スワップアウトされないようにメモリをロックする。これを実現する関数が、関数テーブル1330におけるメモリのロック関数、およびメモリのロック解除関数であり、例えば、Linuxを用いる場合は、mlock( )およびmunlock( )の2つのシステムコールを使用する。
 OS環境用バイナリおよびベアメタル環境用実行バイナリに含まれる、互いに依存関係のある処理ブロック間でデータ通信を行うために、共有メモリ領域を設定して両方の実行バイナリからの読み書きを可能とする。これを実現する関数が、関数テーブル1330における共有メモリの確保関数、共有メモリの解放関数、共有メモリへのデータ書込み関数、および共有メモリからのデータ読込み関数である。
 OS環境用バイナリおよびベアメタル環境用実行バイナリに含まれる、互いに依存関係のある処理ブロックの実行制御については、コア間の割込みを利用する。OS環境コア(OS環境が構築されたコア)からベアメタル環境コア(ベアメタル環境が構築されたコア)に該当処理ブロックの起動を知らせる割込み要求(起動通知)を送信し、ベアメタル環境コアで受信する。ベアメタル環境コアでは、該当処理ブロックが割込み要求をポーリングし、当該割込み要求を検知したら処理を実行する。ベアメタル環境コアは、該当処理ブロックの処理が完了したら、ベアメタル環境コアからOS環境コアに完了を知らせる割込み要求(完了通知)を送信し、当該割込み要求をOS環境コアが受信する。これを実現する関数が、関数テーブル1330における割込み要求の送信関数、割込み要求の受信関数、およびポーリング関数である。
 <実施の形態1の効果>
 実施の形態1では、処理ブロックの処理時間の経時的な変化と、OSジッタの統計情報の経時的な変化とを監視し、ユーザが定義したベアメタル要否判定テーブル1241に基づいて、動的に処理ブロックをベアメタル環境で実行する。これにより、アプリケーションの実行状況に応じて、OSジッタを削減することができる。
 <実施の形態2>
 図15は、実施の形態2による情報処理装置2000の構成の一例を示すブロック図である。
 情報処理装置2000は、演算装置1001および記憶装置2002を備えており、記憶装置2002がオペレーティングシステム2200を備えることを特徴としている。具体的には、OSジッタ同定部2210がキャッシュ統計情報取得部2211およびキャッシュ統計情報テーブル2212を備え、ベアメタル制御部2220がベアメタル要否判定テーブル2221およびベアメタル要否判定部2222を備えていることを特徴としている。その他の構成および動作は、実施の形態1による情報処理装置1000と同様であるため、ここでは詳細な説明を省略する。
 キャッシュ統計情報取得部2211は、キャッシュメモリに関する統計情報を取得する。なお、キャッシュメモリは、演算装置1001が備えているものとする。
 キャッシュ統計情報テーブル2212は、キャッシュメモリのモニタリングする項目ごとに、数値範囲とそれに対応するレベル(キャッシュ性能レベル)が、ユーザによって設定される。
 図16は、キャッシュ統計情報テーブル2212の一例を示す図である。
 処理ブロックの処理時間が変動する主な要因として、キャッシュメモリにヒットするか否かが挙げられる。情報処理装置2000における演算装置1001は、キャッシュメモリを備えていることを想定している。情報処理装置2000において実行されるアプリケーションの数が多くなる程キャッシュミス率が高くなり、キャッシュにヒットしないことによって、同じ演算負荷であっても処理時間に差異が生じる。従って、キャッシュ統計情報を把握することは、アプリケーションの実行状況を把握するために重要である。
 図16に示すキャッシュ統計情報テーブル2212は、図3に示すOSジッタ統計情報テーブル1212と同じ体裁である。ユーザは、準備段階時に、キャッシュに関するモニタリング項目、その数値範囲、およびキャッシュ性能レベルを設定する。なお、図16の例では、L1キャッシュミス率およびL2キャッシュミス率をモニタリング項目としているが、これらに限定されるものではない。また、キャッシュ性能レベルを「低」、「中」、および「高」の3段階設定しているが、これに限定されるものではない。
 キャッシュ統計情報は、CPUベンダーによって提供されているPMU(Performance Monitoring Unit)を使用して取得しても良く、汎用OSが提供する性能解析ツール(例えば、Linuxにおけるperf)を使用して取得しても良い。この処理は、キャッシュ統計情報取得部2211によって行われる。
 図17は、ベアメタル要否判定テーブル2221の一例を示す図である。
 図17に示すベアメタル要否判定テーブル2221は、図7に示すベアメタル要否判定テーブル1241と同じ体裁である。OSジッタ統計情報テーブル1212で設定したOSジッタの種類と、演算負荷テーブル1222で設定した演算負荷以外に、キャッシュ統計情報テーブル2212で設定したキャッシュ性能をベアメタル実行条件に設定する。
 図17の例では、処理ブロックAについて、演算負荷およびキャッシュ性能のそれぞれのレベルをAND条件として「条件1」に設定し、カーネル処理およびIO処理のそれぞれのレベルをAND条件として「条件2」に設定し、「条件1」および「条件2」はOR条件としている。なお、キャッシュ性能についても、該当処理ブロックがベアメタル環境での実行が必要と判断するのに必要な場合にのみ設定すれば良い。
 図18は、ベアメタル要否判定部2222の動作の一例を示すフローチャートである。図18のステップS2001、ステップS2003、ステップS2005、およびステップS2006は、図8のステップS1201~ステップS1205と同様であるため、ここでは説明を省略する。いかでは、ステップS2002およびステップS2004について説明する。なお、ベアメタル要否判定の処理は、該当処理ブロックの先行処理ブロックの実行時に行うことを想定している。
 ステップS2002において、ベアメタル要否判定部2222は、キャッシュ統計情報取得部2211から現在のキャッシュ統計情報を取得し、キャッシュ統計情報テーブル2212に問い合わせて、対応するキャッシュ性能レベルを取得する。
 ステップS2004において、ベアメタル要否判定部2222は、現在のOSジッタレベル、キャッシュシ性能レベル、および演算負荷レベルをベアメタル要否判定テーブル2221に問い合わせて、現在のOSジッタレベル、キャッシュシ性能レベル、および演算負荷レベルが該当処理ブロックのベアメタル実行条件に当てはまるか否かを確認する。
 <実施の形態2の効果>
 実施の形態2では、処理ブロックの処理時間に影響するキャッシュメモリに関する統計情報(キャッシュ統計情報)を取得し、キャッシュ統計情報に基づいたベアメタル環境での実行が必要か否かを判定する。これにより、より精緻にアプリケーションの実行状況に応じてOSジッタを削減することが可能となる。
 <実施の形態3>
 図19は、情報処理装置3000の構成の一例を示すブロック図である。
 情報処理装置3000は、演算装置1001および記憶装置3002を備えており、記憶装置3002がオペレーティングシステム3200を備えることを特徴としている。具体的には、演算負荷同定部3210が演算負荷学習部3211、演算負荷モデル記憶部3212、および演算負荷推定部3213を備えていることを特徴としている。その他の構成および動作は、実施の形態1による情報処理装置1000と同様であるため、ここでは詳細な説明を省略する。
 演算負荷学習部3211は、処理ブロックの処理時間を計測し、取得した入力値に対する処理時間の傾向を学習する。演算負荷学習部3211が学習したモデルは、演算負荷モデル記憶部3212に記憶される。演算負荷推定部3213は、新たに取得した入力値と学習したモデルとから処理時間を推定し、演算負荷テーブル1222を参照して演算負荷レベルを同定する。
 図20は、演算負荷学習部3211の動作の一例を示すフローチャートである。
 ステップS3001において、演算負荷学習部3211は、入力値取得部1221から、該当処理ブロックの入力値を取得する。
 ステップS3002において、演算負荷学習部3211は、該当処理ブロックの実行アドレスに基づいて、該当処理ブロックの処理時間を計測する。
 ステップS3003において、演算負荷学習部3211は、十分なサンプル数が得られたか否かを判定する。ここで、十分なサンプル数とは、例えば、ユーザが事前に定義しておいても良い。十分なサンプル数が得られた場合は、ステップS3004に移行する。一方、十分なサンプル数が得られていない場合は、ステップS3001に戻る。
 ステップS3004において、演算負荷学習部3211は、該当処理ブロックの入力値に対する処理時間の傾向を学習し、モデルを作成する。
 ステップS3005において、演算負荷学習部3211は、作成したモデルを演算負荷モデル記憶部3212に記憶する。モデルの学習には、例えば、RNN(Recurrent Neural Network)を用いて、連続した複数周期で取得した入力値の系列データから、計測した処理時間を推定するように学習する。なお、学習に使用するアルゴリズムは、RNNに限定されるものではない。また、入力値に対する処理時間の学習は、運用段階時に行っても良い。例えば、演算アプリの機能がアップデートされると、同じ入力値であっても、内部処理が変更されたことによって演算負荷が変わるケースが考えられる。
 図21は、演算負荷推定部3213の動作の一例を示すフローチャートである。
 ステップS3101において、演算負荷推定部3213は、入力値取得部1221から該当処理ブロックの入力値を取得する。
 ステップS3102において、演算負荷推定部3213は、演算負荷モデル記憶部3212に記憶したモデルに基づいて、取得した入力値に対する処理時間を推定する。
 ステップS3103において、演算負荷推定部3213は、推定した処理時間を演算負荷テーブル1222に問い合わせ、対応する演算負荷レベルを同定する。
 <実施の形態3の効果>
 実施の形態3では、処理ブロックの入力値に対する演算負荷を学習および推論する。これにより、運用段階で演算アプリに機能等の変更があった場合でも、容易に演算負荷を同定する事が可能となる。
 なお、本開示の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略したりすることが可能である。
 本開示は詳細に説明されたが、上記した説明は、すべての態様において、例示であって、限定的なものではない。例示されていない無数の変形例が想定され得るものと解される。
 1000 情報処理装置、1001 演算装置、1002 記憶装置、1003 NW装置、1004 IO装置、1005 ネットワーク、1100 プロセッサ、1100-1~1100-4 プロセッサコア、1200 オペレーティングシステム、1210 OSジッタ同定部、1211 OSジッタ統計情報取得部、1212 OSジッタ統計情報テーブル、1212-1 カーネル処理、1212-2 IO処理、1212-3 メモリ管理、1220 演算負荷同定部、1221 入力値取得部、1222 演算負荷テーブル、1222-1~1222-3 テーブル、1230 テーブル設定I/F、1240 ベアメタル制御部、1241 ベアメタル要否判定テーブル、1242 ベアメタル要否判定部、1243 ベアメタル構築部、1244 ベアメタル構築レイテンシテーブル、1245 ベアメタルローダ部、1246 ベアメタル連携部、1300 コンパイラ部、1310 演算アプリ生成部、1320 演算アプリ本体コード、1330 関数テーブル、1340 演算アプリ合成コード、2000 情報処理装置、2002 記憶装置、2200 オペレーティングシステム、2210 OSジッタ同定部、2211 キャッシュ統計情報取得部、2212 キャッシュ統計情報テーブル、2220 ベアメタル制御部、2221 ベアメタル要否判定テーブル、2222 ベアメタル要否判定部、3000 情報処理装置、3002 記憶装置、3200 オペレーティングシステム、3210 演算負荷同定部、3211 演算負荷学習部、3212 演算負荷モデル記憶部、3213 演算負荷推定部。

Claims (7)

  1.  複数のプロセッサコアを含む演算装置と、
     前記演算装置で実行されるオペレーティングシステムと、
     を備え、アプリケーションを実行する情報処理装置であって、
     前記オペレーティングシステムは、
     前記オペレーティングシステムの処理において発生するOSジッタの統計情報であるOSジッタ統計情報を取得するOSジッタ統計情報取得部と、
     前記OSジッタ統計情報に対応付けられたOSジッタのレベルであるOSジッタレベルが規定されたOSジッタ統計情報テーブルと、
     前記アプリケーションの入力値を取得する入力値取得部と、
     前記入力値に対応付けられた、前記アプリケーションを構成する処理ブロックの演算負荷のレベルである演算負荷レベルが規定された演算負荷テーブルと、
     前記OSジッタレベルおよび前記演算負荷レベルに基づいて、前記処理ブロックを前記オペレーティングシステムが実行されないベアメタル環境で実行する必要があるか否かを判定するベアメタル要否判定部と、
    を備える、情報処理装置。
  2.  前記オペレーティングシステムは、
     テーブル設定I/Fと、
     前記OSジッタレベルおよび前記演算負荷レベルを用いて、前記処理ブロックを前記ベアメタル環境で実行するために必要な条件であるベアメタル実行条件が規定されたベアメタル要否判定テーブルと、
     前記ベアメタル環境となっていない前記プロセッサコアに対して前記ベアメタル環境を構築するベアメタル構築部と、
    をさらに備え、
     前記ベアメタル実行条件は、前記テーブル設定I/Fを介してユーザによって設定され、
     前記ベアメタル要否判定部は、前記OSジッタレベルおよび前記演算負荷レベルが前記ベアメタル実行条件に合致したとき、前記処理ブロックを前記ベアメタル環境で実行する必要があると判定する、請求項1に記載の情報処理装置。
  3.  前記オペレーティングシステムは、
     前記ベアメタル環境となっていない前記プロセッサコアに対して前記ベアメタル環境を構築するベアメタル構築部と、
     前記ベアメタル環境の構築に要するオーバヘッド時間を保持するベアメタル構築レイテンシテーブルと、
    をさらに備え、
     前記ベアメタル構築部は、前記オーバヘッド時間に基づいて、前記処理ブロックの開始時刻に間に合う場合は前記ベアメタル環境を構築する、請求項1に記載の情報処理装置。
  4.  前記アプリケーションの本体コードである演算アプリ本体コードと、関数テーブルとに基づいて、前記オペレーティングシステムが実行されるオペレーティングシステム環境で実行可能なオペレーティングシステム環境用実行バイナリと、前記ベアメタル環境で実行可能なベアメタル環境用実行バイナリとを生成する演算アプリ生成部をさらに備え、
     前記オペレーティングシステム環境用実行バイナリおよび前記ベアメタル環境用実行バイナリのそれぞれに含まれる互いに依存関係になる前記処理ブロック間で、起動通知または完了通知を送受信する、請求項1から3のいずれか1項に記載の情報処理装置。
  5.  主記憶装置と、
     前記ベアメタル環境用実行バイナリを前記主記憶装置の予め定められた仮想アドレスに展開し、前記ベアメタル環境の前記プロセッサコアのプログラムカウンタに、前記ベアメタル環境用実行バイナリに含まれる実行対象の前記処理ブロックのエントリポイントを設定するベアメタルローダ部と、
     前記オペレーティングシステム環境用実行バイナリから前記ベアメタル環境用実行バイナリに対して送信される前記起動通知に基づいて、前記処理ブロックを前記オペレーティングシステムで実行されないように制御し、前記ベアメタル環境用実行バイナリから前記オペレーティングシステム環境用実行バイナリに対して送信される前記完了通知に基づいて、前記処理ブロックの後に実行される処理ブロックを前記オペレーティングシステムで実行されるように制御するベアメタル連携部と、
    を備える、請求項4に記載の情報処理装置。
  6.  前記演算装置は、キャッシュメモリをさらに備え、
     前記オペレーティングシステムは、
     前記キャッシュメモリに関する統計情報であるキャッシュ統計情報を取得するキャッシュ統計情報取得部と、
     前記キャッシュ統計情報に対応付けられたキャッシュ性能のレベルであるキャッシュ性能レベルが規定されたキャッシュ統計情報テーブルと、
    をさらに備え、
     前記ベアメタル要否判定テーブルでは、前記OSジッタレベル、前記演算負荷レベル、および前記キャッシュ性能を用いて前記ベアメタル実行条件が規定され、
     前記ベアメタル要否判定部は、前記OSジッタレベル、前記演算負荷レベル、および前記キャッシュ性能レベルが前記ベアメタル実行条件に合致したとき、前記処理ブロックを前記ベアメタル環境で実行する必要があると判定する、請求項2に記載の情報処理装置。
  7.  前記オペレーティングシステムは、
     前記入力値取得部が取得した前記入力値に対する前記処理ブロックの演算負荷を学習して演算負荷モデルを生成する演算負荷学習部と、
     前記入力値取得部が取得した前記入力値と、前記演算負荷モデルとに基づいて、前記処理ブロックの演算負荷を推定する演算負荷推定部と、
    をさらに備える、請求項1または2に記載の情報処理装置。
PCT/JP2021/027911 2021-07-28 2021-07-28 情報処理装置 Ceased WO2023007618A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE112021008039.3T DE112021008039T5 (de) 2021-07-28 2021-07-28 Informations-verarbeitungsvorrichtung
CN202180100894.XA CN117693736A (zh) 2021-07-28 2021-07-28 信息处理装置
PCT/JP2021/027911 WO2023007618A1 (ja) 2021-07-28 2021-07-28 情報処理装置
JP2023537818A JP7504301B2 (ja) 2021-07-28 2021-07-28 情報処理装置
US18/290,916 US20250103349A1 (en) 2021-07-28 2021-07-28 Information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/027911 WO2023007618A1 (ja) 2021-07-28 2021-07-28 情報処理装置

Publications (1)

Publication Number Publication Date
WO2023007618A1 true WO2023007618A1 (ja) 2023-02-02

Family

ID=85087555

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/027911 Ceased WO2023007618A1 (ja) 2021-07-28 2021-07-28 情報処理装置

Country Status (5)

Country Link
US (1) US20250103349A1 (ja)
JP (1) JP7504301B2 (ja)
CN (1) CN117693736A (ja)
DE (1) DE112021008039T5 (ja)
WO (1) WO2023007618A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016529613A (ja) * 2013-08-26 2016-09-23 ヴイエムウェア インコーポレイテッドVMware,Inc. 待ち時間の影響を受けやすい仮想マシンをサポートするように構成されるcpuスケジューラ

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7046862B2 (ja) 2019-03-28 2022-04-04 株式会社日立製作所 アプリケーション実行装置およびアプリケーション実行方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016529613A (ja) * 2013-08-26 2016-09-23 ヴイエムウェア インコーポレイテッドVMware,Inc. 待ち時間の影響を受けやすい仮想マシンをサポートするように構成されるcpuスケジューラ

Also Published As

Publication number Publication date
CN117693736A (zh) 2024-03-12
JPWO2023007618A1 (ja) 2023-02-02
JP7504301B2 (ja) 2024-06-21
DE112021008039T5 (de) 2024-05-23
US20250103349A1 (en) 2025-03-27

Similar Documents

Publication Publication Date Title
US8793115B2 (en) Interface converter for unified view of multiple computer system simulations
US8484006B2 (en) Method for dynamically adjusting speed versus accuracy of computer platform simulation
US8935698B2 (en) Management of migrating threads within a computing environment to transform multiple threading mode processors to single thread mode processors
CN107278296B (zh) 用于响应于事务执行生成跟踪数据的装置和方法
US10248581B2 (en) Guarded memory access in a multi-thread safe system level modeling simulation
US9075666B2 (en) Deferred execution in a multi-thread safe system level modeling simulation
KR20130104853A (ko) 다중코어 시스템 및 로드 밸런싱 방법
US9201708B2 (en) Direct memory interface access in a multi-thread safe system level modeling simulation
US9612863B2 (en) Hardware device for accelerating the execution of a systemC simulation in a dynamic manner during the simulation
WO2012120654A1 (ja) タスクスケジューリング方法およびマルチコアシステム
JP2023502296A (ja) Webブラウザ環境内で機械学習モデルを処理するための方法および装置
CN109889406B (zh) 用于管理网络连接的方法、装置、设备和存储介质
US20210191757A1 (en) Sub-idle thread priority class
JP7042105B2 (ja) プログラム実行制御方法および車両制御装置
JP5542643B2 (ja) シミュレーション装置及びシミュレーションプログラム
JP7504301B2 (ja) 情報処理装置
JP5376042B2 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
CN120803536B (zh) 基于动态覆写指令流的处理器架构及方法
KR102879264B1 (ko) 메모리 컨트롤러, 메모리 컨트롤러의 동작 방법 및 이를 포함한 전자 장치
Yousefzadeh-Asl-Miandoab et al. CARMA: Collocation-Aware Resource Manager
CN117520097A (zh) 操作系统的数据处理方法、装置、计算机设备和存储介质
CN117112160A (zh) 定时任务调度方法、装置、设备及介质
EP3414659B1 (en) Thread diversion awaiting log call return
JP6073955B2 (ja) 複数の論理コアの実装を可能にするマイクロプロセッサのスタンバイの管理を最適化するための方法およびそのような方法を実行するコンピュータプログラム
JP5582241B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21951824

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023537818

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 18290916

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 202180100894.X

Country of ref document: CN

122 Ep: pct application non-entry in european phase

Ref document number: 21951824

Country of ref document: EP

Kind code of ref document: A1

WWP Wipo information: published in national office

Ref document number: 18290916

Country of ref document: US