JP2016224855A - 並列計算機、マイグレーションプログラム、及び、マイグレーション方法 - Google Patents
並列計算機、マイグレーションプログラム、及び、マイグレーション方法 Download PDFInfo
- Publication number
- JP2016224855A JP2016224855A JP2015113164A JP2015113164A JP2016224855A JP 2016224855 A JP2016224855 A JP 2016224855A JP 2015113164 A JP2015113164 A JP 2015113164A JP 2015113164 A JP2015113164 A JP 2015113164A JP 2016224855 A JP2016224855 A JP 2016224855A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- job
- node
- index value
- value
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
- G06F2212/2542—Non-uniform memory access [NUMA] architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
図1は、本実施の形態における情報処理装置の一例を説明する図である。図1に例示する情報処理装置10は、NUMA(Non-Uniform Memory Access:NUMA)アーキテクチャを採用する情報処理装置10である。
図2は、ジョブに対するジョブ資源の割り当てを模式的に説明する図である。図2は、図1に示した情報処理装置10が、5つのジョブ(ジョブA〜ジョブE)を実行する場合を例示する。
NUMAポリシーは、ジョブ資源の割り当て方法を指定する設定値である。ユーザは、ジョブを示すプログラムに、オペレーティングシステムが提供するNUMAアーキテクチャのAPI(Application Programming Interface:API)を指定することによって、NUMAポリシーを指定する。ユーザは、例えば、ジョブの処理内容の特性に応じて、ジョブにNUMAポリシーを指定する。
オペレーションシステムは、ジョブのプロセスを実行しているCPUコアcpを、別のCPUコアcpに変更することによって、CPUコアcpの再配置を行う。または、オペレーションシステムは、ジョブのプロセスがアクセスするデータが記憶されたメモリ領域を、別のメモリ領域に変更することによって、メモリmmの再配置を行う。
図4は、再配置を行わない場合の、ジョブ資源の割り当てを模式的に説明する図である。図4において、図1、図2で示したものと同一のものは、同一の記号で示す。オペレーションシステムは、ジョブA〜ジョブEの順に、ジョブ資源の空き状況に応じて、各ジョブにジョブ資源を割り当てる。
図7は、再配置を行う場合の、ジョブA〜ジョブEに対するメモリページmpの割り当て状態を時系列(タイミングt1〜t7)に示す表図である。図7において、図5で示したものと同一のものは、同一の記号で示す。また、図7に示す表H1は、図5に示した表H1と同様である。
図10は、本実施の形態のキャッシュメモリ103の構成の一例を示す図である。図10は、図1、図2に示す各ノードndが有するキャッシュメモリ103と、メモリmmとを示す。図10に示すメモリmmは、12個のメモリページp0〜p11(mp、メモリ領域)を有する。
図11は、メモリの再配置に伴う、スラッシングの発生を模式的に説明する図である。図11の(A)は再配置前の状態を示し、図11の(B)は再配置後の状態を示す。図11において、図10で示したものと同一のものは、同一の記号で示す。図11の(A)(B)に示すキャッシュメモリ103は、図10に対して、タグアレイta及びメモリmmを抜粋して表す。
したがって、並列計算機は、第1のノードndが実行中のジョブを第2のノードndに移行してジョブの実行を継続する際に、ジョブがアクセスするデータが記憶された第1のノードndの第1の複数のメモリページmpに対応するインデックス値を取得する。第1、第2のノードndは、複数のメモリページ(メモリ領域)mp、及び、キャッシュメモリ103を、それぞれ有する。
図13は、第1の実施の形態の並列計算機ndのハードウェア構成を示す図である。図13に示す並列計算機ndは、CPUユニット101とメモリユニット102とを有する。CPUユニット101は、複数のCPUコアcp1a〜cp1d(cp)と、キャッシュメモリ103、通信インタフェース部104等を有する。CPUユニット101の各部は、バス106を介して相互に接続する。
図14は、図13に示した並列計算機ndのソフトウェアブロックを説明する図である。図13に示した再配置プログラム121は、メモリ再配置モジュール131と、CPU再配置モジュール132とを有する。また、メモリ再配置モジュール131は、メモリ獲得ルーチン133を有する。
図15は、図13、図14に示した、ジョブ使用メモリ情報122の一例を示す図である。ジョブ使用メモリ情報122は、実行中のジョブがアクセスするデータが記憶されたメモリページmp、即ち、実行中のジョブが使用しているメモリページmpの情報を有する。
図16は、図13、図14に示す、メモリ再配置モジュール131の処理の詳細を説明するフローチャート図である。
図17は、図16のフローチャート図の工程S23に示した、条件1(k=0)を満たすインデックス値の組を説明する図である。条件1(k=0)を満たすインデックス値の組は、ジョブがアクセスするデータが記憶された、第1のノードnd1のメモリページmpに対応するインデックス値の組と同一のインデックス値の組を示す。即ち、条件1(k=0)を満たすインデックス値の組は、工程S22で取得したインデックス値「I」と同一のインデックス値の組を示す。
図18は、図16のフローチャート図の工程S23の処理を説明するフローチャート図である。
図19は、図16のフローチャート図の工程S25に示した、条件1(k≠0)を満たすインデックス値の組を説明する図である。図19において、図17で示したものと同一のものは、同一の記号で示す。また、図19の(A)に示す、再配置前の、ジョブが使用している複数のメモリページmpは、図17の(A)と同様である。
図20は、図16のフローチャート図の工程S25の処理を説明するフローチャート図である。
次に、図21にしたがって、条件2(k=0)(k≠0)を満たすインデックス値の組に対応する、第2のノードnd2のメモリページmpの取得処理(工程S27)の詳細を説明する。
図21は、図16のフローチャート図の工程S27の処理を説明するフローチャート図である。
図22は、メモリ獲得ルーチン133の処理を説明するフローチャート図である。メモリ獲得ルーチン133の第1のパラメータである値「r」は獲得対象のメモリページmpに対応するインデックス値を示し、第2のパラメータである値「P(r)」は獲得対象のメモリページ数を示す。
第2の実施の形態の並列計算機ndは、複数の候補ノードから、メモリの再配置先のノードを選択する。
図25は、図24に示した、並列計算機ndのソフトウェアブロックを説明する図である。図25において、図14で示したものと同一のものは、同一の記号で示す。CPU再配置モジュール132は、第1の実施の形態と同様である。
図26は、図24、図25に示した、第2の実施の形態におけるジョブ使用メモリ情報122の一例を説明する図である。図26に示すように、第2の実施の形態のジョブ使用メモリ情報122は、インデックス値毎に、実行中のジョブが使用している、メモリページmpの情報、及び、メモリページ数の情報を有する。
図27は、図24、図25に示した、メモリ使用状態情報124の一例を説明する図である。メモリ使用状態情報124は、ノード毎のインデックス値に対応するメモリページmpの使用状態を示す。図27は、ノード「i」のメモリ使用状態情報124を示す。
図28は、図24、図25に示す、第2の実施の形態における、メモリ再配置モジュール131の処理の詳細を説明するフローチャート図である。
図29は、図28の工程S81の処理の詳細を説明するフローチャート図である。図28のフローチャート図で前述したとおり、メモリ再配置モジュール131は、NUMAポリシーを満たしていないジョブのリスト「JLIST」を作成する(図28のS81)。本実施の形態では、メモリ再配置モジュール131は、ジョブ1〜ジョブ3をリスト「JLIST」に追加する。
図30は、図28の工程S84の処理の詳細を説明するフローチャート図である。図28のフローチャート図で前述したとおり、メモリ再配置モジュール131は、リスト「JLIST」から1つのジョブを選択し、ジョブが使用しているメモリページの組を獲得可能なノードを抽出し、ノードのリスト「NLIST」を作成する(図28のS84)。本実施の形態では、メモリ再配置モジュール131は、例えば、ジョブ1を選択し、ノードnd2、ノードnd3をリスト「NLIST」に追加する。
図31は、図28の工程S86の処理の詳細を説明するフローチャート図である。図28のフローチャート図で前述したとおり、メモリ再配置モジュール131は、リスト「JLIST」から選択したジョブ「jobid」を、リスト「NLIST」の各ノードndに再配置した際の評価値「eval」を算出する。また、メモリ再配置モジュール131は、評価値が小さいノードndを、再配置先のノード「NIDz」ndとして検出する(図28のS84)。
図32は、図28の工程S87の処理の詳細を説明するフローチャート図である。図28のフローチャート図で前述したとおり、メモリ再配置モジュール131は、選択したジョブ「jobid」の再配置前のノード「NIDj」ndに移行することによって、評価値「eval'」が向上するジョブ「jobuid'」を検出する(図28のS87)。
図33は、図28の工程S88の処理の詳細を説明するフローチャート図である。図28のフローチャート図で前述したとおり、メモリ再配置モジュール131は、再配置の対象のジョブと、再配置先のノードを確定する(図28のS88)。
図34は、図28の工程S91の処理の詳細を説明するフローチャート図である。図28のフローチャート図で前述したとおり、メモリ再配置モジュール131は、再配置対象のジョブ、及び、再配置先のノードの情報に基づいて、メモリページmpの再配置の実施する(図28のS91)。
図35は、評価値算出ルーチン134の処理の詳細を説明するフローチャート図である。
第1、第2の実施の形態では、並列計算機ndが、実行中のジョブが使用しているメモリページmpを、他のノードndに移行する場合を例示した。ただし、本実施の形態におけるメモリの再配置処理は、あるノードndで実行しているジョブが使用中のメモリページmpを、同一のノードndの別のメモリページmpに移動する場合についても有効である。
複数のメモリ領域を有するメモリ及びキャッシュメモリを、それぞれ有する第1、第2のノードと、
第1のノードが実行中のジョブを第2のノードに移行して前記ジョブの実行を継続する際に、前記ジョブがアクセスするデータが記憶された前記第1のノードの第1の複数のメモリ領域のアドレスに対応する、キャッシュメモリのインデックス値の組を取得し、
前記第2のノードが、前記インデックス値の組と同一または相対位置関係を有するインデックス値の組に対応する、非使用状態の第2の複数のメモリ領域を有するか否かを判定し、
前記非使用状態の第2の複数のメモリ領域を有する場合に、前記データを前記第2の複数のメモリ領域に移動する処理部と、を有する、
並列計算機。
付記1において、
前記相対位置関係を有するインデックス値の組は、取得した前記インデックス値の組を一律にシフトしたインデックス値の組を示す、
並列計算機。
付記1または2において、
前記処理部は、前記非使用状態の第2の複数のメモリ領域を有しない場合に、前記第2のノードとは異なるノードを対象として前記取得及び前記判定を行う、
並列計算機。
付記1乃至3のいずれかにおいて、
前記処理部は、さらに、
前記第1のノードが実行中のジョブを移行する対象の候補ノードが複数ある場合に、前記複数の候補ノードのそれぞれについて、前記インデックス値の組と同一または相対位置関係を有するインデックス値の組に対応する、前記候補ノードの複数のメモリ領域の使用状況に基づいて、移行後のスラッシングの発生度合いを示す判定値を算出し、
前記判定値がより小さい候補ノードを、前記第2のノードとして、前記データを前記第2の複数のメモリ領域に移動する、
並列計算機。
付記4において、
前記処理部は、前記候補ノードの複数のメモリ領域の使用状況が非使用状態を示す場合に第1の判定値を算出し、前記候補ノードの複数のメモリ領域の使用状況が、所定期間アクセスしていない使用状態を示す第1の状態のメモリ領域を含む場合に、前記第1の判定値より大きい第2の判定値を算出する、
並列計算機。
付記5において、
前記処理部は、さらに、前記候補ノードの複数のメモリ領域の使用状況が、一時使用を示す第2の状態のメモリ領域を含む場合に、前記第2の判定値より小さく前記第1の判定値より大きい第3の判定値を算出する、
並列計算機。
付記6において、
前記処理部は、さらに、前記候補ノードの複数のメモリ領域の使用状況が、オペレーションシステムによる使用を示す第3の状態のメモリ領域を含む場合に、前記第2の判定値より大きい第4の判定値を算出する、
並列計算機。
付記4乃至7のいずれかにおいて、
前記処理部は、さらに、
他のジョブがアクセスするデータが記憶された第3のノードの第3の複数のメモリ領域のアドレスに対応するキャッシュメモリの、別のインデックス値の組を取得し、
前記データの移動後に、前記第1のノードが、前記別のインデックス値の組と同一または相対位置関係を有するインデックス値の組に対応する、非使用状態の第3の複数のメモリ領域を有するか否かを判定し、
前記非使用状態の第3の複数のメモリ領域を有する場合に、前記別のデータを前記第3の複数のメモリ領域に移動する、
並列計算機。
第1のノードが実行中のジョブを第2のノードに移行して前記ジョブの実行を継続する際に、前記ジョブがアクセスするデータが記憶された前記第1のノードの第1の複数のメモリ領域のアドレスに対応する、キャッシュメモリのインデックス値の組を取得し、
前記第2のノードが、前記インデックス値の組と同一または相対位置関係を有するインデックス値の組に対応する、非使用状態の第2の複数のメモリ領域を有するか否かを判定し、
前記非使用状態の第2の複数のメモリ領域を有する場合に、前記データを前記第2の複数のメモリ領域に移動する、
処理をコンピュータに実行させるマイグレーションプログラム。
付記9において、
前記相対位置関係を有するインデックス値の組は、取得した前記インデックス値の組を一律にシフトしたインデックス値の組を示す、
マイグレーションプログラム。
付記9または10において、
前記取得及び判定は、前記非使用状態の第2の複数のメモリ領域を有しない場合に、前記第2のノードとは異なるノードを対象として前記取得及び判定を行う、
マイグレーションプログラム。
付記9乃至11のいずれかにおいて、さらに、
前記第1のノードが実行中のジョブを移行する対象の候補ノードが複数ある場合に、前記複数の候補ノードのそれぞれについて、前記インデックス値の組と同一または相対位置関係を有するインデックス値の組に対応する、前記候補ノードの複数のメモリ領域の使用状況に基づいて、移行後のスラッシングの発生度合いを示す判定値を算出し、
前記移動は、前記判定値がより小さい候補ノードを、前記第2のノードとして、前記データを前記第2の複数のメモリ領域に移動する、
マイグレーションプログラム。
付記12において、
前記算出は、前記候補ノードの複数のメモリ領域の使用状況が非使用状態を示す場合に第1の判定値を算出し、前記候補ノードの複数のメモリ領域の使用状況が、所定期間アクセスしていない使用状態を示す第1の状態のメモリ領域を含む場合に、前記第1の判定値より大きい第2の判定値を算出する、
マイグレーションプログラム。
付記13において、
前記算出は、さらに、前記候補ノードの複数のメモリ領域の使用状況が、一時使用を示す第2の状態のメモリ領域を含む場合に、前記第2の判定値より小さく前記第1の判定値より大きい第3の判定値を算出する、
マイグレーションプログラム。
処理部が、第1のノードが実行中のジョブを第2のノードに移行して前記ジョブの実行を継続する際に、前記ジョブがアクセスするデータが記憶された前記第1のノードの第1の複数のメモリ領域のアドレスに対応する、キャッシュメモリのインデックス値の組を取得し、
処理部が、前記第2のノードが、前記インデックス値の組と同一または相対位置関係を有するインデックス値の組に対応する、非使用状態の第2の複数のメモリ領域を有するか否かを判定し、
処理部が、前記非使用状態の第2の複数のメモリ領域を有する場合に、前記データを前記第2の複数のメモリ領域に移動する、
マイグレーション方法。
付記15において、
前記相対位置関係を有するインデックス値の組は、取得した前記インデックス値の組を一律にシフトしたインデックス値の組を示す、
マイグレーション方法。
付記15または16において、
前記取得及び判定は、前記非使用状態の第2の複数のメモリ領域を有しない場合に、前記第2のノードとは異なるノードを対象として前記取得及び判定を行う、
マイグレーション方法。
付記15乃至17のいずれかにおいて、さらに、
処理部が、前記第1のノードが実行中のジョブを移行する対象の候補ノードが複数ある場合に、前記複数の候補ノードのそれぞれについて、前記インデックス値の組と同一または相対位置関係を有するインデックス値の組に対応する、前記候補ノードの複数のメモリ領域の使用状況に基づいて、移行後のスラッシングの発生度合いを示す判定値を算出し、
前記移動は、前記判定値がより小さい候補ノードを、前記第2のノードとして、前記データを前記第2の複数のメモリ領域に移動する、
マイグレーション方法。
付記18において、
前記算出は、前記候補ノードの複数のメモリ領域の使用状況が非使用状態を示す場合に第1の判定値を算出し、前記候補ノードの複数のメモリ領域の使用状況が、所定期間アクセスしていない使用状態を示す第1の状態のメモリ領域を含む場合に、前記第1の判定値より大きい第2の判定値を算出する、
マイグレーション方法。
付記19において、
前記算出は、さらに、前記候補ノードの複数のメモリ領域の使用状況が、一時使用を示す第2の状態のメモリ領域を含む場合に、前記第2の判定値より小さく前記第1の判定値より大きい第3の判定値を算出する、
マイグレーション方法。
Claims (6)
- 複数のメモリ領域を有するメモリ及びキャッシュメモリを、それぞれ有する第1、第2のノードと、
第1のノードが実行中のジョブを第2のノードに移行して前記ジョブの実行を継続する際に、前記ジョブがアクセスするデータが記憶された前記第1のノードの第1の複数のメモリ領域のアドレスに対応する、前記キャッシュメモリのインデックス値の組を取得し、
前記第2のノードが、前記インデックス値の組と同一または相対位置関係を有するインデックス値の組に対応する、非使用状態の第2の複数のメモリ領域を有するか否かを判定し、
前記非使用状態の第2の複数のメモリ領域を有する場合に、前記データを前記第2の複数のメモリ領域に移動する処理部と、を有する、
並列計算機。 - 請求項1において、
前記相対位置関係を有するインデックス値の組は、取得した前記インデックス値の組を一律にシフトしたインデックス値の組を示す、
並列計算機。 - 請求項1または2において、
前記処理部は、前記非使用状態の第2の複数のメモリ領域を有しない場合に、前記第2のノードとは異なるノードを対象として前記取得及び前記判定を行う、
並列計算機。 - 請求項1乃至3のいずれかにおいて、
前記処理部は、さらに、
前記第1のノードが実行中のジョブを移行する対象の候補ノードが複数ある場合に、前記複数の候補ノードのそれぞれについて、前記インデックス値の組と同一または相対位置関係を有するインデックス値の組に対応する、前記候補ノードの複数のメモリ領域の使用状況に基づいて、移行後のスラッシングの発生度合いを示す判定値を算出し、
前記判定値がより小さい候補ノードを、前記第2のノードとして、前記データを前記第2の複数のメモリ領域に移動する、
並列計算機。 - 第1のノードが実行中のジョブを第2のノードに移行して前記ジョブの実行を継続する際に、前記ジョブがアクセスするデータが記憶された前記第1のノードの第1の複数のメモリ領域のアドレスに対応する、キャッシュメモリのインデックス値の組を取得し、
前記第2のノードが、前記インデックス値の組と同一または相対位置関係を有するインデックス値の組に対応する、非使用状態の第2の複数のメモリ領域を有するか否かを判定し、
前記非使用状態の第2の複数のメモリ領域を有する場合に、前記データを前記第2の複数のメモリ領域に移動する、
処理をコンピュータに実行させるマイグレーションプログラム。 - 処理部が、第1のノードが実行中のジョブを第2のノードに移行して前記ジョブの実行を継続する際に、前記ジョブがアクセスするデータが記憶された前記第1のノードの第1の複数のメモリ領域のアドレスに対応する、キャッシュメモリのインデックス値の組を取得し、
処理部が、前記第2のノードが、前記インデックス値の組と同一または相対位置関係を有するインデックス値の組に対応する、非使用状態の第2の複数のメモリ領域を有するか否かを判定し、
処理部が、前記非使用状態の第2の複数のメモリ領域を有する場合に、前記データを前記第2の複数のメモリ領域に移動する、
マイグレーション方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015113164A JP6459784B2 (ja) | 2015-06-03 | 2015-06-03 | 並列計算機、マイグレーションプログラム、及び、マイグレーション方法 |
US15/143,654 US10019164B2 (en) | 2015-06-03 | 2016-05-02 | Parallel computer, migration program and migration method |
EP16170797.1A EP3101548A1 (en) | 2015-06-03 | 2016-05-23 | Parallel computer, migration program and migration method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015113164A JP6459784B2 (ja) | 2015-06-03 | 2015-06-03 | 並列計算機、マイグレーションプログラム、及び、マイグレーション方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016224855A true JP2016224855A (ja) | 2016-12-28 |
JP6459784B2 JP6459784B2 (ja) | 2019-01-30 |
Family
ID=56068765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015113164A Active JP6459784B2 (ja) | 2015-06-03 | 2015-06-03 | 並列計算機、マイグレーションプログラム、及び、マイグレーション方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10019164B2 (ja) |
EP (1) | EP3101548A1 (ja) |
JP (1) | JP6459784B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200142735A1 (en) * | 2019-09-28 | 2020-05-07 | Intel Corporation | Methods and apparatus to offload and onload workloads in an edge environment |
WO2021139726A1 (zh) * | 2020-01-07 | 2021-07-15 | 中科寒武纪科技股份有限公司 | 任务迁移的方法、装置、计算机设备及可读存储介质 |
CN114398329A (zh) * | 2021-12-15 | 2022-04-26 | 西安统信软件技术有限公司 | 一种基于文件缓存的调度方法、装置与计算设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009075177A1 (ja) * | 2007-12-12 | 2009-06-18 | Nec Corporation | メモリ再配置システムおよびメモリ再配置方法 |
US20140007129A1 (en) * | 2011-09-01 | 2014-01-02 | Huawei Technologies Co., Ltd. | Method, apparatus and system for resource migration |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5185861A (en) * | 1991-08-19 | 1993-02-09 | Sequent Computer Systems, Inc. | Cache affinity scheduler |
US5317738A (en) | 1992-02-18 | 1994-05-31 | Ncr Corporation | Process affinity scheduling method and apparatus |
JPH0877068A (ja) | 1994-09-06 | 1996-03-22 | Toshiba Corp | マルチプロセッサシステム及びメモリアロケーション最適化方法 |
JP3266029B2 (ja) | 1997-01-23 | 2002-03-18 | 日本電気株式会社 | マルチプロセッサシステムにおけるディスパッチング方式、ディスパッチング方法およびディスパッチングプログラムを記録した記録媒体 |
US6243788B1 (en) | 1998-06-17 | 2001-06-05 | International Business Machines Corporation | Cache architecture to enable accurate cache sensitivity |
JP2000066899A (ja) | 1998-08-19 | 2000-03-03 | Nec Corp | 実行オブジェクト最適化装置 |
US6871219B2 (en) * | 2001-03-07 | 2005-03-22 | Sun Microsystems, Inc. | Dynamic memory placement policies for NUMA architecture |
US6654859B2 (en) * | 2001-07-26 | 2003-11-25 | International Business Machines Corporation | NUMA page selection using coloring |
US8799581B2 (en) | 2007-01-05 | 2014-08-05 | International Business Machines Corporation | Cache coherence monitoring and feedback |
JP5164505B2 (ja) | 2007-10-01 | 2013-03-21 | 三菱電機株式会社 | キャッシュメモリ制御装置 |
KR101697937B1 (ko) | 2010-01-08 | 2017-02-01 | 삼성전자주식회사 | 멀티프로세서 시스템에서 동적 태스크 마이그레이션을 위한 방법 및 시스템 |
US8555019B2 (en) * | 2010-09-08 | 2013-10-08 | International Business Machines Corporation | Using a migration cache to cache tracks during migration |
CN104040500B (zh) * | 2011-11-15 | 2018-03-30 | 英特尔公司 | 基于线程相似性的调度线程执行 |
US8930947B1 (en) * | 2011-12-30 | 2015-01-06 | Emc Corporation | System and method for live migration of a virtual machine with dedicated cache |
KR101753866B1 (ko) * | 2013-05-10 | 2017-07-04 | 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 | 메모리 액세스의 가속 |
-
2015
- 2015-06-03 JP JP2015113164A patent/JP6459784B2/ja active Active
-
2016
- 2016-05-02 US US15/143,654 patent/US10019164B2/en active Active
- 2016-05-23 EP EP16170797.1A patent/EP3101548A1/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009075177A1 (ja) * | 2007-12-12 | 2009-06-18 | Nec Corporation | メモリ再配置システムおよびメモリ再配置方法 |
US20140007129A1 (en) * | 2011-09-01 | 2014-01-02 | Huawei Technologies Co., Ltd. | Method, apparatus and system for resource migration |
JP2014522033A (ja) * | 2011-09-01 | 2014-08-28 | 華為技術有限公司 | リソースマイグレーションのための方法、装置及びシステム |
Also Published As
Publication number | Publication date |
---|---|
EP3101548A1 (en) | 2016-12-07 |
JP6459784B2 (ja) | 2019-01-30 |
US20160357442A1 (en) | 2016-12-08 |
US10019164B2 (en) | 2018-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9959337B2 (en) | Independent data processing environments within a big data cluster system | |
US10467051B2 (en) | Support of non-trivial scheduling policies along with topological properties | |
JP5466568B2 (ja) | 資源管理方法、資源管理プログラム、および、資源管理装置 | |
US8656397B2 (en) | Migrating groups of threads across NUMA nodes based on remote page access frequency | |
CN112887437B (zh) | 区块链交易处理方法、区块链节点和区块链系统 | |
JP6459784B2 (ja) | 並列計算機、マイグレーションプログラム、及び、マイグレーション方法 | |
JP6477266B2 (ja) | ダンプ管理装置、ダンプ管理プログラム及びダンプ管理方法 | |
JP2019133391A (ja) | メモリシステムおよび制御方法 | |
EP4184324A1 (en) | Efficient accelerator offload in multi-accelerator framework | |
JP2018139064A (ja) | 仮想計算機システムおよびそのリソース割当て方法 | |
JP2018147301A (ja) | 計算機システム及び処理の割当方法 | |
CN111506400A (zh) | 计算资源分配系统、方法、装置和计算机设备 | |
US11023374B2 (en) | Apparatus and method and computer program product for controlling data access | |
CN116501487A (zh) | 虚拟机上的任务执行方法、装置、存储介质和电子设备 | |
JP6156379B2 (ja) | スケジューリング装置、及び、スケジューリング方法 | |
JP6519228B2 (ja) | データ配置決定装置、データ配置決定プログラム及びデータ配置決定方法 | |
CN115756838A (zh) | 内存释放、内存恢复方法、装置、计算机设备及存储介质 | |
KR20160099365A (ko) | 가상머신 마이그레이션의 중복제거 기반 기반 메모리 마이그레이션 장치 및 방법 | |
US10824640B1 (en) | Framework for scheduling concurrent replication cycles | |
JP2016114967A (ja) | キャッシュ装置、キャッシュシステム、キャッシュ方法、及びキャッシュプログラム | |
US10296227B2 (en) | System and method for dynamic cache distribution for in-memory data grids | |
WO2015161804A1 (zh) | 一种Cache分区的方法及装置 | |
CN116048377A (zh) | 固态硬盘的数据处理方法及相关设备 | |
JP5927871B2 (ja) | 管理装置、情報処理装置、管理プログラム、管理方法、プログラムおよび処理方法 | |
US8738578B1 (en) | Growing data structures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180306 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181126 |
|
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: 20181204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181217 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6459784 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |