JP6248808B2 - 情報処理装置、情報処理システム、情報処理装置の制御方法、及び、情報処理装置の制御プログラム - Google Patents
情報処理装置、情報処理システム、情報処理装置の制御方法、及び、情報処理装置の制御プログラム Download PDFInfo
- Publication number
- JP6248808B2 JP6248808B2 JP2014106155A JP2014106155A JP6248808B2 JP 6248808 B2 JP6248808 B2 JP 6248808B2 JP 2014106155 A JP2014106155 A JP 2014106155A JP 2014106155 A JP2014106155 A JP 2014106155A JP 6248808 B2 JP6248808 B2 JP 6248808B2
- Authority
- JP
- Japan
- Prior art keywords
- sector
- information processing
- processing apparatus
- division ratio
- job
- 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
Images
Classifications
-
- 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
- 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/0893—Caches characterised by their organisation or structure
-
- 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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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/0683—Plurality of storage devices
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/1021—Hit rate improvement
-
- 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/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- 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/251—Local memory within processor subsystem
-
- 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/60—Details of cache memory
- G06F2212/6042—Allocation of cache space to multiple users or processors
- G06F2212/6046—Using a specific cache allocation policy other than replacement policy
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)
- Computer Networks & Wireless Communication (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
図1は、本実施の形態例における情報処理システムのハードウェア構成を説明する図である。図1の情報処理システムは、例えば、ハイ・パフォーマンス・コンピューティング(high-performance computing:HPC)システムを示す。HPCシステムでは、複数のジョブのスケジュールを生成し、情報処理装置300a〜300cが、複数のジョブをスケジュールに基づいて実行する。
図2は、図1に示す計算ノード300a〜300cのCPU31のハードウェア構成を説明する図である。この例では、1つの計算ノード300aのCPU31のハードウェア構成を示すが、他の計算ノード300b〜300cのCPU31のハードウェア構成も同様である。以下、計算ノード300b〜300cを、計算ノード300と称する。
図6は、本実施の形態例の情報処理システムのソフトウェアブロック図を説明する図である。情報処理システムは、変数別キャッシュ使用状況の解析モジュール(以下、解析モジュールと称する)21、資源割当最適化モジュール22、キャッシュセクタ割当制御モジュール23を有する。また、本実施の形態例において、情報処理システムの処理は、解析フェーズの処理と、実行フェーズの処理とを有する。解析モジュール21の処理は、解析フェーズに該当する。また、資源割当最適化モジュール22、及び、キャッシュセクタ割当制御モジュール23の処理は、実行フェーズに該当する。各モジュールの処理の概要については、図7にしたがって後述する。
図9は、解析モジュール21の処理の詳細を説明するフローチャート図である。コンパイルノード500の解析モジュール21は、コンパイラによるソースプログラムのコンパイル時に、変数ごとのデータアクセス量を解析する。そして、解析モジュール21は、プログラム内のデータアクセス量を求める(S11)。
次に、実行フェーズの処理を説明する。実行フェーズでは、ジョブの実行中に、図6、図7に示した、資源割当最適化モジュール22、及び、キャッシュセクタ割当制御モジュール23が連携して処理を行う。初めに、実行フェーズの処理の流れをフローチャート図にしたがって説明する。
図13は、図12に示す資源割当最適化処理(S26)を説明するフローチャート図である。資源割当最適化モジュール22は、計算ノード300から資源割当最適化処理の依頼を受け付ける(S31)。このとき、資源割当最適化モジュール22は、実行中のジョブ(以下、依頼ジョブと称する)の変数別キャッシュ使用状況情報24のうち、対象の最適化区間のデータアクセス量を、計算ノード300から受信する。
図16は、セクタの分割比の算出処理(図13のS33)の処理の流れを説明するフローチャート図である。セクタの分割比の算出処理では、セクタの分割比の各パターンそれぞれについて、処理遅延時間を示す評価値を算出する。そして、複数のパターンのうち、最も処理遅延時間を示す評価値が小さいパターンが選択される。
図17は、図16の工程S63、S65に示す、関数objective_functionの処理の概要を説明するフローチャート図である。関数objective_functionは、要素(セクタの分割比)を入力として、計算ノード300における、複数のジョブの処理遅延時間を示す評価値を算出する。
M(1)=e(1)*I(1,1)+e(2)*I(1,2)+e(3)*log(A(1,1))+e(4)*log(A(1,2))…式1
L2キャッシュm2のキャッシュミス発生回数M(2)を算出する式2は、例えば、次のとおりである。値I(L,R)(=I(2,1)(2,2))は、L2キャッシュm2の、セクタ(再利用度)ごとのキャッシュミス発生指標値である。値A(L,R)(=A(2,1)、A(2,2))は、L2キャッシュm2のセクタ(再利用度)ごとのデータアクセス量である。式2における係数f(1),f(2),f(3),f(4)は、設計データに基づく重回帰分析に基づいて、予め、求められる。セクタごとに、異なる係数が適用される。
M(2)=f(1)*I(2,1)+f(2)*I(2,2)+f(3)*log(A(2,1))+f(4)*log(A(2,2))…式2
これにより、資源割当最適化モジュール22は、各階層レベルのキャッシュミス発生回数M(1)、M(2)を算出する。M(1)は、L1キャッシュma、mbのキャッシュミス発生回数である。M(2)は、L2キャッシュm2のキャッシュミス発生回数である。次に、資源割当最適化モジュール22は、算出した、各階層レベルのキャッシュミス発生回数M(1)、M(2)を入力として、処理遅延時間を示す評価値を算出する。処理遅延時間を示す評価値を算出する式3は、例えば、次のとおりである。式3における係数P(1),P(2)は、各キャッシュレベルの1回あたりキャッシュミスペナルティを示す。係数P(1),P(2)は、設計データに基づく重回帰分析に基づいて、予め、求められる。
P(1)*M(1)+P(2)*M(2)…式3
式3では、階層レベルごとに、係数P(1),P(2)が異なる。キャッシュミス発生回数の処理遅延時間に対する寄与率は、キャッシュレベルの階層にしたがって異なる。したがって、資源割当最適化モジュール22は、階層ごとに重みが異なる係数P(1),P(2)を、キャッシュミス発生回数に適用することによって処理遅延時間を高精度に算出する。これにより、各レベルのキャッシュメモリのキャッシュミス発生回数に基づいて、最適なL2キャッシュm2のセクタの分割比が算出可能になる。
図21は、図12に示すキャッシュセクタ割当制御処理(S22、S25)を説明するフローチャート図である。キャッシュセクタ割当制御モジュール23は、図13〜図20で説明した資源割当最適化モジュール22によって算出されたセクタの分割比とともに、システムコールの発行指示を受け付ける。そして、キャッシュセクタ割当制御モジュール23は、L2キャッシュm2のシステムコールを発行する(S51)。システムコールのパラメータには、セクタごとの最大way数が指定される。
第2の実施の形態例では、情報処理システムは、第1の実施の形態例における構成に加えて、ジョブへの計算ノード300の割り当ての最適化処理を行う。情報処理システムは、ジョブに、計算ノード300を割り当てる際に、複数の計算ノード300のうち、最適な計算ノード300をジョブに割り当てる。
D(i)=P(i,1)*M(i,1)+P(i,2)*M(i,2)…式4
これにより、CPUコア割当制御モジュール26は、第1のパターンにおける、計算ノード300−1、300−2それぞれの処理遅延時間D(1)、D(2)を算出する。そして、CPUコア割当制御モジュール26は、処理遅延時間D(1)、D(2)の分散を算出する。CPUコア割当制御モジュール26は、処理遅延時間D(i)の平均値Dを入力として、次の式5にしたがって、計算ノード間の処理遅延時間の分散を算出する。式5における変数kは、計算ノード300の数を示す。この例では、「k=2」である。
(1/k)*Σ(D(i)−D)^2 …式5
j=1
これにより、CPUコア割当制御モジュール26は、計算ノード300−1のCPUコアcb−1をジョブに割り当てた場合(第1のパターン)における処理遅延時間の分散を算出する。同様にして、CPUコア割当制御モジュール26は、計算ノード300−2のCPUコアcb−2をジョブに割り当てた場合(パターン2)における処理遅延時間の分散を算出する。そして、CPUコア割当制御モジュール26は、計算ノード300−1(第2のパターン)、300−2(パターン2)のうち、処理遅延時間の分散が小さい計算ノードを、新規ジョブに割り当てる。
本実施の形態例では、計算ノード300のCPU31が、共有キャッシュメモリとして、L2キャッシュm2のみを有する場合を例示した。本実施の形態例における情報処理システムは、CPU31がL2キャッシュm2に加えて、さらに、L3キャッシュを有する場合にも、適用可能である。この場合、本実施の形態例における情報処理システムは、第1の実施の形態例に示す処理を適用することにより、L2キャッシュm2、及び、L3キャッシュにおける最適なセクタの分割比を算出可能になる。
データの再利用度に応じて分割されるセクタ機能を備える共有キャッシュメモリと、
前記共有キャッシュメモリのセクタの分割比を変更する制御ユニットと、を有し、
前記制御ユニットは、第1のジョブ、第2のジョブの実行中に、前記第2のジョブのプログラムの指定に応じて、前記第1、第2のジョブがアクセスするデータのサイズ及びアクセス回数を有するデータアクセス量と、前記共有キャッシュメモリの容量とに基づいて、前記セクタの分割比を算出し、前記算出したセクタの分割比に変更する情報処理装置。
付記1において、
前記制御ユニットは、前記実行中の第1、第2のジョブの前記データアクセス量の各データの前記サイズを、前記データの前記アクセス回数に応じた第1の再利用度、前記第1の再利用度より大きい第2の再利用度ごとに合計した前記第1、第2のデータアクセス量と、前記共有キャッシュメモリの、前記第1、第2の再利用度に対応する第1、第2のセクタの容量と、に基づいて前記セクタの分割比を算出する情報処理装置。
付記2において、
前記制御ユニットは、前記第1、第2のセクタのデータアクセス量と、前記第1、第2のセクタの容量とに基づいてキャッシュミスの発生回数を算出し、前記算出したキャッシュミスの発生回数に基づいて、前記セクタの分割比を算出する情報処理装置。
付記3において、
前記制御ユニットは、前記第1、第2のセクタのデータアクセス量と、前記第1、第2のセクタの容量とに基づいて、前記第1のセクタのキャッシュミスの発生指標を示す第1の指標値、及び、前記第2のセクタのキャッシュミスの発生指標を示す第2の指標値を算出し、前記第1の指標値と前記第2の指標値に異なる重みを適用して、前記キャッシュミス発生回数を算出する情報処理装置。
付記3または4において、
前記共有キャッシュメモリは、複数階層の共有キャッシュメモリであって、
前記制御ユニットは、第1の階層の共有キャッシュメモリの第1のキャッシュミスの発生回数と、第2の階層の共有キャッシュメモリの第2のキャッシュミスの発生回数とを算出し、前記第1のキャッシュミスの発生回数と第2のキャッシュミスの発生回数に異なる重みを適用して、処理遅延時間を示す値を算出する情報処理装置。
付記1乃至5のいずれかにおいて、
前記制御ユニットは、処理遅延時間を示す値が最少となるセクタの分割比を算出する情報処理装置。
前記1乃至6のいずれかにおいて、
前記最適化区間は、ループ処理に対応する情報処理装置。
付記1乃至7のいずれかにおいて、
前記制御ユニットは、さらに、前記第2のジョブのプログラムの指定に応答して、前記変更する前のセクタの分割比に変更する情報処理装置。
付記1乃至8のいずれかにおいて、
前記共有キャッシュメモリは、1階層、または、複数階層の共有キャッシュメモリであって、
前記セクタの分割比は、それぞれの階層の共有キャッシュメモリのセクタの分割比である情報処理装置。
付記1乃至9のいずれかにおいて、さらに、
第1、第2の演算ユニットを有し、
前記第1の演算ユニットは前記第1のジョブを実行し、
前記第2の演算ユニットは前記第2のジョブを実行する情報処理装置。
付記1乃至10のいずれかにおいて、
前記制御ユニットは、プログラムのコンパイル時に、前記最適化区間のデータアクセス量と、前記最適化区間を指定するコードとを追加して生成された前記プログラムを取得し、前記プログラムをジョブとして実行する情報処理装置。
データの再利用度に応じて分割されるセクタ機能を備える共有キャッシュメモリと、
前記共有キャッシュメモリのセクタの分割比を変更する第1の制御ユニットと、を有する第1の情報処理装置と、
前記共有セクタの分割比を算出する第2の制御ユニットを有する第2の情報処理装置と、を有し、
前記第1の情報処理装置の前記第1の制御ユニットは、第1のジョブ、第2のジョブの実行中に前記第2のジョブのプログラムの指定に応じて、前記第2の情報処理装置に通知し、
前記第2の情報処理装置の前記第2の制御ユニットは、前記第1、第2のジョブがアクセスするデータのサイズ及びアクセス回数を有するデータアクセス量と、前記共有キャッシュメモリの容量とに基づいて、前記セクタの分割比を算出して、前記第1の情報処理装置に通知し、
前記第1の情報処理装置の前記第2の制御ユニットは、前記セクタの分割比を、前記通知されたセクタの分割比に変更する情報処理システム。
付記12において、
前記第2の情報処理装置の前記第2の制御ユニットは、前記実行中の第1、第2のジョブの前記データアクセス量の各データの前記サイズを、前記データの前記アクセス回数に応じた第1の再利用度、前記第1の再利用度より大きい第2の再利用度ごとに合計した前記第1、第2のデータアクセス量と、前記共有キャッシュメモリの、前記第1、第2の再利用度に対応する第1、第2のセクタの容量と、に基づいて前記セクタの分割比を算出する情報処理システム。
付記13において、
前記第2の情報処理装置の前記第2の制御ユニットは、前記第1、第2のセクタのデータアクセス量と、前記第1、第2のセクタの容量とに基づいてキャッシュミスの発生回数を算出し、前記算出したキャッシュミスの発生回数に基づいて、前記セクタの分割比を算出する情報処理システム。
第2の情報処理装置が、第1のジョブ、第2のジョブの実行中に、前記第2のジョブのプログラムの指定に応じて、前記第1、第2のジョブがアクセスするデータのサイズ及びアクセス回数を有するデータアクセス量と、前記データの再利用度に応じて分割されるセクタ機能を備える共有キャッシュメモリの容量とに基づいて、前記共有キャッシュメモリのセクタの分割比を算出する算出工程と、
前記セクタの分割比を、前記算出したセクタの分割比に変更する変更工程と、
を有する情報処理装置の制御方法。
付記15において、
第1の情報処理装置が、前記第1、第2のジョブを実行し、前記第2のジョブのプログラムの指定に応じて、前記第2の情報処理装置に通知する通知工程を、さらに有し、
前記変更工程は、前記第1の情報処理装置が、前記第1の情報処理装置の前記セクタの分割比を、前記第2の情報処理装置から通知される、前記算出したセクタの分割比に変更する情報処理装置の制御方法。
付記15または16において、
前記算出工程は、前記実行中の第1、第2のジョブの前記データアクセス量の各データの前記サイズを、前記データの前記アクセス回数に応じた第1の再利用度、前記第1の再利用度より大きい第2の再利用度ごとに合計した前記第1、第2のデータアクセス量と、前記共有キャッシュメモリの、前記第1、第2の再利用度に対応する第1、第2のセクタの容量と、に基づいて前記セクタの分割比を算出する情報処理装置の制御方法。
第2の情報処理装置が、第1のジョブ、第2のジョブの実行中に、前記第2のジョブのプログラムの指定に応じて、前記第1、第2のジョブがアクセスするデータのサイズ及びアクセス回数を有するデータアクセス量と、前記データの再利用度に応じて分割されるセクタ機能を備える共有キャッシュメモリの容量とに基づいて、前記共有キャッシュメモリのセクタの分割比を算出し、
前記セクタの分割比を、前記算出したセクタの分割比に変更する、
処理をコンピュータに実行させる情報処理装置の制御プログラム。
付記18において、
前記第1の情報処理装置が、前記第1、第2のジョブを実行し、前記第2のジョブのプログラムの指定に応じて、さらに、前記第2の情報処理装置に通知し、
前記第1の情報処理装置が、前記第1の情報処理装置の前記セクタの分割比を、前記第2の情報処理装置から通知される前記算出したセクタの分割比に変更する、
処理をコンピュータに実行させる情報処理装置の制御プログラム。
付記18または19において、
前記第2の情報処理装置は、前記実行中の第1、第2のジョブの前記データアクセス量の各データの前記サイズを、前記データの前記アクセス回数に応じた第1の再利用度、前記第1の再利用度より大きい第2の再利用度ごとに合計した前記第1、第2のデータアクセス量と、前記共有キャッシュメモリの、前記第1、第2の再利用度に対応する第1、第2のセクタの容量と、に基づいて前記セクタの分割比を算出する、
処理をコンピュータに実行させる情報処理装置の制御プログラム。
Claims (16)
- データの再利用度に応じて分割されるセクタ機能を備える共有キャッシュメモリと、
前記共有キャッシュメモリのセクタの分割比を変更する制御ユニットと、を有し、
前記制御ユニットは、第1のジョブ、第2のジョブの実行中に、前記第2のジョブのプログラムの指定に応じて、前記第1、第2のジョブがアクセスするデータのサイズ及びアクセス回数を有するデータアクセス量と、前記共有キャッシュメモリの容量とに基づいて、前記セクタの分割比を算出し、前記算出したセクタの分割比に変更する情報処理装置。 - 請求項1において、
前記制御ユニットは、前記実行中の第1、第2のジョブの前記データアクセス量の各データの前記サイズを、前記データの前記アクセス回数に応じた第1の再利用度、前記第1の再利用度より大きい第2の再利用度ごとに合計した前記第1、第2のデータアクセス量と、前記共有キャッシュメモリの、前記第1、第2の再利用度に対応する第1、第2のセクタの容量と、に基づいて前記セクタの分割比を算出する情報処理装置。 - 請求項2において、
前記制御ユニットは、前記第1、第2のセクタのデータアクセス量と、前記第1、第2のセクタの容量とに基づいてキャッシュミスの発生回数を算出し、前記算出したキャッシュミスの発生回数に基づいて、前記セクタの分割比を算出する情報処理装置。 - 請求項3において、
前記制御ユニットは、前記第1、第2のセクタのデータアクセス量と、前記第1、第2のセクタの容量とに基づいて、前記第1のセクタのキャッシュミスの発生指標を示す第1の指標値、及び、前記第2のセクタのキャッシュミスの発生指標を示す第2の指標値を算出し、前記第1の指標値と前記第2の指標値に異なる重みを適用して、前記キャッシュミス発生回数を算出する情報処理装置。 - 請求項3または4において、
前記共有キャッシュメモリは、複数階層の共有キャッシュメモリであって、
前記制御ユニットは、第1の階層の共有キャッシュメモリの第1のキャッシュミスの発生回数と、第2の階層の共有キャッシュメモリの第2のキャッシュミスの発生回数とを算出し、前記第1のキャッシュミスの発生回数と第2のキャッシュミスの発生回数に異なる重みを適用して、処理遅延時間を示す値を算出する情報処理装置。 - 請求項1乃至5のいずれかにおいて、
前記制御ユニットは、処理遅延時間を示す値が最少となるセクタの分割比を算出する情報処理装置。 - 前記1乃至6のいずれかにおいて、
前記最適化区間は、ループ処理に対応する情報処理装置。 - 請求項1乃至7のいずれかにおいて、
前記制御ユニットは、さらに、前記第2のジョブのプログラムの指定に応答して、前記変更する前のセクタの分割比に変更する情報処理装置。 - 請求項1乃至8のいずれかにおいて、
前記共有キャッシュメモリは、1階層、または、複数階層の共有キャッシュメモリであって、
前記セクタの分割比は、それぞれの階層の共有キャッシュメモリのセクタの分割比である情報処理装置。 - 請求項1乃至9のいずれかにおいて、さらに、
第1、第2の演算ユニットを有し、
前記第1の演算ユニットは前記第1のジョブを実行し、
前記第2の演算ユニットは前記第2のジョブを実行する情報処理装置。 - 請求項1乃至10のいずれかにおいて、
前記制御ユニットは、プログラムのコンパイル時に、前記最適化区間のデータアクセス量と、前記最適化区間を指定するコードとを追加して生成された前記プログラムを取得し、前記プログラムをジョブとして実行する情報処理装置。 - データの再利用度に応じて分割されるセクタ機能を備える共有キャッシュメモリと、
前記共有キャッシュメモリのセクタの分割比を変更する第1の制御ユニットと、を有する第1の情報処理装置と、
前記共有セクタの分割比を算出する第2の制御ユニットを有する第2の情報処理装置と、を有し、
前記第1の情報処理装置の前記第1の制御ユニットは、第1のジョブ、第2のジョブの実行中に前記第2のジョブのプログラムの指定に応じて、前記第2の情報処理装置に通知し、
前記第2の情報処理装置の前記第2の制御ユニットは、前記第1、第2のジョブがアクセスするデータのサイズ及びアクセス回数を有するデータアクセス量と、前記共有キャッシュメモリの容量とに基づいて、前記セクタの分割比を算出して、前記第1の情報処理装置に通知し、
前記第1の情報処理装置の前記第2の制御ユニットは、前記セクタの分割比を、前記通知されたセクタの分割比に変更する情報処理システム。 - 第2の情報処理装置が、第1のジョブ、第2のジョブの実行中に、前記第2のジョブのプログラムの指定に応じて、前記第1、第2のジョブがアクセスするデータのサイズ及びアクセス回数を有するデータアクセス量と、前記データの再利用度に応じて分割されるセクタ機能を備える共有キャッシュメモリの容量とに基づいて、前記共有キャッシュメモリのセクタの分割比を算出する算出工程と、
前記セクタの分割比を、前記算出したセクタの分割比に変更する変更工程と、
を有する情報処理装置の制御方法。 - 請求項13において、
第1の情報処理装置が、前記第1、第2のジョブを実行し、前記第2のジョブのプログラムの指定に応じて、前記第2の情報処理装置に通知する通知工程を、さらに有し、
前記変更工程は、第1の情報処理装置が、第1の情報処理装置の前記セクタの分割比を、前記第2の情報処理装置から通知される、前記算出したセクタの分割比に変更する情報処理装置の制御方法。 - 第2の情報処理装置が、第1のジョブ、第2のジョブの実行中に、前記第2のジョブのプログラムの指定に応じて、前記第1、第2のジョブがアクセスするデータのサイズ及びアクセス回数を有するデータアクセス量と、前記データの再利用度に応じて分割されるセクタ機能を備える共有キャッシュメモリの容量とに基づいて、前記共有キャッシュメモリのセクタの分割比を算出し、
前記セクタの分割比を、前記算出したセクタの分割比に変更する、
処理をコンピュータに実行させる情報処理装置の制御プログラム。 - 請求項15において、
前記第1の情報処理装置が、前記第1、第2のジョブを実行し、前記第2のジョブのプログラムの指定に応じて、さらに、前記第2の情報処理装置に通知し、
前記第1の情報処理装置が、前記第1の情報処理装置の前記セクタの分割比を、前記第2の情報処理装置から通知される前記算出したセクタの分割比に変更する、
処理をコンピュータに実行させる情報処理装置の制御プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014106155A JP6248808B2 (ja) | 2014-05-22 | 2014-05-22 | 情報処理装置、情報処理システム、情報処理装置の制御方法、及び、情報処理装置の制御プログラム |
US14/694,186 US9477601B2 (en) | 2014-05-22 | 2015-04-23 | Apparatus and method for determining a sector division ratio of a shared cache memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014106155A JP6248808B2 (ja) | 2014-05-22 | 2014-05-22 | 情報処理装置、情報処理システム、情報処理装置の制御方法、及び、情報処理装置の制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015222477A JP2015222477A (ja) | 2015-12-10 |
JP6248808B2 true JP6248808B2 (ja) | 2017-12-20 |
Family
ID=54556166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014106155A Active JP6248808B2 (ja) | 2014-05-22 | 2014-05-22 | 情報処理装置、情報処理システム、情報処理装置の制御方法、及び、情報処理装置の制御プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9477601B2 (ja) |
JP (1) | JP6248808B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016056217A1 (ja) * | 2014-10-07 | 2016-04-14 | 日本電気株式会社 | 測定装置、測定システム、測定方法、および、プログラム |
JP6665720B2 (ja) | 2016-07-14 | 2020-03-13 | 富士通株式会社 | 情報処理装置、コンパイルプログラム、コンパイル方法、およびキャッシュ制御方法 |
US10474458B2 (en) | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
US11112970B2 (en) * | 2017-06-12 | 2021-09-07 | Sap Se | Software system logging based on runtime analysis |
US12007935B2 (en) | 2019-03-15 | 2024-06-11 | Intel Corporation | Graphics processors and graphics processing units having dot product accumulate instruction for hybrid floating point format |
CN112534405A (zh) | 2019-03-15 | 2021-03-19 | 英特尔公司 | 用于脉动阵列上的块稀疏操作的架构 |
EP4130988A1 (en) | 2019-03-15 | 2023-02-08 | INTEL Corporation | Systems and methods for cache optimization |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
JP2021131613A (ja) | 2020-02-18 | 2021-09-09 | 富士通株式会社 | 情報処理プログラム、情報処理装置および情報処理方法 |
US11580023B2 (en) * | 2020-03-11 | 2023-02-14 | Fujitsu Limited | Information processing apparatus, computer-readable recording medium having stored therein memory control program, and computer-readable recording medium having stored therein information processing program |
KR20210121527A (ko) * | 2020-03-30 | 2021-10-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US11556473B2 (en) * | 2020-07-30 | 2023-01-17 | EMC IP Holding Company LLC | Cache memory management |
JP2023076223A (ja) | 2021-11-22 | 2023-06-01 | 富士通株式会社 | 分割プログラムおよび分割方法 |
WO2023165543A1 (zh) * | 2022-03-02 | 2023-09-07 | 华为技术有限公司 | 共享缓存的管理方法、装置及存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02181844A (ja) * | 1989-01-06 | 1990-07-16 | Matsushita Electric Ind Co Ltd | キャッシュメモリ管理方法 |
JPH06243036A (ja) * | 1993-02-12 | 1994-09-02 | Hitachi Ltd | キャッシュ制御システム |
JPH09101916A (ja) * | 1995-10-06 | 1997-04-15 | Fujitsu Ltd | マルチプロセス処理装置 |
GB9701960D0 (en) | 1997-01-30 | 1997-03-19 | Sgs Thomson Microelectronics | A cache system |
JP2002342163A (ja) * | 2001-05-15 | 2002-11-29 | Fujitsu Ltd | マルチスレッドプロセッサ用キャッシュ制御方式 |
JP2003030047A (ja) * | 2001-07-16 | 2003-01-31 | Fujitsu Ltd | キャッシュ装置およびキャッシュ方法 |
US6871264B2 (en) | 2002-03-06 | 2005-03-22 | Hewlett-Packard Development Company, L.P. | System and method for dynamic processor core and cache partitioning on large-scale multithreaded, multiprocessor integrated circuits |
WO2007099483A2 (en) * | 2006-03-02 | 2007-09-07 | Nxp B.V. | Method and apparatus for dynamic resizing of cache partitions based on the execution phase of tasks |
JP5217432B2 (ja) | 2007-12-28 | 2013-06-19 | 富士通株式会社 | セクタ機能付きキャッシュメモリ |
JP5221332B2 (ja) * | 2008-12-27 | 2013-06-26 | 株式会社東芝 | メモリシステム |
JP5251689B2 (ja) | 2009-04-02 | 2013-07-31 | 富士通株式会社 | コンパイラプログラムおよびコンパイラ装置 |
JP5521687B2 (ja) * | 2010-03-25 | 2014-06-18 | 富士通株式会社 | 分析装置、分析方法および分析プログラム |
-
2014
- 2014-05-22 JP JP2014106155A patent/JP6248808B2/ja active Active
-
2015
- 2015-04-23 US US14/694,186 patent/US9477601B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9477601B2 (en) | 2016-10-25 |
US20150339229A1 (en) | 2015-11-26 |
JP2015222477A (ja) | 2015-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6248808B2 (ja) | 情報処理装置、情報処理システム、情報処理装置の制御方法、及び、情報処理装置の制御プログラム | |
Lagar-Cavilla et al. | Software-defined far memory in warehouse-scale computers | |
JP2020135499A (ja) | データ処理装置、ストレージ装置およびプリフェッチ方法 | |
Tian et al. | Adaptive GPU cache bypassing | |
US20150161385A1 (en) | Memory Management Parameters Derived from System Modeling | |
Malicevic et al. | Exploiting NVM in large-scale graph analytics | |
JP6166616B2 (ja) | 情報処理方法、情報処理装置及びプログラム | |
Heirman et al. | Near-side prefetch throttling: Adaptive prefetching for high-performance many-core processors | |
US9734075B2 (en) | Cache memory control program, processor incorporating cache memory, and cache memory control method | |
US11048540B2 (en) | Methods and apparatus to manage heat in a central processing unit | |
US9733982B2 (en) | Information processing device and method for assigning task | |
De Blanche et al. | Addressing characterization methods for memory contention aware co-scheduling | |
Perarnau et al. | Controlling cache utilization of hpc applications | |
US11797355B2 (en) | Resolving cluster computing task interference | |
JP6042170B2 (ja) | キャッシュ制御装置及びキャッシュ制御方法 | |
Min et al. | Vmmb: Virtual machine memory balancing for unmodified operating systems | |
US8490071B2 (en) | Shared prefetching to reduce execution skew in multi-threaded systems | |
JP2008003882A (ja) | コンパイラプログラム,リストベクトルの領域割当て最適化方法,コンパイル処理装置およびコンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
Boukhelef et al. | A cost model for dbaas storage | |
Cheng et al. | A user-level numa-aware scheduler for optimizing virtual machine performance | |
Cook et al. | Performance variability on xeon phi | |
JP6877381B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP6873942B2 (ja) | 推定装置、推定方法およびプログラム | |
Song et al. | Memory management optimization strategy in Spark framework based on less contention | |
US20160188534A1 (en) | Computing system with parallel mechanism and method of operation thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171012 |
|
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: 20171024 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171106 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6248808 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |