JP2016024578A - 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム - Google Patents
情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム Download PDFInfo
- Publication number
- JP2016024578A JP2016024578A JP2014147499A JP2014147499A JP2016024578A JP 2016024578 A JP2016024578 A JP 2016024578A JP 2014147499 A JP2014147499 A JP 2014147499A JP 2014147499 A JP2014147499 A JP 2014147499A JP 2016024578 A JP2016024578 A JP 2016024578A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- arithmetic processing
- read
- memory
- processing
- 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
- 230000010365 information processing Effects 0.000 title claims abstract description 121
- 238000000034 method Methods 0.000 title claims description 68
- 238000012545 processing Methods 0.000 claims abstract description 318
- 238000012546 transfer Methods 0.000 claims abstract description 63
- 230000015654 memory Effects 0.000 claims description 204
- 239000000872 buffer Substances 0.000 description 70
- 238000010586 diagram Methods 0.000 description 24
- 230000004044 response Effects 0.000 description 14
- 238000005457 optimization Methods 0.000 description 10
- 101100372300 Candida albicans (strain SC5314 / ATCC MYA-2876) SIM1 gene Proteins 0.000 description 9
- 101150091312 UTH1 gene Proteins 0.000 description 9
- 101100477614 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SIR4 gene Proteins 0.000 description 6
- 101100490566 Arabidopsis thaliana ADR2 gene Proteins 0.000 description 4
- 101100269260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ADH2 gene Proteins 0.000 description 4
- 238000003491 array Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 101150022075 ADR1 gene Proteins 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 235000008429 bread Nutrition 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/0815—Cache consistency protocols
-
- 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/54—Interprogram communication
-
- 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/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/27—Using a specific cache architecture
- G06F2212/271—Non-uniform cache access [NUCA] 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/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
- Memory System (AREA)
Abstract
Description
図1は、本実施の形態に関連する技術を説明する図である。なお、以下の図の説明において、同じ要素については同一の符号を付して、一度した説明を省略する。
第1のNUMAノード1100、第2のNUMAノード1200は、それぞれ、複数のCPUコア(以下、コアと適宜記す)と、1つのメモリを有する。このメモリは、物理メモリであり、例えばDRAM(Dynamic Random Access Memory)である。
第1のコア1110は、ユーザアプリケーションのユーザスレッドUTH1を実行する。ユーザアプリケーションは、例えば、演算用データに対して、並列情報処理を実行し、演算結果を出力するアプリケーションである。
NUMA型情報処理装置においては、あるノードのコアが別のノードのメモリ(リモートメモリとも呼ぶ)にアクセスする時間は、このノードのコアが自ノードのメモリ(ローカルメモリとも呼ぶ)にアクセスする時間よりも長くなる。
並列情報処理においては、ストレージシステム1300からデータを読み出す処理、メモリ(例えば、第1のメモリ1130)からデータを読み出し、ストレージシステム1300に書き込む処理が実行される。
のメモリ空間(以下、カーネル空間とも呼ぶ)内に確保されたバッファ領域である。そして、ユーザ空間とストレージシステム1300との間のデータ転送は、このバッファ領域を介して間接的に行われる。すなわち、オペレーティングシステムによって、カーネル空間のバッファ領域とユーザ空間との間で、コアを使用してデータがコピーされる。なお、このコピー処理は、ユーザアプリケーションがオペレーティングシステムに対して発行するシステムコールの延長で実行される。
ユーザスレッドUTH1〜UTH4が前記した並列情報処理を実行する前に、I/OスレッドIOTHは、例えばストレージシステム1300から演算用データを読み出し、メモリに記憶する。
ここで、ユーザスレッドUTH1、UTH2は、第1のメモリ1130の第1のバッファ1181にアクセス(ローカルアクセス)し、ユーザスレッドUTH1、UTH2用の演算用データに並列情報処理を行う。そして、ユーザスレッドUTH1、UTH2は、第1のバッファ1181に並列情報処理の結果を示す結果データを書き込む。
この待ち状態が終了すると、I/OスレッドIOTHは、第1のメモリ1130における第1のバッファ1181に書き込まれた演算結果データを第2のバッファ1182にコピーする。そして、I/OスレッドIOTHは、コピーした演算結果データをストレージシステム1300に書き込む。
前記したように、リモートアクセスにより、I/Oスレッドの待ち状態が長くなると処理時間が長くなるだけでなく、コア、メモリのリソースが無駄になる。
さて、図1の例では、1つのコアが、ノード内のメモリとストレージシステム1300との間のデータ転送を実行するため、このコアに対する処理負荷が増大し、このコアの処理能力が低下することがある。その結果、このデータ転送の効率が低下する。そこで、このデータ転送処理を各コアに並列処理させて、このデータ転送処理を分散すれば、コアが実行する転送処理の負荷が分散される。その結果、このデータ転送の効率が向上する。
図2は、本実施の形態における情報処理システムSYSのシステム構成を示す図である。情報処理システムSYSは、並列情報処理システム(並列情報処理装置)1と、ログインノード2と、第1の操作用端末31〜第i(小文字のiは、3以上の整数)の操作用端末3iとを有する。以下、並列情報処理システム(並列情報処理装置)1を並列情報処理システム1と記す。
図3は、図2の並列情報処理システム1のハードウェア構成図である。並列情報処理システム1は、第1のNUMAノードND1〜第4のNUMAノードND4と、ストレージシステム(記憶装置)STRと、接続装置CNCとを有する。ストレージシステム(記憶装置)STRをストレージシステムSTRと記す。
図4は、図2の並列情報処理システム1のソフトウェア構成図である。ユーザアプリケーション10は、図1で説明した、例えば、演算対象となるデータである演算用データに対して、並列情報処理を実行し、演算結果を出力するアプリケーションである。
図5は、図3のコアが図4で説明したソフトウェアを実行している状態を示した図である。
図6は、図3のストレージシステムとメモリとを説明する図である。ストレージシステムSTRは、演算用ファイルFA、演算結果ファイルFB、プログラムPG1を記憶する。さらに、ストレージシステムSTRは、演算用ファイルFAのファイルポインタ情報(第1のアドレス情報)IN1、対応情報(第2のアドレス情報)IN2、演算結果ファイルFBのファイルポインタ情報(第3のアドレス情報)IN3を記憶する。以下、ファイルポインタ情報(第1のアドレス情報)IN1、対応情報(第2のアドレス情報)IN2、ファイルポインタ情報 (第3のアドレス情報)IN3については、それぞれ、ファイルポインタ情報IN1、対応情報IN2、ファイルポインタ情報IN3と記す。
図8は、演算用ファイルFAを説明する図である。演算用ファイルFAは、演算処理の対象である演算用データ(対象データとも呼ぶ)を格納するファイルである。演算用ファイルFAには、第k(kは1〜8の整数)のユーザスレッド10k用の演算用データが区分されて格納されている。なお、演算用ファイルFAは、ヘッダ情報などの各種制御情報を有するが、この各種制御情報の図示を省略している。
図9は、演算結果ファイルFBを説明する図である。演算結果ファイルFBには、第k(kは1〜8の整数)のユーザスレッド10kの演算結果データが区分されて格納される。なお、演算結果ファイルFBは、ヘッダ情報などの各種制御情報を有するが、この各種制御情報の図示を省略している。
以下に、本実施の形態におけるストレージシステム-メモリ間のデータ転送について説明する。複数のノードの各々に属する第k(kは1〜8の整数)のコアCk(演算処理装置)は、第kのユーザスレッド10kと、第kのI/Oスレッド23kとを有する。
図10は、並列情報処理の流れを説明するフロー図である。図10の説明では、図4のカーネル30が例えば、第1のNUMAノードND1の第1のコアC1で動作している。そして、第1のコアC1のカーネル30は、並列情報処理用のプログラム(図6のプログラムPG1参照)を読み出し、例えば、第1のメモリM1に展開する。第1のコアC1は、この展開により、図5に示したように、並列I/O処理初期化部21、並列I/O処理部22、ページリスト取得部24、第1のユーザスレッド101の実行を開始する。
ステップS1:第1のユーザスレッド101は、並列I/O処理初期化部21に並列I/O初期化を指示する。並列I/O処理初期化部21は、この指示に応答して、図5に示したように、第k(kは1〜8の整数)のI/Oスレッド23kを作成し第kのコアCkで実行させる。なお、並列I/O初期化処理については、図11で詳細に説明する。
ステップS2: 第1のユーザスレッド101は、第j(jは1〜4の整数)のメモリMjにリード用配列Rjの領域、ライト用配列Wjの領域を確保する。この確保は、例えば、カーネル30に対するシステムコールの読み出しにより実行される。
ステップS3:第1のユーザスレッド101は、並列I/O処理部22にリード処理を要求する。並列I/O処理部22は、リード処理の要求に応答して、第1のI/Oスレッド231〜第8のI/Oスレッド238にリード処理の実行を指示する。
ステップS4: 第1のユーザスレッド101は、ユーザスレッドを作成する。具体的には、第1のユーザスレッド101は、第m(mは2〜8の整数)のコアCmで動作する、第mのユーザスレッド10mを作成する。例えば、第1のユーザスレッド101は、図5で示したように、第2のコアC2〜第8のコアC8でそれぞれ動作する第2のユーザスレッド102〜第8のユーザスレッド108を作成する。第2のユーザスレッド102〜第8のユーザスレッド108は、子スレッドとも呼ばれる。
以下、S5〜S8では、親スレッド(マスタースレッドとも呼ばれる)である第1のユーザスレッド101が実行する処理について説明する。
以下、S9〜S12では、子スレッドが実行する処理について説明する。
ステップS13: 第1のユーザスレッド101は、S12の通知を受信すると、並列I/O処理部22にライト処理を要求する。並列I/O処理部22は、ライト処理の要求に応答して、第1のI/Oスレッド231〜第8のI/Oスレッド238にライト処理の実行を指示する。
図11は、図10のステップS1における並列I/O初期化処理を説明するフロー図である。
次に、リード処理要求(図10のS3)について、図12〜図16を参照して説明する。
図12は、物理メモリのアドレスで示される領域が属するNUMAノードの特定を説明する図である。図12は、対応情報IN2を示す。対応情報IN2は、複数のノードの各々に属するメモリの領域を示す第2の情報の一例である。カーネル30は、対応情報IN2を管理する。以下、物理メモリのアドレスを物理アドレスと適宜記す。
図13〜図16は、図10のステップS3におけるリード要求処理を説明するフロー図である。図13は、図10のステップS3におけるリード要求処理の概略を説明するフロー図である。図14は、図13のリード処理用ページリストの作成を説明するフロー図である。図15は、リード処理用ページリストを説明する図である。図16は、図13のリード処理や図17のライト処理を説明するフロー図である。最初に図13のフロー図から説明する。
図13のステップS31: 並列I/O処理部22は、第1のユーザスレッド101からのリード処理の要求を受け付けると、リード処理用ページリストの作成をページリスト取得部24に指示する。ページリスト取得部24は、この指示に応答して、リード処理用ページリストを作成する。図14、図15を参照して、リード処理用ページリストの作成を説明する。
図14のステップS311:ページリスト取得部24は、第1のメモリM1〜第4のメモリM4のぞれぞれに確保されたリード用配列R1〜R4の領域に対応する仮想アドレスを物理アドレスに変換する。なお、通常、ユーザスレッド、I/Oスレッドは、仮想メモリのアドレスを指定して、カーネルを介して物理メモリにアクセスしている。そのため、ユーザスレッド、I/Oスレッドは、物理メモリのアドレスについての情報を保持していない。そこで、ユーザスレッド、I/Oスレッドが、物理メモリのアドレスの情報を保持するため、S311の変換処理を行う。
ステップS312:ページリスト取得部24は、図12の対応情報IN2に基づき、変換後の物理アドレスで示されるメモリ領域を含むメモリ(物理メモリ)が属するNUMAノードの識別子を特定する。NUMAノードの識別子は、図3で示したNUMAノードを示す符号"ND1"〜"ND4"に対応する。
ステップS313: ページリスト取得部24は、リード処理用のページリストを作成する。
図13のステップS32:並列I/O処理部22は、リード処理用ページリストLSTr1〜LSTr4を分割(区切るとも呼ぶ)する。そして、並列I/O処理部22は、各I/OスレッドにリードのI/O要求サブセットとして、区切ったリード処理用ページリストを割り当てる。なお、ページリスト取得部24が、S32の処理を実行してもよい。
ステップS201:第kのI/Oスレッド23kは、リードまたはライトのI/O要求サブセットの実行指示の受信待ち状態にある。
ステップS203:第kのI/Oスレッド23kは、自スレッドの物理メモリにテンポラリバッファの領域を確保する。
ステップS204: 第k(kは1〜8の整数)のI/Oスレッド23kは、ストレージシステムSTRの演算用ファイルFAから、ペアの第kのユーザスレッド10kの演算用データを読み出す。そして、第kのI/Oスレッド23kは、自スレッドのテンポラリバッファに読み出した演算用データを書き込む。ここで自スレッドのテンポラリバッファとは、自スレッドを実行しているコアが属するノード内のメモリに確保されたテンポラリバッファである。
ステップS205:第kのI/Oスレッド23kは、自スレッドのテンポラリバッファに書き込んだ演算用データを自スレッドのリード用配列にコピーする。図6〜図8、図15を参照し、S205を説明する。
ステップS206:第kのI/Oスレッド23kは、S205のコピー、または、後記するS209の登録が終了すると、I/O完了通知を読み出し元のユーザスレッドに通知する。通知後、第kのI/Oスレッド23kは、実行指示待ち状態(S201)に移る。なお、S207〜S209については、図18の後で説明する。
図17、図18は、図10のステップS13におけるライト要求処理を説明するフロー図である。図17は、図10のステップS13におけるライト要求処理の概略を説明するフロー図である。図18は、図17のライト処理用ページリストの作成を説明するフロー図である。図19は、ライト処理用ページリストを説明する図である。
ステップS131: 並列I/O処理部22は、第1のユーザスレッド101からのライト処理の要求を受け付けると、ライト処理用ページリストの作成をページリスト取得部24に指示する。ページリスト取得部24は、この指示に応答して、ライト処理用ページリストを作成する。図18、図19を参照して、ライト処理用ページリストの作成を説明する。
図18のステップS1311:ページリスト取得部24は、第1のメモリM1〜第4のメモリM4のぞれぞれに確保されたライト用配列W1〜W4の領域に対応する仮想アドレスを物理アドレスに変換する。この変換を行う理由は、図14のS311で説明した理由と同じである。
ステップS1312:ページリスト取得部24は、図12の対応情報IN2に基づき、変換後の物理アドレスで示されるメモリ領域を含むメモリ(物理メモリ)が属するNUMAノードの識別子を特定する。NUMAノードの識別子は、図3で示したNUMAノードを示す符号"ND1"〜"ND4"に対応する。
ステップS1313: ページリスト取得部24は、ライト処理用のページリストを作成する。
図17のステップS132:並列I/O処理部22は、ライト処理用ページリストLSTw1〜LSTw4を分割(区切るとも呼ぶ)する。そして、並列I/O処理部22は、各I/OスレッドにライトのI/O要求サブセットとして、区切ったライト処理用ページリストを割り当てる。なお、ページリスト取得部24が、S132の処理を実行してもよい。
第kのI/Oスレッド23kは、I/O要求サブセットを受信し、受信したI/O要求サブセットが、リードのI/O要求サブセットであるかを判定する(S202)。リードのI/O要求サブセットではない場合、すなわちライトのI/O要求サブセットの場合(S202/NO)、S207に移る。
ステップS207:第kのI/Oスレッド23kは、自スレッドの物理メモリにテンポラリバッファの領域を確保する。
ステップS208:第k(kは1〜8の整数)のI/Oスレッド23kは、割り当てられたライト処理用ページリストに基づき、自スレッドのライト用配列の第kの対応領域WSkに書き込まれた演算結果データを自スレッドのテンポラリバッファにコピーする。
ステップS209:第kのI/Oスレッド23kは、自スレッドのテンポラリバッファにコピーされた演算結果データをストレージシステムSTRに書き込む処理を、例えばキューに登録する。バッファに記憶されたデータをI/Oスレッドによりファイルに書き込む処理は、非同期に実行されるので、S209の処理を実行する。なお、S209の実行後、第kのI/Oスレッド23kは、I/O完了通知を読み出し元のユーザスレッドに通知する(S206)。
図10のS1では、ユーザアプリケーション10からの指示を受け付けて、並列I/O処理初期化部21は、第k(kは1〜8の整数)のI/Oスレッド23kを作成し第kのコアCkで実行させた。
演算処理を実行する演算処理装置とデータを記憶する主記憶装置とをそれぞれ備える複数のノードを有する情報処理装置において、
前記複数のノードの各々に属する演算処理装置は、
演算処理を実行する演算処理部と、
前記演算処理部が演算処理を実行する対象データを、前記主記憶装置以外の主記憶装置における記憶位置を示す第1のアドレス情報に基づいて前記主記憶装置以外の主記憶装置から読み出し、読み出した前記対象データを、前記演算処理装置が属するノードの主記憶装置に書き込む転送部とを有することを特徴とする情報処理装置。
付記1において、
前記演算処理装置の転送部は、前記複数のノードの各々に属する主記憶装置の領域を示す第2のアドレス情報に基づき、前記主記憶装置以外の主記憶装置から読み出した前記対象データを前記主記憶装置に書き込む
ことを特徴とする情報処理装置。
付記2において、
何れかの前記演算処理装置は、さらに、特定部を実行し、
前記特定部は、前記第2のアドレス情報に基づき、前記主記憶装置において前記対象データを書き込む位置を特定し、
前記転送部は、前記主記憶装置以外の主記憶装置から読み出した前記対象データを、特定された前記位置に書き込む
ことを特徴とする情報処理装置。
付記1において、
前記演算処理装置の演算処理部は、演算結果を示す結果データを、当該演算処理装置が属するノードの主記憶装置に書き込み、
前記演算処理装置の転送部は、当該演算処理装置が属するノードの主記憶装置に書き込まれた前記結果データを前記主記憶装置以外の主記憶装置に書き込む
ことを特徴とする情報処理装置。
付記4において、
前記演算処理装置の転送部は、当該演算処理装置が属するノードの主記憶装置に書き込まれた前記結果データを読み出し、前記主記憶装置以外の主記憶装置における当該結果データの記憶位置を示す第3のアドレス情報に基づき、読み出した前記結果データを前記主記憶装置以外の主記憶装置に書き込む
ことを特徴とする情報処理装置。
付記5において、
何れかの前記演算処理装置は、さらに、特定部を実行し、
前記特定部は、前記複数のノードの各々に属する主記憶装置の領域を示す第2のアドレス情報に基づき、前記主記憶装置において前記結果データが書き込まれる領域を特定し、
前記転送部は、特定された前記領域から前記結果データを読み出す
ことを特徴とする情報処理装置。
付記1において、
前記演算処理部は、前記演算処理として並列演算処理を実行する
ことを特徴とする情報処理装置。
演算処理を実行する演算処理装置とデータを記憶する主記憶装置とをそれぞれ備える複数のノードを有する情報処理装置の制御方法において、
前記複数のノードの各々に属する演算処理装置が有する演算処理部が演算処理を実行する対象データを、前記演算処理装置が有する転送部が、前記主記憶装置以外の主記憶装置における記憶位置を示すアドレス情報に基づいて前記主記憶装置以外の主記憶装置から読み出し、
前記転送部が、読み出された前記対象データを、前記演算処理装置が属するノードの主記憶装置に書き込み、
前記演算処理部が、前記主記憶装置に書き込まれた対象データを用いて演算処理を実行することを特徴とする情報処理装置の制御方法。
演算処理を実行する演算処理装置とデータを記憶する主記憶装置とをそれぞれ備える複数のノードを有する情報処理装置の制御プログラムにおいて、
前記複数のノードの各々に属する演算処理装置が有する演算処理部が演算処理を実行する対象データを、前記演算処理装置が有する転送部に、前記主記憶装置以外の主記憶装置における記憶位置を示すアドレス情報に基づいて前記主記憶装置から読み出させ、
前記転送部に、読み出された前記対象データを、前記演算処理装置が属するノードの主記憶装置に書き込ませ、
前記演算処理部に、前記主記憶装置に書き込まれた対象データを用いて演算処理を実行させることを特徴とする情報処理装置の制御プログラム。
演算処理を実行する演算処理装置とデータを記憶する主記憶装置とをそれぞれ備える複数のノードを有するコンピュータで実行され、前記コンピュータによって読み取り可能であり、前記コンピュータにデジタル信号処理を実行させるプログラムを記録した記録媒体であって、
前記デジタル信号処理は、
前記複数のノードの各々に属する演算処理装置が有する演算処理部が演算処理を実行する対象データを、前記演算処理装置が有する転送部に、前記主記憶装置以外の主記憶装置における記憶位置を示すアドレス情報に基づいて前記主記憶装置から読み出させ、
前記転送部に、読み出された前記対象データを、前記演算処理装置が属するノードの主記憶装置に書き込ませ、
前記演算処理部に、前記主記憶装置に書き込まれた対象データを用いて演算処理を実行させる
ことを特徴とする記録媒体。
Claims (6)
- 演算処理を実行する演算処理装置とデータを記憶する主記憶装置とをそれぞれ備える複数のノードを有する情報処理装置において、
前記複数のノードの各々に属する演算処理装置は、
演算処理を実行する演算処理部と、
前記演算処理部が演算処理を実行する対象データを、前記主記憶装置以外の主記憶装置における記憶位置を示す第1のアドレス情報に基づいて前記主記憶装置以外の主記憶装置から読み出し、読み出した前記対象データを、前記演算処理装置が属するノードの主記憶装置に書き込む転送部とを有することを特徴とする情報処理装置。 - 請求項1において、
前記演算処理装置の転送部は、前記複数のノードの各々に属する主記憶装置の領域を示す第2のアドレス情報に基づき、前記主記憶装置以外の主記憶装置から読み出した前記対象データを前記主記憶装置に書き込む
ことを特徴とする情報処理装置。 - 請求項2において、
何れかの前記演算処理装置は、さらに、特定部を実行し、
前記特定部は、前記第2のアドレス情報に基づき、前記主記憶装置において前記対象データを書き込む位置を特定し、
前記転送部は、前記主記憶装置以外の主記憶装置から読み出した前記対象データを、特定された前記位置に書き込む
ことを特徴とする情報処理装置。 - 請求項1において、
前記演算処理装置の演算処理部は、演算結果を示す結果データを、当該演算処理装置が属するノードの主記憶装置に書き込み、
前記演算処理装置の転送部は、当該演算処理装置が属するノードの主記憶装置に書き込まれた前記結果データを前記主記憶装置以外の主記憶装置に書き込む
ことを特徴とする情報処理装置。 - 演算処理を実行する演算処理装置とデータを記憶する主記憶装置とをそれぞれ備える複数のノードを有する情報処理装置の制御方法において、
前記複数のノードの各々に属する演算処理装置が有する演算処理部が演算処理を実行する対象データを、前記演算処理装置が有する転送部が、前記主記憶装置以外の主記憶装置における記憶位置を示すアドレス情報に基づいて前記主記憶装置以外の主記憶装置から読み出し、
前記転送部が、読み出された前記対象データを、前記演算処理装置が属するノードの主記憶装置に書き込み、
前記演算処理部が、前記主記憶装置に書き込まれた対象データを用いて演算処理を実行することを特徴とする情報処理装置の制御方法。 - 演算処理を実行する演算処理装置とデータを記憶する主記憶装置とをそれぞれ備える複数のノードを有する情報処理装置の制御プログラムにおいて、
前記複数のノードの各々に属する演算処理装置が有する演算処理部が演算処理を実行する対象データを、前記演算処理装置が有する転送部に、前記主記憶装置以外の主記憶装置における記憶位置を示すアドレス情報に基づいて前記主記憶装置から読み出させ、
前記転送部に、読み出された前記対象データを、前記演算処理装置が属するノードの主記憶装置に書き込ませ、
前記演算処理部に、前記主記憶装置に書き込まれた対象データを用いて演算処理を実行させることを特徴とする情報処理装置の制御プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014147499A JP6582367B2 (ja) | 2014-07-18 | 2014-07-18 | 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム |
US14/712,950 US9697123B2 (en) | 2014-07-18 | 2015-05-15 | Information processing device, control method of information processing device and control program of information processing device |
EP15167947.9A EP2975520A1 (en) | 2014-07-18 | 2015-05-18 | Information processing device, control method of information processing device and control program of information processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014147499A JP6582367B2 (ja) | 2014-07-18 | 2014-07-18 | 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016024578A true JP2016024578A (ja) | 2016-02-08 |
JP6582367B2 JP6582367B2 (ja) | 2019-10-02 |
Family
ID=53274392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014147499A Active JP6582367B2 (ja) | 2014-07-18 | 2014-07-18 | 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US9697123B2 (ja) |
EP (1) | EP2975520A1 (ja) |
JP (1) | JP6582367B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018220855A1 (ja) * | 2017-06-02 | 2018-12-06 | 富士通コネクテッドテクノロジーズ株式会社 | 演算処理装置、演算処理制御方法及び演算処理制御プログラム |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017011223A1 (en) | 2015-07-10 | 2017-01-19 | Rambus, Inc. | Thread associated memory allocation and memory architecture aware allocation |
KR102509988B1 (ko) * | 2015-12-15 | 2023-03-14 | 삼성전자주식회사 | 커넥션 기반 로드 밸런싱을 위한 저장 시스템 및 방법 |
FR3121289B1 (fr) * | 2021-03-26 | 2023-06-30 | Schneider Electric Ind Sas | Armoire électrique de raccordement |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005018620A (ja) * | 2003-06-27 | 2005-01-20 | Toshiba Corp | 情報処理システムおよびメモリ管理方法 |
JP2006163516A (ja) * | 2004-12-02 | 2006-06-22 | Fujitsu Ltd | ネットワーク装置、ファイバーチャネルスイッチおよび共用メモリアクセス制御方法 |
US20090320036A1 (en) * | 2008-06-19 | 2009-12-24 | Joan Marie Ries | File System Object Node Management |
JP2013025547A (ja) * | 2011-07-20 | 2013-02-04 | Renesas Electronics Corp | 演算制御装置及び演算制御方法並びにプログラム、並列プロセッサ |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07182298A (ja) | 1993-12-22 | 1995-07-21 | Canon Inc | 情報処理方法及び装置 |
US6163806A (en) | 1997-06-30 | 2000-12-19 | Sun Microsystems, Inc. | System and method for transparent, global access to physical devices on a computer cluster |
US6167437A (en) | 1997-09-02 | 2000-12-26 | Silicon Graphics, Inc. | Method, system, and computer program product for page replication in a non-uniform memory access system |
US6389513B1 (en) | 1998-05-13 | 2002-05-14 | International Business Machines Corporation | Disk block cache management for a distributed shared memory computer system |
US6701421B1 (en) | 2000-08-17 | 2004-03-02 | International Business Machines Corporation | Application-level memory affinity control |
US6658538B2 (en) | 2001-06-21 | 2003-12-02 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system having a page table including node-specific data storage and coherency control |
JP4063256B2 (ja) | 2004-06-28 | 2008-03-19 | 日本電気株式会社 | 計算機クラスタシステムとそれにおける管理方法、及びプログラム |
JP5664347B2 (ja) | 2011-03-04 | 2015-02-04 | ソニー株式会社 | 仮想メモリシステム、仮想メモリの制御方法、およびプログラム |
JP5174941B2 (ja) | 2011-07-22 | 2013-04-03 | 株式会社日立製作所 | 仮想計算機の制御方法 |
-
2014
- 2014-07-18 JP JP2014147499A patent/JP6582367B2/ja active Active
-
2015
- 2015-05-15 US US14/712,950 patent/US9697123B2/en active Active
- 2015-05-18 EP EP15167947.9A patent/EP2975520A1/en not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005018620A (ja) * | 2003-06-27 | 2005-01-20 | Toshiba Corp | 情報処理システムおよびメモリ管理方法 |
JP2006163516A (ja) * | 2004-12-02 | 2006-06-22 | Fujitsu Ltd | ネットワーク装置、ファイバーチャネルスイッチおよび共用メモリアクセス制御方法 |
US20090320036A1 (en) * | 2008-06-19 | 2009-12-24 | Joan Marie Ries | File System Object Node Management |
JP2013025547A (ja) * | 2011-07-20 | 2013-02-04 | Renesas Electronics Corp | 演算制御装置及び演算制御方法並びにプログラム、並列プロセッサ |
Non-Patent Citations (1)
Title |
---|
小田和友仁,住元真司,堀敦史,石川裕: "メニーコア向けNUMA最適並列分散I/Oの予備検証", 情報処理学会研究報告, vol. Vol.2013-ARC-205,No.1, JPN6018050776, 18 April 2013 (2013-04-18), JP, pages 1 - 7, ISSN: 0003946086 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018220855A1 (ja) * | 2017-06-02 | 2018-12-06 | 富士通コネクテッドテクノロジーズ株式会社 | 演算処理装置、演算処理制御方法及び演算処理制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
US9697123B2 (en) | 2017-07-04 |
US20160019150A1 (en) | 2016-01-21 |
EP2975520A1 (en) | 2016-01-20 |
JP6582367B2 (ja) | 2019-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11550627B2 (en) | Hardware accelerated dynamic work creation on a graphics processing unit | |
US9229765B2 (en) | Guarantee real time processing of soft real-time operating system by instructing core to enter a waiting period prior to transferring a high priority task | |
JP6582367B2 (ja) | 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム | |
JP2008204487A (ja) | アウトオブオーダdramシーケンサ | |
US10198365B2 (en) | Information processing system, method and medium | |
TW200925871A (en) | Dynamic logical data channel assignment using time-grouped allocations | |
US10073783B2 (en) | Dual mode local data store | |
US20120185672A1 (en) | Local-only synchronizing operations | |
US10235208B2 (en) | Technique for saving and restoring thread group operating state | |
US11481250B2 (en) | Cooperative workgroup scheduling and context prefetching based on predicted modification of signal values | |
JP5254710B2 (ja) | データ転送装置、データ転送方法およびプロセッサ | |
TWI783401B (zh) | 記憶體管理方法和相關產品 | |
JP2006268753A (ja) | Dma回路及びコンピュータシステム | |
JP7225904B2 (ja) | ベクトル演算処理装置、ベクトル演算処理装置による配列変数初期化方法、及び、ベクトル演算処理装置による配列変数初期化プログラム | |
JP2023501069A (ja) | 選択不可能なスケジューラキューの後のレジスタリネーミング | |
JP4754531B2 (ja) | デバイスへのアクセス制御方法および処理装置 | |
JP6364827B2 (ja) | 情報処理装置、及び、そのリソースアクセス方法、並びに、リソースアクセスプログラム | |
JP5847313B2 (ja) | 情報処理装置 | |
WO2011114495A1 (ja) | マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム | |
JPWO2012127534A1 (ja) | バリア同期方法、バリア同期装置及び演算処理装置 | |
US10534707B2 (en) | Semiconductor device including plurality of bus masters and control device and program used in the semiconductor device | |
JP7003752B2 (ja) | データ転送装置、データ転送方法、プログラム | |
JP2009193260A (ja) | ストレージシステム、ストレージ装置、優先度制御装置および優先度制御方法 | |
WO2019188180A1 (ja) | スケジューリング方法、スケジューリング装置 | |
JP5582241B2 (ja) | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170406 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180501 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180529 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180726 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190308 |
|
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: 20190806 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190819 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6582367 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |