JP7640066B2 - 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
- JP7640066B2 JP7640066B2 JP2020177474A JP2020177474A JP7640066B2 JP 7640066 B2 JP7640066 B2 JP 7640066B2 JP 2020177474 A JP2020177474 A JP 2020177474A JP 2020177474 A JP2020177474 A JP 2020177474A JP 7640066 B2 JP7640066 B2 JP 7640066B2
- Authority
- JP
- Japan
- Prior art keywords
- central processing
- memory
- data
- processing unit
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 243
- 230000008569 process Effects 0.000 title claims description 195
- 230000010365 information processing Effects 0.000 title claims description 32
- 230000015654 memory Effects 0.000 claims description 481
- 230000006870 function Effects 0.000 claims description 12
- 230000009977 dual effect Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
Images
Landscapes
- Memory System (AREA)
Description
本発明は、情報処理装置、プロセス実行方法、プログラム及び記録媒体に関する。 The present invention relates to an information processing device, 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等) In systems that use the NUMA (Non-Uniform Memory Access) architecture, technology has been reported that selects combinations of I/O (Input/Output) and CPU (Central Processing Unit), and I/O and memory to minimize access time (for example, Patent Document 1, etc.)
また、近年、NVDIMM(Nonvolatile Dual In Line Memory Module)等の不揮発性メモリ(ユニバーサルメモリ)の実用化が広がりつつある。 In addition, in recent years, non-volatile memory (universal memory) such as NVDIMM (Nonvolatile Dual In Line Memory Module) is becoming more widely used.
しかしながら、不揮発性メモリを搭載したNUMAアーキテクチャにおいて、アクセスを最適化する技術が確立していない。 However, there is no established technology to optimize access in a NUMA architecture equipped with non-volatile memory.
そこで、本発明は、不揮発性メモリ上のデータに対するアクセスの最適化を可能にする情報処理装置、プロセス実行方法、プログラム及び記録媒体を提供することを目的とする。 The present invention aims to provide an information processing device, a process execution method, a program, and a recording medium that enable optimization of access to data in non-volatile memory.
前記目的を達成するために、本発明の情報処理装置は、
オペレーティングシステム部と、複数のメモリアクセスノードとを含み、
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、プロセス解析部、データ特定部、及び割当部を含み、
前記プロセス解析部は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定部は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当部は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる、装置である。
In order to achieve the above object, the information processing device of the present invention comprises:
An operating system unit and a plurality of memory access nodes,
Each of the memory access nodes 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 connects to other central processing units 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;
the operating system unit includes a process analyzer, a data identifier, and an allocation unit;
The process analysis unit analyzes a process running in the operating system unit,
The data identifying unit identifies data to be accessed by the process and an 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 unit is a device that allocates the central processing unit that executes the process from the multiple memory access nodes according to the time distance required to access the non-volatile memory based on the data and the executable file.
本発明のプロセス実行方法は、
オペレーティングシステム部と、複数のメモリアクセスノードとを含み、
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、プロセス解析工程、データ特定工程、及び割当工程を含む各工程を実行するプロセス実行方法:
前記プロセス解析工程は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定工程は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当工程は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する前記中央処理部を割り当てる。
The process execution method of the present invention includes the steps of:
An operating system unit and a plurality of memory access nodes,
Each of the memory access nodes 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 connects to other central processing units 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;
The operating system unit executes each step including a process analysis step, a data identification step, and an allocation step.
The process analysis step includes analyzing a process running in the operating system unit,
The data identifying step identifies data to be accessed by the process and an 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 for executing the process from among the plurality of memory access nodes in accordance with the time distance required to access the non-volatile memory based on the data and the executable file.
本発明によれば、不揮発性メモリ上のデータに対するアクセスを最適化することができる。 The present invention makes it possible to optimize access to data in non-volatile memory.
本発明の情報処理装置において、例えば、
前記割当部は、下記(1)~(4)の少なくとも一方に基づき、前記プロセスを実行するメモリアクセスノードを割り当てる、という態様であってもよい。
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
In the information processing device 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) When the identified data and the executable file are present in the same memory access node, and/or when the process does not use the data but only uses the executable file present in the memory access node, the central processing unit has a short access time to the nonvolatile memory in the memory access node. (2) When the identified data and the executable file are present in different memory access nodes, the central processing unit has a short access time to the nonvolatile memory storing either the data or the executable file that satisfies a preset profile condition. (3) When the identified executable file itself has "a function of operating in accordance with at least one of the central processing unit and the memory unit that operate when executed by a plurality of memory access nodes," the central processing unit has a short access time to the nonvolatile memory storing the identified data. (4) When the identified executable file is present in a storage other than a nonvolatile memory and the data is present in a nonvolatile memory, the central processing unit has a short access time to the nonvolatile memory storing the identified data.
本発明の情報処理装置において、例えば、
前記割当部は、前記プロセスが前記中央処理部の前記プロセッサーコアを変更する場合、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコアとは異なる他のプロセッサーコアを割り当てる、という態様であってもよい。
In the information processing device of the present invention, for example,
The allocation unit may be configured such that, when the process changes the processor core of the central processing unit, it allocates another processor core different from the processor core that was executing the process, depending on the time distance required to access the non-volatile memory.
本発明の情報処理装置は、例えば、
さらに、スワップ処理部を含み、
前記スワップ処理部は、スワップアウトが必要な場合、前記各メモリアクセスノードの前記不揮発性メモリ毎にスワップ領域を作成し、且つ前記各中央処理部とアクセスにかかる時間距離が近い前記不揮発性メモリのスワップ領域に、前記各中央処理部におけるメモリ内のデータをスワップアウトする、という態様であってもよい。
The information processing device of the present invention includes, for example,
Further, a swap processing unit is included,
When swapping out is necessary, the swap processing unit may create a swap area for each of the non-volatile memories of each of the memory access nodes, and swap out data in the memory of each of the central processing units to the swap area of the non-volatile memory that is close in time to access from each of the central processing units.
本発明の情報処理装置は、例えば、
さらに、指定部を含み、
前記指定部は、前記不揮発性メモリ毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部とアクセスにかかる時間距離が近い不揮発性メモリの前記新たな記憶領域を指定する、という態様であってもよい。
The information processing device of the present invention includes, for example,
Further, the method includes:
The designation unit may be configured to create a new storage area for each of the non-volatile memories, and designate, as the memory for the newly created data, the new storage area of a non-volatile memory that is close in time to access from a central processing unit that executes the process.
本発明の情報処理装置において、例えば、
前記割当部は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスの数と前記不揮発性メモリ上のデータ及び実行ファイルの少なくとも一方の数に応じて、前記プロセスを前記一方のメモリアクセスノード又は前記他方のメモリアクセスノードにおける前記中央処理部によって実行させるように割り当てる、という態様であってもよい。
In the information processing device of the present invention, for example,
The allocation unit may be configured such that, when a process executing on one memory access node accesses the non-volatile memory in the other memory access node to create new data, the allocation unit 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 the processes and the number of at least one of the data and executable files in the non-volatile memory.
本発明のプロセス実行方法において、例えば、
前記割当工程は、下記(1)~(4)の少なくとも一方に基づき、前記プロセスを実行するメモリアクセスノードを割り当てる、という態様であってもよい。
(1)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる距離が近い前記中央処理部
(3)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
In the process execution method of the present invention, for example,
The allocation step may be performed in a manner that a memory access node for executing the process is allocated based on at least one of the following (1) to (4).
(1) When the identified data and the executable file are present in the same memory access node, and/or when the process does not use the data but only uses the executable file present in the memory access node, the central processing unit has a short access time to the nonvolatile memory in the memory access node. (2) When the identified data and the executable file are present in different memory access nodes, the central processing unit has a short access time to the nonvolatile memory storing either the data or the executable file that satisfies a pre-set profile condition. (3) When the identified executable file itself has "a function of operating in accordance with at least one of the central processing unit and the memory unit that operate when executed by a plurality of memory access nodes," the central processing unit has a short access time to the nonvolatile memory that stores the identified data. (4) When the identified executable file is present in a storage other than a nonvolatile memory and the data is present in a nonvolatile memory, the central processing unit has a short access time to the nonvolatile memory that stores the identified data.
本発明のプロセス実行方法において、例えば、
前記割当工程は、前記プロセスが前記中央処理部の前記プロセッサーコアを変更する場合、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコアとは異なる他のプロセッサーコアを割り当てる、という態様であってもよい。
In the process execution method of the present invention, for example,
The allocation step may be such that, when the process changes the processor core of the central processing unit, another processor core different from the processor core that was executing the process is allocated depending on the time distance required to access the non-volatile memory.
本発明のプロセス実行方法は、例えば、
さらに、スワップ処理工程を含み、
前記スワップ処理工程は、スワップアウトが必要な場合、前記各メモリアクセスノードの前記不揮発性メモリ毎にスワップ領域を作成し、且つ前記各中央処理部とアクセスにかかる時間距離が近い前記不揮発性メモリのスワップ領域に、前記各中央処理部におけるメモリ内のデータをスワップアウトする、という態様であってもよい。
The process execution method of the present invention includes, for example,
Further, a swap processing step is included,
The swap processing step may be such that, when swapping out is necessary, a swap area is created for each of the non-volatile memories of each of the memory access nodes, and data in the memory of each of the central processing units is swapped out to the swap area of the non-volatile memory that is close in time to access from each of the central processing units.
本発明のプロセス実行方法は、例えば、
さらに、指定工程を含み、
前記指定工程は、前記不揮発性メモリ毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部とアクセスにかかる時間距離が近い不揮発性メモリの前記新たな記憶領域を指定する、という態様であってもよい。
The process execution method of the present invention includes, for example,
Further, the method includes a specified step,
The designation step may be a step of creating a new storage area for each of the non-volatile memories, and designating the new storage area of a non-volatile memory that is close in time to access from a central processing unit that executes the process as the memory for the newly created data.
本発明のプロセス実行方法において、例えば、
前記割当工程は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスの数と前記不揮発性メモリ上のデータ及び実行ファイルの少なくとも一方の数に応じて、前記プロセスを前記一方のメモリアクセスノード又は前記他方のメモリアクセスノードにおける前記中央処理部によって実行させるように割り当てる、という態様であってもよい。
In the process execution method of the present invention, for example,
The allocation step may be such that, when a process executing on one memory access node accesses the non-volatile memory in the other memory access node to create new data, the process is allocated 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 the processes and the number of at least one of the data and executable files in the non-volatile memory.
本発明の情報処理装置、本発明のプロセス実行方法、及び本発明のプログラムの少なくとも一方において、例えば、
前記不揮発性メモリが、NVDIMM(Non-Volatile Dual In-Line Memory Module)である、という態様であってもよい。
In at least one of the information processing device 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 a non-volatile dual in-line memory module (NVDIMM).
本発明のプログラムは、本発明の方法の各工程を、手順として、コンピュータに実行させるためのプログラムである。 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, "non-volatile memory" refers to, for example, a non-volatile memory directly connected to a memory controller, and is also called universal memory. Non-volatile memory uses, for example, a volatile memory (DRAM (Dynamic Random Access Memory) etc.) directly connected to a central processing unit such as a CPU as the memory base. Specifically, for example, NVDIMM (Nonvolatile Dual In Line Memory Module) etc. can be mentioned. NVDIMM is, for example, a form that integrates DRAM (Dynamic Random Access Memory) work memory and NAND (Not AND) storage memory.
次に、本発明の実施形態について図を用いて説明する。本発明は、以下の実施形態には限定されない。以下の各図において、同一部分には、同一符号を付している。また、各実施形態の説明は、特に言及がない限り、互いの説明を援用でき、各実施形態の構成は、特に言及がない限り、組合せ可能である。 Next, an embodiment of the present invention will be described with reference to the drawings. The present invention is not limited to the following embodiment. In each of the drawings, the same parts are given the same reference numerals. Furthermore, the explanations of each embodiment can be mutually incorporated unless otherwise specified, and the configurations of each embodiment 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 an example of the configuration of an information processing device 1 according to the present embodiment. As shown in FIG. 1, the device 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、例えば、デスクトップ型、ノート型)、端末(スマートフォン、タブレット端末)等であってもよい。 The device 1 can also be connected to an external device, which will be described later, via the communication network. The communication network is not particularly limited and may be a known network, for example, wired or wireless. Examples of the communication network include an Internet line, WWW (World Wide Web), a telephone line, LAN (Local Area Network), SAN (Storage Area Network), DTN (Delay Tolerant Networking), and a point-to-point (P2P) network. Examples of wireless communication include WiFi (Wireless Fidelity) and Bluetooth (registered trademark). 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 device 1 may be, for example, a personal computer (PC, e.g., desktop or notebook type) or a terminal (smartphone, tablet terminal) on which the program of the present invention is installed.
接続部100は、例えば、外部装置とも接続できる。前記外部装置は、例えば、外部記憶装置(外部データベース等)、プリンター、外部入力装置、外部表示装置等があげられる。本装置1は、例えば、接続部100に接続された通信デバイスにより、外部ネットワーク(前記通信回線網)に接続でき、外部ネットワークを介して、他の装置と接続することもできる。具体的に、接続部100は、例えば、バス、シリアルリンク等である。
The
IO装置30は、例えば、ネットワークなどの各種デバイスとのデータのやり取りを行うためのインタフェースを備えている。 The IO device 30 has 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. 1(B) is a diagram showing an example of the configuration of a
中央処理部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 the 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 this embodiment will be described based on the flowchart of FIG. 2. The process execution method of this embodiment is implemented, for example, as follows using the information processing device 1 of FIG. 1. Note that the process execution method of this embodiment is not limited to use of the information processing device 1 of FIG. 1.
まず、プロセス解析部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. 3. FIG. 3 is a diagram showing an example of processing by the
また、図示しないが、前記プロセスが前記データを使用せずに、メモリアクセスノード20内のメモリ部23に存在する前記実行ファイルのみを使用する場合も、図3(A)に示す例と同様に、割当部13は、前記解析したプロセスに対し、前記実行ファイルを保存しているノード20の不揮発性メモリ231とアクセスにかかる時間距離が最も近い中央処理部21(中央処理装置211及びプロセッサーコア2111)を割り当ててもよい。前記プロセスが前記データを使用しないとは、例えば、データ特定部12により、前記データが特定されず、且つ前記実行ファイルのみが特定されたことを意味する。
Although not shown, when the process does not use the data and only uses the executable file present 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 identified 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 identified by the
また、図示しないが、特定した前記実行ファイルが不揮発性メモリ231以外のストレージ(例えば、HDD、クラウドストレージ(ネットワーク上のストレージ)等)に存在し、前記データが不揮発性メモリ231に存在する場合も、図3(B)に示す例と同様に、割当部13は、前記解析したプロセスに対し、前記データが格納されている不揮発性メモリ231とアクセスにかかる時間距離が近い中央処理装置21(中央処理装置211及びプロセッサーコア2111)を割り当ててもよい。より具体的には、例えば、実行ファイルがNVDIMMではなくHDD等から起動し、データファイルはNVDIMMから読む場合等がある。
Although not shown, when the identified executable file exists in storage other than the non-volatile memory 231 (e.g., HDD, cloud storage (storage on a network), etc.) and the data exists 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 from a central processing unit to data in memory differs depending on whether the data is in the same memory access node as the central processing unit. In other words, access from a central processing unit executing a process to a non-volatile memory in the same memory access node as the central processing unit can be processed at high speed. However, access from a central processing unit executing a process to a non-volatile memory in another memory access node is processed at a slower speed than the access speed to the same memory access node. Specifically, if the time required for one access to a hard disk (HDD) with a slow access speed is 100, and the time required to cross another memory access node is 0.04, the difference in access from the own memory access node to the other memory access node is only 0.04%. However, in the case of a high-speed universal memory such as an NVDIMM, the time required for one access is extremely short compared to the HDD (for example, if the time required for one access to a hard disk (HDD) with a slow access speed is 100, then the time required for one access is 0.01), so the impact of 0.04, which is the time required to cross the other memory access node, is large, and there is a problem that the difference in access from the own memory access node to the other memory access node is extremely high compared to the HDD. However, according to this embodiment, by allocating a processor core before the execution of a process, access to data in the nonvolatile memory can be optimized. Therefore, according to this embodiment, for example, even when accessing a nonvolatile memory connected to one central processing unit from another central processing unit, high-speed access is possible.
特許文献1の技術では、任意のプロセッサーコアでプロセスを実行してから、そのCPUに近いメモリを割り当てている。しかしながら、本発明は、プロセスの実行前に、前記データ及び前記実行ファイルに基づいて、前記プロセスを実行する前記プロセッサーコア(すなわち、中央処理装置)を割り当てる。これにより、本発明は、特許文献1の技術に比べて、プロセスをより高速に動作させることができる。また、本発明は、特許文献1の技術に比べて、プロセスを高速に動作させるために、必要なシステムの数(コスト)を削減することができる。 In the technology of Patent Document 1, a process is executed on an arbitrary processor core, and then memory close to that CPU is allocated. However, in the present invention, the processor core (i.e., central processing unit) that executes the process is allocated based on the data and the executable file before the process is executed. As a result, the present invention can operate the process faster than the technology of Patent Document 1. Furthermore, in order to operate the process faster, the present invention can reduce the number of systems (cost) required.
[実施形態2]
プロセスを実行するプロセッサーコア(中央処理装置)を変更する場合における処理の一例について説明する。本実施形態の情報処理装置1及びプロセス実行方法は、特に言及しない限り、前記実施形態1の記載を援用できる。
[Embodiment 2]
An example of processing when changing a processor core (central processing unit) that executes a process will be described below. For the information processing device 1 and the process execution method of this embodiment, the description of the first embodiment can be applied unless otherwise specified.
本実施形態において、割当部13は、例えば、図2に示す前記工程(S13)の後、前記プロセスが中央処理部21のプロセッサーコア2111を変更する場合、不揮発性メモリ231とのアクセスにかかる時間距離に応じて、前記プロセスを実行していたプロセッサーコア2111とは異なる他のプロセッサーコア2111を割り当てる。他のプロセッサーコア2111は、例えば、同一のメモリアクセスノード20内の他のプロセッサーコア2111であってもよいし、他のメモリアクセスノード20内のプロセッサーコア2111であってもよい。すなわち、割当部13は、例えば、前記プロセスを実行していたプロセッサーコア2111の次に前記アクセスにかかる時間距離が近い他のプロセッサーコア2111を割り当てる。このように、割当部13は、例えば、前記プロセスの実行をリスケジューリングするともいえる。なお、リスケジューリングとは、例えば、プロセスやスレッド等を中央処理装置上で再度動作させることをいう。
In this embodiment, for example, after the step (S13) shown in FIG. 2, 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. 4. 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. 4(B), when both the identified executable file and the data are present in the
このように、本実施形態は、プロセスを実行するプロセッサーコア2111(中央処理装置211)を変更する場合であっても、不揮発性メモリ231とのアクセスにかかる時間距離に応じて、すなわち、前記データ及び前記実行ファイルの位置を考慮したリスケジューリングを行う。したがって、本実施形態によれば、前記実施形態1と同様に、不揮発性メモリ上のデータに対するアクセスを最適化することができる。なお、プロセスを実行するプロセッサーコア2111(中央処理装置211)を変更する場合とは、例えば、プロセッサーコア2111及びプロセスが複数あるなかでスケジューリングを実行する環境下において、プロセッサーコア2111を順番に使用するように前記プロセスの実行を制御する場合等がある。
In this way, in this embodiment, even when the processor core 2111 (central processing unit 211) that executes a process is changed, rescheduling is performed according to the time distance required for access to the
関連する技術では、キャッシュを行う際に、アクセスするデータをCPU等の中央処理装置の近くに移動させる処理が必要である。また、キャッシュの実行には、データの書き込みが実行されたときに元データへの書き戻しを行ったり、他にキャッシュしている情報のバリデーションを行ったり等の中間処理が生じる。しかしながら、本実施形態によれば、前記データを直接使用できるため、前述のような処理を行う必要がなく、キャッシュと同等の機能を効率的に実施できる。 In related technologies, when caching, a process is required to move the data to be accessed closer to a central processing unit such as a CPU. In addition, when caching, intermediate processes such as writing back the original data when data is written and validating other cached information are generated. However, according to this embodiment, the data can be used directly, so there is no need to perform the above-mentioned processes, and a function equivalent to caching can be efficiently implemented.
[実施形態3]
スワップアウトを行う場合における処理の一例について説明する。本実施形態の情報処理装置1及びプロセス実行方法は、特に言及しない限り、前記実施形態1及び2の記載を援用できる。
[Embodiment 3]
An example of processing when swapping out will be described below. Unless otherwise specified, the information processing device 1 and the process execution method of this embodiment can use the descriptions 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 this embodiment, the device 1 further includes a
ここで、スワップアウトとは、例えば、プロセッサーコア2111のメモリに確保されているメモリ領域と同じ領域を不揮発性メモリ231に確保し、前記メモリ領域に書き込まれているデータと同じデータを不揮発性メモリ231に確保したスワップ領域(メモリ領域)に書込み、前記メモリのメモリ領域を解放することをいう。なお、「スワップアウトが必要な場合」とは、例えば、仮想メモリの機能を実現させる場合である。具体的に、例えば、メモリ容量以上の領域を有するディスクが搭載されているサーバにおいて、使わないメモリ領域のデータをディスクに一時退避して、実際に搭載されている以上のメモリ容量を実行する場合等がある。
Here, swapping out refers to, for example, reserving in
このように、本実施形態は、メモリアクセスノード20単位で、スワップアウトを実行する。本実施形態によれば、前記実施形態1及び2と同様に、不揮発性メモリ上のデータに対するアクセスを最適化することができる。
In this way, this embodiment executes swap-out in units of
[実施形態4]
新しいデータを作成する場合における処理の一例について説明する。本実施形態の情報処理装置1及びプロセス実行方法は、特に言及しない限り、前記実施形態1~3の記載を援用できる。
[Embodiment 4]
An example of processing for creating new data will be described below. The information processing device 1 and the process execution method of this embodiment can be applied to the descriptions of the first to third embodiments, unless otherwise specified.
本実施形態において、新しいデータは、特に制限されず、例えば、新規作成されるデータでもよいし、上書きされるデータでもよい。具体的には、例えば、データを記憶する場所を示すファイルパスが決まっていないデータ、ファイルパスが既に決まっており且つ同じメモリアクセスノードに記憶されていないデータ、及びファイルパスが既に決まっており且つ他のプロセスと共有されるデータ、等がある。図6に、新しいデータを作成する場合の処理の一例を示す。図6(A)は、ファイルパスが決まっていないデータの場合における処理の一例を示し、図6(B)は、ファイルパスが既に決まっているデータの場合における処理の一例を示す。 In this embodiment, the new data is not particularly limited, and may be, for example, newly created data or overwritten data. Specifically, for example, there is data for which the file path indicating the location where the data is to be stored is not determined, data for which the file path is already determined and which is not stored in the same memory access node, and data for which the file path is already determined and which is shared with other processes. Figure 6 shows an example of processing when creating new data. Figure 6(A) shows an example of processing for data for which the file path is not determined, and Figure 6(B) shows an example of processing for data for which the file path is already determined.
まず、前記新しいデータとして、中間ファイル、テンポラリファイル、キャッシュファイル等のファイルパスが決まっていないデータの場合における処理の一例について説明する。この場合において、本装置1は、例えば、さらに、指定部15を含んでもよい。指定部15は、図6(A)に示すように、不揮発性メモリ231(231a及び231b)毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部21とアクセスにかかる時間距離が近い不揮発性メモリ231の前記新たな記憶領域を指定する。より具体的に、例えば、図6(A)に示すように、指定部15により前記新たな記憶領域を指定されたプロセスあるいはOS部10が、プロセスを実行している中央処理部21aとアクセスにかかる時間距離が最も近い揮発性メモリ231aに新しいデータ(テンポラリファイル等)を作成する。
First, an example of processing in the case where the new data is data with no determined file path, such as an intermediate file, temporary file, or cache file, will be described. In this case, the device 1 may further include, for example, a
テンポラリファイルに関しては、これまでは、temp変数などで指定された場所に保存されていた。また、ディスクキャッシュや中間ファイルに関しては、テンポラリフォルダや、特定のSSDなどに保存されていた。しかしながら、本実施形態によれば、新しいデータを作成する場合、不揮発性メモリ231毎に保存場所を作成し、プロセスを実行するプロセッサーコア2111と近い記憶領域に保存される。このため、前記実施形態1~3と同様に、不揮発性メモリ上のデータに対するアクセスを最適化することができる。
Until now, temporary files have been stored in a location specified by the temp variable, etc. Disk caches and intermediate files have been stored in temporary folders or specific SSDs. However, according to this embodiment, when creating new data, 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, an example of processing in the case of data whose file path has already been determined as the new data 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. As shown in FIG. 6B, when a process (application) A executed on a
このように、本実施形態は、一方のメモリアクセスノード上で実行するプロセスが、他方のメモリアクセスノードにおける前記不揮発性メモリにアクセスして新たなデータを作成する場合、前記プロセスを実行する中央処理部21を、不揮発性メモリ231とアクセスにかかる時間距離が近い中央処理部21に変更することで、不揮発性メモリ上のデータに対するアクセスを最適化することができる。
In this way, in this embodiment, when a process executed on one memory access node accesses the non-volatile memory on the other memory access node to create new data, 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, the "procedure" may be read as "processing." The program of the present embodiment may be recorded, for example, in a computer-readable recording medium. The recording medium is not particularly limited, and examples thereof include a read-only memory (ROM), a hard disk (HD), and an optical disk.
以上、実施形態を参照して本発明を説明したが、本発明は、上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をできる。 The present invention has been described above with reference to the embodiments, but the present invention is not limited to the above embodiments. Various modifications that can be understood by a person skilled in the art can be made to the configuration 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 follows, but are not limited to the following:
(Appendix 1)
An operating system unit and a plurality of memory access nodes,
Each of the memory access nodes 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 connects to other central processing units 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;
the operating system unit includes a process analyzer, a data identifier, and an allocation unit;
The process analysis unit analyzes a process running in the operating system unit,
The data identifying unit identifies data to be accessed by the process and an 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 unit allocates the central processing unit that executes the process from the multiple memory access nodes according to a time distance required to access the non-volatile memory based on the data and the executable file.
(Appendix 2)
The information processing device 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) When the identified data and the executable file are present in the same memory access node, and/or when the process does not use the data and only uses the executable file present in the memory access node, the central processing unit has a short access time to the nonvolatile memory in the memory access node. (2) When the identified data and the executable file are present in different memory access nodes, the central processing unit has a short access time to the nonvolatile memory storing either the data or the executable file that satisfies a preset profile condition. (3) When the identified executable file itself has a function of operating according to at least one of the central processing unit and the memory unit that operate when executed by multiple memory access nodes, the central processing unit has a short access time to the nonvolatile memory that stores the identified data. (4) When the identified executable file is present in a storage other than a nonvolatile memory and the data is present in a nonvolatile memory, the central processing unit has a short access time to the nonvolatile memory that stores the identified data. (Appendix 3)
The information processing device according to claim 1 or 2, wherein when the process changes the processor core of the central processing unit, the allocation unit allocates another processor core other than the processor core that was executing the process depending on the time distance required to access the non-volatile memory.
(Appendix 4)
Further, a swap processing unit is included,
The information processing device according to any one of appendices 1 to 3, wherein, when swapping out is necessary, the swap processing unit creates a swap area for each non-volatile memory of each memory access node, and swaps out data in the memory of each central processing unit to the swap area of the non-volatile memory that is close in time to access from each central processing unit.
(Appendix 5)
Further, the method includes:
5. An information processing device as described in any one of appendixes 1 to 4, wherein the designation unit creates a new storage area for each of the non-volatile memories, and designates the new storage area of a non-volatile memory that is close in time to access from a central processing unit that executes the process as the memory for the newly created data.
(Appendix 6)
An information processing device as described in any of Appendix 1 to 5, wherein when a process executing on one memory access node accesses the non-volatile memory in the other memory access node to create new data, the allocation unit 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 the processes and the number of at least one of the data and executable files in the non-volatile memory.
(Appendix 7)
7. The information processing device according to claim 1, wherein the non-volatile memory is a Non-Volatile Dual In-Line Memory Module (NVDIMM).
(Appendix 8)
An operating system unit and a plurality of memory access nodes,
Each of the memory access nodes 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 connects to other central processing units 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;
The operating system unit executes each step including a process analysis step, a data identification step, and an allocation step.
The process analysis step analyzes a process running in the operating system unit,
The data identifying step identifies data to be accessed by the process and an 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 for executing the process from among the plurality of memory access nodes in accordance with the time distance required to access the non-volatile memory based on the data and the executable file.
(Appendix 9)
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) When the identified data and the executable file are present in the same memory access node, and/or when the process does not use the data and only uses the executable file present in the memory access node, the central processing unit has a short access time to the nonvolatile memory in the memory access node. (2) When the identified data and the executable file are present in different memory access nodes, the central processing unit has a short access time to the nonvolatile memory storing either the data or the executable file that satisfies a preset profile condition. (3) When the identified executable file itself has a function of operating according to at least one of the central processing unit and the memory unit that operate when executed by multiple memory access nodes, the central processing unit has a short access time to the nonvolatile memory storing the identified data. (4) When the identified executable file is present in a storage other than a nonvolatile memory and the data is present in a nonvolatile memory, the central processing unit has a short access time to the nonvolatile memory storing the identified data. (Appendix 10)
The process execution method described in Appendix 8 or 9, wherein the allocation step, when the process changes the processor core of the central processing unit, allocates another processor core different from the processor core that was executing the process depending on the time distance required to access the non-volatile memory.
(Appendix 11)
Further, a swap processing step is included,
The process execution method according to any one of appendices 8 to 10, wherein the swap processing step, when a swap-out is required, creates a swap area for each non-volatile memory of each memory access node, and swaps out data in the memory of each central processing unit to the swap area of the non-volatile memory that is close in time to access from each central processing unit.
(Appendix 12)
Further, the method includes a specified step,
12. A process execution method according to any one of appendices 8 to 11, wherein the designation step creates a new storage area for each of the non-volatile memories, and designates, as the memory for the newly created data, the new storage area of a non-volatile memory that is close in time to access from a central processing unit that executes the process.
(Appendix 13)
The process execution method described in any one of Appendix 8 to 12, wherein the allocation step, when a process executed on one memory access node accesses the non-volatile memory in the other memory access node to create new data, 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 the processes and the number of at least one of the data and executable files in the non-volatile memory.
(Appendix 14)
14. The process execution method according to any one of appendixes 8 to 13, wherein the non-volatile memory is a Non-Volatile Dual In-Line Memory Module (NVDIMM).
(Appendix 15)
An operating system unit and a plurality of memory access nodes,
Each of the NUMA nodes 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 connects to other central processing units 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;
A program for causing the operating system unit to execute procedures including a process analysis procedure, a data identification procedure, and an allocation procedure:
The process analysis step includes analyzing a process running in the operating system portion;
the data identification step includes identifying data to be accessed by the process and an 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 for executing the process from among the plurality of memory access nodes according to a time distance required for accessing the non-volatile memory based on the data and the executable file.
(Appendix 16)
The program according to
(1) When the identified data and the executable file are present in the same memory access node, and/or when the process does not use the data and only uses the executable file present in the memory access node, the central processing unit has a short access time to the nonvolatile memory in the memory access node. (2) When the identified data and the executable file are present in different memory access nodes, the central processing unit has a short access time to the nonvolatile memory storing either the data or the executable file that satisfies a preset profile condition. (3) When the identified executable file itself has a function of operating according to at least one of the central processing unit and the memory unit that operate when executed by multiple memory access nodes, the central processing unit has a short access time to the nonvolatile memory that stores the identified data. (4) When the identified executable file is present in a storage other than a nonvolatile memory and the data is present in a nonvolatile memory, the central processing unit has a short access time to the nonvolatile memory that stores the identified data. (Appendix 17)
The program according to claim 15 or 16, wherein the allocation procedure, when the process changes the processor core of the central processing unit, allocates another processor core different from the processor core that was executing the process depending on the time distance required to access the non-volatile memory.
(Appendix 18)
Further, a swap processing step is included,
The program according to any one of
(Appendix 19)
Further, including a specification procedure,
The program described in any one of
(Appendix 20)
The program described in any of
(Appendix 21)
21. The program according to any one of
(Appendix 22)
A computer-readable recording medium having a program according to any one of
本発明によれば、不揮発性メモリ上のデータに対するアクセスを最適化することができる。このため、本発明は、不揮発性メモリを搭載したNUMAアーキテクチャにおいて有用である。 According to the present invention, it is possible to optimize access to data in non-volatile memory. Therefore, the present invention is useful in a NUMA architecture equipped with non-volatile memory.
1 情報処理装置
10 オペレーティングシステム部
11 プロセス解析部
12 データ特定部
13 割当部
14 スワップ処理部
15 指定部
20 メモリアクセスノード
21 中央処理部
211 中央処理装置
2111 プロセッサーコア
2112 接続コントローラ
22 リモートコントローラ
23 メモリ部
231 不揮発性メモリ
30 IO装置
100 接続部
REFERENCE SIGNS LIST 1
Claims (10)
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、前記中央処理部により実行され、
前記オペレーティングシステム部は、プロセス解析部、データ特定部、及び割当部を含み、
前記プロセス解析部は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定部は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当部は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する下記(1)~(2)の少なくとも一方の前記中央処理部を割り当てる、
情報処理装置。
(1)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記プロセスのアクセス対象であるデータを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部 An operating system unit and a plurality of memory access nodes,
Each of the memory access nodes 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 connects to other central processing units 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;
the operating system portion is executed by the central processing unit;
the operating system unit includes a process analyzer, a data identifier, and an allocation unit;
The process analysis unit analyzes a process running in the operating system unit,
The data identifying unit identifies data to be accessed by the process and an 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 unit allocates at least one of the central processing units (1) to (2) below that executes the process from the plurality of memory access nodes in accordance with a time distance required for accessing the non-volatile memory based on the data and the executable file,
Information processing device.
(1) When the identified executable file itself has "a function of operating in response to at least one of the central processing unit and the memory unit operating when executed by a plurality of memory access nodes," the central processing unit is close in time to the non-volatile memory storing the data to be accessed by the identified process. (2) When the identified executable file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the central processing unit is close in time to the non-volatile memory storing the identified data.
(3)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部 The information processing device of claim 1, wherein the allocation unit allocates at least one of the central processing units (3) to (4) below to execute the process from the multiple memory access nodes instead of at least one of the central processing units (1) to (2 ) allocated, depending on the time distance required to access the non-volatile memory based on the data and the executable file.
(3) When the identified data and the executable file are present in the same memory access node, and/or when the process does not use the data but only uses the executable file present in the memory access node, the central processing unit is close in time to the non-volatile memory in the memory access node. (4) When the identified data and the executable file are present in different memory access nodes, the central processing unit is close in time to the non-volatile memory storing either the data or the executable file that satisfies a preset profile condition.
前記スワップ処理部は、スワップアウトが必要な場合、前記各メモリアクセスノードの前記不揮発性メモリ毎にスワップ領域を作成し、且つ前記各中央処理部とアクセスにかかる時間距離が近い前記不揮発性メモリのスワップ領域に、前記各中央処理部におけるメモリ内のデータをスワップアウトする、請求項1から3のいずれか一項に記載の情報処理装置。 Further, a swap processing unit is included,
4. The information processing device according to claim 1, wherein when swapping out is required, the swap processing unit creates a swap area for each non-volatile memory of each memory access node, and swaps out data in the memory of each central processing unit to the swap area of the non-volatile memory that is close to the time distance required to access each central processing unit.
前記指定部は、前記不揮発性メモリ毎に新たな記憶領域を作成し、且つ新たに作成するデータに対するメモリとして、前記プロセスを実行する中央処理部とアクセスにかかる時間距離が近い不揮発性メモリの前記新たな記憶領域を指定する、請求項1から4のいずれか一項に記載の情報処理装置。 Further, the method includes a designation portion,
5. The information processing device according to claim 1, wherein the designation unit creates a new storage area for each of the non-volatile memories, and designates the new storage area of a non-volatile memory that is close in time to access from a central processing unit that executes the process as the memory for the newly created data.
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、前記中央処理部により実行される、
情報処理装置を用いて、
前記オペレーティングシステム部は、プロセス解析工程、データ特定工程、及び割当工程を含む各工程を実行するプロセス実行方法:
前記プロセス解析工程は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定工程は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当工程は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する下記(1)~(2)の少なくとも一方の前記中央処理部を割り当てる。
(1)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記プロセスのアクセス対象であるデータを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部 An operating system unit and a plurality of memory access nodes,
Each of the memory access nodes 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 connects to other central processing units 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;
The operating system portion is executed by the central processing unit.
Using an information processing device,
The operating system unit executes each step including a process analysis step, a data identification step, and an allocation step.
The process analysis step includes analyzing a process running in the operating system unit,
The data identifying step identifies data to be accessed by the process and an 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 at least one of the central processing units (1) to (2) below that executes the process from the multiple memory access nodes based on the data and the executable file, and in accordance with the time distance required to access the non-volatile memory.
(1) When the identified executable file itself has "a function of operating in response to at least one of the central processing unit and the memory unit operating when executed by a plurality of memory access nodes," the central processing unit is close in time to the non-volatile memory storing the data to be accessed by the identified process. (2) When the identified executable file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the central processing unit is close in time to the non-volatile memory storing the identified data.
(3)特定した前記データ及び前記実行ファイルが同一のメモリアクセスノードに存在する場合、及び前記プロセスが前記データを使用せずに前記メモリアクセスノードに存在する前記実行ファイルのみを使用する場合の少なくとも一方において、前記メモリアクセスノードにおける前記不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(4)特定した前記データ及び前記実行ファイルが異なるメモリアクセスノードに存在する場合、予め設定したプロファイル条件を満たす前記データ又は前記実行ファイルのいずれか一方を保存している前記不揮発性メモリとアクセスにかかる距離が近い前記中央処理部 The process execution method according to claim 8, wherein the allocation step allocates at least one of the central processing units (3) to (4) below that executes the process from the multiple memory access nodes in accordance with a time distance required to access the non-volatile memory based on the data and the executable file, instead of the at least one of the central processing units (1) to (2) that have been allocated .
(3) When the identified data and the executable file are present in the same memory access node, and/or when the process does not use the data but only uses the executable file present in the memory access node, the central processing unit is close in time to the non-volatile memory in the memory access node. (4) When the identified data and the executable file are present in different memory access nodes, the central processing unit is close in time to the non-volatile memory storing either the data or the executable file that satisfies a preset profile condition.
前記各メモリアクセスノードは、中央処理部と、メモリコントローラと、メモリ部とを含み、
前記中央処理部は、中央処理装置を含み、
前記中央処理装置は、プロセッサーコア及び接続コントローラを含み、
前記中央処理装置は、前記接続コントローラを介して、他の中央処理装置と接続し、
前記メモリ部は、不揮発性メモリを含み、
前記メモリ部は、前記メモリコントローラを介して前記中央処理部と接続し、
前記オペレーティングシステム部は、前記中央処理部により実行される、
情報処理装置を用いて、
前記オペレーティングシステム部に、プロセス解析手順、データ特定手順、及び割当手順を含む手順を実行させるためのプログラム:
前記プロセス解析手順は、前記オペレーティングシステム部で稼動するプロセスを解析し、
前記データ特定手順は、前記プロセスに基づいて、前記プロセスのアクセス対象であるデータ及び前記データの実行ファイルを特定し、
前記データ及び前記実行ファイルの少なくとも一方は、特定のメモリアクセスノードの前記不揮発性メモリ上に格納されているデータであり、
前記割当手順は、前記データ及び前記実行ファイルに基づいて、前記不揮発性メモリとのアクセスにかかる時間距離に応じて、前記複数のメモリアクセスノードから前記プロセスを実行する下記(1)~(2)の少なくとも一方の前記中央処理部を割り当てる。
(1)特定した実行ファイル自身が、「複数のメモリアクセスノードによって実行されたときに、動作する前記中央処理部及び前記メモリ部の少なくとも一方に応じて動作する機能」を有する場合、特定した前記プロセスのアクセス対象であるデータを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部
(2)特定した前記実行ファイルが不揮発性メモリ以外のストレージに存在し、前記データが不揮発性メモリに存在する場合、特定した前記データを格納している不揮発性メモリとアクセスにかかる時間距離が近い前記中央処理部 An operating system unit and a plurality of memory access nodes,
Each of the memory access nodes 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 connects to other central processing units 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;
The operating system unit is executed by the central processing unit.
Using an information processing device,
A program for causing the operating system unit to execute procedures including a process analysis procedure, a data identification procedure, and an allocation procedure:
The process analysis step includes analyzing a process running in the operating system portion;
the data identification step includes identifying data to be accessed by the process and an 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 assigns at least one of the central processing units (1) to (2) below that executes the process from the multiple memory access nodes based on the data and the executable file, depending on the time distance required to access the non-volatile memory.
(1) When the identified executable file itself has "a function of operating in response to at least one of the central processing unit and the memory unit operating when executed by a plurality of memory access nodes," the central processing unit is close in time to the non-volatile memory storing the data to be accessed by the identified process. (2) When the identified executable file exists in a storage other than the non-volatile memory and the data exists in the non-volatile memory, the central processing unit is close in time to the non-volatile memory storing the identified data.
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 JP2022068670A (en) | 2022-05-10 |
| JP7640066B2 true 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 (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
Family Cites Families (1)
| 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 |
-
2020
- 2020-10-22 JP JP2020177474A patent/JP7640066B2/en active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
|---|---|
| JP2022068670A (en) | 2022-05-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7467593B2 (en) | Resource allocation method, storage device, and storage system - Patents.com | |
| US20220066928A1 (en) | Pooled memory controller for thin-provisioning disaggregated memory | |
| US12242376B2 (en) | Paging in thin-provisioned disaggregated memory | |
| JP2018022345A (en) | Information processing system | |
| CN107430510A (en) | Data processing method, device and system | |
| JP2007026094A (en) | Execution device and application program | |
| JP6244949B2 (en) | Information processing apparatus, control method, and control program | |
| JP5969122B2 (en) | Host bus adapter and system | |
| JP2012123556A (en) | Virtual server system and control method thereof | |
| CN115794368A (en) | Service system, memory management method and device | |
| CN107528871B (en) | Data analysis in storage systems | |
| JPWO2017056310A1 (en) | Computer and computer control method | |
| JP7640066B2 (en) | Information processing device, process execution method, program, and recording medium | |
| JP5158576B2 (en) | Input/Output Control System, Input/Output Control Method, and Input/Output Control Program | |
| CN116932196A (en) | Data processing method, device, equipment and system of fusion system | |
| CN107329798B (en) | Data replication method and device and virtualization system | |
| US9858204B2 (en) | Cache device, cache system, and cache method | |
| CN111858418B (en) | Memory communication method and device based on remote direct memory access RDMA | |
| CN116048377B (en) | Solid State Drive (SSD) Data Processing Methods and Related Equipment | |
| JP2015228075A (en) | Computer resources allocation device and computer resources allocation program | |
| US9251100B2 (en) | Bitmap locking using a nodal lock | |
| JP4872942B2 (en) | Storage system, storage device, priority control device, and priority control method | |
| JP7080698B2 (en) | Information processing equipment | |
| CN117908772B (en) | Multi-MB data processing method, device, equipment and medium | |
| KR102789200B1 (en) | Direct Memory Access Device for Buffering Multi-Data Stream In Memory into One Data Buffer, and Operation Method Thereof |
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 |