JP2018049444A - 並列計算機システムおよび管理方法 - Google Patents

並列計算機システムおよび管理方法 Download PDF

Info

Publication number
JP2018049444A
JP2018049444A JP2016184231A JP2016184231A JP2018049444A JP 2018049444 A JP2018049444 A JP 2018049444A JP 2016184231 A JP2016184231 A JP 2016184231A JP 2016184231 A JP2016184231 A JP 2016184231A JP 2018049444 A JP2018049444 A JP 2018049444A
Authority
JP
Japan
Prior art keywords
file
node
management
calculation
cache
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
Application number
JP2016184231A
Other languages
English (en)
Other versions
JP6798211B2 (ja
Inventor
青山 俊一
Shunichi Aoyama
俊一 青山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2016184231A priority Critical patent/JP6798211B2/ja
Publication of JP2018049444A publication Critical patent/JP2018049444A/ja
Application granted granted Critical
Publication of JP6798211B2 publication Critical patent/JP6798211B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 ファイルアクセス時のオーバヘッドを削減する技術を提供する。【解決手段】 並列計算機システムは、管理ノードと、前記管理ノードによって制御される1以上の計算ノードとを含み、前記管理ノードは、前記計算ノードにファイルをキャッシュする計算ノード管理手段と、を備え、前記計算ノードは、キャッシュされたキャッシュファイルを格納するキャッシュファイルメモリと、前記キャッシュファイルを用いて、該計算ノード上で起動するプロセスを実行する処理手段と、を備える。【選択図】 図10

Description

本開示は、並列計算機システムおよび管理方法に関する。
メインプロセッサノードと、サブプロセッサノードとを含むシステムにおいては、システムに含まれる装置間、例えば、サブプロセッサノードとメインプロセッサノードとの間で、データ転送が行われる。
例えば、特許文献1には、メインプロセッサからの要求によって、サブプロセッサがメインメモリにある転送データを、NIC(Network Interface Card)のバッファメモリに転送することでデータ転送処理を行う技術が記載されている。
特開2008−065478号公報
しかしながら、特許文献1に記載の技術では、サブプロセッサがメインメモリに対しファイルアクセスを行う度に、サブプロセッサとメインメモリとの間でデータ転送処理が必要となる。そのため、メインメモリに格納されているファイルへのアクセスが連続する場合、特許文献1に記載の技術では、ファイルアクセス時のオーバヘッドが顕著に表れてしまうという問題があった。
本開示は、上記問題を鑑みたものであって、ファイルアクセス時のオーバヘッドを削減する技術を提供する。
本開示の一形態に係る並列計算機システムは、管理ノードと、前記管理ノードによって制御される1以上の計算ノードとを含み、前記管理ノードは、前記計算ノードにファイルをキャッシュする計算ノード管理手段を備え、前記計算ノードは、前記計算ノード管理手段によってキャッシュされたキャッシュファイルを格納するキャッシュファイルメモリと、前記キャッシュファイルを用いて、該計算ノード上で起動するプロセスを実行する処理手段と、を備える。
本開示の一形態に係る管理方法は、管理ノードと、前記管理ノードによって制御される1以上の計算ノードとを含む並列計算機システムの管理方法であって、前記管理ノードは、前記計算ノードにファイルをキャッシュし、前記計算ノードは、キャッシュされたキャッシュファイルを格納し、前記キャッシュファイルを用いて、該計算ノード上で起動するプロセスを実行する。
本開示によれば、ファイルアクセス時のオーバヘッドを削減する技術を提供することができる。
第1実施形態における並列計算機システムの構成の一例を示すブロック図である。 第1実施形態における並列計算機システムの機能構成の一例を示すブロック図である。 計算ノードキャッシュファイル管理情報の一例を示す図である。 キャッシュファイル管理情報と、計算ノードのプロセスにおける仮想アドレス空間との一例を示す図である。 計算ノードがファイル番号を取得する動作の一例を示すフローチャートである。 計算ノードがキャッシュファイルメモリを利用する動作の一例を示すフローチャートである。 管理ノードがファイルアクセス要求を受け付けた際の動作の一例を示すフローチャートである。 管理ノードがキャッシュファイルを生成する動作の一例を示すフローチャートである。 キャッシュファイルの書き戻しの動作と、キャッシュファイルメモリを破棄する動作との一例を示すフローチャートである。 第2実施形態における並列計算機システムの機能構成の一例を示すブロック図である。 本開示の各実施形態に係る並列計算機システムを実現する情報処理装置のハードウェア構成の一例を示すブロック図である。
以下、本開示の実施形態について図面を参照して詳細に説明する。
<第1実施形態>
図1は、本開示の第1実施形態における並列計算機システムの構成の一例を示すブロック図である。並列計算機システム1は、管理ノード100と、管理ノード100によって制御される1以上の計算ノード(110−1、110−2、…110−N(N:自然数))と、I/O(Input/Output)デバイス130とを含む。なお、本実施形態において、計算ノード(110−1、110−2、…110−N)のそれぞれを区別しない場合、または、計算ノード(110−1、110−2、…110−N)のそれぞれを総称する場合、計算ノード110と呼ぶ。
(計算ノード110)
計算ノード110は、OS(Operating System)機能をもたない分散メモリ計算機である。したがって、計算ノード110は、管理ノード100によって制御される。計算ノード110は、管理ノード100と無線または有線のネットワークによって相互に接続されている。また、計算ノード110は、無線または有線のネットワークを介して管理ノード100と情報の通信を行う。また、計算ノード110は例えばアクセラレータ等のコプロセッサによって実現される。
(管理ノード100)
管理ノード100は、計算ノード110を管理する計算機である。管理ノード100は、計算ノード110と、無線または有線のネットワークによって相互に接続されている。管理ノード100は、無線または有線のネットワークを介して計算ノード110と情報の通信を行う。また、計算ノード110がOS機能をもたない分散メモリ計算機のため、制御ソフトウェアを含む計算ノード110のOSは、管理ノード100上で動作する。管理ノード100は、例えば、メインプロセッサによって実現される。
(I/Oデバイス130)
I/Oデバイス130は、例えば、管理ノード100と有線または無線のネットワークによって接続される。また、I/Oデバイス130は、ファイル形式のデータ(ファイル)の集合を示すファイルデータ131を記憶する。なお、ファイルデータ131に含まれる各ファイルにはファイルを識別するための番号(ファイル番号)が付与されている。I/Oデバイス130は、例えば磁気ディスクやフラッシュディスクによって実現される。なお、データの形式はファイル形式に限定されない。
次に並列計算機システム1の管理ノード100と、計算ノード110と、I/Oデバイス130との機能構成について説明する。図2は、本実施形態に係る並列計算機システム1の管理ノード100と、計算ノード110と、I/Oデバイス130との機能構成を示すブロック図である。図2に示すとおり、管理ノード100は、1以上の計算ノード管理部(101−1、101−2、…101−N)と、管理部102と、管理ノードメモリ103と、記憶部105とを備える。
なお、本実施形態において、計算ノード管理部(101−1、101−2、…101−N)のそれぞれを区別しない場合、または計算ノード管理部(101−1、101−2、…101−N)のそれぞれを総称する場合、計算ノード管理部101と呼ぶ。
記憶部105は、例えば、図3に示すような管理情報(計算ノードキャッシュファイル管理情報)(106−1、106−2、…106−M(M:自然数))を記憶する。なお、本実施形態において、管理情報(106−1、106−2、…106−M)のそれぞれを区別しない場合、または管理情報(106−1、106−2、…106−M)のそれぞれを総称する場合、管理情報106と呼ぶ。
(管理情報106)
図3は、管理情報106の一例を示す図である。管理情報106は、計算ノード管理部101がキャッシュしたファイルを示すキャッシュファイルを管理するための情報である。管理情報106は、キャッシュファイルがファイルデータ131のどの部分に該当するのか、つまりどのファイルをキャッシュしたキャッシュファイルなのか、どの計算ノード110にあるのか、計算ノード110のどこに存在するのか等を示す情報である。さらに管理情報106には、どのプロセスにどのようなプロテクションで利用されているのか等の情報が含まれる。ここでいうプロセスとは、後述する処理部117が計算ノード110上で実行するプログラムを示す。処理部117は1以上のプロセスを実行する。
図3に示す例では、管理情報106は、inodeというデータ構造を用いる。また、図3に示す管理情報106は、オフセットと、サイズと、計算ノード番号と、開始物理アドレスと、参照カウントと、プロテクションとを含む。
オフセットは、キャッシュファイルの基準となる所定の位置からの相対的な位置を示す。サイズは、キャッシュファイルの大きさを示す。計算ノード番号は、キャッシュファイルがどの計算ノード110にあるのかを示す。開始物理アドレスは、キャッシュファイルが物理的に計算ノード110のどこに存在するのかを示す。参照カウントは、キャッシュファイルがこれまでに参照された回数を示す。プロテクションは、キャッシュファイルが、読み込み専用または書き込み可能か等の情報を示す。なお、図3に示す管理情報106は一例であり、これに限定されない。
管理情報106は、キャッシュファイルの生成、ファイルのopen、ファイルのclose等のファイルアクセスのための関数が操作された時に管理部102によって更新される。具体的に、1つのキャッシュファイルが生成された場合、生成されたキャッシュファイルに関する管理情報106が1つ追加される。また、ファイルのopenが操作された場合、管理部102は、ファイルのopenが操作されたキャッシュファイルに対応する管理情報106の参照カウントを増加させる。また、例えばファイルのcloseが操作された場合、管理部102は、ファイルのcloseが操作されたキャッシュファイルに対応する管理情報106の参照カウントをディクリメントする。
(管理ノードメモリ103)
管理ノードメモリ103は、管理ノード100の記憶領域であり、後述する通常のデータ転送時に使用され、キャッシュファイルを格納するためのページキャッシュメモリ104というメモリ領域を含む。
(計算ノード管理部101)
計算ノード管理部101は計算ノード110の管理を行う。例えば、計算ノード管理部101−1は、計算ノード110−1の管理を行う。このように本実施形態においては、1つの計算ノード管理部101が、1つの計算ノード110の管理を行う。
計算ノード管理部101は、計算ノード110からファイル名を、ファイル番号を要求するファイル番号要求として受信する。そして、計算ノード管理部101は、受信したファイル番号要求を管理部102に送信する。計算ノード管理部101は、管理部102からファイル名(ファイル番号要求)に対応するファイル番号を受信する。そして、計算ノード管理部101は、受信したファイル番号を、計算ノード110に送信する。
計算ノード管理部101は、計算ノード110から1または複数のファイルにアクセスするファイルアクセス要求を受信し、受信したファイルアクセス要求を管理部102に送信する。
計算ノード管理部101は、管理情報106を更新したことを示す通知を管理部102から受信する。計算ノード管理部101は、該通知に基づき、処理部117がファイル番号によって指定されたファイルのキャッシュファイルにアクセスできるように、ファイルアクセス要求を送信した計算ノード110のキャッシュファイル管理情報114(以下、計算情報と呼ぶ)と、ページテーブル116とを更新する。計算情報114と、ページテーブル116とについては後述する。
計算ノード管理部101は、管理部102からキャッシュファイルの生成処理を行う指示を受け付ける。受け付けた指示に基づき、計算ノード管理部101は、計算ノード110にファイルをキャッシュする。具体的に、計算ノード管理部101は、キャッシュファイル生成処理を行う。キャッシュファイル生成処理については後述する。
計算ノード管理部101は、管理部102からキャッシュファイルが生成されたことを示す通知を受信する。そして、計算ノード管理部101は、キャッシュファイルが生成されたことを示す通知を、生成されたキャッシュファイルのファイル番号とともに、計算ノード110に送信する。なお、キャッシュファイルのファイル番号とは、該キャッシュファイルを生成するためにキャッシュされた元のファイルのファイル番号を示す。
計算ノード管理部101は、キャッシュファイルを確認する指示に基づき、管理情報106を参照し、参照カウントが0であるキャッシュファイルがあるか否か判定する。計算ノード管理部101は、参照カウントが0であるキャッシュファイルがあるか否かの判定の結果に応じて処理を行う。具体的な処理の内容は、図9に示すフローチャートを用いて後述する。
計算ノード管理部101は、参照カウントが0であるキャッシュファイルが読み込み専用であるか否か判定する。計算ノード管理部101は、参照カウントが0であるキャッシュファイルが読み込み専用であるか否かの判定の結果に応じて処理を行う。具体的な処理の内容は、図9に示すフローチャートを用いて後述する。
計算ノード管理部101は、管理部102から、ライトバック(書き戻し)が終わったことを示す通知を受信し、受信した通知に基づき、参照カウントが0であるキャッシュファイルを格納する領域(キャッシュファイルメモリ113)を破棄する。
計算ノード管理部101は、キャッシュファイルメモリ113が生成されたことを示す通知を管理部102から受信し、受信したキャッシュファイルメモリ113が生成されたことを示す通知を、生成したキャッシュファイルメモリ113に格納されているキャッシュファイルのファイル番号とともに計算ノード110に送信する。
(管理部102)
管理部102は、計算ノード管理部101を介し、計算ノード110からファイル番号要求(ファイル名)を受信する。管理部102は、ファイル番号要求に基づき、ファイル番号要求(ファイル名)に対応するファイル番号を、計算ノード管理部101を介し、計算ノード110に送信する。
また、管理部102は、要求されたファイル番号によって指定されたファイルが、すでにキャッシュ済みか否か判定する。なお、管理部102は管理情報106を用いて、該判定を行う。つまり、管理部102は、管理情報106を参照し、ファイル番号によって指定されたファイルがキャッシュ済みか否か判定する。管理部102は、ファイル番号によって指定されたファイルがキャッシュ済みか否かの判定の結果に応じて処理を行う。具体的な処理の内容は、図5に示すフローチャートを用いて後述する。
管理部102は、計算ノード管理部101からファイルアクセス要求を受信する。そして、管理部102は、受信したファイルアクセス要求のあったファイル、つまりファイルアクセス要求の対象となるファイルを、計算ノード管理部101がファイルアクセス要求を送信した計算ノード110にキャッシュするか否か判定する。また、該判定は、管理ノード100に予め設定されたファイルをキャッシュする条件に基づいて行われてもよい。
ファイルアクセス要求のあったファイルを、ファイルアクセス要求を送信した計算ノード110にキャッシュしない場合、管理部102は通常のデータ転送をする。ここで、通常のデータ転送とは、管理部102が、ファイルのキャッシュファイルを管理ノードメモリ103のページキャッシュメモリ104に一度転送し、その後、DMA部111を介してページキャッシュメモリ104から計算ノード110内のプロセスメモリ115に直接データを転送することである。つまり、通常のデータ転送はキャッシュファイルメモリ113を作らないことをいう。
ファイルアクセス要求のあったファイルを、ファイルアクセス要求を送信した計算ノード110にキャッシュする場合、管理部102は、後述するキャッシュファイルの生成処理を行うように計算ノード管理部101に指示する。
管理部102は、計算ノード管理部101からキャッシュファイルを生成したことを示す通知を受信する。そして、管理部102は、キャッシュファイルを生成したことを示す通知に基づき、生成されたキャッシュファイルに対応する管理情報106を生成する。
管理部102は、計算ノード管理部101からページテーブル116の追加が完了したことを示す通知を受信し、該通知に基づき、キャッシュファイルメモリ113が生成されたか否か判定する。管理部102は、キャッシュファイルメモリ113が生成されたか否かの判定の結果に応じて処理を行う。具体的な処理の内容は図7に示すフローチャートを用いて後述する。
管理部102は、管理情報106の情報を更新する時、または定期的にキャッシュファイルを確認する指示を計算ノード管理部101に送信する。
管理部102は、計算ノード管理部101からキャッシュファイルを受信し、受信したキャッシュファイルを管理ノードメモリ103にライトバック(書き戻し)する。そして、管理部102は、ライトバックが終わったことを示す通知を、計算ノード管理部101に送信する。
(計算ノードメモリ110)
計算ノード110は、DMA(Direct Memory Access)部111と、計算ノードメモリ112と、ページテーブル116と、処理部117とを備える。
(DMA部111)
DMA部111は、例えばDMA方式を使用し、管理部102が管理ノードメモリ103から直接転送したデータを受信し、受信したデータをプロセスメモリ115に送信する。
(計算ノードメモリ112)
計算ノードメモリ112は、キャッシュファイルメモリ113と、計算情報114と、プロセスメモリ115とを有する。
(キャッシュファイルメモリ113)
キャッシュファイルメモリ113は、計算ノードメモリ112内においてキャッシュファイルを格納するために確保された領域を示す。つまり、キャッシュファイルメモリ113は、計算ノード管理部101によってキャッシュされたキャッシュファイルを格納する。
(プロセスメモリ115)
プロセスメモリ115は、計算ノード110のプロセスごとに割り当てられた記憶領域である。
(計算情報114)
ここで、図4を用いて計算情報114について説明する。計算情報114は、計算ノード管理部101がキャッシュしたキャッシュファイルのうち、計算ノード110にキャッシュされたキャッシュファイルを管理する情報である。つまり、計算情報114は、計算ノード110にキャッシュされたキャッシュファイルを管理するための情報である。例えば、計算情報114−1は、計算ノード110−1内にキャッシュされたキャッシュファイルを管理するための情報である。また図4の右側は、計算情報(114−1、114−2、…114−P(P:自然数))の一例を示す図である。
また、図4に示す図において、計算情報114は、キャッシュファイルを一意に識別可能な番号をキーとし、キャッシュファイルのオフセット、サイズ、および開始仮想アドレスを含む。計算情報に含まれるファイル番号、オフセット、サイズには、キャッシュされた元のファイルのファイル番号、オフセット、サイズが格納される。開始仮想アドレスについては後述する。
なお、本実施形態において、計算情報(114−1、114−2、…114−P)のそれぞれを区別しない場合、または計算情報(114−1、114−2、…114−P)のそれぞれを総称する場合、計算情報114と呼ぶ。
また、図4の左側は、処理部117が実行する各プロセスにおける計算ノードプロセス仮想アドレス空間(仮想アドレス空間)200の一例を示す図である。計算ノードプロセス仮想アドレス空間200は、各プロセスに割り当てられたメモリ空間であって、物理メモリであるプロセスメモリ115に対応する仮想メモリのアドレス空間である。
図4に示す例においては、計算ノードプロセス仮想アドレス空間200は、5つの空間に分かれている。また、計算ノードプロセス仮想アドレス空間200の5つの空間うち2つの空間は、計算情報114と、キャッシュファイルとがそれぞれ占めている。
1つのプロセスで使用されるキャッシュファイルの計算情報114は、1つの計算ノードプロセス仮想アドレス空間200にマップされる。これにより、処理部117が実行するプロセスは、計算情報114にアクセスすることが可能となる。
また、計算ノードプロセス仮想アドレス空間200の一部を占めているキャッシュファイルは、計算ノードプロセス仮想アドレス空間200のプロセスが使用するキャッシュファイルを示す。このように、キャッシュファイルは計算ノードプロセス仮想アドレス空間(仮想メモリのアドレス空間)200にマップされる。
よって、処理部117が実行するプロセスは、該キャッシュファイルを使用することができる。なお、開始仮想アドレスは、計算ノードプロセス仮想アドレス空間200上において該キャッシュファイルが格納される領域の開始アドレスを示す。
また、計算情報114に含まれる開始仮想アドレスには、プロセスごとに異なる計算ノードプロセス仮想アドレス空間200の仮想アドレスが用いられるため、計算情報114もまた、プロセスごとに生成され、計算ノードプロセス仮想アドレス空間200にマップされる必要がある。計算ノードプロセス仮想アドレス空間200はプロセスごとに異なるため、仮想アドレスは、プロセスごとに異なる。したがって開始仮想アドレスには、使用されるプロセスごとに異なる仮想アドレスが格納される。
(ページテーブル116)
ページテーブル116は、各計算ノード110に含まれる。処理部117は、ページテーブル116を用いて、計算ノードメモリ112にアクセスする。ページテーブル116には、ファイル番号と、該ファイル番号によって識別されるキャッシュファイルの物理アドレスと、該物理アドレスの変換先の仮想アドレスとのマッピングが格納されている。ページテーブル116に格納される仮想アドレスは、計算ノードプロセス仮想空間200上の仮想アドレスである。また、ページテーブル116に格納される物理アドレスは、計算ノードメモリ112上の物理アドレスである。
また、ページテーブル116の仮想アドレスには、計算情報114と同様に、各キャッシュファイルを使用するプロセスによって異なる仮想アドレスが格納される。
このように、計算情報114およびページテーブル116は、計算情報114およびページテーブル116に関連するキャッシュファイルを使用したプロセスに紐づいている。
これにより、処理部117は、ページテーブル116に基づき、仮想アドレスによって指定されたキャッシュファイルであって、プロセスメモリ115に対応する計算ノードプロセス仮想アドレス空間(仮想メモリのアドレス空間)200にマップされたキャッシュファイルを用いて、計算ノード110上で起動するプロセスを実行する。よって、処理部117が実行するプロセスは、該キャッシュファイルを使用することができる。
また、計算情報114およびページテーブル116に関連するキャッシュファイルを使用するプロセスが新しくなる場合、計算ノード管理部101は、処理部117がキャッシュファイルにアクセスできるように、計算情報114およびページテーブル116と新しいプロセスとが紐づくように書き換える。
(処理部117)
処理部117は、計算ノード管理部101によって制御され、計算ノード管理部101と情報の送受信を行う。また、処理部117は、キャッシュファイルを用いて、該計算ノード110上で起動するプロセスを実行する。
処理部117(処理部117が実行するプロセス)は、ファイルを識別するためのファイル番号を要求するファイル番号要求を管理ノード100に送信する。具体的に処理部117は、アクセスするファイルのファイル名をファイル番号要求として管理ノード100に送信する。なお、処理部117が送信するファイル番号要求はファイル名に限定されない。ファイル番号要求は、ファイルを特定する情報であればよい。
処理部117は、管理ノード100からファイル番号を受信し、受信したファイル番号をキーとし、計算情報114を参照し、ファイル番号によって指定されたファイルがキャッシュ済みか否か判定する。処理部117は、ファイル番号によって指定されたファイルがキャッシュ済みか否かの判定の結果に応じて、処理を行う。具体的な処理の内容は図6に示すフローチャートを用いて後述する。
処理部117は、ファイル番号によって指定された全てのファイルがキャッシュ済みか否か判定する。処理部117は、ファイル番号によって指定された全てのファイルがキャッシュ済みか否かの判定の結果に応じて、処理を行う。具体的な処理の内容は図6に示すフローチャートを用いて後述する。
処理部117は、不足部分のファイル、換言するとキャッシュ済みでないファイルに対するファイルアクセス要求を管理ノード100に送信する。処理部117は、キャッシュ済みでないファイルのファイル番号をファイルアクセス要求として送信する。つまり、処理部117は、ファイル番号をファイルアクセス要求として管理ノード100に送信する。
処理部117は、管理ノード100からキャッシュファイルメモリ113が生成されたことを示す通知を、ファイル番号とともに受信する。受信した通知と、ファイル番号とに基づき、処理部117は生成されたキャッシュファイルメモリ113にアクセスし、アクセスしたキャッシュファイルメモリ113からプロセスメモリ115にデータ転送をする。
処理部117が実行するプロセスは、キャッシュファイルメモリ113からプロセスメモリ115に転送したキャッシュファイルを使用する。言い換えると、処理部117は、キャッシュファイルメモリ113からプロセスメモリ115にキャッシュファイルを転送し、転送したキャッシュファイルを用いて計算ノード110上で起動するプロセスを実行する。そのため、処理部117が実行するプロセスは、プロセスメモリ115に転送したキャッシュファイルを計算ノードプロセス仮想アドレス空間200上にマップする必要がある。
つまり、プロセスメモリ115に転送したキャッシュファイルは、計算ノードプロセス仮想アドレス空間200上に配置される。よって、図4に示すように、計算ノードプロセス仮想アドレス空間200には、処理部117が実行するプロセスが使用するキャッシュファイルを配置する空間が設けられる。
図5は、1つの計算ノード110が、ファイル番号を取得する動作の一例を示すフローチャートである。
計算ノード110において、ファイルアクセス要求が発生すると、処理部117は、処理部117がアクセスするファイルのファイル名を管理ノード100に送信する(ステップS500)。
管理部102は、計算ノード管理部101を介し、計算ノード110からファイル名を受信する(ステップS501)。管理部102は、ファイル名に対応するファイル番号を、計算ノード管理部101を介し計算ノード110に送信する(ステップS502)。そして、処理部117は、管理ノード100からファイル番号を受信する(ステップS503)。その後、計算ノード110の処理は、後述する図6のフローチャートに進む。
ステップS502の後、管理部102は、要求されたファイル番号によって指定されたファイルがキャッシュ済みか否か判定する(ステップS504)。
要求されたファイル番号によって指定されたファイルがキャッシュ済みでない場合(ステップS504でNO)、処理は終了する。そして管理ノード100は、計算ノード110からのファイルアクセス要求を待つ待機状態となる。
一方、要求されたファイル番号によって指定されたファイルがキャッシュ済みである場合(ステップS504でYES)、管理部102は、管理情報106を更新する(ステップS505)。具体的に管理部102は、ファイル番号によって指定されたファイルのキャッシュファイルに対応する管理情報106に含まれる参照カウントであって、該キャッシュファイルがこれまでに参照された回数を示す参照カウントを増加させる。
また、管理部102は、管理情報106を更新したことを示す通知を計算ノード管理部101に送信する。そして、計算ノード管理部101は、管理情報106を更新したことを示す通知を受信する。
その後、計算ノード管理部101は、受信した管理情報106を更新したことを示す通知に基づき、処理部117がファイル番号によって指定されたファイルのキャッシュファイルにアクセスできるように、計算情報114と、ページテーブル116とを更新する(ステップS506)。具体的に、計算ノード管理部101は、計算情報114の開始仮想アドレスを、ファイルアクセス要求を送信したプロセスに割り当てられた計算ノードプロセス仮想アドレス空間200の仮想アドレスに書き換える。また、計算ノード管理部101は、ページテーブル116に格納されているファイル番号のキャッシュファイルの仮想アドレスを、ファイルアクセス要求を送信したプロセスに割り当てられた計算ノードプロセス仮想アドレス空間200の仮想アドレスに書き換える。
図6は、図5のステップS503の処理が終了した後の計算ノード110の動作の一例を示すフローチャートである。具体的に、図6は計算ノード110がキャッシュファイルメモリ113を利用する動作の一例を示すフローチャートである。
処理部117は、計算情報114を参照し、ファイル番号によって指定されたファイルがキャッシュ済みか否か判定する(ステップS600)。ファイル番号によって指定されたファイルがキャッシュ済みでない場合(ステップS600でNO)、処理部117は、キャッシュ済みでないファイルに対するファイルアクセス要求を管理ノード100に送信する(ステップS603)。
一方、ファイル番号によって指定されたファイルがキャッシュ済みである場合(ステップS600でYES)、処理部117は、ファイル番号によって指定された全てのファイルがキャッシュ済みか否か判定する(ステップS601)。
ファイル番号によって指定された全てのファイルがキャッシュ済みの場合(ステップS601でYES)、処理部117は、ファイル番号によって指定された全てのキャッシュファイルをキャッシュファイルメモリ113からプロセスメモリ115に転送する(ステップS604)。
一部のファイルはキャッシュ済みだが、ファイル番号によって指定された全てのファイルはキャッシュ済みでない場合(ステップS601でNO)、処理部117は、キャッシュ済みの一部、つまり一部のキャッシュファイルを先にキャッシュファイルメモリ113からプロセスメモリ115に転送する(ステップS602)。その後、処理は上述したステップS603に進む。
次に図7を用いて、管理ノード100が、ファイルアクセス要求を受け付けた際の動作について説明する。具体的に図7は、図6のステップS603の処理において、計算ノード110が送信したファイルアクセス要求を管理ノード100が受信した後の処理の一例を示すフローチャートである。
計算ノード管理部101は、計算ノード110からファイルアクセス要求を受信し(ステップS700)、受信したファイルアクセス要求を管理部102に送信する。管理部102は、計算ノード管理部101からファイルアクセス要求を受信する。そして、管理部102は、受信したファイルアクセス要求が対象としているファイル、つまりファイルアクセス要求のあったファイルを、計算ノード管理部101がファイルアクセス要求を送信した計算ノード110にキャッシュするか否か判定する(ステップS701)。
ファイルアクセス要求の対象となるファイルを、計算ノード管理部101が計算ノード110にキャッシュしない場合(ステップS701でNO)、管理部102は、通常のデータ転送をする(ステップS702)。
ファイルアクセス要求の対象となるファイルを、計算ノード管理部101が計算ノード110にキャッシュする場合(ステップS701でYES)、管理部102は、キャッシュファイルの生成処理(ステップS703)を行うように計算ノード管理部101に指示する。ステップS703のキャッシュファイルの生成処理について、図8を用いて詳細に説明する。
図8は、計算ノード管理部101がキャッシュファイルを生成する動作の一例を示すフローチャートである。
はじめに、計算ノード管理部101は、計算ノードメモリ112にキャッシュファイルを格納するための空きメモリがあるか否か判定する(ステップS800)。キャッシュファイルを格納するための空きメモリがない場合(ステップS800でNO)、処理はステップS704に進む。
キャッシュファイルを格納するための空きメモリがある場合(ステップS800でYES)、計算ノード管理部101は、計算ノードメモリ112内の空きメモリを確保する(ステップS801)。そして、確保した空きメモリはキャッシュファイルメモリ113となる。つまり、計算ノード管理部101は、計算ノードメモリ112内の空きメモリ(空き領域)を、キャッシュファイルを格納する領域(キャッシュファイルメモリ113)として確保する。
例えば、計算ノード管理部101は、キャッシュファイルを格納するため用に必要な空きメモリのサイズ情報を持っていてもよい。そして、該サイズ情報に基づいて、キャッシュファイルを格納するための空きメモリがあるか否か判定してもよい。または、計算ノード管理部101は、空きメモリのサイズに関わらず、すべての空きメモリを、キャッシュファイルを格納するために確保してもよい。
計算ノード管理部101は、ファイルアクセス要求の対象となるファイルをキャッシュし、キャッシュファイルを生成する。そして、計算ノード管理部101は、生成したキャッシュファイルをキャッシュファイルメモリ113に転送する(ステップS802)。つまり、計算ノード管理部101は、管理部102のステップS701の判定の結果に基づき、ファイルアクセス要求を送信した計算ノード110にファイルをキャッシュする。具体的に、計算ノード管理部101は、確保したキャッシュファイルメモリ113にファイルをキャッシュする。
また、計算ノード管理部101は、キャッシュファイルを生成したことを示す通知を管理部102に送信する。そして、管理部102は、キャッシュファイルを生成したことを示す通知に基づき、生成されたキャッシュファイルに対応する管理情報106を生成する(ステップS803)。
計算ノード管理部101は、計算ノード110から送信されたファイルアクセス要求と、生成したキャッシュファイルとに基づいて計算情報114を生成する(ステップS804)。そして、計算ノード管理部101は、計算ノード110のプロセスからアクセスできるように、生成されたキャッシュファイルに対応する物理アドレスと、仮想アドレスとを含むレコードをページテーブル116に追加する(ステップS805)。
この時、ファイルアクセス要求されたファイルを全てキャッシュできるとは限らないため、計算ノード管理部101は、キャッシュされたファイル(キャッシュファイル)についての情報(ファイル番号)を計算ノード110に送信する。その後、計算ノード管理部101は、管理部102にページテーブル116の追加が完了したことを示す通知を管理部102に送信する。そして、処理は図7のステップS704に進む。
図7に戻り、管理ノード100が、ファイルアクセス要求を受信した際の動作について説明する。
管理部102は、計算ノード管理部101からページテーブル116の追加が完了したことを示す通知を受信し、該通知に基づき、キャッシュファイルメモリ113が生成されたか否か判定する(ステップS704)。
キャッシュファイルメモリ113が生成された場合(ステップS704でYES)、管理部102は、キャッシュファイルメモリ113が生成されたことを示す通知を計算ノード管理部101に送信する。そして、計算ノード管理部101は、キャッシュファイルメモリ113が生成されたことを示す通知を、生成されたキャッシュファイルメモリ113に格納されるキャッシュファイルのファイル番号とともに計算ノード110に送信する(ステップS705)。
キャッシュファイルメモリ113が生成されない場合(ステップS704でNO)、処理はステップS702に進む。
処理部117は、計算ノード管理部101からキャッシュファイルメモリ113が生成されたことを示す通知をファイル番号とともに受信する(ステップS706)。受信した通知と、ファイル番号とに基づき、処理部117は生成されたキャッシュファイルメモリ113にアクセスする。その後、処理部117は、生成されたキャッシュファイルをキャッシュファイルメモリ113からプロセスメモリ115にデータ転送をする(ステップS707)。
以上のように、OSの機能を持たない計算ノード110は、キャッシュファイルメモリ113の管理およびキャッシュファイルの管理ができない。そのため、管理ノード100がキャッシュファイルメモリ113の確保と管理とを行う。
上述したような計算ノード110と、管理ノード100とを含む並列計算機システム1において、計算ノード110の処理部117が実行するプロセスが、OS機能なしでキャッシュファイルを利用可能にするために、計算情報114を計算ノード110に配置した。このようにすることで、計算ノード110の処理部117(処理部117が実行するプロセス)は、計算情報114に基づき、キャッシュファイルにアクセスすることが可能となる。
本実施形態に係る並列計算機システム1は、管理ノード100と、管理ノード100によって制御される1以上の計算ノード110とを含む。管理ノード100は、計算ノード110にファイルをキャッシュする計算ノード管理部101を備える。計算ノード110は、計算ノード管理部101によってキャッシュされたキャッシュファイルを格納するキャッシュファイルメモリ113と、キャッシュファイルを用いて、該計算ノード110上で起動するプロセスを実行する処理部117を備える。
以上の構成により、並列計算機システム1においては、OS機能を持たない計算ノード110の処理部117が同一装置内のキャッシュファイルにアクセスすることができる。よって、他の装置間でファイルアクセスを行う場合と比較すると、並列計算機システム1は、ファイルアクセスを高速化することができる。また、並列計算機システム1は、管理ノード100と計算ノード110との間のファイルアクセスを削減することができる。よって、本開示によればファイルアクセス時のオーバヘッドを削減することができる。
また、本実施形態において、処理部117は、ファイルにアクセスするファイルアクセス要求を管理ノード100に送信する。また、管理ノード100は、ファイルアクセス要求の対象となるファイルを、計算ノード管理部101がファイルアクセス要求を送信した計算ノード110にキャッシュするか否か判定する管理部102を備える。計算ノード管理部101は、管理部102の判定の結果に基づき、ファイルアクセス要求を送信した計算ノード110にファイルをキャッシュする。
上述した動作により、計算ノード管理部101は、ファイルアクセス要求を送信した計算ノード110以外にはファイルをキャッシュしない。よって、本開示によれば、余分なキャッシュファイルを生成することがなく、計算ノード110内のメモリの利用効率を向上することができる。
また、計算ノード110は、計算ノード110にキャッシュされたキャッシュファイルを管理するための計算情報114を格納する計算ノードメモリ112を備える。ファイルアクセス要求の対象となるファイルを、計算ノード管理部101が計算ノード110にキャッシュする場合、計算ノード管理部101は、計算ノードメモリ112にキャッシュファイルを格納するための空きメモリがあるか否か判定する。空きメモリがある場合、計算ノード管理部101は、空きメモリをキャッシュファイルメモリ113として確保し、確保したキャッシュファイルメモリ113にファイルをキャッシュする。
上述した動作により、本開示によれば、すでに使用されている記憶領域にキャッシュファイルをキャッシュせず、空きメモリがある場合にキャッシュファイルを生成する。そのため、既に使用されている記憶領域を破棄することなく、キャッシュファイルを生成することができる。
また、計算ノードメモリ112は、プロセスごとに割り当てられた記憶領域であるプロセスメモリ115を含む。これにより、処理部117は、キャッシュファイルメモリ113からプロセスメモリ115にキャッシュファイルを転送し、転送したキャッシュファイルを用いて計算ノード110上で起動するプロセスを実行する。
上述した動作により、本開示によれば、処理部117は、キャッシュファイルメモリ113から、プロセスメモリ115にキャッシュファイルを転送する。よって、処理部117は、同一計算ノード間でキャッシュファイルを転送することができる。したがって、ある計算ノードから他の計算ノードにキャッシュファイルを転送する場合と比較すると、並列計算機システム1は、キャッシュファイルの転送を高速化することができる。
また、処理部117は、ファイルを識別するためのファイル番号を要求するファイル番号要求を管理ノード100に送信する。管理部102は、ファイル番号要求に基づき、該ファイル番号要求に対応するファイル番号を計算ノード110に送信する。処理手段117は、ファイル番号をファイルアクセス要求として管理ノード100に送信する。
上述した動作により、処理部117は、管理ノード100から取得し、取得したファイル番号をファイルアクセス要求として送信する。すなわち、処理部117は、管理ノード100が管理しているファイル番号をファイルアクセス要求として送信する。そのため、管理ノード100は、処理部117から送信されたファイルアクセス要求に対応するファイルを効率よく特定することができる。
また、計算ノード110は、ファイル番号と、該ファイル番号によって識別されるファイルのキャッシュファイルの物理アドレスと、該物理アドレスの変換先の仮想アドレスとのマッピングを格納するページテーブル116を備える。処理部117は、ページテーブル116に基づき、仮想アドレスによって指定されたキャッシュファイルであって、プロセスメモリ115に対応する計算ノードプロセス仮想アドレス空間(仮想メモリのアドレス空間)200にマップされたキャッシュファイルを用いて、計算ノード110上で起動するプロセスを実行する。
上述した動作により、処理部117は、ページテーブル116に基づき、計算ノードプロセス仮想アドレス空間200にマップされた、キャッシュファイルを使用することができる。これにより、本開示によれば、処理部117は該キャッシュファイルを用いて、プロセスを実行することができる。
また、管理ノード100は、計算ノード管理部101がキャッシュしたキャッシュファイルを管理するための管理情報106を格納する記憶部105を備える。管理部102は、管理情報106を参照し、ファイル番号によって指定されたファイルがキャッシュ済みか否か判定する。ファイル番号によって指定されたファイルがキャッシュ済みである場合、管理部102は、ファイル番号によって指定されたファイルのキャッシュファイルに対応する管理情報106に含まれる参照カウントであって、該キャッシュファイルがこれまでに参照された回数を示す参照カウントを増加させる。計算ノード管理部101は、処理部117が、該キャッシュファイルにアクセスできるようにファイルアクセス要求を送信した計算ノード110の計算情報114とページテーブル116とを更新する。
上述した動作により、ファイルアクセス要求を送信した計算ノード110の計算情報114とページテーブル116とを更新することで、ファイルアクセス要求を送信した計算ノード110の処理部117が実行するプロセスと、ファイルアクセス要求の対象であるファイルのキャッシュファイルとを紐づける。これにより、本開示によれば、ファイルアクセス要求を送信した計算ノード110の処理部117は、ファイルアクセス要求の対象であるファイルのキャッシュファイルにアクセスすることができる。
また、処理部117は、計算情報114を参照し、ファイル番号によって指定されたファイルがキャッシュ済みか否か判定し、ファイル番号によって指定されたファイルがキャッシュ済みでない場合、管理ノード100にファイルアクセス要求を送信する。また、処理部117は、ファイル番号によって指定されたファイルがキャッシュ済みの場合、ファイル番号によって指定された全てのファイルがキャッシュ済みか否か判定する。また、処理部117は、一部のファイルはキャッシュ済みだが、ファイル番号によって指定された全てのファイルはキャッシュ済みでない場合、キャッシュ済みでないファイルに対するファイルアクセス要求を管理ノード100に送信する。
上述した動作により、処理部117は、各ファイル番号に基づきファイルがキャッシュされたか否か判定し、キャッシュされていないファイルに対してファイルアクセス要求を管理ノード100に送信する。これにより、すでにキャッシュされているファイルに対してファイルアクセス要求を送信しなくて済む。よって、本開示によれば、余分なキャッシュファイルを生成することなく、計算ノードメモリ112の利用効率を向上することができる。
図9を使用し、管理ノード100が行うキャッシュファイルの書き戻しの動作とキャッシュファイルメモリ113を破棄する動作とを説明する。図9は、キャッシュファイルの書き戻しの動作と、キャッシュファイルメモリ113を破棄する動作との一例を示すフローチャートである。
前提として、計算ノード110はOSの機能を持たないため、ファイルアクセスのための関数、例えばopen等は処理部117(処理部117が実行するプロセス)から、管理ノード100の計算ノード管理部101を介し管理部102に通知され、管理部102において処理される。
具体的に、ファイルアクセスのための関数(open)が処理部117から計算ノード管理部101を介し管理部102に通知されると、即ちファイル番号要求が通知されると、管理部102は、ファイル番号要求を通知した計算ノード110の処理部117に対し、ファイル番号を送信する。
さらに、管理部102は、キャッシュファイルメモリ113生成時に管理情報106を生成する。またはすでに生成されたキャッシュファイルメモリ113が再び利用される時に、管理部102は、管理情報106の情報を書き換える。
つまり、管理部102は、キャッシュファイルメモリ113生成時またはキャッシュファイルメモリ113が再利用される時に管理情報106の情報を更新する。そして、管理部102は、管理情報106の情報を更新する時、または定期的にキャッシュファイルを確認する指示をそれぞれの計算ノード管理部101に送信する。そして、計算ノード管理部101は、キャッシュファイルを確認する指示に基づき、以下の動作を行う。
計算ノード管理部101は、管理情報106を参照し、参照カウントが0であるキャッシュファイルがあるか否か判定する(ステップS900)。参照カウントが0であるキャッシュファイルがない場合(ステップS900でNO)、処理は終了する。
参照カウントが0であるキャッシュファイルがある場合(ステップS900でYES)、計算ノード管理部101は、参照カウントが0であるキャッシュファイルが読み込み専用(Read Only)であるか否か判定する(ステップS901)。
参照カウントが0であるキャッシュファイルが読み込み専用である場合(ステップS901でYES)、計算ノード管理部101は、参照カウントが0であるキャッシュファイルを格納するキャッシュファイルメモリ113を破棄する(ステップS903)。つまり、計算ノード管理部101は、参照カウントが0であるキャッシュファイルを格納するために確保していた領域を空きメモリにする。
参照カウントが0であるキャッシュファイルが書き込み可能である場合(ステップS901でNO)、計算ノード管理部101は、該領域に格納されているキャッシュファイルを管理部102に送信する。そして、管理部102はキャッシュファイルを受信し、受信したキャッシュファイルを管理ノードメモリ103にライトバック(書き戻し)する(ステップS902)。そして、管理部102は、ライトバックが終わったことを示す通知を、計算ノード管理部101に送信する。
そして、計算ノード管理部101は、管理部102から、ライトバックが終わったことを示す通知を受信し、受信した通知に基づき、ステップS903の処理を行う。
以上のように本実施形態における計算ノード管理部101は、管理情報106を参照し、参照カウントが0であるキャッシュファイルがあるか否か判定する。参照カウントが0であるキャッシュファイルがある場合、計算ノード管理部101は、参照カウントが0であるキャッシュファイルが読み込み専用であるか否か判定する。また、計算ノード管理部101は、参照カウントが0であるキャッシュファイルが読み込み専用である場合、参照カウントが0であるキャッシュファイルを格納するキャッシュファイルメモリを破棄する。
上述した動作により、計算ノード管理部101は、参照カウントに基づき、キャッシュファイルメモリ113を空きメモリにすることができる。これにより、本開示によれば、計算ノードメモリ112の利用効率を向上することができる。
<第2実施形態>
図10は、本開示の第2実施形態に係る並列計算機システム2の機能構成の一例を示すブロック図である。本実施形態に係る並列計算機システム2は、本開示が解決しようとする課題を解決するための基本の構成である。
並列計算機システム2は、管理ノード300と、管理ノード300によって管理される計算ノード210とを含む。管理ノード300は、計算ノード管理部301を備える。計算ノード管理部301は、計算ノード管理部101の機能を有する。また、計算ノード管理部301は、計算ノード210にファイルをキャッシュする。なお、計算ノード管理部301がキャッシュするファイルは外部装置から受け付けても良い。
計算ノード210は、キャッシュファイルメモリ213と、処理部217とを備える。キャッシュファイルメモリ213は、キャッシュファイルメモリ113の機能を有する。また、キャッシュファイルメモリ213は、計算ノード管理部301によってキャッシュされたキャッシュファイルを格納する。
処理部217は、処理部117の機能を有する。また、処理部217は、キャッシュファイルを用いて、計算ノード210上で起動するプロセスを実行する。計算ノード210は、管理ノード300によって管理される。つまり、計算ノード210は、OS機能を持たない。したがって、管理ノード300からの指示により、計算ノード210は動作する。
本開示に係る並列計算機システム2によれば、計算ノード210がキャッシュファイルメモリ213を有する。これにより、管理ノード300によって管理される計算ノード210の処理部217は、同一装置内のキャッシュファイルにアクセスすることができる。このため、他の装置間でファイルアクセスを行う場合と比較すると、並列計算機システム2は、管理ノード300と計算ノード210との間のファイルアクセスを削減することができる。よって、本開示によればファイルアクセス時のオーバヘッドを削減することができる。
<ハードウェア構成>
本開示の各実施形態において、各システムの各構成要素は、機能単位のブロックを示している。各システムの各構成要素の一部又は全部は、例えば図11に示すような情報処理装置900とプログラムとの任意の組み合わせにより実現される。情報処理装置900は、一例として、以下のような構成を含む。
・CPU(Central Processing Unit)901
・ROM(Read Only Memory)902
・RAM(Random Access Memory)903
・RAM903にロードされるプログラム904
・プログラム904を格納する記憶装置905
・記録媒体906の読み書きを行うドライブ装置907
・通信ネットワーク909と接続する通信インターフェース908
・データの入出力を行う入出力インターフェース910
・各構成要素を接続するバス911
各実施形態における各システムの各構成要素は、これらの機能を実現するプログラム904をCPU901が取得して実行することで実現される。各システムの各構成要素の機能を実現するプログラム904は、例えば、予め記憶装置905やRAM903に格納されており、必要に応じてCPU901が読み出す。なお、プログラム904は、通信ネットワーク909を介してCPU901に供給されてもよいし、予め記録媒体906に格納されており、ドライブ装置907が当該プログラムを読み出してCPU901に供給してもよい。
各システムの実現方法には、様々な変形例がある。例えば、各システムは、構成要素毎にそれぞれ別個の情報処理装置900とプログラムとの任意の組み合わせにより実現されてもよい。また、各システムが備える複数の構成要素が、一つの情報処理装置900とプログラムとの任意の組み合わせにより実現されてもよい。
また、各システムの各構成要素の一部又は全部は、その他の汎用または専用の回路、プロセッサ等やこれらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。
各システムの各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
各システムの各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
以上、各実施形態を参照して本開示を説明したが、本開示は上記各実施形態に限定されものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。
上記の各実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。
(付記1)
管理ノードと、前記管理ノードによって制御される1以上の計算ノードとを含み、
前記管理ノードは、前記計算ノードにファイルをキャッシュする計算ノード管理手段を備え、
前記計算ノードは、前記計算ノード管理手段によってキャッシュされたキャッシュファイルを格納するキャッシュファイルメモリと、
前記キャッシュファイルを用いて、該計算ノード上で起動するプロセスを実行する処理手段と、
を備える並列計算機システム。
(付記2)
前記処理手段は、前記ファイルにアクセスするファイルアクセス要求を前記管理ノードに送信し、
前記管理ノードは、前記ファイルアクセス要求の対象となるファイルを、前記計算ノード管理手段が前記計算ノードにキャッシュするか否か判定する管理手段を更に備え、
前記計算ノード管理手段は、判定の結果に基づき、前記ファイルアクセス要求を送信した計算ノードに前記ファイルをキャッシュする付記1に記載の並列計算機システム。
(付記3)
前記計算ノードは、該計算ノードにキャッシュされたキャッシュファイルを管理するための計算情報を格納する計算ノードメモリを更に備え、
前記ファイルアクセス要求の対象となるファイルを、前記計算ノード管理手段が前記計算ノードにキャッシュする場合、前記計算ノード管理手段は、前記計算ノードメモリに前記キャッシュファイルを格納するための空きメモリがあるか否か判定し、空きメモリがある場合、該空きメモリを前記キャッシュファイルメモリとして確保し、確保したキャッシュファイルメモリに前記ファイルをキャッシュする付記2に記載の並列計算機システム。
(付記4)
前記計算ノードメモリは、前記プロセスごとに割り当てられた記憶領域であるプロセスメモリを含み、
前記処理手段は、前記キャッシュファイルメモリから前記プロセスメモリに前記キャッシュファイルを転送し、転送したキャッシュファイルを用いて該計算ノード上で起動するプロセスを実行する付記3に記載の並列計算機システム。
(付記5)
前記処理手段は、前記ファイルを識別するためのファイル番号を要求するファイル番号要求を前記管理ノードに送信し、
前記管理手段は、前記ファイル番号要求に基づき、該ファイル番号要求に対応するファイル番号を前記計算ノードに送信し、
前記処理手段は、前記ファイル番号を前記ファイルアクセス要求として前記管理ノードに送信する付記3または4に記載の並列計算機システム。
(付記6)
前記計算ノードは、前記ファイル番号と、該ファイル番号によって識別されるファイルのキャッシュファイルの物理アドレスと、該物理アドレスの変換先の仮想アドレスとのマッピングを格納するページテーブルを更に備え、
前記処理手段は、前記ページテーブルに基づき、前記仮想アドレスによって指定されたキャッシュファイルであって、前記プロセスメモリに対応する仮想メモリのアドレス空間にマップされたキャッシュファイルを用いて、該計算ノード上で起動するプロセスを実行する付記5に記載の並列計算機システム。
(付記7)
前記管理ノードは、前記計算ノード管理手段がキャッシュしたキャッシュファイルを管理するための管理情報を格納する記憶手段を更に備え、
前記管理手段は、前記ファイル番号によって指定されたファイルがキャッシュ済みか否か判定し、前記ファイル番号によって指定されたファイルがキャッシュ済みである場合、前記ファイルのキャッシュファイルに対応する前記管理情報に含まれる参照カウントであって、該キャッシュファイルがこれまでに参照された回数を示す参照カウントを増加させ、
前記計算ノード管理手段は、前記処理手段が、該キャッシュファイルにアクセスできるように前記ファイルアクセス要求を送信した計算ノードの計算情報とページテーブルとを更新する付記5または6に記載の並列計算機システム。
(付記8)
前記計算ノード管理手段は、前記管理情報を参照し、前記参照カウントが0であるキャッシュファイルがあるか否か判定し、前記参照カウントが0であるキャッシュファイルがある場合、前記参照カウントが0であるキャッシュファイルが読み込み専用であるか否か判定し、前記参照カウントが0であるキャッシュファイルが読み込み専用である場合、前記参照カウントが0であるキャッシュファイルを格納するキャッシュファイルメモリを破棄する付記7に記載の並列計算機システム。
(付記9)
前記処理手段は、前記計算情報を参照し、前記ファイル番号によって指定されたファイルがキャッシュ済みか否か判定し、前記ファイル番号によって指定されたファイルがキャッシュ済みでない場合、前記管理ノードに前記ファイルアクセス要求を送信し、
前記ファイル番号によって指定されたファイルがキャッシュ済みの場合、前記ファイル番号によって指定された全てのファイルがキャッシュ済みか否か判定し、一部のファイルはキャッシュ済みだが、ファイル番号によって指定された全てのファイルはキャッシュ済みでない場合、キャッシュ済みでないファイルに対するファイルアクセス要求を前記管理ノードに送信する付記5から8のいずれかに記載の並列計算機システム。
(付記10)
管理ノードと、前記管理ノードによって制御される1以上の計算ノードとを含む並列計算機システムの管理方法であって、
前記管理ノードは、前記計算ノードにファイルをキャッシュし、
前記計算ノードは、キャッシュされたキャッシュファイルを格納し、前記キャッシュファイルを用いて、該計算ノード上で起動するプロセスを実行する管理方法。
(付記11)
前記計算ノードは、前記ファイルにアクセスするファイルアクセス要求を前記管理ノードに送信し、
前記管理ノードは、前記ファイルアクセス要求の対象となるファイルを、前記計算ノードにキャッシュするか否か判定し、判定の結果に基づき、前記ファイルアクセス要求を送信した計算ノードに前記ファイルをキャッシュする付記10に記載の管理方法。
(付記12)
前記計算ノードは、前記キャッシュファイルを管理するための計算情報を格納する計算ノードメモリを更に備え、
前記ファイルアクセス要求の対象となるファイルを、前記管理ノードが前記計算ノードにキャッシュする場合、前記管理ノードは、前記計算ノードメモリに前記キャッシュファイルを格納するための空きメモリがあるか否か判定し、空きメモリがある場合、該空きメモリを前記キャッシュファイルメモリとして確保し、確保したキャッシュファイルメモリに前記ファイルをキャッシュする付記11に記載の管理方法。
(付記13)
前記計算ノードメモリは、前記プロセスごとに割り当てられた記憶領域であるプロセスメモリを含み、
前記計算ノードは、前記キャッシュファイルメモリから前記プロセスメモリに前記キャッシュファイルを転送し、転送したキャッシュファイルを用いて該計算ノード上で起動するプロセスを実行する付記12に記載の管理方法。
(付記14)
前記計算ノードは、前記ファイルを識別するためのファイル番号を要求するファイル番号要求を前記管理ノードに送信し、
前記管理ノードは、前記ファイル番号要求に基づき、該ファイル番号要求に対応するファイル番号を前記計算ノードに送信し、
前記計算ノードは、前記ファイル番号を前記ファイルアクセス要求として前記管理ノードに送信する付記12または13に記載の管理方法。
(付記15)
前記計算ノードは、前記ファイル番号と、該ファイル番号によって識別されるファイルのキャッシュファイルの物理アドレスと、該物理アドレスの変換先の仮想アドレスとのマッピングを格納するページテーブルを更に備え、
前記計算ノードは、前記ページテーブルに基づき、前記仮想アドレスによって指定されたキャッシュファイルであって、前記プロセスメモリに対応する仮想メモリのアドレス空間にマップされたキャッシュファイルを用いて、該計算ノード上で起動するプロセスを実行する付記14に記載の管理方法。
(付記16)
前記管理ノードは、該管理ノードがキャッシュしたキャッシュファイルを管理するための管理情報を格納する記憶手段を更に備え、前記ファイル番号によって指定されたファイルがキャッシュ済みか否か判定し、前記ファイル番号によって指定されたファイルがキャッシュ済みである場合、前記ファイルのキャッシュファイルに対応する前記管理情報に含まれる参照カウントであって、該キャッシュファイルがこれまでに参照された回数を示す参照カウントを増加させ、前記計算ノードが、該キャッシュファイルにアクセスできるように前記ファイルアクセス要求を送信した計算ノードの計算情報とページテーブルとを更新する付記14または15に記載の管理方法。
(付記17)
前記管理ノードは、前記管理情報を参照し、前記参照カウントが0であるキャッシュファイルがあるか否か判定し、前記参照カウントが0であるキャッシュファイルがある場合、前記参照カウントが0であるキャッシュファイルが読み込み専用であるか否か判定し、前記参照カウントが0であるキャッシュファイルが読み込み専用である場合、前記参照カウントが0であるキャッシュファイルを格納するキャッシュファイルメモリを破棄する付記16に記載の管理方法。
(付記18)
前記計算ノードは、前記計算情報を参照し、前記ファイル番号によって指定されたファイルがキャッシュ済みか否か判定し、前記ファイル番号によって指定されたファイルがキャッシュ済みでない場合、前記管理ノードに前記ファイルアクセス要求を送信し、
前記ファイル番号によって指定されたファイルがキャッシュ済みの場合、前記ファイル番号によって指定された全てのファイルがキャッシュ済みか否か判定し、一部のファイルはキャッシュ済みだが、ファイル番号によって指定された全てのファイルはキャッシュ済みでない場合、キャッシュ済みでないファイルに対するファイルアクセス要求を前記管理ノードに送信する付記14から17のいずれかに記載の管理方法。
1 並列計算機システム
2 並列計算機システム
100 管理ノード
101 計算ノード管理部
102 管理部
103 管理ノードメモリ
104 ページキャッシュメモリ
105 記憶部
106 管理情報
110 計算ノード
111 DMA部
112 計算ノードメモリ
113 キャッシュファイルメモリ
114 計算情報
115 プロセスメモリ
116 ページテーブル
117 処理部
130 I/Oデバイス
131 ファイルデータ
200 計算ノードプロセス仮想アドレス空間
210 計算ノード
213 キャッシュファイルメモリ
217 処理部
300 管理ノード
301 計算ノード管理部
900 情報処理装置
901 CPU
902 ROM
903 RAM
904 プログラム
905 記憶装置
906 記録媒体
907 ドライブ装置
908 通信インターフェース
909 通信ネットワーク
910 入出力インターフェース
911 バス

Claims (10)

  1. 管理ノードと、前記管理ノードによって制御される1以上の計算ノードとを含み、
    前記管理ノードは、前記計算ノードにファイルをキャッシュする計算ノード管理手段を備え、
    前記計算ノードは、前記計算ノード管理手段によってキャッシュされたキャッシュファイルを格納するキャッシュファイルメモリと、
    前記キャッシュファイルを用いて、該計算ノード上で起動するプロセスを実行する処理手段と、
    を備える並列計算機システム。
  2. 前記処理手段は、前記ファイルにアクセスするファイルアクセス要求を前記管理ノードに送信し、
    前記管理ノードは、前記ファイルアクセス要求の対象となるファイルを、前記計算ノード管理手段が前記計算ノードにキャッシュするか否か判定する管理手段を更に備え、
    前記計算ノード管理手段は、判定の結果に基づき、前記ファイルアクセス要求を送信した計算ノードに前記ファイルをキャッシュする請求項1に記載の並列計算機システム。
  3. 前記計算ノードは、該計算ノードにキャッシュされたキャッシュファイルを管理するための計算情報を格納する計算ノードメモリを更に備え、
    前記ファイルアクセス要求の対象となるファイルを、前記計算ノード管理手段が前記計算ノードにキャッシュする場合、前記計算ノード管理手段は、前記計算ノードメモリに前記キャッシュファイルを格納するための空きメモリがあるか否か判定し、空きメモリがある場合、該空きメモリを前記キャッシュファイルメモリとして確保し、確保したキャッシュファイルメモリに前記ファイルをキャッシュする請求項2に記載の並列計算機システム。
  4. 前記計算ノードメモリは、前記プロセスごとに割り当てられた記憶領域であるプロセスメモリを含み、
    前記処理手段は、前記キャッシュファイルメモリから前記プロセスメモリに前記キャッシュファイルを転送し、転送したキャッシュファイルを用いて該計算ノード上で起動するプロセスを実行する請求項3に記載の並列計算機システム。
  5. 前記処理手段は、前記ファイルを識別するためのファイル番号を要求するファイル番号要求を前記管理ノードに送信し、
    前記管理手段は、前記ファイル番号要求に基づき、該ファイル番号要求に対応するファイル番号を前記計算ノードに送信し、
    前記処理手段は、前記ファイル番号を前記ファイルアクセス要求として前記管理ノードに送信する請求項3または4に記載の並列計算機システム。
  6. 前記計算ノードは、前記ファイル番号と、該ファイル番号によって識別されるファイルのキャッシュファイルの物理アドレスと、該物理アドレスの変換先の仮想アドレスとのマッピングを格納するページテーブルを更に備え、
    前記処理手段は、前記ページテーブルに基づき、前記仮想アドレスによって指定されたキャッシュファイルであって、前記プロセスメモリに対応する仮想メモリのアドレス空間にマップされたキャッシュファイルを用いて、該計算ノード上で起動するプロセスを実行する請求項5に記載の並列計算機システム。
  7. 前記管理ノードは、前記計算ノード管理手段がキャッシュしたキャッシュファイルを管理するための管理情報を格納する記憶手段を更に備え、
    前記管理手段は、前記ファイル番号によって指定されたファイルがキャッシュ済みか否か判定し、前記ファイル番号によって指定されたファイルがキャッシュ済みである場合、前記ファイルのキャッシュファイルに対応する前記管理情報に含まれる参照カウントであって、該キャッシュファイルがこれまでに参照された回数を示す参照カウントを増加させ、
    前記計算ノード管理手段は、前記処理手段が、該キャッシュファイルにアクセスできるように前記ファイルアクセス要求を送信した計算ノードの計算情報とページテーブルとを更新する請求項5または6に記載の並列計算機システム。
  8. 前記計算ノード管理手段は、前記管理情報を参照し、前記参照カウントが0であるキャッシュファイルがあるか否か判定し、前記参照カウントが0であるキャッシュファイルがある場合、前記参照カウントが0であるキャッシュファイルが読み込み専用であるか否か判定し、前記参照カウントが0であるキャッシュファイルが読み込み専用である場合、前記参照カウントが0であるキャッシュファイルを格納するキャッシュファイルメモリを破棄する請求項7に記載の並列計算機システム。
  9. 前記処理手段は、前記計算情報を参照し、前記ファイル番号によって指定されたファイルがキャッシュ済みか否か判定し、前記ファイル番号によって指定されたファイルがキャッシュ済みでない場合、前記管理ノードに前記ファイルアクセス要求を送信し、
    前記ファイル番号によって指定されたファイルがキャッシュ済みの場合、前記ファイル番号によって指定された全てのファイルがキャッシュ済みか否か判定し、一部のファイルはキャッシュ済みだが、ファイル番号によって指定された全てのファイルはキャッシュ済みでない場合、キャッシュ済みでないファイルに対するファイルアクセス要求を前記管理ノードに送信する請求項5から8のいずれか1項に記載の並列計算機システム。
  10. 管理ノードと、前記管理ノードによって制御される1以上の計算ノードとを含む並列計算機システムの管理方法であって、
    前記管理ノードは、前記計算ノードにファイルをキャッシュし、
    前記計算ノードは、キャッシュされたキャッシュファイルを格納し、前記キャッシュファイルを用いて、該計算ノード上で起動するプロセスを実行する管理方法。
JP2016184231A 2016-09-21 2016-09-21 並列計算機システムおよび管理方法 Active JP6798211B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016184231A JP6798211B2 (ja) 2016-09-21 2016-09-21 並列計算機システムおよび管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016184231A JP6798211B2 (ja) 2016-09-21 2016-09-21 並列計算機システムおよび管理方法

Publications (2)

Publication Number Publication Date
JP2018049444A true JP2018049444A (ja) 2018-03-29
JP6798211B2 JP6798211B2 (ja) 2020-12-09

Family

ID=61767622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016184231A Active JP6798211B2 (ja) 2016-09-21 2016-09-21 並列計算機システムおよび管理方法

Country Status (1)

Country Link
JP (1) JP6798211B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011078162A1 (ja) * 2009-12-24 2011-06-30 日本電気株式会社 スケジューリング装置、スケジューリング方法及びプログラム
WO2014155553A1 (ja) * 2013-03-27 2014-10-02 富士通株式会社 分散処理のための情報処理方法、情報処理装置及びプログラム、並びに分散処理システム
JP2015094974A (ja) * 2013-11-08 2015-05-18 日本電気株式会社 情報処理装置、情報処理方法、プログラム、計算処理装置、計算処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011078162A1 (ja) * 2009-12-24 2011-06-30 日本電気株式会社 スケジューリング装置、スケジューリング方法及びプログラム
WO2014155553A1 (ja) * 2013-03-27 2014-10-02 富士通株式会社 分散処理のための情報処理方法、情報処理装置及びプログラム、並びに分散処理システム
JP2015094974A (ja) * 2013-11-08 2015-05-18 日本電気株式会社 情報処理装置、情報処理方法、プログラム、計算処理装置、計算処理方法

Also Published As

Publication number Publication date
JP6798211B2 (ja) 2020-12-09

Similar Documents

Publication Publication Date Title
JP4405533B2 (ja) キャッシュ方法及びキャッシュ装置
JP5931196B2 (ja) I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法
JP5841255B2 (ja) 仮想化入力/出力のためのプロセッサローカルコヒーレンシを有するコンピュータシステム
CN109299190B (zh) 分布式存储系统中处理对象的元数据的方法及装置
WO2014038070A1 (ja) 情報処理装置,並列計算機システム及び情報処理装置の制御方法
KR20120068454A (ko) 원격 페이지 폴트 처리 장치 및 그 방법
JP2013501272A (ja) キャッシング記憶制御装置間でストレージコマンドのキャッシュアウェア・マルチパス分散を用いたデータ処理システム
KR102372424B1 (ko) 원격 직접 메모리 접근을 통한 분산 처리 장치 및 그 방법
JP7378403B2 (ja) データ処理方法、装置、およびコンピューティングデバイス
CN110119304B (zh) 一种中断处理方法、装置及服务器
WO2015162469A1 (en) Unified caching of storage blocks and memory pages in a compute-node cluster
JPWO2015118865A1 (ja) 情報処理装置、情報処理システム及びデータアクセス方法
US11093161B1 (en) Storage system with module affinity link selection for synchronous replication of logical storage volumes
US11151048B2 (en) Host-based read performance optimization of a content addressable storage system
US11256628B2 (en) Volatile read cache in a content addressable storage system
JP6189266B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
JP6798211B2 (ja) 並列計算機システムおよび管理方法
JPWO2008149657A1 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
WO2019149031A1 (zh) 应用于节点系统的数据处理方法及装置
WO2016065613A1 (zh) 访问文件的方法、分布式存储系统和网络设备
EP2782002A2 (en) Control device, storage system, and control program
US20140359062A1 (en) Data transferring apparatus, data transferring system and non-transitory computer readable medium
US9501290B1 (en) Techniques for generating unique identifiers
CN117331858B (zh) 存储装置及数据处理系统
JP6958928B2 (ja) ストレージ装置、ストレージ管理方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201006

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: 20201020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201102

R150 Certificate of patent or registration of utility model

Ref document number: 6798211

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150