JP2022068670A - Information processing device, process execution method, program and recording medium - Google Patents
Information processing device, process execution method, program and recording medium Download PDFInfo
- Publication number
- JP2022068670A JP2022068670A JP2020177474A JP2020177474A JP2022068670A JP 2022068670 A JP2022068670 A JP 2022068670A JP 2020177474 A JP2020177474 A JP 2020177474A JP 2020177474 A JP2020177474 A JP 2020177474A JP 2022068670 A JP2022068670 A JP 2022068670A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- processing unit
- central processing
- data
- 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.)
- Granted
Links
Images
Landscapes
- Memory System (AREA)
Abstract
Description
本発明は、情報処理装置、プロセス実行方法、プログラム及び記録媒体に関する。 The present invention relates to an information processing apparatus, a process execution method, a program and a recording medium.
NUMA(Non-Uniform Memory Access)アーキテクチャを採用するシステムにおいて、I/O(Input/Output)とCPU(Central Processing Unit)、I/Oとメモリの組み合わせを、極力アクセスが短くなるように選択する技術が報告されている(例えば、特許文献1等) Technology that selects the combination of I / O (Input / Output) and CPU (Central Processing Unit), and I / O and memory so that access is as short as possible in a system that adopts a NUMA (Non-Uniform Memory Access) architecture. Has been reported (for example, Patent Document 1 etc.)
また、近年、NVDIMM(Nonvolatile Dual In Line Memory Module)等の不揮発性メモリ(ユニバーサルメモリ)の実用化が広がりつつある。 Further, in recent years, the practical use of non-volatile memory (universal memory) such as NVDIMM (Nonvolatile Dual In Line Memory Module) is spreading.
しかしながら、不揮発性メモリを搭載したNUMAアーキテクチャにおいて、アクセスを最適化する技術が確立していない。 However, in the NUMA architecture equipped with the non-volatile memory, the technique for optimizing the access has not been established.
そこで、本発明は、不揮発性メモリ上のデータに対するアクセスの最適化を可能にする情報処理装置、プロセス実行方法、プログラム及び記録媒体を提供することを目的とする。 Therefore, an object of the present invention is to provide an information processing apparatus, a process execution method, a program, and a recording medium that enable optimization of access to data on a non-volatile memory.
前記目的を達成するために、本発明の情報処理装置は、
オペレーティングシステム部と、複数のメモリアクセスノードとを含み、
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、プロセス解析部、データ特定部、及び割当部を含み、
前記プロセス解析部は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定部は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当部は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる、装置である。
In order to achieve the above object, the information processing apparatus of the present invention is used.
Includes operating system section and multiple memory access nodes
Each memory access node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
The operating system unit includes a process analysis unit, a data identification unit, and an allocation unit.
The process analysis unit analyzes the process running in the operating system unit and analyzes the process.
Based on the process, the data specifying unit identifies the data to be accessed by the process and the executable file of the data.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
The allocation unit allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory based on the data and the execution file. Is.
本発明のプロセス実行方法は、
オペレーティングシステム部と、複数のメモリアクセスノードとを含み、
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、プロセス解析工程、データ特定工程、及び割当工程を含む各工程を実行するプロセス実行方法:
前記プロセス解析工程は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定工程は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当工程は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる。
The process execution method of the present invention
Includes operating system section and multiple memory access nodes
Each memory access node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
The operating system unit is a process execution method for executing each process including a process analysis process, a data identification process, and an allocation process:
The process analysis process analyzes the process running in the operating system unit and analyzes the process.
The data specifying step identifies the data to be accessed by the process and the executable file of the data based on the process.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
The allocation step allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory based on the data and the executable file.
本発明によれば、不揮発性メモリ上のデータに対するアクセスを最適化することができる。 According to the present invention, access to data on the non-volatile memory can be optimized.
本発明の情報処理装置において、例えば、
前記割当部は、下記(1)~(4)の少なくとも一方に基づき、前記プロセスを実行するメモリアクセスノードを割り当てる、という態様であってもよい。
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
In the information processing apparatus of the present invention, for example,
The allocation unit may allocate a memory access node for executing the process based on at least one of the following (1) to (4).
(1) At least when the specified data and the execution file exist in the same memory access node, and when the process uses only the execution file existing in the memory access node without using the data. On the other hand, when the specified data and the execution file exist in different memory access nodes, the profile condition set in advance is the central processing unit (2) whose access time is close to that of the non-volatile memory in the memory access node. The central processing unit (3) whose access time is close to that of the non-volatile memory storing either of the data or the execution file that satisfies the above conditions is "by a plurality of memory access nodes. When it has a function that operates according to at least one of the central processing unit and the memory unit that operates when executed, the time distance required for access is close to the non-volatile memory that stores the specified data. When the specified execution file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the central processing unit (4) accesses the non-volatile memory storing the specified data. The central processing unit with a short time distance
本発明の情報処理装置において、例えば、
前記割当部は、前記プロセスが前記中央処理部の前記プロセッサーコアを変更する場合、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコアとは異なる他のプロセッサーコアを割り当てる、という態様であってもよい。
In the information processing apparatus of the present invention, for example,
The allocation unit is different from the processor core that was executing the process, depending on the time distance required for access to the non-volatile memory when the process changes the processor core of the central processing unit. It may be in the form of allocating a processor core.
本発明の情報処理装置は、例えば、
さらに、スワップ処理部を含み、
前記スワップ処理部は、スワップアウトが必要な場合、前記各メモリアクセスノードの前記不揮発性メモリ毎にスワップ領域を作成し、且つ前記各中央処理部とアクセスにかかる時間距離が近い前記不揮発性メモリのスワップ領域に、前記各中央処理部におけるメモリ内のデータをスワップアウトする、という態様であってもよい。
The information processing apparatus of the present invention is, for example,
In addition, it includes a swap processing unit
When swap-out is required, the swap processing unit creates a swap area for each non-volatile memory of each memory access node, and the non-volatile memory having a short access time distance from each central processing unit. The mode may be such that the data in the memory in each of the central processing units is swapped out to the swap area.
本発明の情報処理装置は、例えば、
さらに、指定部を含み、
前記指定部は、前記不揮発性メモリ毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部とアクセスにかかる時間距離が近い不揮発性メモリの前記新たな記憶領域を指定する、という態様であってもよい。
The information processing apparatus of the present invention is, for example,
In addition, including the designated part,
The designated unit creates a new storage area for each of the non-volatile memories, and as a memory for the newly created data, the non-volatile memory has a time distance close to that of the central processing unit that executes the process. It may be in the form of designating a new storage area.
本発明の情報処理装置において、例えば、
前記割当部は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスの数と前記不揮発性メモリ上のデータ及び実行ファイルの少なくとも一方の数に応じて、前記プロセスを前記一方のメモリアクセスノード又は前記他方のメモリアクセスノードにおける前記中央処理部によって実行させるように割り当てる、という態様であってもよい。
In the information processing apparatus of the present invention, for example,
In the allocation unit, when a process executed on one memory access node accesses the non-volatile memory in the other memory access node and creates new data, the number of the processes and the non-volatile memory. Depending on the number of data and at least one of the execution files, the process may be assigned to be executed by the central processing unit in the one memory access node or the other memory access node.
本発明のプロセス実行方法において、例えば、
前記割当工程は、下記(1)~(4)の少なくとも一方に基づき、前記プロセスを実行するメモリアクセスノードを割り当てる、という態様であってもよい。
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
In the process execution method of the present invention, for example,
The allocation step may be an embodiment in which a memory access node for executing the process is allocated based on at least one of the following (1) to (4).
(1) At least when the specified data and the execution file exist in the same memory access node, and when the process uses only the execution file existing in the memory access node without using the data. On the other hand, when the specified data and the execution file exist in different memory access nodes, the profile condition set in advance is the central processing unit (2) whose access time is close to that of the non-volatile memory in the memory access node. The distance required for access is close to the non-volatile memory that stores either the data or the execution file that satisfies the above. Central processing unit (3) The specified execution file itself is "executed by a plurality of memory access nodes." When it has a function that operates according to at least one of the central processing unit and the memory unit that operates when the data is generated, the non-volatile memory that stores the specified data and the time distance required for access are close to each other. Central processing unit (4) When the specified execution file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the time required for access to the non-volatile memory storing the specified data. The central processing unit that is close to the distance
本発明のプロセス実行方法において、例えば、
前記割当工程は、前記プロセスが前記中央処理部の前記プロセッサーコアを変更する場合、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコアとは異なる他のプロセッサーコアを割り当てる、という態様であってもよい。
In the process execution method of the present invention, for example,
The allocation step is different from the processor core that was executing the process, depending on the time distance required for access to the non-volatile memory when the process changes the processor core of the central processing unit. It may be in the form of allocating a processor core.
本発明のプロセス実行方法は、例えば、
さらに、スワップ処理工程を含み、
前記スワップ処理工程は、スワップアウトが必要な場合、前記各メモリアクセスノードの前記不揮発性メモリ毎にスワップ領域を作成し、且つ前記各中央処理部とアクセスにかかる時間距離が近い前記不揮発性メモリのスワップ領域に、前記各中央処理部におけるメモリ内のデータをスワップアウトする、という態様であってもよい。
The process execution method of the present invention is, for example,
In addition, it includes a swap processing process
In the swap processing step, when swap-out is required, a swap area is created for each non-volatile memory of each memory access node, and the non-volatile memory having a short access time distance from each central processing unit. The mode may be such that the data in the memory in each of the central processing units is swapped out to the swap area.
本発明のプロセス実行方法は、例えば、
さらに、指定工程を含み、
前記指定工程は、前記不揮発性メモリ毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部とアクセスにかかる時間距離が近い不揮発性メモリの前記新たな記憶領域を指定する、という態様であってもよい。
The process execution method of the present invention is, for example,
In addition, including designated steps,
In the designated step, a new storage area is created for each of the non-volatile memories, and as a memory for the newly created data, the non-volatile memory has a time distance close to that of the central processing unit that executes the process. It may be in the form of designating a new storage area.
本発明のプロセス実行方法において、例えば、
前記割当工程は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスの数と前記不揮発性メモリ上のデータ及び実行ファイルの少なくとも一方の数に応じて、前記プロセスを前記一方のメモリアクセスノード又は前記他方のメモリアクセスノードにおける前記中央処理部によって実行させるように割り当てる、という態様であってもよい。
In the process execution method of the present invention, for example,
In the allocation process, when a process executed on one memory access node accesses the non-volatile memory in the other memory access node and creates new data, the number of the processes and the non-volatile memory. Depending on the number of data and at least one of the execution files, the process may be assigned to be executed by the central processing unit in the one memory access node or the other memory access node.
本発明の情報処理装置、本発明のプロセス実行方法、及び本発明のプログラムの少なくとも一方において、例えば、
前記不揮発性メモリが、NVDIMM(Non-Volatile Dual In-Line Memory Module)である、という態様であってもよい。
In at least one of the information processing apparatus of the present invention, the process execution method of the present invention, and the program of the present invention, for example,
The non-volatile memory may be an NVDIMM (Non-Volatile Dual In-Line Memory Module).
本発明のプログラムは、本発明の方法の各工程を、手順として、コンピュータに実行させるためのプログラムである。 The program of the present invention is a program for causing a computer to execute each step of the method of the present invention as a procedure.
本発明の記録媒体は、本発明のプログラムを記録しているコンピュータ読み取り可能な記録媒体である。 The recording medium of the present invention is a computer-readable recording medium on which the program of the present invention is recorded.
本発明において、「不揮発性メモリ」は、例えば、メモリコントローラに直結する不揮発性メモリを指し、ユニバーサルメモリともいう。不揮発性メモリは、例えば、CPU等の中央処理装置に直結されている揮発性メモリ(DRAM(Dynamic Random Access Memory)等)をメモリの基盤に用いている。具体的には、例えば、NVDIMM(Nonvolatile Dual In Line Memory Module)等が挙げられる。NVDIMMは、例えば、DRAM(Dynamic Random Access Memory)ワークメモリとNAND(Not AND)ストレージメモリとを統合した形態である。 In the present invention, the "nonvolatile memory" refers to, for example, a non-volatile memory directly connected to a memory controller, and is also referred to as a universal memory. As the non-volatile memory, for example, a volatile memory (DRAM (Dynamic Random Access Memory) or the like) directly connected to a central processing unit such as a CPU is used as the memory base. Specific examples thereof include NVDIMM (Nonvolatile Dual In Line Memory Module) and the like. The NVDIMM is, for example, a form in which a DRAM (Dynamic Random Access Memory) work memory and a NAND (Not AND) storage memory are integrated.
次に、本発明の実施形態について図を用いて説明する。本発明は、以下の実施形態には限定されない。以下の各図において、同一部分には、同一符号を付している。また、各実施形態の説明は、特に言及がない限り、互いの説明を援用でき、各実施形態の構成は、特に言及がない限り、組合せ可能である。 Next, an embodiment of the present invention will be described with reference to the drawings. The present invention is not limited to the following embodiments. In each of the following figures, the same parts are designated by the same reference numerals. Further, the explanations of the respective embodiments can be referred to each other unless otherwise specified, and the configurations of the respective embodiments can be combined unless otherwise specified.
[実施形態1]
図1(A)は、本実施形態の情報処理装置1の一例の構成を示す図である。図1に示すように、本装置1は、オペレーティングシステム部10、及び複数のメモリアクセスノード20(20a及び20b)を含む。本装置1は、例えば、さらに、入出力装置30(以下、IO装置30とする)(30a及び30b)を含んでもよい。本装置1の各部は、それぞれのインタフェース(I/F)により、接続部100を介して相互に接続されている。複数のメモリアクセスノード20の数は、特に制限されず、2つ以上でもよい。同様に、IO装置30の数は、特に制限されず、1つでもよいし、2つ以上でもよい。
[Embodiment 1]
FIG. 1A is a diagram showing a configuration of an example of the information processing apparatus 1 of the present embodiment. As shown in FIG. 1, the apparatus 1 includes an
また、本装置1は、前記通信回線網を介して、後述する外部装置と接続可能である。前記通信回線網は、特に制限されず、公知のネットワークを使用でき、例えば、有線でも無線でもよい。前記通信回線網は、例えば、インターネット回線、WWW(World Wide Web)、電話回線、LAN(Local Area Network)、SAN(Storage Area Network)、DTN(Delay Tolerant Networking)、ポイントツーポイント(P2P)ネットワーク等があげられる。無線通信としては、例えば、WiFi(Wireless Fidelity)、Bluetooth(登録商標)等が挙げられる。前記無線通信としては、各装置が直接通信する形態(Ad Hoc通信)、アクセスポイントを介した間接通信のいずれであってもよい。本装置1は、例えば、本発明のプログラムがインストールされたパーソナルコンピュータ(PC、例えば、デスクトップ型、ノート型)、端末(スマートフォン、タブレット端末)等であってもよい。 Further, the present device 1 can be connected to an external device described later via the communication network. The communication network is not particularly limited, and a known network can be used, and may be wired or wireless, for example. The communication line network includes, for example, an internet line, WWW (World Wide Web), a telephone line, a LAN (Local Area Network), a SAN (Storage Area Network), a DTN (Delay Tolerant Network), a point-to-point network (P2), and the like. Can be given. Examples of wireless communication include WiFi (Wireless Fidelity), Bluetooth (registered trademark) and the like. The wireless communication may be either a form in which each device communicates directly (Ad Hoc communication) or an indirect communication via an access point. The present device 1 may be, for example, a personal computer (PC, for example, a desktop type, a notebook type), a terminal (smartphone, a tablet terminal) or the like in which the program of the present invention is installed.
接続部100は、例えば、外部装置とも接続できる。前記外部装置は、例えば、外部記憶装置(外部データベース等)、プリンター、外部入力装置、外部表示装置等があげられる。本装置1は、例えば、接続部100に接続された通信デバイスにより、外部ネットワーク(前記通信回線網)に接続でき、外部ネットワークを介して、他の装置と接続することもできる。具体的に、接続部100は、例えば、バス、シリアルリンク等である。
The
IO装置30は、例えば、ネットワークなどの各種デバイスとのデータのやり取りを行うためのインタフェースを備えている。 The IO device 30 includes an interface for exchanging data with various devices such as a network.
図1(B)は、本実施形態のメモリアクセスノード20の一例の構成を示す図である。図1に示すように、メモリアクセスノード20は、中央処理部21と、メモリコントローラ22と、メモリ部23とを含む。メモリアクセスノード20とは、例えば、アクセスの対象となるメモリを含むノードである。メモリアクセスノード20は、例えば、NUMAアーキテクチャを構成するNUMAノードである。以下、メモリアクセスノード20を、NUMAノード20やノード20ともいう。
FIG. 1B is a diagram showing a configuration of an example of the
中央処理部21は、中央処理装置211を含む。中央処理装置211は、プロセッサーコア2111及び接続コントローラ2112を含む。具体的に、中央処理部21は、例えば、複数の中央処理装置211を含むマルチプロセッサーの形態でもよいし、1つの中央処理装置211内に複数のプロセッサーコア2111を含むマルチコアプロセッサーの形態であってもよい。また、本装置1は、例えば、1つの中央処理装置211における各部を別々のNUMAノードに振り分ける形態であってもよい。具体的には、例えば、中央処理装置211を半分、メモリを半分に分けて、それぞれで1つのNUMAノードを構成してもよい。中央処理装置211としては、例えば、CPU、GPU、APU等が挙げられる。本装置1において、中央処理部21により、例えば、本発明のプログラムやその他のプログラムが実行され、また、各種情報の読み込みや書き込みが行われる。また、中央処理装置211は、接続コントローラ2112を介して、他の中央処理装置と接続する。前記他の中央処理装置とは、他のメモリアクセスノード20内の中央処理装置211であってもよいし、同一のメモリアクセスノード20内の中央処理装置211であってもよい。接続コントローラ2112は、例えば、データ伝送路を用いて各中央処理装置211間の接続を可能にする。前記データ伝送路は、特に制限されず、例えば、フロントサイドバス(FSB:Front-Side Bus)等のバス型のデータ伝送路やUPI(Ultra Path Interconnect)等のポイントツーポイント(一対一)接続のインターコネクト等がある。
The
メモリコントローラ22は、例えば、後述するメモリ部23へのデータの書込み及び読出しを制御する。
The
メモリ部23は、不揮発性メモリ231を含む。不揮発性メモリ231は、前述と同様である。中央処理部21が前記マルチコアの形態である場合、不揮発性メモリ231は、例えば、個々のプロセッサーコアの動作に対応して動作が可能なメモリであってもよい。また、メモリ部23は、例えば、一つ以上の不揮発性のメモリ領域を有するメモリであってもよい。メモリ部23は、メモリコントローラ22を介して、中央処理部21と高速なネットワークで接続される。また、メモリ部23は、例えば、揮発性メモリを含んでもよい。
The
オペレーティングシステム部10(以下、OS部10ともいう)は、プロセス解析部11、データ特定部12、及び割当部13を含む。また、オペレーティングシステム部10は、例えば、任意の構成として、スワップ処理部14、及び指定部15を含んでもよい。
The operating system unit 10 (hereinafter, also referred to as an OS unit 10) includes a
OS部10は、メモリ部23の上で動作する。さらに、OS部10の上では、アプリケーションとしてのプロセスが稼働する。前記プロセスは、特に制限されず、1つでもよいし、1つ以上であってもよい。OS部10は、本装置1内の全てのメモリアクセスノード20を制御する。
The
つぎに、本実施形態のプロセス実行方法の一例を、図2のフローチャートに基づき説明する。本実施形態のプロセス実行方法は、例えば、図1の情報処理装置1を用いて、次のように実施する。なお、本実施形態のプロセス実行方法は、図1の情報処理装置1の使用には限定されない。 Next, an example of the process execution method of the present embodiment will be described with reference to the flowchart of FIG. The process execution method of the present embodiment is carried out as follows, for example, by using the information processing apparatus 1 of FIG. The process execution method of the present embodiment is not limited to the use of the information processing apparatus 1 of FIG.
まず、プロセス解析部11により、OS部10で稼動するプロセスを解析する(S11)。次に、データ特定部12により、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定する(S12)。前記データ及び前記実行ファイルは、例えば、特定のメモリアクセスノードの不揮発性メモリ231上や揮発性メモリ上に格納されているファイル及びデータである。そして、割当部13により、前記データ及び前記実行ファイルに基づいて、不揮発性メモリ231とのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノード20から前記プロセスを実行する中央処理部21、すなわち、中央処理装置211及びプロセッサーコア2111を割り当て(S13)、終了する(END)。割当部13は、例えば、プロセススケジューラ部13ともいい、前記割り当ては、例えば、スケジューリングともいう。なお、スケジューリングとは、例えば、プロセスやスレッド等を中央処理装置211上で動作させることをいう。
First, the
具体的に、本実施形態について、図3を用いて説明する。図3は、割当部13による処理の一例を示す図である。図3に示す例では、メモリアクセスノード20として、2つのメモリアクセスノード20a及び20bを示す。図3(A)では、データ特定部12により特定した前記データ及びその実行ファイルの双方が、メモリアクセスノード20aのメモリ部23a(不揮発性メモリ231a)上に存在する。なお、不揮発性メモリ231aは、中央処理部21a(中央処理装置211a)のプロセッサーコア2111aの動作に対応して動作する不揮発性メモリであり、不揮発性メモリ231bは、中央処理部21b(中央処理装置211b)のプロセッサーコア2111bの動作に対応して動作する不揮発性メモリである(以下、同様)。そして、割当部13は、どのプロセスをどのメモリアクセスノード20の中央処理部21で実行すべきかの割り当てを決定する。図3(A)に示す例では、割当部13は、前記解析したプロセスに対し、前記データ及びその実行ファイルの双方を保存しているメモリアクセスノード20aの不揮発性メモリ231aとアクセスにかかる時間距離が最も近い中央処理部21a(中央処理装置211a及びプロセッサーコア2111a)を割り当てる。ここで、不揮発性メモリ231とのアクセスにかかる時間距離とは、例えば、物理的な距離、アクセスに用いるデータ伝送路の経路長、バンド幅(並列性)、D/A(Digital/Analog)変換効率(周波数等)、SWプロトコルの効率等の要素に基づいて、算出されるアクセス時間(アクセス速度)による距離である。具体的に、図3(A)の例では、例えば、メモリアクセスノード20aの不揮発性メモリ231aと中央処理部21a間、及びメモリアクセスノード20bの不揮発性メモリ231bと中央処理部21b間のように、同一メモリアクセスノード20内の不揮発性メモリ231と中央処理部21とのアクセスにかかる時間距離が最も近い。次にアクセスにかかる時間距離が近いのは、メモリアクセスノード20aの不揮発性メモリ231aとメモリアクセスノード20bの中央処理部21b間、及びメモリアクセスノード20bの不揮発性メモリ231bとメモリアクセスノード20aの中央処理部21a間のように、各接続コントローラ2112を介して、直接接続する一方のメモリアクセスノード20内の不揮発性メモリ231と他方のメモリアクセスノード20内の中央処理部21とのアクセスにかかる時間距離である。なお、本例では、メモリアクセスノード20が2つであり、それぞれに1つの中央処理装置211(中央処理部21)がある例を示したが、これに限定されない。メモリアクセスノード20の数及び中央処理装置211の数は、1つ以上、及び2つ以上であってもよい。すなわち、アクセスにかかる時間距離の遠近は、いくつの接続コントローラ2112を介するか、言い換えれば、他の中央処理装置211及び他のメモリアクセスノード20を経由する数によって、決定される。
Specifically, this embodiment will be described with reference to FIG. FIG. 3 is a diagram showing an example of processing by the
また、図示しないが、前記プロセスが前記データを使用せずに、メモリアクセスノード20内のメモリ部23に存在する前記実行ファイルのみを使用する場合も、図3(A)に示す例と同様に、割当部13は、前記解析したプロセスに対し、前記実行ファイルを保存しているノード20の不揮発性メモリ231とアクセスにかかる時間距離が最も近い中央処理部21(中央処理装置211及びプロセッサーコア2111)を割り当ててもよい。前記プロセスが前記データを使用しないとは、例えば、データ特定部12により、前記データが特定されず、且つ前記実行ファイルのみが特定されたことを意味する。
Further, although not shown, when the process does not use the data and uses only the execution file existing in the
図3(B)では、データ特定部12により特定した前記データがメモリ部23b(不揮発性メモリ231b)上に存在し、前記データの実行ファイルがメモリ部23a(不揮発性メモリ231a)上に存在する。すなわち、データとその実行ファイルの保存場所がそれぞれ異なっている。この場合では、割当部13は、前記解析したプロセスに対し、予め設定したプロファイル条件を満たす前記データ及び前記実行ファイルのいずれか一方を保存している不揮発性メモリ231とアクセスにかかる時間距離が近い中央処理部21を割り当てる。前記プロファイル条件は、特に制限されず、任意に設定可能である。具体的には、例えば、データサイズの大きさ(データサイズが大きい又は小さい等)等に関する条件がある。図3(B)に示す例では、不揮発性メモリ231b上のデータは、不揮発性メモリ231a上の実行ファイルよりもデータサイズが大きく、且つ予め設定したプロファイル条件が「データサイズが大きい」であるとする。そうすると、割当部13は、前記解析したプロセスに対し、データサイズが大きい前記データを保存している不揮発性メモリ231bとアクセスにかかる時間距離が最も近い中央処理部21b(中央処理装置211b及びプロセッサーコア2111b)を割り当てる。
In FIG. 3B, the data specified by the
図3(C)では、データ特定部12により特定した前記データが不揮発性メモリ231a及び231b上の双方に存在し、前記データの実行ファイルが不揮発性メモリ231a上に存在する。具体的に、図3(C)に示す例は、ハイパーバイザー、マルチプロセッサー及びマルチコアプロセッサー等に対応するデータベース、Enterprise Resource Planning等のアプリケーション等の形態における一例である。すなわち、特定した実行ファイル自身が、「複数のメモリアクセスノード20によって実行されたときに、動作する中央処理部21及びメモリ部23の少なくとも一方に応じて最適に動作する機能(NUMA最適化機能ともいう)」を有している。このように、NUMA最適機構がある場合、割当部13は、どのメモリアクセスノード20で前記実行ファイルを実行しても最適化されるため、前記実行ファイルの位置を考慮せず、前記解析したプロセスに対し、前記データが格納されている不揮発性メモリ231bとアクセスにかかる時間距離が近い中央処理装置21b(中央処理装置211b及びプロセッサーコア2111b)を割り当ててもよい。
In FIG. 3C, the data specified by the
また、図示しないが、特定した前記実行ファイルが不揮発性メモリ231以外のストレージ(例えば、HDD、クラウドストレージ(ネットワーク上のストレージ)等)に存在し、前記データが不揮発性メモリ231に存在する場合も、図3(B)に示す例と同様に、割当部13は、前記解析したプロセスに対し、前記データが格納されている不揮発性メモリ231とアクセスにかかる時間距離が近い中央処理装置21(中央処理装置211及びプロセッサーコア2111)を割り当ててもよい。より具体的には、例えば、実行ファイルがNVDIMMではなくHDD等から起動し、データファイルはNVDIMMから読む場合等がある。
Further, although not shown, the specified execution file may exist in a storage other than the non-volatile memory 231 (for example, HDD, cloud storage (storage on the network), etc.), and the data may exist in the
中央処理装置からメモリ上のデータへのアクセス速度は、前記データが同じメモリアクセスノード内のデータであるか否かによってアクセス速度が異なることが知られている。すなわち、プロセスを実行する中央処理装置から前記中央処理装置と同じメモリアクセスノード内の不揮発性メモリへのアクセスは、高速で処理できる。しかしながら、プロセスを実行する中央処理装置から他のメモリアクセスノード内の不揮発性メモリへのアクセスは、同じメモリアクセスノード内へのアクセス速度と比較して低速で処理される。具体的に、アクセス速度の遅いハードディスク(HDD)への1回のアクセスにかかる時間を100として、他のメモリアクセスノードをまたぐのにかかる時間を0.04とすると、自メモリアクセスノードから他メモリアクセスノードへのアクセス差は、0.04%の差にしかならない。しかしながら、NVDIMM等の高速なユニバーサルメモリであれば、1回のアクセスにかかる時間が前記HDDと比較して極めて短い(例えば、アクセス速度の遅いハードディスク(HDD)への1回のアクセスにかかる時間を100とすると、0.01)であるため、前記他のメモリアクセスノードをまたぐのに必要な時間である0.04の影響が大きく、自メモリアクセスノードから他メモリアクセスノードへのアクセス差が、前記HDDと比較して極めて高くなるという問題がある。しかしながら、本実施形態によれば、プロセスの実行前に、プロセッサーコアの割り当てを行うことで、不揮発性メモリ上のデータに対するアクセスを最適化することができる。このため、本実施形態によれば、例えば、一方の中央処理装置から他方の中央処理装置に接続された不揮発性メモリにアクセスする場合においても、高速なアクセスを可能にする。 It is known that the access speed of the data on the memory from the central processing unit differs depending on whether or not the data is data in the same memory access node. That is, the access from the central processing unit that executes the process to the non-volatile memory in the same memory access node as the central processing unit can be processed at high speed. However, access to the non-volatile memory in another memory access node from the central processing unit that executes the process is processed at a slower speed than the access speed in the same memory access node. Specifically, assuming that the time required for one access to a hard disk (HDD) having a slow access speed is 100 and the time required for straddling another memory access node is 0.04, the time required for straddling another memory access node is 0.04. The access difference to the access node is only 0.04%. However, in the case of a high-speed universal memory such as NVDIMM, the time required for one access is extremely short as compared with the HDD (for example, the time required for one access to a hard disk (HDD) having a slow access speed). If it is 100, it is 0.01), so the influence of 0.04, which is the time required to straddle the other memory access nodes, is large, and the access difference from the own memory access node to the other memory access node is large. There is a problem that it is extremely expensive as compared with the HDD. However, according to the present embodiment, access to the data on the non-volatile memory can be optimized by allocating the processor core before executing the process. Therefore, according to the present embodiment, for example, even when accessing the non-volatile memory connected to the other central processing unit from one central processing unit, high-speed access is possible.
特許文献1の技術では、任意のプロセッサーコアでプロセスを実行してから、そのCPUに近いメモリを割り当てている。しかしながら、本発明は、プロセスの実行前に、前記データ及び前記実行ファイルに基づいて、前記プロセスを実行する前記プロセッサーコア(すなわち、中央処理装置)を割り当てる。これにより、本発明は、特許文献1の技術に比べて、プロセスをより高速に動作させることができる。また、本発明は、特許文献1の技術に比べて、プロセスを高速に動作させるために、必要なシステムの数(コスト)を削減することができる。 In the technique of Patent Document 1, a process is executed on an arbitrary processor core, and then a memory close to the CPU is allocated. However, the present invention allocates the processor core (ie, the central processing unit) that executes the process based on the data and the executable prior to the execution of the process. Thereby, the present invention can operate the process at a higher speed than the technique of Patent Document 1. Further, the present invention can reduce the number (cost) of systems required for operating the process at a high speed as compared with the technique of Patent Document 1.
[実施形態2]
プロセスを実行するプロセッサーコア(中央処理装置)を変更する場合における処理の一例について説明する。本実施形態の情報処理装置1及びプロセス実行方法は、特に言及しない限り、前記実施形態1の記載を援用できる。
[Embodiment 2]
An example of processing when the processor core (central processing unit) that executes a process is changed will be described. Unless otherwise specified, the information processing apparatus 1 and the process execution method of the present embodiment can incorporate the description of the first embodiment.
本実施形態において、割当部13は、例えば、図2に示す前記工程(S13)の後、前記プロセスが中央処理部21のプロセッサーコア2111を変更する場合、不揮発性メモリ231とのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコア2111とは異なる他のプロセッサーコア2111を割り当てる。他のプロセッサーコア2111は、例えば、同一のメモリアクセスノード20内の他のプロセッサーコア2111であってもよいし、他のメモリアクセスノード20内のプロセッサーコア2111であってもよい。すなわち、割当部13は、例えば、前記プロセスを実行していたプロセッサーコア2111の次に前記アクセスにかかる時間距離が近い他のプロセッサーコア2111を割り当てる。このように、割当部13は、例えば、前記プロセスの実行をリスケジューリングするともいえる。なお、リスケジューリングとは、例えば、プロセスやスレッド等を中央処理装置上で再度動作させることをいう。
In the present embodiment, for example, when the process changes the processor core 2111 of the
具体的に、本実施形態について、図4を用いて説明する。図4は、割当部13による処理の一例を示す図である。図4に示す例では、メモリアクセスノード20として、2つのメモリアクセスノード20a及び20bを示し、メモリアクセスノード20aにおける中央処理部21a内に2つのプロセッサーコア2111a1及び2111a2を示す。図4(A)では、データ特定部12により特定した前記データが、不揮発性メモリ231a上に存在する。そして、割当部13は、前記プロセスを実行するプロセッサーコア2111a1を変更する場合、前記割り当てたプロセッサーコア2111a1のメモリアクセスノード20aは変更せず、メモリアクセスノード20a内の他のプロセッサーコア2111a2を割り当てる。そして、前記割り当てによって、前記変更の前後で同一のメモリアクセスノード20a内で前記プロセスの実行が継続される。
Specifically, this embodiment will be described with reference to FIG. FIG. 4 is a diagram showing an example of processing by the
一方で、例えば、図4(B)に示すように、特定した前記実行ファイル及び前記データの双方がメモリアクセスノード20b内の不揮発性メモリ231b上に存在し、前記プロセスがメモリアクセスノード20a内の中央処理部21aにより実行されている場合、割当部13は、例えば、不揮発性メモリ231bとのアクセスにかかる時間距離に応じて、前記プロセスを実行する中央処理部21aに代えて、新たにメモリアクセスノード20b内の中央処理部21bを、前記プロセスを実行する中央処理部21として割り当てる。
On the other hand, for example, as shown in FIG. 4B, both the specified execution file and the data are present on the
このように、本実施形態は、プロセスを実行するプロセッサーコア2111(中央処理装置211)を変更する場合であっても、不揮発性メモリ231とのアクセスにかかる時間距離に応じて、すなわち、前記データ及び前記実行ファイルの位置を考慮したリスケジューリングを行う。したがって、本実施形態によれば、前記実施形態1と同様に、不揮発性メモリ上のデータに対するアクセスを最適化することができる。なお、プロセスを実行するプロセッサーコア2111(中央処理装置211)を変更する場合とは、例えば、プロセッサーコア2111及びプロセスが複数あるなかでスケジューリングを実行する環境下において、プロセッサーコア2111を順番に使用するように前記プロセスの実行を制御する場合等がある。
As described above, in the present embodiment, even when the processor core 2111 (central processing unit 211) for executing the process is changed, the data is determined according to the time distance required for access to the
関連する技術では、キャッシュを行う際に、アクセスするデータをCPU等の中央処理装置の近くに移動させる処理が必要である。また、キャッシュの実行には、データの書き込みが実行されたときに元データへの書き戻しを行ったり、他にキャッシュしている情報のバリデーションを行ったり等の中間処理が生じる。しかしながら、本実施形態によれば、前記データを直接使用できるため、前述のような処理を行う必要がなく、キャッシュと同等の機能を効率的に実施できる。 In a related technique, when caching is performed, it is necessary to move the data to be accessed closer to a central processing unit such as a CPU. Further, in the execution of the cache, intermediate processing such as writing back to the original data when the data is written or validating other cached information occurs. However, according to the present embodiment, since the data can be used directly, it is not necessary to perform the above-mentioned processing, and the function equivalent to the cache can be efficiently performed.
[実施形態3]
スワップアウトを行う場合における処理の一例について説明する。本実施形態の情報処理装置1及びプロセス実行方法は、特に言及しない限り、前記実施形態1及び2の記載を援用できる。
[Embodiment 3]
An example of processing in the case of swapping out will be described. Unless otherwise specified, the information processing apparatus 1 and the process execution method of the present embodiment can incorporate the description of the first and second embodiments.
本実施形態において、本装置1は、さらに、スワップ処理部14を含む。図5に、スワップ処理部14による処理の一例について示す。スワップ処理部14は、図5に示すように、各メモリアクセスノード20(20a及び20b)の不揮発性メモリ231(231a及び231b)毎にスワップアウトのためのメモリ領域であるスワップ領域を作成し、且つ各中央処理部21(21a及び21b)とアクセスにかかる時間距離が近い不揮発性メモリ231のスワップ領域に、各中央処理部21(21a及び21b)におけるメモリ内のデータをスワップアウトする。「不揮発性メモリ231毎にスワップ領域を作成する」とは、すなわち、不揮発性メモリ231に対応するプロセッサーコア2111毎に、不揮発性メモリ231上にスワップ領域を作成するともいえる。スワップ処理部14は、例えば、各中央処理部21とアクセスにかかる時間距離が最も近い不揮発性メモリ231のスワップ領域に対し、前記スワップアウトを実行してもよいし、次にアクセスにかかる時間距離が近い不揮発性メモリ231のスワップ領域に対し、前記スワップアウトを実行してもよい。各プロセッサーコア2111におけるメモリとは、例えば、揮発性メモリである。
In the present embodiment, the apparatus 1 further includes a
ここで、スワップアウトとは、例えば、プロセッサーコア2111のメモリに確保されているメモリ領域と同じ領域を不揮発性メモリ231に確保し、前記メモリ領域に書き込まれているデータと同じデータを不揮発性メモリ231に確保したスワップ領域(メモリ領域)に書込み、前記メモリのメモリ領域を解放することをいう。なお、「スワップアウトが必要な場合」とは、例えば、仮想メモリの機能を実現させる場合である。具体的に、例えば、メモリ容量以上の領域を有するディスクが搭載されているサーバにおいて、使わないメモリ領域のデータをディスクに一時退避して、実際に搭載されている以上のメモリ容量を実行する場合等がある。
Here, the swap-out means, for example, that the same area as the memory area reserved in the memory of the processor core 2111 is secured in the
このように、本実施形態は、メモリアクセスノード20単位で、スワップアウトを実行する。本実施形態によれば、前記実施形態1及び2と同様に、不揮発性メモリ上のデータに対するアクセスを最適化することができる。 As described above, in this embodiment, swap-out is executed in units of 20 memory access nodes. According to the present embodiment, the access to the data on the non-volatile memory can be optimized as in the first and second embodiments.
[実施形態4]
新しいデータを作成する場合における処理の一例について説明する。本実施形態の情報処理装置1及びプロセス実行方法は、特に言及しない限り、前記実施形態1~3の記載を援用できる。
[Embodiment 4]
An example of processing when creating new data will be described. Unless otherwise specified, the information processing apparatus 1 and the process execution method of the present embodiment can incorporate the description of the first to third embodiments.
本実施形態において、新しいデータは、特に制限されず、例えば、新規作成されるデータでもよいし、上書きされるデータでもよい。具体的には、例えば、データを記憶する場所を示すファイルパスが決まっていないデータ、ファイルパスが既に決まっており且つ同じメモリアクセスノードに記憶されていないデータ、及びファイルパスが既に決まっており且つ他のプロセスと共有されるデータ、等がある。図6に、新しいデータを作成する場合の処理の一例を示す。図6(A)は、ファイルパスが決まっていないデータの場合における処理の一例を示し、図6(B)は、ファイルパスが既に決まっているデータの場合における処理の一例を示す。 In the present embodiment, the new data is not particularly limited, and may be, for example, newly created data or overwritten data. Specifically, for example, data in which a file path indicating a location for storing data has not been determined, data in which a file path has already been determined and is not stored in the same memory access node, and data in which a file path has already been determined. There is data shared with other processes, etc. FIG. 6 shows an example of processing when creating new data. FIG. 6A shows an example of processing in the case of data for which the file path has not been determined, and FIG. 6B shows an example of processing in the case of data for which the file path has already been determined.
まず、前記新しいデータとして、中間ファイル、テンポラリファイル、キャッシュファイル等のファイルパスが決まっていないデータの場合における処理の一例について説明する。この場合において、本装置1は、例えば、さらに、指定部15を含んでもよい。指定部15は、図6(A)に示すように、不揮発性メモリ231(231a及び231b)毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部21とアクセスにかかる時間距離が近い不揮発性メモリ231の前記新たな記憶領域を指定する。より具体的に、例えば、図6(A)に示すように、指定部15により前記新たな記憶領域を指定されたプロセスあるいはOS部10が、プロセスを実行している中央処理部21aとアクセスにかかる時間距離が最も近い揮発性メモリ231aに新しいデータ(テンポラリファイル等)を作成する。
First, as the new data, an example of processing in the case of data such as an intermediate file, a temporary file, and a cache file whose file path is not determined will be described. In this case, the apparatus 1 may further include, for example, a designated
テンポラリファイルに関しては、これまでは、temp変数などで指定された場所に保存されていた。また、ディスクキャッシュや中間ファイルに関しては、テンポラリフォルダや、特定のSSDなどに保存されていた。しかしながら、本実施形態によれば、新しいデータを作成する場合、不揮発性メモリ231毎に保存場所を作成し、プロセスを実行するプロセッサーコア2111と近い記憶領域に保存される。このため、前記実施形態1~3と同様に、不揮発性メモリ上のデータに対するアクセスを最適化することができる。
Until now, temporary files have been saved in the location specified by the temp variable. In addition, the disk cache and intermediate files were saved in temporary folders and specific SSDs. However, according to the present embodiment, when new data is created, a storage location is created for each
次に、前記新しいデータとして、ファイルパスが既に決まっているデータの場合における処理の一例について説明する。具体的に、本例は、ファイルパスが既に決まっており且つ同じメモリアクセスノードに記憶されていないデータ、及びファイルパスが既に決まっており且つ他のプロセスと共有されるデータの場合における処理の一例である。割当部13は、図6(B)に示すように、メモリアクセスノード20a上で実行するプロセス(アプリケーション)Aが、メモリアクセスノード20bにおける不揮発性メモリ231bにアクセスして新たなデータを作成する場合、前記プロセスの数と不揮発性メモリ231b上のデータ及び実行ファイルの少なくとも一方の数に応じて、プロセスAをメモリアクセスノード20bにおける中央処理部21bによって実行させるようにリスケジュールする。なお、プロセスBは、メモリアクセスノード20b上で実行するプロセス(アプリケーション)である。このように、割当部13は、例えば、各プロセスが、できるだけ1つのメモリアクセスノード20に集まるようにリスケジュールする。割当部13は、例えば、さらに、前記データ及び前記データに対応する実行ファイルの少なくとも一方のプロファイルに基づき、前記リスケジュールを行ってもよい。前記プロファイルは、特に制限されず、例えば、前記実行ファイルのプロファイルとしては、データサイズやワーキングセットサイズ、イメージセグメントのサイズ、データセグメントのサイズ等があり、前記データのプロファイルとしては、データのサイズ等がある。なお、本例では、プロセスの数を2、不揮発性メモリ231上のデータの数を1としたが、これに限定されない。割当部13は、例えば、M個のプロセスが、N個のデータ及び実行ファイルの少なくとも一方を共有している場合、M個のプロセスのうち1つのプロセスがアクセスするN個のデータ及び実行ファイルの少なくとも一方がどの不揮発性メモリ231上に格納されているのかを特定し、前記特定した不揮発性メモリ231の数が最も多いメモリアクセスノード20における中央処理部21によって前記プロセスが実行させるようにリスケジュールする。前記1つのプロセス以外のプロセスについても同様に処理する。このように、前記データ及び前記実行ファイルの少なくとも一方に対する前記プロセスのアクセス数に応じてリスケジュールを行う。
Next, as the new data, an example of processing in the case of data for which a file path has already been determined will be described. Specifically, this example is an example of processing in the case of data whose file path has already been determined and is not stored in the same memory access node, and data whose file path has already been determined and is shared with other processes. Is. As shown in FIG. 6B, when the process (application) A executed on the
このように、本実施形態は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスを実行する中央処理部21を、不揮発性メモリ231とアクセスにかかる時間距離が近い中央処理部21に変更することで、不揮発性メモリ上のデータに対するアクセスを最適化することができる。
As described above, in the present embodiment, when the process executed on one memory access node accesses the non-volatile memory in the other memory access node and creates new data, the central process for executing the process is executed. Access to the data on the non-volatile memory can be optimized by changing the
[実施形態5]
本実施形態のプログラムは、本発明の方法の各工程を、手順として、コンピュータに実行させるためのプログラムである。本発明において、「手順」は、「処理」と読み替えてもよい。また、本実施形態のプログラムは、例えば、コンピュータ読み取り可能な記録媒体に記録されていてもよい。前記記録媒体としては、特に限定されず、例えば、読み出し専用メモリ(ROM)、ハードディスク(HD)、光ディスク等が挙げられる。
[Embodiment 5]
The program of the present embodiment is a program for causing a computer to execute each step of the method of the present invention as a procedure. In the present invention, "procedure" may be read as "processing". Further, the program of the present embodiment may be recorded on a computer-readable recording medium, for example. The recording medium is not particularly limited, and examples thereof include a read-only memory (ROM), a hard disk (HD), and an optical disk.
以上、実施形態を参照して本発明を説明したが、本発明は、上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をできる。 Although the present invention has been described above with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the structure and details of the present invention within the scope of the present invention.
<付記>
上記の実施形態の一部または全部は、以下の付記のように記載されうるが、以下には限られない。
(付記1)
オペレーティングシステム部と、複数のメモリアクセスノードとを含み、
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、プロセス解析部、データ特定部、及び割当部を含み、
前記プロセス解析部は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定部は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当部は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる、情報処理装置。
(付記2)
前記割当部は、下記(1)~(4)の少なくとも一方に基づき、前記プロセスを実行するメモリアクセスノードを割り当てる、付記1記載の情報処理装置。
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(付記3)
前記割当部は、前記プロセスが前記中央処理部の前記プロセッサーコアを変更する場合、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコアとは異なる他のプロセッサーコアを割り当てる、付記1又は2記載の情報処理装置。
(付記4)
さらに、スワップ処理部を含み、
前記スワップ処理部は、スワップアウトが必要な場合、前記各メモリアクセスノードの前記不揮発性メモリ毎にスワップ領域を作成し、且つ前記各中央処理部とアクセスにかかる時間距離が近い前記不揮発性メモリのスワップ領域に、前記各中央処理部におけるメモリ内のデータをスワップアウトする、付記1から3のいずれかに記載の情報処理装置。
(付記5)
さらに、指定部を含み、
前記指定部は、前記不揮発性メモリ毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部とアクセスにかかる時間距離が近い不揮発性メモリの前記新たな記憶領域を指定する、付記1から4のいずれかに記載の情報処理装置。
(付記6)
前記割当部は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスの数と前記不揮発性メモリ上のデータ及び実行ファイルの少なくとも一方の数に応じて、前記プロセスを前記一方のメモリアクセスノード又は前記他方のメモリアクセスノードにおける前記中央処理部によって実行させるように割り当てる、付記1から5のいずれかに記載の情報処理装置。
(付記7)
前記不揮発性メモリが、NVDIMM(Non-Volatile Dual In-Line Memory Module)である、付記1から6のいずれかに記載の情報処理装置。
(付記8)
オペレーティングシステム部と、複数のメモリアクセスノードとを含み、
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、プロセス解析工程、データ特定工程、及び割当工程を含む各工程を実行するプロセス実行方法:
前記プロセス解析工程は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定工程は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当工程は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる。
(付記9)
前記割当工程は、下記(1)~(4)の少なくとも一方に基づき、前記プロセスを実行するメモリアクセスノードを割り当てる、付記8記載のプロセス実行方法。
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(付記10)
前記割当工程は、前記プロセスが前記中央処理部の前記プロセッサーコアを変更する場合、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコアとは異なる他のプロセッサーコアを割り当てる、付記8又は9記載のプロセス実行方法。
(付記11)
さらに、スワップ処理工程を含み、
前記スワップ処理工程は、スワップアウトが必要な場合、前記各メモリアクセスノードの前記不揮発性メモリ毎にスワップ領域を作成し、且つ前記各中央処理部とアクセスにかかる時間距離が近い前記不揮発性メモリのスワップ領域に、前記各中央処理部におけるメモリ内のデータをスワップアウトする、付記8から10のいずれかに記載のプロセス実行方法。
(付記12)
さらに、指定工程を含み、
前記指定工程は、前記不揮発性メモリ毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部とアクセスにかかる時間距離が近い不揮発性メモリの前記新たな記憶領域を指定する、付記8から11のいずれかに記載のプロセス実行方法。
(付記13)
前記割当工程は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスの数と前記不揮発性メモリ上のデータ及び実行ファイルの少なくとも一方の数に応じて、前記プロセスを前記一方のメモリアクセスノード又は前記他方のメモリアクセスノードにおける前記中央処理部によって実行させるように割り当てる、付記8から12のいずれかに記載のプロセス実行方法。
(付記14)
前記不揮発性メモリが、NVDIMM(Non-Volatile Dual In-Line Memory Module)である、付記8から13のいずれかに記載のプロセス実行方法。
(付記15)
オペレーティングシステム部と、複数のメモリアクセスノードとを含み、
前記NUMA各ノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部に、プロセス解析手順、データ特定手順、及び割当手順を含む手順を実行させるためのプログラム:
前記プロセス解析手順は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定手順は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当手順は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる。
(付記16)
前記割当手順は、下記(1)~(4)の少なくとも一方に基づき、前記プロセスを実行するメモリアクセスノードを割り当てる、付記15記載のプログラム。
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(付記17)
前記割当手順は、前記プロセスが前記中央処理部の前記プロセッサーコアを変更する場合、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコアとは異なる他のプロセッサーコアを割り当てる、付記15又は16記載のプログラム。
(付記18)
さらに、スワップ処理手順を含み、
前記スワップ処理手順は、スワップアウトが必要な場合、前記各メモリアクセスノードの前記不揮発性メモリ毎にスワップ領域を作成し、且つ前記各中央処理部とアクセスにかかる時間距離が近い前記不揮発性メモリのスワップ領域に、前記各中央処理部におけるメモリ内のデータをスワップアウトする、付記15から17のいずれかに記載のプログラム。
(付記19)
さらに、指定手順を含み、
前記指定手順は、前記不揮発性メモリ毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部とアクセスにかかる時間距離が近い不揮発性メモリの前記新たな記憶領域を指定する、付記15から18のいずれかに記載のプログラム。
(付記20)
前記割当手順は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスの数と前記不揮発性メモリ上のデータ及び実行ファイルの少なくとも一方の数に応じて、前記プロセスを前記一方のメモリアクセスノード又は前記他方のメモリアクセスノードにおける前記中央処理部によって実行させるようにリスケジュールする、付記15から19のいずれかに記載のプログラム。
(付記21)
前記不揮発性メモリが、NVDIMM(Non-Volatile Dual In-Line Memory Module)である、付記15から20のいずれかに記載のプログラム。
(付記22)
付記15から21のいずれかに記載のプログラムを記録しているコンピュータ読み取り可能な記録媒体。
<Additional Notes>
Some or all of the above embodiments may be described as, but not limited to, the following appendixes.
(Appendix 1)
Includes operating system section and multiple memory access nodes
Each memory access node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
The operating system unit includes a process analysis unit, a data identification unit, and an allocation unit.
The process analysis unit analyzes the process running in the operating system unit and analyzes the process.
Based on the process, the data specifying unit identifies the data to be accessed by the process and the executable file of the data.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
Based on the data and the executable file, the allocation unit allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory. Processing equipment.
(Appendix 2)
The information processing apparatus according to Appendix 1, wherein the allocation unit allocates a memory access node for executing the process based on at least one of the following (1) to (4).
(1) At least when the specified data and the execution file exist in the same memory access node, and when the process uses only the execution file existing in the memory access node without using the data. On the other hand, when the specified data and the execution file exist in different memory access nodes, the profile condition set in advance is the central processing unit (2) whose access time is close to that of the non-volatile memory in the memory access node. The central processing unit (3) whose access time is close to that of the non-volatile memory storing either of the data or the execution file that satisfies the above conditions is "by a plurality of memory access nodes. When it has a function that operates according to at least one of the central processing unit and the memory unit that operates when executed, the time distance required for access is close to the non-volatile memory that stores the specified data. When the specified execution file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the central processing unit (4) accesses the non-volatile memory storing the specified data. The central processing unit with a short time distance (Appendix 3)
The allocation unit is different from the processor core that was executing the process, depending on the time distance required for access to the non-volatile memory when the process changes the processor core of the central processing unit. The information processing device according to Appendix 1 or 2, to which a processor core is assigned.
(Appendix 4)
In addition, it includes a swap processing unit
When swap-out is required, the swap processing unit creates a swap area for each non-volatile memory of each memory access node, and the non-volatile memory having a short access time distance from each central processing unit. The information processing apparatus according to any one of Supplementary note 1 to 3, wherein the data in the memory in each central processing unit is swapped out to the swap area.
(Appendix 5)
In addition, including the designated part,
The designated unit creates a new storage area for each of the non-volatile memories, and as a memory for the newly created data, the non-volatile memory has a time distance close to that of the central processing unit that executes the process. The information processing apparatus according to any one of Supplementary note 1 to 4, which specifies a new storage area.
(Appendix 6)
In the allocation unit, when a process executed on one memory access node accesses the non-volatile memory in the other memory access node and creates new data, the number of the processes and the non-volatile memory. Described in any of Appendix 1-5, which allocates the process to be executed by the central processing unit in the one memory access node or the other memory access node, depending on the number of data and at least one of the executable files. Information processing equipment.
(Appendix 7)
The information processing apparatus according to any one of Supplementary note 1 to 6, wherein the non-volatile memory is NVDIMM (Non-Volile Dual In-Line Memory Module).
(Appendix 8)
Includes operating system section and multiple memory access nodes
Each memory access node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
The operating system unit is a process execution method for executing each process including a process analysis process, a data identification process, and an allocation process:
The process analysis process analyzes the process running in the operating system unit and analyzes the process.
The data specifying step identifies the data to be accessed by the process and the executable file of the data based on the process.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
The allocation step allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory based on the data and the executable file.
(Appendix 9)
The process execution method according to Appendix 8, wherein the allocation process allocates a memory access node for executing the process based on at least one of the following (1) to (4).
(1) At least when the specified data and the execution file exist in the same memory access node, and when the process uses only the execution file existing in the memory access node without using the data. On the other hand, when the specified data and the execution file exist in different memory access nodes, the profile condition set in advance is the central processing unit (2) whose access time is close to that of the non-volatile memory in the memory access node. The distance required for access is close to the non-volatile memory that stores either the data or the execution file that satisfies the above. Central processing unit (3) The specified execution file itself is "executed by a plurality of memory access nodes." When it has a function that operates according to at least one of the central processing unit and the memory unit that operates when the data is generated, the non-volatile memory that stores the specified data and the time distance required for access are close to each other. Central processing unit (4) When the specified execution file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the time required for access to the non-volatile memory storing the specified data. Central processing unit with a short distance (Appendix 10)
The allocation step is different from the processor core that was executing the process, depending on the time distance required for access to the non-volatile memory when the process changes the processor core of the central processing unit. The process execution method according to Appendix 8 or 9, wherein a processor core is assigned.
(Appendix 11)
In addition, it includes a swap processing process
In the swap processing step, when swap-out is required, a swap area is created for each non-volatile memory of each memory access node, and the non-volatile memory having a short access time distance from each central processing unit. The process execution method according to any one of Supplementary note 8 to 10, wherein the data in the memory in each central processing unit is swapped out to the swap area.
(Appendix 12)
In addition, including designated steps,
In the designated step, a new storage area is created for each of the non-volatile memories, and as a memory for the newly created data, the non-volatile memory has a time distance close to that of the central processing unit that executes the process. The process execution method according to any one of Supplementary note 8 to 11, which specifies a new storage area.
(Appendix 13)
In the allocation process, when a process executed on one memory access node accesses the non-volatile memory in the other memory access node and creates new data, the number of the processes and the non-volatile memory. Described in any of Appendix 8-12, which allocates the process to be executed by the central processing unit in the one memory access node or the other memory access node, depending on the number of data and at least one of the executable files. Process execution method.
(Appendix 14)
The process execution method according to any one of Supplementary note 8 to 13, wherein the non-volatile memory is NVDIMM (Non-Volile Dual In-Line Memory Module).
(Appendix 15)
Includes operating system section and multiple memory access nodes
Each NUMA node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
A program for causing the operating system unit to execute a procedure including a process analysis procedure, a data identification procedure, and an allocation procedure:
The process analysis procedure analyzes the process running in the operating system unit and analyzes the process.
The data identification procedure identifies the data to be accessed by the process and the executable file of the data based on the process.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
The allocation procedure allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory based on the data and the executable file.
(Appendix 16)
The program according to
(1) At least when the specified data and the execution file exist in the same memory access node, and when the process uses only the execution file existing in the memory access node without using the data. On the other hand, when the specified data and the execution file exist in different memory access nodes, the profile condition set in advance is the central processing unit (2) whose access time is close to that of the non-volatile memory in the memory access node. The central processing unit (3) whose access time is close to that of the non-volatile memory storing either of the data or the execution file that satisfies the above conditions is "by a plurality of memory access nodes. When it has a function that operates according to at least one of the central processing unit and the memory unit that operates when executed, the time distance required for access is close to the non-volatile memory that stores the specified data. When the specified execution file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the central processing unit (4) accesses the non-volatile memory storing the specified data. Central processing unit with short time distance (Appendix 17)
The allocation procedure is different from the processor core that was executing the process, depending on the time distance required for access to the non-volatile memory when the process changes the processor core of the central processing unit. The program according to
(Appendix 18)
In addition, including swap processing procedures,
In the swap processing procedure, when swap-out is required, a swap area is created for each non-volatile memory of each memory access node, and the time distance required for access is close to each central processing unit of the non-volatile memory. The program according to any one of
(Appendix 19)
In addition, including the designated procedure,
In the designation procedure, a new storage area is created for each of the non-volatile memories, and as a memory for the newly created data, the non-volatile memory has a time distance close to that of the central processing unit that executes the process. The program according to any of
(Appendix 20)
The allocation procedure is the number of processes and on the non-volatile memory when a process running on one memory access node accesses the non-volatile memory in the other memory access node to create new data. Any of Appendix 15-19, which reschedules the process to be run by the central processing unit in the one memory access node or the other memory access node, depending on the number of data and at least one of the executable files. The program described in.
(Appendix 21)
The program according to any one of
(Appendix 22)
A computer-readable recording medium recording the program according to any one of
本発明によれば、不揮発性メモリ上のデータに対するアクセスを最適化することができる。このため、本発明は、不揮発性メモリを搭載したNUMAアーキテクチャにおいて有用である。 According to the present invention, access to data on the non-volatile memory can be optimized. Therefore, the present invention is useful in NUMA architectures equipped with non-volatile memory.
1 情報処理装置
10 オペレーティングシステム部
11 プロセス解析部
12 データ特定部
13 割当部
14 スワップ処理部
15 指定部
20 メモリアクセスノード
21 中央処理部
211 中央処理装置
2111 プロセッサーコア
2112 接続コントローラ
22 リモートコントローラ
23 メモリ部
231 不揮発性メモリ
30 IO装置
100 接続部
1
Claims (10)
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、プロセス解析部、データ特定部、及び割当部を含み、
前記プロセス解析部は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定部は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当部は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる、情報処理装置。 Includes operating system section and multiple memory access nodes
Each memory access node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
The operating system unit includes a process analysis unit, a data identification unit, and an allocation unit.
The process analysis unit analyzes the process running in the operating system unit and analyzes the process.
Based on the process, the data specifying unit identifies the data to be accessed by the process and the executable file of the data.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
Based on the data and the executable file, the allocation unit allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory. Processing equipment.
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部 The information processing apparatus according to claim 1, wherein the allocation unit allocates a memory access node for executing the process based on at least one of the following (1) to (4).
(1) At least when the specified data and the execution file exist in the same memory access node, and when the process uses only the execution file existing in the memory access node without using the data. On the other hand, when the specified data and the execution file exist in different memory access nodes, the profile condition set in advance is the central processing unit (2) whose access time is close to that of the non-volatile memory in the memory access node. The central processing unit (3) whose access time is close to that of the non-volatile memory storing either of the data or the execution file that satisfies the above conditions is "by a plurality of memory access nodes. When it has a function that operates according to at least one of the central processing unit and the memory unit that operates when executed, the time distance required for access is close to the non-volatile memory that stores the specified data. When the specified execution file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the central processing unit (4) accesses the non-volatile memory storing the specified data. The central processing unit with a short time distance
前記スワップ処理部は、スワップアウトが必要な場合、前記各メモリアクセスノードの前記不揮発性メモリ毎にスワップ領域を作成し、且つ前記各中央処理部とアクセスにかかる時間距離が近い前記不揮発性メモリのスワップ領域に、前記各中央処理部におけるメモリ内のデータをスワップアウトする、請求項1から3のいずれか一項に記載の情報処理装置。 In addition, it includes a swap processing unit
When swap-out is required, the swap processing unit creates a swap area for each non-volatile memory of each memory access node, and the non-volatile memory having a short access time distance from each central processing unit. The information processing apparatus according to any one of claims 1 to 3, wherein the data in the memory in each central processing unit is swapped out to the swap area.
前記指定部は、前記不揮発性メモリ毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部とアクセスにかかる時間距離が近い不揮発性メモリの前記新たな記憶領域を指定する、請求項1から4のいずれか一項に記載の情報処理装置。 In addition, including the designated part,
The designated unit creates a new storage area for each of the non-volatile memories, and as a memory for the newly created data, the non-volatile memory has a time distance close to that of the central processing unit that executes the process. The information processing apparatus according to any one of claims 1 to 4, which specifies a new storage area.
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、プロセス解析工程、データ特定工程、及び割当工程を含む各工程を実行するプロセス実行方法:
前記プロセス解析工程は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定工程は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当工程は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる。 Includes operating system section and multiple memory access nodes
Each memory access node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
The operating system unit is a process execution method for executing each process including a process analysis process, a data identification process, and an allocation process:
The process analysis process analyzes the process running in the operating system unit and analyzes the process.
The data specifying step identifies the data to be accessed by the process and the executable file of the data based on the process.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
The allocation step allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory based on the data and the executable file.
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部 The process execution method according to claim 8, wherein the allocation step allocates a memory access node for executing the process based on at least one of the following (1) to (4).
(1) At least when the specified data and the execution file exist in the same memory access node, and when the process uses only the execution file existing in the memory access node without using the data. On the other hand, when the specified data and the execution file exist in different memory access nodes, the profile condition set in advance is the central processing unit (2) whose access time is close to that of the non-volatile memory in the memory access node. The distance required for access is close to the non-volatile memory that stores either the data or the execution file that satisfies the above. Central processing unit (3) The specified execution file itself is "executed by a plurality of memory access nodes." When it has a function that operates according to at least one of the central processing unit and the memory unit that operates when the data is generated, the non-volatile memory that stores the specified data and the time distance required for access are close to each other. Central processing unit (4) When the specified execution file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the time required for access to the non-volatile memory storing the specified data. The central processing unit that is close to the distance
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部に、プロセス解析手順、データ特定手順、及び割当手順を含む手順を実行させるためのプログラム:
前記プロセス解析手順は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定手順は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当手順は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる。
Includes operating system section and multiple memory access nodes
Each memory access node includes a central processing unit, a memory controller, and a memory unit.
The central processing unit includes a central processing unit.
The central processing unit includes a processor core and a connection controller.
The central processing unit is connected to another central processing unit via the connection controller.
The memory unit includes a non-volatile memory.
The memory unit is connected to the central processing unit via the memory controller, and is connected to the central processing unit.
A program for causing the operating system unit to execute a procedure including a process analysis procedure, a data identification procedure, and an allocation procedure:
The process analysis procedure analyzes the process running in the operating system unit and analyzes the process.
The data identification procedure identifies the data to be accessed by the process and the executable file of the data based on the process.
At least one of the data and the executable file is data stored in the non-volatile memory of a specific memory access node.
The allocation procedure allocates the central processing unit that executes the process from the plurality of memory access nodes according to the time distance required for access to the non-volatile memory based on the data and the executable file.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020177474A JP7640066B2 (en) | 2020-10-22 | 2020-10-22 | Information processing device, process execution method, program, and recording medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020177474A JP7640066B2 (en) | 2020-10-22 | 2020-10-22 | Information processing device, process execution method, program, and recording medium |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022068670A true JP2022068670A (en) | 2022-05-10 |
| JP7640066B2 JP7640066B2 (en) | 2025-03-05 |
Family
ID=81459865
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2020177474A Active JP7640066B2 (en) | 2020-10-22 | 2020-10-22 | Information processing device, process execution method, program, and recording medium |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7640066B2 (en) |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0844577A (en) * | 1994-07-26 | 1996-02-16 | Sumisho Electron Kk | Data dividing method and multi-processor system |
| JP2012146105A (en) * | 2011-01-12 | 2012-08-02 | Hitachi Ltd | Computer system |
| JP2014505913A (en) * | 2010-12-14 | 2014-03-06 | アマゾン テクノロジーズ インク | Load balancing between general purpose and graphics processors |
| JP2015504541A (en) * | 2011-11-30 | 2015-02-12 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Method, program, and computing system for dynamically optimizing memory access in a multiprocessor computing system |
| JP2017502389A (en) * | 2013-12-03 | 2017-01-19 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | Control device for vehicle |
| US20170344283A1 (en) * | 2016-05-27 | 2017-11-30 | Intel Corporation | Data access between computing nodes |
| JP2018521427A (en) * | 2015-07-30 | 2018-08-02 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | System and method for variable lane architecture |
| JP2019091492A (en) * | 2015-01-19 | 2019-06-13 | 東芝メモリ株式会社 | Memory device and method of controlling nonvolatile memory |
-
2020
- 2020-10-22 JP JP2020177474A patent/JP7640066B2/en active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0844577A (en) * | 1994-07-26 | 1996-02-16 | Sumisho Electron Kk | Data dividing method and multi-processor system |
| JP2014505913A (en) * | 2010-12-14 | 2014-03-06 | アマゾン テクノロジーズ インク | Load balancing between general purpose and graphics processors |
| JP2012146105A (en) * | 2011-01-12 | 2012-08-02 | Hitachi Ltd | Computer system |
| JP2015504541A (en) * | 2011-11-30 | 2015-02-12 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | Method, program, and computing system for dynamically optimizing memory access in a multiprocessor computing system |
| JP2017502389A (en) * | 2013-12-03 | 2017-01-19 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | Control device for vehicle |
| JP2019091492A (en) * | 2015-01-19 | 2019-06-13 | 東芝メモリ株式会社 | Memory device and method of controlling nonvolatile memory |
| JP2018521427A (en) * | 2015-07-30 | 2018-08-02 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | System and method for variable lane architecture |
| US20170344283A1 (en) * | 2016-05-27 | 2017-11-30 | Intel Corporation | Data access between computing nodes |
Also Published As
| Publication number | Publication date |
|---|---|
| JP7640066B2 (en) | 2025-03-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7467593B2 (en) | Resource allocation method, storage device, and storage system - Patents.com | |
| US9229779B2 (en) | Parallelizing heterogeneous network communications in smart devices based on selection of task allocation strategy | |
| CN106354656B (en) | Method and system for storage management | |
| US9977618B2 (en) | Pooling of memory resources across multiple nodes | |
| EP2472398B1 (en) | Memory-aware scheduling for NUMA architectures | |
| JP2007257097A (en) | Virtual computer system and method and program for reconfiguring physical resource thereof | |
| US12242376B2 (en) | Paging in thin-provisioned disaggregated memory | |
| JP2007026094A (en) | Execution device and application program | |
| KR20100062958A (en) | Technique for controlling computing resources | |
| JP2012123556A (en) | Virtual server system and control method thereof | |
| CN115794368A (en) | Service system, memory management method and device | |
| CN120849314B (en) | Cache architecture and method of AXI interconnection module, electronic equipment and storage medium | |
| CN107528871B (en) | Data analysis in storage systems | |
| US10664393B2 (en) | Storage control apparatus for managing pages of cache and computer-readable storage medium storing program | |
| US11093291B2 (en) | Resource assignment using CDA protocol in distributed processing environment based on task bid and resource cost | |
| WO2017082323A1 (en) | Distributed processing system, distributed processing device, method, and storage medium | |
| JP7640066B2 (en) | Information processing device, process execution method, program, and recording medium | |
| CN116932196A (en) | Data processing method, device, equipment and system of fusion system | |
| CN107329798B (en) | Data replication method and device and virtualization system | |
| US9058113B2 (en) | Storage region providing device, storage region providing method, and recording medium | |
| US10824640B1 (en) | Framework for scheduling concurrent replication cycles | |
| WO2013021441A1 (en) | Data processing system and data processing method | |
| JP4872942B2 (en) | Storage system, storage device, priority control device, and priority control method | |
| JP7080698B2 (en) | Information processing equipment | |
| JP6870390B2 (en) | Resource allocation method, connection management server and connection management program in a system based on a virtual infrastructure |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20220630 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230908 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240416 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240604 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240731 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20241105 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20241226 |
|
| 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: 20250121 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250213 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7640066 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |