JP6503945B2 - 情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法 - Google Patents

情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法 Download PDF

Info

Publication number
JP6503945B2
JP6503945B2 JP2015139433A JP2015139433A JP6503945B2 JP 6503945 B2 JP6503945 B2 JP 6503945B2 JP 2015139433 A JP2015139433 A JP 2015139433A JP 2015139433 A JP2015139433 A JP 2015139433A JP 6503945 B2 JP6503945 B2 JP 6503945B2
Authority
JP
Japan
Prior art keywords
information processing
data
processing apparatus
node
file server
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
Application number
JP2015139433A
Other languages
English (en)
Other versions
JP2017021618A (ja
Inventor
光一郎 原田
光一郎 原田
剛 橋本
剛 橋本
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015139433A priority Critical patent/JP6503945B2/ja
Priority to US15/191,682 priority patent/US10367886B2/en
Priority to EP16177650.5A priority patent/EP3118742A1/en
Publication of JP2017021618A publication Critical patent/JP2017021618A/ja
Application granted granted Critical
Publication of JP6503945B2 publication Critical patent/JP6503945B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法に関する。
近年、複数のコンピュータ(以下、「計算ノード」ともいう。)を高速ネットワークなどで接続してクラスタを構築した、HPC(High Performance Computing)システムの実現が図られている(例えば、特許文献1〜3参照)。このようなクラスタ型の並列計算機システムにて並列処理プログラムを実行する場合、並列プロセスを複数の計算ノードに分散して起動させる。並列プロセス間でデータ交換を行う場合、複数の計算ノード及びファイルサーバ間の通信の性能が、並列計算機システムに影響を及ぼす。
特開2009−238252号公報 特開2011−175573号公報 特開平6−75930号公報
ところで、近年、並列計算機システムが扱うデータ量は増加の一途を辿っており、それに伴ってデータを蓄えるためのファイルサーバの台数や容量が増加している。また、計算ノード数が増大し、複数の計算ノード及びファイルサーバ間の通信回数が増加している。
よって、複数の計算ノードのそれぞれが個別にファイルサーバに対してデータの読み込みや書き込みを行うと、複数の計算ノード及びファイルサーバ間の通信回数の増大により、各計算ノードの処理の負荷の増大がボトルネックになり、複数の計算ノード及びファイルサーバ間におけるデータの転送処理が遅延する場合がある。
そこで、複数の計算ノードのうちの特定の計算ノードのみがファイルサーバと通信を行うことでファイルサーバとの間の通信回数を減らすことが考えられる。しかしながら、各計算ノード及びファイルサーバ間の転送データのデータ長にはバラツキがある。このため、データ量が大きいデータをファイルサーバへ転送する計算ノードから離れた計算ノードがファイルサーバと通信を行うと、並列計算機システムにおけるデータ転送の負荷が大きくなるという課題がある。
そこで、一側面では、本発明は、並列計算機システムにおけるデータ転送の負荷を軽減することを目的とする。
一つの案では、並列計算機システムにおいて並列計算処理を行う複数の情報処理装置のうちの一の情報処理装置であって、前記複数の情報処理装置のうち自情報処理装置以外の情報処理装置のそれぞれから取得した、ファイルサーバに次に読み込み又は書き込みを要求するデータのデータ長と、自情報処理装置が次に前記ファイルサーバに読み込み又は書き込みを要求するデータのデータ長と、前記複数の情報処理装置のそれぞれの位置情報とに基づき前記複数の情報処理装置の重心位置を算出する算出部と、算出した前記重心位置に応じて前記複数の情報処理装置のうちからデータ中継を行う情報処理装置を決定する決定部と、決定した前記データ中継を行う情報処理装置が自情報処理装置である場合、前記複数の情報処理装置のそれぞれが次に読み込み又は書き込みを要求するデータをまとめて前記ファイルサーバとの間で転送する転送部と、を有する情報処理装置が提供される。
一側面によれば、並列計算機システムにおけるデータ転送の負荷を軽減することができる。
一実施形態にかかる並列計算システムにおける個別I/O要求を示す図。 一実施形態にかかる並列計算システムにおける一括I/O要求を示す図。 一実施形態にかかる計算ノードの構成の一例を示す図。 一実施形態にかかるジョブプロセス実行処理の一例を示すフローチャート。 一実施形態にかかる並列read処理の一例を示すフローチャート。 一実施形態にかかる重心算出と配布処理の一例を示すフローチャート。 一実施形態にかかるオフセット最小値計算と配布処理の一例を示すフローチャート。 一実施形態にかかるファイルのデータ構造とAll reduce通信で共有するリストの一例を示す図。 一実施形態にかかるオフセットとデータ長の最大値計算と配布処理の一例を示すフローチャート。 一実施形態にかかる中継バッファ獲得処理の一例を示すフローチャート。 一実施形態にかかる一括read処理の一例を示すフローチャート。 一実施形態にかかる自ノードデータ受信処理の一例を示すフローチャート。 一実施形態にかかるread時の自ノードデータcopy処理の一例を示すフローチャート。 一実施形態にかかる並列write処理の一例を示すフローチャート。 一実施形態にかかる自ノードデータ送信処理の一例を示すフローチャート。 一実施形態にかかるwrite時の自ノードデータcopy処理の一例を示すフローチャート。 一実施形態にかかる一括write処理の一例を示すフローチャート。 一実施形態にかかる計算ノードのハードウェア構成の一例を示す図。
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
[並列計算システムの全体構成]
まず、本発明の一実施形態にかかる並列計算システム1の構成について、図1を参照しながら説明する。図1に示す本実施形態にかかる並列計算システム1は、計算ノード群10、I/O(Input/Output)ノード20及びファイルサーバ群30を有する。
本実施形態にかかる並列計算システム1は、複数の計算ノードを高速ネットワークなどで接続してクラスタを構築し、HPCシステムの実現を図る。計算ノード群10の計算ノード11〜19は、高速ネットワークの一例であるTofu(Torus fusion)ネットワークで接続され、クラスタを構築する。計算ノード群10は、クラスタを構築するコンピュータ(情報処理装置)群の一例である。計算ノード群10に含まれる計算ノードの数は、9台に限られず、例えば何万台の計算ノードが並列に接続されてもよい。
ジョブプロセススケジューラ9は、並列計算システム1に含まれる計算ノードのうちから選択した複数の計算ノードを計算ノード群10として配置する。ジョブプロセススケジューラ9は、計算ノード群10で所定のアプリケーションの並列計算処理プログラムを実行するために、並列プロセスを複数の計算ノード11〜19に分散して割当て(ジョブプロセスの割当て)、起動させる。計算ノード11〜19は、割り当てられたジョブプロセスの計算処理プログラムを実行する。これにより、計算ノード群10にて所定のアプリケーションの並列計算処理が行われる。
I/Oノード20は、Tofuネットワークで計算ノード群10に接続され、高速ネットワークの一例であるIB(InfiniBand)ネットワークでファイルサーバ群30に接続されている。本実施形態では、ファイルサーバ群30は、3台のファイルサーバ31〜33を有するが、ファイルサーバ−の台数はこれに限らない。ファイルサーバ群30には、計算ノード11〜19等が使用するデータが格納されたファイルが保存されている。
I/Oノード20は、計算ノード11〜19から、ファイルサーバ31〜33に読み込み(read)又は書き込み(Write)を要求するI/O要求を受け付ける。I/Oノード20は、ファイルサーバ31〜33のうち要求されたデータを保存している又は要求されたデータを保存するファイルサーバにアクセスする。I/Oノード20は、ファイルサーバ31〜33に対する所定のデータの書き込みや読み込み、ファイルサーバ31〜33及び計算ノード11〜19間のデータ転送を行う。
ここで、計算ノード11〜19のI/O要求では、小さいデータの読み書きの要求が頻繁に発生する。よって、計算ノード11〜19のそれぞれが個別にデータの読み込みや書き込みを要求すると、計算ノード11〜19及びファイルサーバ間の通信回数が増える。これにより、計算ノード11〜19の負荷及びファイルサーバの負荷の増大がボトルネックになり、データの転送処理が遅延する場合がある。
また、計算ノード11〜19のそれぞれが個別に要求するデータの読み込み及び書き込みでは、小さいデータを一単位にデータの転送が行われるため、計算ノード11〜19及びファイルサーバ間にて小さなパケットで多数回通信することになる。データの通信時間は、(レイテンシ+データ長)/バンド幅の理論値で求められる。よって、レイテンシの寄与による遅延が、使用したパケット数に比例する。よって、小さなパケットで多数回通信すると、実効バンド幅が低下し、データの転送処理が遅延する場合がある。
また、ファイルサーバ側でのメモリ領域が細分化されやすくなり、I/O要求に対してファイルサーバに記憶可能なメモリ領域が低下し、データ転送処理が遅延する場合がある。
そこで、本実施形態に係る並列計算機システム1では、各計算ノードがI/O要求したときのファイルサーバへのアクセスを、一の計算ノードが中継してまとめて行い、データの読み込み及び書き込みを一括して行う。これにより、I/Oノード20及びファイルサーバの処理の負荷を軽減し、データ転送処理の遅延を回避する。
以下では、各計算ノードがI/O要求したときのファイルサーバへのアクセスを中継してまとめて行い、データの読み込み及び書き込みを一括して行う役割のノードを、「データ中継ノード」と呼ぶ。データ中継ノードが、各計算ノードのファイルサーバへのアクセス要求をまとめることで、ファイルサーバへの送受信回数を減らし、ファイルサーバの負荷を軽減することができる。
なお、データ中継ノードが、複数の計算ノード(自ノードを含む)から要求されるデータの読み込みや書き込みを一括して行う処理を、「一括I/O処理」ともいう。また、データ中継ノードが、複数の計算ノード(自ノードを含む)から要求されるデータを一括してファイルサーバから読み込む処理を、「一括read処理」ともいう。また、データ中継ノードが、複数の計算ノード(自ノードを含む)から要求されるデータを一括してファイルサーバへ書き込む処理を、「一括write処理」ともいう。
[データ中継ノード]
データ中継ノードは、計算ノード11〜19のうちのいずれかの計算ノードであり、11〜19から選択される。図2では、第5の計算ノード15がデータ中継ノードである。
データ中継ノードは、下記式(1)により算出される重心位置Gに基づき、計算ノード11〜19の位置とI/O要求(ファイルアクセス要求)の対象データのデータ長(データ量)とを考慮し、一括I/O処理が効率的に行える位置に配置される。
計算ノード11〜19がI/O要求を行うデータのデータ長のバラツキ及びデータ中継ノードとして機能する計算ノードの位置により、計算ノード11〜19からのデータの集約及び計算ノード11〜19へのデータの配布のコストが変動する。このため、データ集約及びデータ配布のコストの最小化が重要である。そこで、データ集約及びデータ配布時の負荷ができるだけ均一に近くなるように、計算ノード11〜19のうちからデータ中継ノードを決定することが好ましい。その際、データ中継ノードとして機能する計算ノードとその他の計算ノードとの通信による遅延(レイテンシ)を十分小さくしないと、レイテンシによって性能が低下する。以上から、本実施形態では、算出された重心位置Gに最も近い計算ノードを、データ中継ノードと決定する。
つまり、各計算ノードからI/O要求を受けたとき、要求対象データのデータ長及び各計算ノードの位置情報に基づき、データ中継ノードが選択される。下記式(1)では、計算ノードの位置情報の一例である座標ベクトル及びデータ長を「重み」と捉え、その「重み」から求められる「重心」の位置に近い計算ノードがデータ中継ノードとなる。
Figure 0006503945
式(1)では、n個の計算ノード1,2,....,nがI/O要求を行う対象データのデータ長をそれぞれd(1),...,d(n)とし、各計算ノードの座標ベクトルをX(1),X(2),....,X(n)とする。例えば、図2では、計算ノード11の座標ベクトルX(1)は座標(0、1)であり、計算ノード11が要求するデータのデータ長がd(1)に入力される。
重心位置Gの計算は、All reduce通信を利用し、計算ノード11〜19の全計算ノードで実行される。All reduce通信では、各計算ノードのデータ長dと各計算ノードの座標ベクトルXとの情報を全計算ノードで共有する。計算ノード11〜19のそれぞれは、全計算ノードのデータ長d及びデータ長Xの情報を受信するまで待機し、すべての情報を受信したとき、式(1)に基づき重心位置Gを計算する。式(1)に基づき算出された重心位置Gに最も近い位置の計算ノードがデータ中継ノードとなる。データ中継ノードが決定したら、重心位置Gの計算に用いた情報は破棄してもよい。また、重心位置Gの計算及びデータ中継ノードの決定は、各計算ノードからのI/O要求に対する一括I/O処理の度に行われる。
データ中継ノード及び他の計算ノード間のデータの集約及びデータの配布は、All reduce通信を利用し、データ中継ノードが行うことにより、レイテンシを最小化する。例えば、データ中継ノードは、All reduce通信を利用して全計算ノードが要求するデータ(図2では、データ1〜20)を集約し、以下のステップでデータの集約及びデータの配布を行う。
(ステップS1)
データ中継ノード(ここでは、計算ノード15)は、全計算ノード11〜19(自ノードを含む)からI/O要求対象データ及びそのデータのデータ長を有するI/O要求を集約する。
(ステップS2)
データ中継ノードは、集約したI/O要求をI/Oノード20に一括して送信する。I/Oノード20は、I/O要求対象のデータ1〜10、11〜20の読み込み又は書き込みを行うファイルサーバ31,32を特定し、データ1〜10のI/O要求及びデータ11〜20のI/O要求を一括して転送する。
(ステップS3)
ファイルサーバ31,32は、I/O要求に応じたデータの書き込みを行うか、I/O要求に応じたデータの読み込みを行う。例えば、ファイルサーバ31は、要求されたデータ1〜10をI/Oノード20に一括して転送し、ファイルサーバ32は、要求されたデータ11〜20をI/Oノード20に一括して転送する。I/Oノード20は、データ1〜20を一括してデータ中継ノードに転送する。一括して転送されたデータ1〜20はデータ中継ノードの中継バッファ107(図3参照)に格納される。
(ステップS4)
データ中継ノードは、他の計算ノードがそれぞれ要求したデータ長のデータを各計算ノードに配布し(RDMA(Remote Direct Memory Access)転送)、自ノードが要求したデータ長のデータをコピーする。
このとき、データの集約及びデータの配布の際、中継バッファ107内のアドレスと、ファイルサーバ31〜33内のファイルのオフセットを1対1に対応させることで、計算ノード間でRDMA転送するデータを最小限に抑えることができる。
[計算ノードの構成例]
図3には、計算ノード群10の一例として4台の計算ノード11〜14が示されている。計算ノード11〜14の構成は、データ中継ノードとして機能する計算ノードに中継バッファ107がある点を除き同一である。図2では、計算ノード12がデータ中継ノードである。この場合、計算ノード12は、ジョブプロセス100、専用ライブラリ101、MPIライブラリ104、ファイルシステム105及び中継バッファ107を有する。中継バッファ107は、ファイルサーバから一括して転送されたデータを一旦格納する。
ジョブプロセス100、専用ライブラリ101、MPIライブラリ104及びファイルシステム105は、データ中継ノードとして機能する計算ノードであるか否かにかかわらず、全計算ノードが有する。
図3の並列計算システム1の例では、並列処理プログラムを実行する場合、ジョブプロセス100を複数の計算ノード11〜14に分散して起動させる。ジョブプロセス100が、4台の計算ノード上に分散して起動された場合、並列処理プログラムで規定されている計算処理において、データ交換のためのプロセス間通信が行われる。プロセス間通信では、MPI(Message Passing Interface)と呼ばれる通信API(Application Program Interface)で記述された並列処理プログラムが実行される。プロセス間通信では、MPIライブラリ104の該当サブルーチンが呼び出されてAllreduce通信が行われる。これにより、計算ノード11〜14のすべてにおいてデータの集約及びデータの配布等が完了したかを管理することができる。MPIライブラリ104は、後述される並列read処理、並列write処理、並列計算処理が正しく進行できているかを管理する。Allreduce通信によるこのような並列処理の進行管理を「バリア同期」ともいう。
また、計算ノード11〜14からファイルサーバ31〜33へのI/O要求が生じると、これに応じて、計算ノード11〜14の専用ライブラリ101の該当サブルーチンが呼び出されて、重心位置Gの算出、データ中継ノードの決定が行われる。専用ライブラリ101のサブルーチンの機能(重心位置Gの算出機能及びデータ中継ノードの決定機能)は、算出部102、決定部103及び転送部106により実現される。
算出部102は、自計算ノードが次にファイルサーバに読み込み又は書き込みを要求するデータ長と、他計算ノードから取得した他計算ノードのそれぞれが読み込み又は書き込みを要求するデータ長と、全計算ノードの座標ベクトルとに基づき重心位置Gの位置を算出する。決定部103は、算出した重心位置Gに最も近い位置に配置された計算ノードをデータ中継ノードに決定する。
転送部106は、中継バッファ107とのデータ転送を行う。具体的には、転送部106は、自計算ノードがデータ中継ノードである場合、計算ノード11〜14のI/O要求に応じて各計算ノードが次に読み込み又は書き込みを要求するデータをまとめてファイルサーバ間で転送する。例えば、転送部106は、後述される図5のステップS35、S39及び図14のステップS51、S53を行う。
転送部106は、自計算ノードがデータ中継ノードでない場合、ファイルサーバから一括して転送されたデータを保存する中継バッファ107から自計算ノードのI/O要求に応じたデータをPDMA転送により取得する。自計算ノードがデータ中継ノードである場合、自計算ノードのI/O要求に応じたデータが中継バッファ107からコピーされる。
データ中継ノードに決定した計算ノードでは、専用ライブラリ101の該当サブルーチンが呼び出されて、データの読み込み及び書き込みが行われる。
データ中継ノードは、各計算ノードからデータの読み込みや書き込みを要求するI/O要求を集約し、全計算ノードからのI/O要求を集約したとき、I/Oノード20に一括I/O処理を行う。
ファイルシステム105は、OS上で動作し、ファイルの読み込み及び書き込みを制御する。ファイルシステム105は、一括read処理及び一括write処理を受けてそれらに応じた処理を実行する。
[ジョブプロセス実行処理例]
次に、本実施形態にかかるジョブプロセス実行処理について、図4を参照しながら説明する。図4は、一実施形態にかかるジョブプロセス実行処理の一例を示すフローチャートである。このジョブプロセス実行処理において、並列計算システム1によるファイルサーバ通信方法が実行される。
図4の処理が開始されると、計算ノード11〜14のそれぞれの専用ライブラリ101の該当サブルーチンが呼び出され、計算ノード11〜14のそれぞれの計算ノードが、以下のジョブプロセス実行処理を並列して実行する。まず、計算ノードは、ファイルハンドル(読み込み又は書き込みを要求するデータが格納されたファイル番号)を取得する(ステップS10)。次に、計算ノードは、並列read処理(図5参照)を実行する(ステップS11)。後述される並列read処理では、重心位置Gの計算、データ中継ノードの決定、データの一括read処理(一括読み込み処理)等が実行される。
次に、計算ノードは、並列read処理で取得したデータを使用して並列計算処理の一例である計算1の処理を実行する(ステップS12)。次に、計算ノードは、並列write処理(図14参照)を実行する(ステップS13)。
次に、計算ノードは、次のファイルハンドルを取得する(ステップS14)。次に、計算ノードは、並列read処理を実行する(ステップS15)。次に、計算ノードは、並列read処理で取得したデータを使用して計算Kの処理を実行する(ステップS16)。次に、計算ノードは、並列write処理を実行する(ステップS17)。
同様にして、計算ノードは、次のファイルハンドルを取得し(ステップS18)、並列read処理を実行し(ステップS19)、取得したデータを使用して計算Kの処理を実行し(ステップS20)、並列write処理を実行し(ステップS21)、本処理を終了する。
[並列read処理例]
次に、図4に示した本実施形態にかかる並列read処理の一例について、図5を参照しながら説明する。図5は、一実施形態にかかる並列read処理の一例を示すフローチャートである。なお、図5のステップS36〜S39は、データ中継ノードとして機能する計算ノードが実行し、ステップS34、S35は、データ中継ノードとして機能する計算ノード以外の計算ノード(他の計算ノード)が実行する。図5のその他のステップはすべての計算ノードが実行する。
また、全計算ノードが実行する重心位置Gの算出処理は各計算ノードの算出部の機能であり、全計算ノードが実行するデータ中継ノードの決定処理は各計算ノードの決定部の機能である。また、データ中継ノードとして機能する計算ノードが実行する一括read処理は、データ中継ノードとして機能する計算ノードの転送部の機能である。
図5の処理が呼び出されると、計算ノードは、図6に示す重心の算出と配布処理を実行する(ステップS30)。
(重心の算出と配布処理例)
図6に示す重心の算出と配布処理の一例では、計算ノードは、自計算ノードの座標ベクトルXに自ノードのデータ長dを乗算する(ステップS301)。次に、計算ノードは、乗算値(d×X)を入力し、重心位置Gを出力とするAll reduce通信を実行する(ステップS302)。
これにより、例えば、図2の計算ノード11,12,13、14のそれぞれは、自計算ノードのデータ長と座標ベクトルの乗算値(d×X)を送信し、全計算ノードの乗算値の加算値gを用いて式(1)に基づき、計算ノード群10の重心位置Gを算出し(ステップS303)、図5のステップS30に戻る。
(オフセット最小値計算と配布処理例)
図5に戻り、次に、計算ノードは、図7に示すオフセット最小値(最小オフセット)の計算と配布処理を実行する(ステップS31)。
図7に示す重心の算出と配布処理の一例では、計算ノードは、自計算ノードのオフセットを入力とし、最小オフセットを出力とするAllreduce通信を実行し(ステップS311)、図5のステップS31に戻る。
例えば、図8(a)に示すファイルハンドルNo.1のファイルには、データの先頭を「0」として示したオフセットとファイルに保存されているデータのデータ長とが示されている。例えば、図8(a)では、計算ノード11のジョブプロセス(プロセス1)は、オフセット「0」から1Mバイトのデータ長のデータの読み込みを要求しているとする。計算ノード12のジョブプロセス(プロセス2)は、オフセット「1Mバイト」から1Mバイトのデータ長のデータの読み込みを要求しているとする。計算ノード13のジョブプロセス(プロセス3)は、オフセット「2Mバイト」から1Mバイトのデータ長のデータの読み込みを要求しているとする。計算ノード14のジョブプロセス(プロセス4)は、オフセット「1M(バイト)」から1Mバイトのデータ長のデータの読み込みを要求しているとする。
この状態で、S311において、4台の計算ノード11〜14がオフセットを入力し、Allreduce通信を実行すると、計算ノード11〜14は、図8(b)に示すリスト50を共通情報として保有できる。リスト50には、プロセス51、ファイルハンドル52、オフセット53、データ長54の各情報が保存されている。これにより、ステップS311において最小オフセット「0」が全計算ノード11〜14に配布される。
(オフセットとデータ長の最大値計算と配布処理例)
図5に戻り、次に、計算ノードは、図9に示すオフセットとデータ長の最大値計算と配布処理を実行する(ステップS32)。
図9に示すオフセットとデータ長の最大値計算と配布処理の一例では、計算ノードは、自計算ノードのデータ長をd(0)に入力する(ステップS321)。次に、計算ノードは、自計算ノードのオフセットをd(1)に入力する(ステップS322)。次に、自計算ノードのデータ長d(0)及びオフセットd(1)を入力とし、オフセットとデータ長の最大値を出力とするAllreduce通信を実行し(ステップS323)、図5のステップS32に戻る。
例えば、図8(b)に示すリスト50の場合、ステップS323においてオフセットの最大値「3M(バイト)」とデータ長「1M(バイト)」とが全計算ノード11〜14に配布される。
図5に戻り、次に、計算ノードは、自計算ノードの座標ベクトルが重心位置Gに最も近いかを判定する(ステップS33)。計算ノードは、自計算ノードの座標ベクトルが重心位置Gに最も近い座標ベクトルではないと判定した場合、自計算ノードはデータ中継ノードではない(以下、「他の計算ノード」ともいう。)と判定する。この場合、他の計算ノードは、一括read処理が完了するまで待機する(ステップS34)。
計算ノードは、自計算ノードの座標ベクトルが重心位置Gに最も近い座標ベクトルであると判定した場合、自計算ノードはデータ中継ノードであると判定し、図10に示す中継バッファ獲得処理を実行する(ステップS36)。
(中継バッファ獲得処理例)
図10に示す一中継バッファ獲得処理の一例では、計算ノードは、(最大オフセット−最小オフセット)+最大データ長を算出し、バッファ長に代入する(ステップS361)。例えば、図8(b)のリスト50の場合、バッファ長は、4Mバイト(=(3M−0)+1M)となる。
次に、計算ノードは、求めたバッファ長のメモリを中継バッファ107として割り当てる(ステップS362)。これにより、並列read処理に必要なバッファ長のメモリ領域が割り当てられた中継バッファ107が獲得される。
計算ノードは、中継バッファ107に一括保存されたデータのうち、他の計算ノードが要求するデータのRDMA転送を可能にするために中継バッファ107をページ固定する(ステップS363)。次に、計算ノードは、中継バッファ107の先頭アドレスをすべての計算ノードに通知し(ステップS364)、図5のステップS36に戻る。これにより、他の計算ノードは、オフセットとデータ長とからデータ中継ノードのオペレーティングシステムを用いずに、各計算ノードが要求するデータのみを中継バッファ107からダイレクトに転送することができる。これにより、高スループット及び低レイテンシの通信を行うことができる。
(一括Read処理例)
図5に戻り、次に、計算ノードは、図11に示す一括Read処理を実行する(ステップS37)。図11に示す一括Read処理の一例では、計算ノードは、最小オフセットを読み出しオフセットに代入する(ステップS371)。次に、計算ノードは、バッファ長を読み出しデータ長に代入する(ステップS372)。次に、計算ノードは、ファイルハンドルにて指定されたファイルを、読み出しオフセット及び読み出しデータ長のデータをファイルサーバから読み込み(ステップS373)、図5のステップS37に戻る。これにより、例えば、図8(a)に示すファイルハンドルNo.1にて指定されたファイルのオフセット「0」から4Mバイトのデータを一括して読み込むことができる。
図5に戻り、次に、計算ノードは、一括Read処理完了の通知を送信する(ステップS38)。一括Read処理完了の通知を受けたデータ中継ノード以外の計算ノード(他の計算ノード)は、図12に示す自ノードデータ受信処理を実行する(ステップS35)。
(自ノードデータ受信処理)
図12に示す自ノードデータ受信処理の一例では、計算ノードは、「(自計算ノードのオフセット−最小オフセット)+中継バッファ107の先頭アドレス」の計算結果をRDMA開始位置とする(ステップS351)。次に、計算ノードは、RDMA開始位置から自計算ノードのデータ長分のデータをRDMA転送にて読み込み(ステップS352)、図5のステップS35に戻り、「2」に進む。
例えば、図8(b)に示すリスト50の場合、プロセス1を実行する他の計算ノードは、オフセット「0」に応じた中継バッファ107のアドレスから1MバイトのデータのみをRDMA転送する。プロセス3を実行する他の計算ノードは、オフセット「2M(バイト)」に応じた中継バッファ107のアドレスから1MバイトのデータのみをRDMA転送する。プロセス4を実行する他の計算ノードは、オフセット「3M(バイト)」に応じた中継バッファ107のアドレスから1MバイトのデータのみをRDMA転送する。
一方、データ中継ノードの計算ノードは、一括Read処理完了の通知を送信後(ステップS38)、図13に示すread時の自ノードデータcopy処理を実行する(ステップS39)。
(read時の自ノードデータcopy処理)
図13に示すread時の自ノードデータcopy処理の一例では、計算ノードは、「(自ノードのオフセット−最小オフセット)+中継バッファ107の先頭アドレス」の計算結果をcopy開始位置とする(ステップS391)。次に、計算ノードは、copy開始位置から自ノードデータ長分のデータをコピーし(ステップS392)、図5のステップS39に戻り、「2」に進む。
図5に戻り、計算ノードは、受信完了時のバリア同期を行う(ステップS40)。次に、計算ノードは、中継バッファ107のメモリ残量が予め定められた閾値よりも小さいかを判定する(ステップS41)。
計算ノードは、中継バッファ107のメモリ残量が閾値よりも小さいと判定した場合、中継バッファ107をすべて開放し(ステップS42)、本処理を終了する。他方、計算ノードは、中継バッファ107のメモリ残量が閾値以上であると判定した場合、そのまま本処理を終了する。
[並列write処理例]
次に、図4に示した本実施形態にかかる並列write処理の一例について、図14を参照しながら説明する。図14は、一実施形態にかかる並列write処理の一例を示すフローチャートである。なお、図14のステップS36、S52〜S55は、データ中継ノードとして機能する計算ノードが実行し、ステップS50、S51は、データ中継ノードとして機能する計算ノード以外の計算ノード(他の計算ノード)が実行する。図14のその他のステップはすべての計算ノードが実行する。
また、全計算ノードが実行する重心位置Gの算出処理は各計算ノードの算出部の機能であり、全計算ノードが実行するデータ中継ノードの決定処理は各計算ノードの決定部の機能である。また、データ中継ノードとして機能する計算ノードが実行する一括write処理は、データ中継ノードとして機能する計算ノードの転送部の機能である。
図14の処理が呼び出されると、計算ノードは、図6に示す重心の算出と配布処理を実行する(ステップS30)。図6の重心の算出と配布処理については、並列read処理において説明したため、ここでは説明を省略する。
次に、計算ノードは、図7に示すオフセット最小値計算と配布処理を実行する(ステップS31)。図7のオフセット最小値計算と配布処理については、並列read処理において説明したため、ここでは説明を省略する。
次に、計算ノードは、図9に示すオフセットとデータ長の最大値計算と配布処理を実行する(ステップS32)。図9のオフセットとデータ長の最大値計算と配布処理については、並列read処理において説明したため、ここでは説明を省略する。
次に、計算ノードは、自計算ノードの座標ベクトルが重心位置Gに最も近いかを判定する(ステップS33)。計算ノードは、自計算ノードの座標ベクトルが重心位置Gに最も近い座標ベクトルではないと判定した場合、自計算ノードはデータ中継ノード以外の他の計算ノードであると判定し、中継バッファ107の獲得処理完了の通知を受信するまで待機する(ステップS50)。
計算ノードは、自計算ノードの座標ベクトルが重心位置Gに最も近い座標ベクトルであると判定した場合、自計算ノードはデータ中継ノードであると判定し、図10に示す中継バッファ獲得処理を実行する(ステップS36)。図10の中継Iバッファ獲得処理については、並列read処理において説明したため、ここでは説明を省略する。
次に、計算ノードは、中継バッファ獲得処理完了の通知を送信する(ステップS52)。中継バッファ獲得処理完了の通知を受けたデータ中継ノード以外の計算ノード(他の計算ノード)は、図15に示す自ノードデータ送信処理を実行する(ステップS51)。
(自ノードデータ送信処理)
図15に示す自ノードデータ送信処理の一例では、計算ノードは、「(自ノードのオフセット−最小オフセット)+中継バッファ107の先頭アドレス」の計算結果をRDMA開始位置とする(ステップS501)。次に、計算ノードは、RDMA開始位置から自ノードデータ長分のデータをRDMA転送にて書き込み(ステップS502)、図14のステップS51に戻り、「3」に進む。
一方データ中継ノードの計算ノードは、中継バッファ獲得処理完了の通知を送信後(ステップS52)、図16に示すwrite時の自ノードデータcopy処理を実行する(ステップS53)。
(write時の自ノードデータcopy処理)
図16に示すwrite時の自ノードデータcopy処理の一例では、計算ノードは、「(自ノードのオフセット−最小オフセット)+中継バッファ107の先頭アドレス」の計算結果をcopy開始位置とする(ステップS511)。次に、計算ノードは、copy開始位置から自ノードデータ長分のデータをコピーし(ステップS512)、図14のステップS53に戻り、「3」に進む。
図14の「3」に続き、計算ノードは、全計算ノードが自ノードデータの中継バッファ107へのデータ格納を完了するまで待つ(ステップS54)。
(一括Write処理例)
次に、全計算ノードが自ノードデータの中継バッファ107へのデータ格納を完了した場合、計算ノードは、図17に示す一括Write処理を実行する(ステップS55)。図17に示す一括Write処理の一例では、計算ノードは、最小オフセットを書き込みオフセットに代入する(ステップS531)。次に、計算ノードは、バッファ長を書き込みデータ長に代入する(ステップS532)。次に、計算ノードは、ファイルハンドルにて指定されたファイルに、書き込みオフセット及び書き込みデータ長で書き込み(ステップS533)、図14のステップS55に戻る。これにより、例えば、全計算ノードから要求されたデータが一括してファイルに書き込まれる。
次に、計算ノードは、中継バッファ107のメモリ残量が予め定められた閾値よりも小さいかを判定する(ステップS41)。計算ノードは、中継バッファ107のメモリ残量が閾値よりも小さいと判定した場合、中継バッファ107をすべて開放し(ステップS42)、本処理を終了する。他方、計算ノードは、中継バッファ107のメモリ残量が閾値以上であると判定した場合、そのまま本処理を終了する。
以上に説明したように、一実施形態にかかる並列計算システム1によれば、各計算ノードが実行するジョブプロセスからの入出力を、データ中継ノードに分担させる。これにより、ファイルサーバの負荷を減らすとともに、必要としている計算ノードへのデータの配布を効率化することができる。また、複数の計算ノード及びファイルサーバ間での小さなパケットによる多数回の通信を回避できる。さらに、ファイルサーバ側でのメモリ領域の細分化されにくくなり、I/O要求に対してファイルサーバに記憶可能なメモリ領域の低下を回避できる。これにより、並列計算機システム1におけるデータ転送の負荷を軽減できる。
(ハードウェア構成例)
最後に、本実施形態にかかる計算ノードのハードウェア構成について、図18を参照して説明する。図18は、本実施形態にかかる計算ノードのハードウェア構成の一例を示す。計算ノードは、入力装置101、表示装置102、外部I/F103、RAM(Random Access Memory)104、ROM(Read Only Memory)105、CPU(Central Processing Unit)106、通信I/F107、及びHDD(Hard Disk Drive)108などを備え、それぞれがバスBで相互に接続されている。
入力装置101は、計算ノードに各操作信号を入力するために用いられる。表示装置102は、ディスプレイなどを含み、各種のデータを表示する。通信I/F107は、計算ノードをTofuネットワーク3等の高速ネットワークに接続するインタフェースである。これにより、計算ノードは、Tofuネットワーク3を介して他の計算ノードと連携して並列計算処理を行うことができる。
HDD108は、プログラムやデータを格納している不揮発性の記憶装置である。HDD108には、並列処理プログラム、重心位置Gを算出するプログラム、データ中継ノードを決定するプログラム等が記録されてもよい。
外部I/F103は、外部装置とのインタフェースである。これにより、計算ノードは、外部装置に読み取りや書き込みを行うことができる。ROM105は、電源を切っても内部データを保持することができ、基本プログラム等を保持する不揮発性の半導体メモリである。RAM104は、プログラムやデータを一時保持する揮発性のメモリである。CPU106は、HDD108やROM105等から、プログラムやデータをRAM104上に読み出し、オペレーションシステムを用いて所定の処理を実行する。これにより、並列計算処理、一括read、一括write処理等の計算ノードに搭載した機能を実現する。
以上、情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法を上記実施形態により説明したが、本発明にかかる情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法は上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、上記実施形態及び変形例が複数存在する場合、矛盾しない範囲で組み合わせることができる。
例えば、上記実施形態では、式(1)の重心位置Gを算出する際、I/O要求対象データのデータ長とともに各計算ノードの座標ベクトルをAllreduce通信により全計算ノードに配布した。しかしながら、各計算ノードは、予めすべての計算ノードの座標ベクトルの情報を記録してもよい。この場合、式(1)の重心位置Gを算出する際、各計算ノードは、I/O要求対象データのデータ長のみをAllreduce通信により配布すればよく、自計算ノードの座標ベクトルは配布しなくてもよい。
以上の説明に関し、更に以下の項を開示する。
(付記1)
並列計算機システムにおいて並列計算処理を行う複数の情報処理装置のうちの一の情報処理装置であって、
前記複数の情報処理装置のうち自情報処理装置以外の情報処理装置のそれぞれから取得した、ファイルサーバに次に読み込み又は書き込みを要求するデータのデータ長と、自情報処理装置が次に前記ファイルサーバに読み込み又は書き込みを要求するデータのデータ長と、前記複数の情報処理装置のそれぞれの位置情報とに基づき前記複数の情報処理装置の重心位置を算出する算出部と、
算出した前記重心位置に応じて前記複数の情報処理装置のうちからデータ中継を行う情報処理装置を決定する決定部と、
決定した前記データ中継を行う情報処理装置が自情報処理装置である場合、前記複数の情報処理装置のそれぞれが次に読み込み又は書き込みを要求するデータをまとめて前記ファイルサーバとの間で転送する転送部と、
を有する情報処理装置。
(付記2)
前記転送部は、
決定した前記データ中継を行う情報処理装置が自情報処理装置でない場合、前記データ中継を行う情報処理装置から自情報処理装置が次に読み込み又は書き込みを要求したデータを取得する、
付記1に記載の情報処理装置。
(付記3)
複数の情報処理装置により並列計算処理を行う並列計算機システムであって、
前記複数の情報処理装置の各情報処理装置は、
前記複数の情報処理装置のうち自情報処理装置以外の情報処理装置のそれぞれから取得した、ファイルサーバに次に読み込み又は書き込みを要求するデータのデータ長と、自情報処理装置が次に前記ファイルサーバに読み込み又は書き込みを要求するデータのデータ長と、前記複数の情報処理装置のそれぞれの位置情報とに基づき前記複数の情報処理装置の重心位置を算出する算出部と、
算出した前記重心位置に応じて前記複数の情報処理装置のうちからデータ中継を行う情報処理装置を決定する決定部と、
決定した前記データ中継を行う情報処理装置が自情報処理装置である場合、前記複数の情報処理装置のそれぞれが次に読み込み又は書き込みを要求するデータをまとめて前記ファイルサーバとの間で転送する転送部と、を有する、
並列計算機システム。
(付記4)
決定した前記データ中継を行う情報処理装置が自情報処理装置でない場合、前記データ中継を行う情報処理装置から自情報処理装置が次に読み込み又は書き込みを要求したデータを取得する、
付記3に記載の並列計算機システム。
(付記5)
複数の情報処理装置により並列計算処理を行う並列計算機システムにおいてファイルサーバとの通信処理をコンピュータに実行させるファイルサーバ通信プログラムであって、
前記複数の情報処理装置のうち自情報処理装置以外の情報処理装置のそれぞれから取得した、ファイルサーバに次に読み込み又は書き込みを要求するデータのデータ長と、自情報処理装置が次に前記ファイルサーバに読み込み又は書き込みを要求するデータのデータ長と、前記複数の情報処理装置のそれぞれの位置情報とに基づき前記複数の情報処理装置の重心位置を算出し、
算出した前記重心位置に応じて前記複数の情報処理装置のうちからデータ中継を行う情報処理装置を決定し、
決定した前記データ中継を行う情報処理装置が自情報処理装置である場合、前記複数の情報処理装置のそれぞれが次に読み込み又は書き込みを要求するデータをまとめて前記ファイルサーバとの間で転送する、
ファイルサーバ通信プログラム。
(付記6)
決定した前記データ中継を行う情報処理装置が自情報処理装置でない場合、前記データ中継を行う情報処理装置から自情報処理装置が次に読み込み又は書き込みを要求したデータを取得する、
付記5に記載のファイルサーバ通信プログラム。
(付記7)
複数の情報処理装置により並列計算処理を行う並列計算機システムにおいてファイルサーバとの通信処理をコンピュータが実行するファイルサーバ通信方法であって、
前記複数の情報処理装置のうち自情報処理装置以外の情報処理装置のそれぞれから取得した、ファイルサーバに次に読み込み又は書き込みを要求するデータのデータ長と、自情報処理装置が次に前記ファイルサーバに読み込み又は書き込みを要求するデータのデータ長と、前記複数の情報処理装置のそれぞれの位置情報とに基づき前記複数の情報処理装置の重心位置を算出し、
算出した前記重心位置に応じて前記複数の情報処理装置のうちからデータ中継を行う情報処理装置を決定し、
決定した前記データ中継を行う情報処理装置が自情報処理装置である場合、前記複数の情報処理装置のそれぞれが次に読み込み又は書き込みを要求するデータをまとめて前記ファイルサーバとの間で転送する、
ファイルサーバ通信方法。
(付記8)
決定した前記データ中継を行う情報処理装置が自情報処理装置でない場合、前記データ中継を行う情報処理装置から自情報処理装置が次に読み込み又は書き込みを要求したデータを取得する、
付記7に記載のファイルサーバ通信方法。
1:並列計算システム
2:Tofuネットワーク
3:IBネットワーク
10:計算ノード群
11〜19:計算ノード
20:I/Oノード
30:ファイルサーバ群
31〜33:ファイルサーバ
100:ジョブプロセス

101:専用ライブラリ
102:算出部
103:決定部
104:MPIライブラリ
105:ファイルシステム
106:転送部
107:中継バッファ

Claims (5)

  1. 並列計算機システムにおいて並列計算処理を行う複数の情報処理装置のうちの一の情報処理装置であって、
    前記複数の情報処理装置のうち自情報処理装置以外の情報処理装置のそれぞれから取得した、ファイルサーバに次に読み込み又は書き込みを要求するデータのデータ長と、自情報処理装置が次に前記ファイルサーバに読み込み又は書き込みを要求するデータのデータ長と、前記複数の情報処理装置のそれぞれの位置情報とに基づき前記複数の情報処理装置の重心位置を算出する算出部と、
    算出した前記重心位置に応じて前記複数の情報処理装置のうちからデータ中継を行う情報処理装置を決定する決定部と、
    決定した前記データ中継を行う情報処理装置が自情報処理装置である場合、前記複数の情報処理装置のそれぞれが次に読み込み又は書き込みを要求するデータをまとめて前記ファイルサーバとの間で転送する転送部と、
    を有する情報処理装置。
  2. 前記転送部は、
    決定した前記データ中継を行う情報処理装置が自情報処理装置でない場合、前記データ中継を行う情報処理装置から自情報処理装置が次に読み込み又は書き込みを要求したデータを取得する、
    請求項1に記載の情報処理装置。
  3. 複数の情報処理装置により並列計算処理を行う並列計算機システムであって、
    前記複数の情報処理装置の各情報処理装置は、
    前記複数の情報処理装置のうち自情報処理装置以外の情報処理装置のそれぞれから取得した、ファイルサーバに次に読み込み又は書き込みを要求するデータのデータ長と、自情報処理装置が次に前記ファイルサーバに読み込み又は書き込みを要求するデータのデータ長と、前記複数の情報処理装置のそれぞれの位置情報とに基づき前記複数の情報処理装置の重心位置を算出する算出部と、
    算出した前記重心位置に応じて前記複数の情報処理装置のうちからデータ中継を行う情報処理装置を決定する決定部と、
    決定した前記データ中継を行う情報処理装置が自情報処理装置である場合、前記複数の情報処理装置のそれぞれが次に読み込み又は書き込みを要求するデータをまとめて前記ファイルサーバとの間で転送する転送部と、を有する、
    並列計算機システム。
  4. 複数の情報処理装置により並列計算処理を行う並列計算機システムにおいてファイルサーバとの通信処理をコンピュータに実行させるファイルサーバ通信プログラムであって、
    前記複数の情報処理装置のうち自情報処理装置以外の情報処理装置のそれぞれから取得した、ファイルサーバに次に読み込み又は書き込みを要求するデータのデータ長と、自情報処理装置が次に前記ファイルサーバに読み込み又は書き込みを要求するデータのデータ長と、前記複数の情報処理装置のそれぞれの位置情報とに基づき前記複数の情報処理装置の重心位置を算出し、
    算出した前記重心位置に応じて前記複数の情報処理装置のうちからデータ中継を行う情報処理装置を決定し、
    決定した前記データ中継を行う情報処理装置が自情報処理装置である場合、前記複数の情報処理装置のそれぞれが次に読み込み又は書き込みを要求するデータをまとめて前記ファイルサーバとの間で転送する、
    ファイルサーバ通信プログラム。
  5. 複数の情報処理装置により並列計算処理を行う並列計算機システムにおいてファイルサーバとの通信処理をコンピュータが実行するファイルサーバ通信方法であって、
    前記複数の情報処理装置のうち自情報処理装置以外の情報処理装置のそれぞれから取得した、ファイルサーバに次に読み込み又は書き込みを要求するデータのデータ長と、自情報処理装置が次に前記ファイルサーバに読み込み又は書き込みを要求するデータのデータ長と、前記複数の情報処理装置のそれぞれの位置情報とに基づき前記複数の情報処理装置の重心位置を算出し、
    算出した前記重心位置に応じて前記複数の情報処理装置のうちからデータ中継を行う情報処理装置を決定し、
    決定した前記データ中継を行う情報処理装置が自情報処理装置である場合、前記複数の情報処理装置のそれぞれが次に読み込み又は書き込みを要求するデータをまとめて前記ファイルサーバとの間で転送する、
    ファイルサーバ通信方法。
JP2015139433A 2015-07-13 2015-07-13 情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法 Active JP6503945B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015139433A JP6503945B2 (ja) 2015-07-13 2015-07-13 情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法
US15/191,682 US10367886B2 (en) 2015-07-13 2016-06-24 Information processing apparatus, parallel computer system, and file server communication program
EP16177650.5A EP3118742A1 (en) 2015-07-13 2016-07-01 Information processing apparatus, parallel computer system, file server communication program, and file server communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015139433A JP6503945B2 (ja) 2015-07-13 2015-07-13 情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法

Publications (2)

Publication Number Publication Date
JP2017021618A JP2017021618A (ja) 2017-01-26
JP6503945B2 true JP6503945B2 (ja) 2019-04-24

Family

ID=56363742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015139433A Active JP6503945B2 (ja) 2015-07-13 2015-07-13 情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法

Country Status (3)

Country Link
US (1) US10367886B2 (ja)
EP (1) EP3118742A1 (ja)
JP (1) JP6503945B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110139338A (zh) * 2018-02-08 2019-08-16 索尼公司 电子装置、无线通信方法以及计算机可读介质
JP7010129B2 (ja) 2018-04-19 2022-01-26 富士通株式会社 プロセッサ及び情報処理装置
JP7490394B2 (ja) 2020-03-06 2024-05-27 株式会社日立製作所 情報共有支援方法、及び情報共有支援システム

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675930A (ja) 1992-08-27 1994-03-18 Toshiba Corp 並列プロセッサシステム
JP3569341B2 (ja) * 1995-03-31 2004-09-22 富士通株式会社 並列型計算機システム
JP3545906B2 (ja) * 1997-05-29 2004-07-21 富士通株式会社 ファイルシステム制御方法,パラレルファイルシステムおよびプログラム記憶媒体
US6269376B1 (en) * 1998-10-26 2001-07-31 International Business Machines Corporation Method and system for clustering data in parallel in a distributed-memory multiprocessor system
US6961728B2 (en) 2000-11-28 2005-11-01 Centerboard, Inc. System and methods for highly distributed wide-area data management of a network of data sources through a database interface
US7827386B2 (en) 2003-06-30 2010-11-02 Intel Corporation Controlling memory access devices in a data driven architecture mesh array
US7721009B2 (en) * 2006-11-22 2010-05-18 International Business Machines Corporation Method for providing high performance scalable file I/O through persistent file domain and functional partitioning
US9536322B1 (en) * 2007-05-15 2017-01-03 Peter Harmon Smith Implementation of multi-camera tracking applications using rich color transition curve target sequences
US8090790B2 (en) * 2007-05-30 2012-01-03 Broadcom Corporation Method and system for splicing remote direct memory access (RDMA) transactions in an RDMA-aware system
KR101341527B1 (ko) 2009-07-02 2014-01-06 엘지전자 주식회사 패킷 데이터 통신 시스템 내에서 단말의 핸드오프를 가능하게 하는 방법
JP5434558B2 (ja) * 2009-12-17 2014-03-05 日本電気株式会社 ノード、非同期メッセージ中継方法、及び、プログラム
JP5577745B2 (ja) 2010-02-25 2014-08-27 日本電気株式会社 クラスタシステム、プロセス配置方法、及びプログラム
JP5564661B2 (ja) 2010-03-25 2014-07-30 富士通株式会社 中継ノード及び中継処理プログラム
JP2012009996A (ja) 2010-06-23 2012-01-12 National Institute Of Information & Communication Technology 情報処理システム、中継装置、および情報処理方法
US20140040349A1 (en) * 2011-09-14 2014-02-06 Hitachi, Ltd. Server computer, server computer system, and server computer control method
US9026560B2 (en) * 2011-09-16 2015-05-05 Cisco Technology, Inc. Data center capability summarization
US9461876B2 (en) * 2012-08-29 2016-10-04 Loci System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction
JP5817052B2 (ja) * 2013-02-06 2015-11-18 シンラ テクノロジーズ インコーポレーテッドShinra Technologies, Inc. 情報処理装置、制御方法、プログラム、及び記録媒体
US10051274B2 (en) * 2013-10-25 2018-08-14 Canon Kabushiki Kaisha Image processing apparatus, method of calculating information according to motion of frame, and storage medium
JP6197597B2 (ja) 2013-11-15 2017-09-20 富士通株式会社 情報処理システム、情報処理装置の制御プログラム及び情報処理システムの制御方法
JP5997414B1 (ja) * 2013-11-19 2016-09-28 株式会社ワコム インクデータの生成、インクデータのレンダリング、インクデータの操作、及び、インクデータの伝達のための方法及びシステム
WO2015099730A1 (en) * 2013-12-26 2015-07-02 Intel Corporation Sharing memory and i/o services between nodes
US9875214B2 (en) * 2015-07-31 2018-01-23 Arm Limited Apparatus and method for transferring a plurality of data structures between memory and a plurality of vector registers

Also Published As

Publication number Publication date
EP3118742A1 (en) 2017-01-18
US10367886B2 (en) 2019-07-30
US20170019476A1 (en) 2017-01-19
JP2017021618A (ja) 2017-01-26

Similar Documents

Publication Publication Date Title
US11768709B2 (en) System and method for offloading computation to storage nodes in distributed system
US10223326B2 (en) Direct access persistent memory shared storage
US9652414B1 (en) Balancing response times for synchronous I/O requests having different priorities
EP0790562B1 (en) Computer system data I/O by reference among CPUs and I/O devices
US9535873B2 (en) System, computer-implemented method and computer program product for direct communication between hardward accelerators in a computer cluster
US20070024898A1 (en) System and method for executing job step, and computer product
US5852719A (en) System for transferring data over a network in which a data source sends only a descriptor which a data sink uses to retrieve data
JPWO2008117470A1 (ja) 仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法
EP0790564A2 (en) Computer system data I/O by reference among I/O devices and multiple memory units
JP6503945B2 (ja) 情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法
US9792209B2 (en) Method and apparatus for cache memory data processing
US11994944B2 (en) Efficient networking for a distributed storage system
EP0789305A2 (en) Computer system data I/O by reference among multiple data sources and sinks
JP5893028B2 (ja) キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法
JP6668993B2 (ja) 並列処理装置及びノード間通信方法
US5931903A (en) Computer system data I/O by reference among multiple CPUS
US11880724B2 (en) Information processing apparatus for controlling data transferring and method of processing information for controlling data transferring
US11509562B1 (en) System and method for a system level data sharding analysis of information handling systems
US20230205448A1 (en) System and method for a local level data sharding analysis of information handling systems
US20240202033A1 (en) Accelerator control system, accelerator control method and accelerator control program
JP2013069063A (ja) 通信ユニット及び情報処理方法
US10268529B2 (en) Parallel processing apparatus and inter-node communication method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180413

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190311

R150 Certificate of patent or registration of utility model

Ref document number: 6503945

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150