JP5900088B2 - 並列計算機、並列計算機の制御方法及び制御プログラム - Google Patents

並列計算機、並列計算機の制御方法及び制御プログラム Download PDF

Info

Publication number
JP5900088B2
JP5900088B2 JP2012071235A JP2012071235A JP5900088B2 JP 5900088 B2 JP5900088 B2 JP 5900088B2 JP 2012071235 A JP2012071235 A JP 2012071235A JP 2012071235 A JP2012071235 A JP 2012071235A JP 5900088 B2 JP5900088 B2 JP 5900088B2
Authority
JP
Japan
Prior art keywords
data
node
job
nodes
communication path
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.)
Expired - Fee Related
Application number
JP2012071235A
Other languages
English (en)
Other versions
JP2013205891A (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 JP2012071235A priority Critical patent/JP5900088B2/ja
Priority to US13/832,266 priority patent/US20130262683A1/en
Publication of JP2013205891A publication Critical patent/JP2013205891A/ja
Application granted granted Critical
Publication of JP5900088B2 publication Critical patent/JP5900088B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/16General purpose computing application
    • G06F2212/163Server or database system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • G06F2212/284Plural cache memories being distributed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/463File

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、並列計算機、並列計算機の制御方法及び制御プログラムに関する。
大規模計算を行うためのシステム(例えばスーパーコンピュータ等の並列計算機システム)においては、プロセッサ及びメモリ等を搭載した多数のノードが協働して計算を進行させていく。このようなシステムにおいて、各ノードは、システムにおけるファイルサーバのディスク上のデータを用いてジョブを実行し、実行結果をファイルサーバのディスクに書き戻すという一連の処理を行う。ここで、各ノードは、処理を高速化するため、ジョブの実行に用いるデータをメモリ等の高速な記憶装置(すなわちディスクキャッシュ)に格納した上でジョブを実行するようになっている。しかしながら、近年ではますます計算が大規模化しており、従来から利用されているディスクキャッシュの技術ではシステムのスループットを十分に向上させることができなくなっている。
従来、ファイルサーバのディスク筐体内にディスクキャッシュを配置し、ディスクのコントローラによって管理するような技術が存在する。しかし、このディスクキャッシュは通常は不揮発性メモリであり、通常の主記憶装置(すなわちメインメモリ)に使用される揮発性メモリに比べて高価であるという問題がある。また、ハードウェア及びファームウェアによって比較的単純に制御されるため、搭載量が限定される。以上のような点を鑑みると、この技術は、上で述べたような大規模計算を行うためのシステムには適していない。
また、分散ファイルシステム或いはDBMS(DataBase Management System)におけるサーバの主記憶装置上にディスクキャッシュを配置するような技術も存在する。しかし、このディスクキャッシュは、データ管理の一貫性の維持に関する要件等から、各々のディスク上のデータに対し1つ又は少数しか設けることができない。よって、ディスクに対するアクセスが集中すると、サーバが対応しきれず、結果としてシステムのスループットを低下させてしまうことがある。
また、アクセスの履歴に基づいてデータの配置を決定する技術が存在する。具体的には、CPUからの過去のアクセスの履歴を記録し、記録された過去のアクセス履歴からアクセスの傾向或いは様式を予測する。また、予測されたアクセス様式において、応答速度がより高速になるようなデータ配置を決定する。そして、決定されたデータ配置に従って、割当済みのデータの再配置を行う。しかし、この技術は、装置内におけるデータの配置に関する技術であり、上で述べたようなシステムに適用することはできない。
また、状況に応じて記憶装置を使い分ける技術が存在する。具体的には、メモリ、ハードディスク、可搬型記憶媒体ドライブ装置及び可搬型記憶媒体ライブラリ装置の階層から構成される階層記憶装置において、上位の2層(メモリ及びハードディスク)を下位の装置のキャッシュとして用いる。また、限定されたコスト内で可能な最適な階層記憶装置の構成を、アクセス履歴を基に算出する。しかし、この技術も、装置内における複数の記憶装置の構成の最適化に関する技術であり、上で述べたようなシステムに適用することはできない。
このように、上で述べたような複数のノードを含むシステムにおいて適切にディスクキャッシュを配置する技術は存在しない。
特開平11−85411号公報 特開平9−6678号公報
従って、1つの側面では、本発明は、複数のノードを含むシステムにおいて、適切にディスクキャッシュを配置するための技術を提供することを目的とする。
本発明に係る制御方法は、複数のノードがネットワークを介して接続された並列計算機システムにおける複数のノードのいずれかに実行される。そして、本制御方法は、(A)複数のノードのうち第1のノードの記憶装置に格納されたデータを用いて実行するジョブについて、記憶装置に格納されたデータに対するアクセスの特性を示す特性データを取得する処理と、(B)取得された特性データに基づき、並列計算機システム及びネットワークが有する資源のうちキャッシュに割り当てる資源を決定する処理とを含む。
複数のノードを含むシステムにおいて、適切にディスクキャッシュを配置できるようになる。
図1は、本実施の形態の概要について説明するための図である。 図2は、本実施の形態の概要について説明するための図である。 図3は、本実施の形態のシステム概要を示す図である。 図4は、計算ノード及びキャッシュサーバの配置例を示す図である。 図5は、計算ノードによるデータの書き込みについて説明するための図である。 図6は、計算ノードの機能ブロック図である。 図7は、キャッシュサーバの機能ブロック図である。 図8は、特性管理部による処理の処理フローを示す図である。 図9は、特性データ格納部に格納されるデータの一例を示す図である。 図10は、特性データ格納部に格納されるデータの一例を示す図である。 図11は、資源割当部による処理の処理フローを示す図である。 図12は、資源割当処理の処理フローを示す図である。 図13は、リスト格納部に格納されているデータの一例を示す図である。 図14は、最適化処理の一例を示す図である。 図15は、帯域データ格納部に格納されるデータの一例を示す図である。 図16は、システムの一例を示す図である。 図17は、重み付き有向グラフの一例を示す図である。 図18は、仮想化を適用したシステムの一例を示す図である 図19は、仮想化をした場合における重み付き有向グラフの一例を示す図である。 図20は、データの圧縮方法を示す図である。 図21は、バンド幅算出部による処理の処理フローを示す図である。 図22は、計算ノードの機能ブロック図である。 図23は、特性管理部による処理の処理フローを示す図である。 図24は、特性データ格納部に格納されているデータの一例を示す図である。 図25は、特性管理部及び資源割当部による処理の処理フローを示す図である。 図26は、割当方法特定処理の処理フローを示す図である。 図27は、割当データ格納部に格納されているデータの一例を示す図である。 図28は、ジョブの実行プログラムの一例を示す図である 図29は、特性管理部による処理の処理フローを示す図である。 図30は、特性データ格納部に格納されているデータの一例を示す図である。 図31は、スクリプトファイルの一例を示す図である。 図32は、ジョブスケジューラによる処理の処理フローを示す図である。 図33は、コンピュータの機能ブロック図である。
[本実施の形態の概要]
まず、本実施の形態の概要について説明する。本実施の形態のシステムにおいては、計算ノードが、ファイルサーバのディスクから読み出されたデータを用いてジョブを実行し、実行結果をファイルサーバにおけるディスクに書き戻すという一連のディスクキャッシュとしての処理を行う。ここで、計算ノードの周りにはキャッシュサーバを配置し、キャッシュサーバのメモリにデータを格納できるようにしておくことにより、計算ノードによる処理の高速化等を実現する。
そして、本実施のシステムは、計算ノードによるディスクへのアクセスの特性を抽出する機能(以下、特性管理機能と呼ぶ)と、アクセスの特性に応じ、システムにおける資源をキャッシュのために割り当てる機能(以下、資源割当機能と呼ぶ)とを有している。
特性管理機能は、以下の機能の少なくともいずれかを含む。(1)ジョブの実行中に所定時間間隔で特性データ(例えば、入力バイト数、出力バイト数等)を記録し、記録された特性データに基づき次の所定期間について特性データを動的に予測する機能。(2)ジョブの実行前に、ジョブの各実行段階について予め特性データを取得しておく機能。
資源割当機能は、以下の機能の少なくともいずれかを含む。(1)ジョブの実行開始時に、デフォルトの設定に従って又は特性管理機能によって生成された特性データに基づき資源を割り当てる機能。(2)ジョブの各実行段階において、特性管理機能によって生成された特性データに基づき資源を割り当てる機能。
また、資源割当機能によってキャッシュのために割り当てられる資源は、以下の少なくともいずれかを含む。(1)キャッシュサーバとして動作するためのプログラム(以下、キャッシュサーバプログラムと呼ぶ)が実行されるノード。(2)キャッシュサーバにおいて実行されているキャッシュサーバプログラムが使用するメモリ。(3)計算ノード、キャッシュサーバ及びファイルサーバの間でデータを転送する際に使用する通信帯域。
これにより、本実施の形態においては、キャッシュサーバとして動作させるノード、キャッシュサーバの処理によって使用されるメモリ及びデータの転送経路等を、計算ノードによるディスクへのアクセスの特性に応じて動的に変更できるようになっている。
一例として、計算ノードをキャッシュサーバとして動作させることにより処理時間を短縮するケースを示す。図1及び図2は、そのケースを説明するための図である。図1及び図2においては、計算ノードA乃至Eが処理を行った後、処理結果を含むデータをファイルサーバに書き戻す場面を想定している。また、図1及び図2のシステムは、説明を分かりやすくするため、以下のようなシステムであると仮定する。
・ファイルサーバが計算ノードからデータを受信する際に使用可能なバンド幅は、計算ノードがファイルサーバにデータを送信する際に使用可能なバンド幅の2倍。また、計算ノードがデータを送信する際に使用可能なバンド幅は、送信先によらず等しい。
・計算ノードは2つのグループに分かれている。計算ノードからファイルサーバへの通信路の各々は独立である。各グループに含まれるノード数は同じではない。
図1のシステムは、計算ノードをキャッシュサーバに転用しないシステムである。このシステムでは、(1)の段階で計算ノードC及び計算ノードEがデータをファイルサーバに送信し、(2)の段階で計算ノードB及び計算ノードDがデータをファイルサーバに送信し、(3)の段階で計算ノードAがデータをファイルサーバに送信する。(1)、(2)及び(3)の段階の所要時間が同じであるとすると、合計の所要時間は、1つの計算ノードがデータをファイルサーバに送信するのに要する時間の3倍となる。
一方、図2のシステムは、計算ノードをキャッシュサーバに転用するシステムである。このシステムでは、(1)の段階で計算ノードC及び計算ノードEがデータをファイルサーバに送信する。(2)の段階で計算ノードB及び計算ノードDがデータをファイルサーバに送信し、また計算ノードAがデータを半分計算ノードEに送信する。すなわち、計算ノードEをキャッシュサーバとして利用する。
そして、(3)の段階で計算ノードA及び計算ノードEがデータ(計算ノードB、計算ノードC及び計算ノードD等がファイルサーバに送信したデータの半分の量のデータ)をファイルサーバに送信する。図2のシステムは、(1)の段階の所要時間及び(2)の段階の所要時間は図1のシステムと同じであるが、(3)の段階の所要時間は、(1)の段階及び(2)の段階の所要時間の半分である。従って、合計の所要時間は、1つの計算ノードがデータをファイルサーバに送信するのに要する時間の2.5倍となる。すなわち、計算ノードEをキャッシュサーバとして動作させることによって、合計の所要時間を少なくしている。
このように、本実施の形態においては、ジョブの実行の際に、システムにおける資源を適宜キャッシュのために割り当てることによって、システムの処理性能を全体として向上させることができるようになっている。以下では、本実施の形態のより具体的な内容について説明する。
[実施の形態1]
図3に、第1の実施の形態のシステム概要を示す。例えば並列計算機システムである情報処理システム1は、複数の計算ノード2及び複数のキャッシュサーバ3を含む計算処理システム10と、ディスクデータ格納部110を含む複数のファイルサーバ11とを含む。計算処理システム10と複数のファイルサーバ11とは、ネットワーク4を介して接続されている。なお、計算処理システム10は、計算ノード2及びキャッシュサーバ3の各々がCPU(Central Processing Unit)及びメモリ等を有しているシステムである。
図4に、計算処理システム10における計算ノード2及びキャッシュサーバ3の配置例を示す。図4の例では、計算ノード2Aの周りにはキャッシュサーバ3A乃至3Hが配置されており、キャッシュサーバ3A乃至3Hはインターコネクト5を介して1ホップ又は2ホップで計算ノード2Aと通信を行うことができるようになっている。同様に、計算ノード2Bの周りには、キャッシュサーバ3I乃至3Pが配置されており、キャッシュサーバ3I乃至3Pはインターコネクト5を介して1ホップ又は2ホップで計算ノード2Bと通信を行うことができるようになっている。
例えば図5に示すように、計算ノード2A及び2Bは、ジョブを実行する際に計算ノード2A及び2Bの周りに配置されたキャッシュサーバを利用することができるようになっている。すなわち、計算ノード2Aは、ディスクデータ格納部110に格納されているデータをキャッシュサーバ3A乃至3Hのメモリ等に書き込み、ジョブを実行するようになっている。また、計算ノード2Bは、ディスクデータ格納部110に格納されているデータをキャッシュサーバ3I乃至3Pのメモリ等に書き込み、ジョブを実行するようになっている。なお、ジョブの実行が終了すると、キャッシュサーバのメモリに格納されたデータは、ファイルサーバ11におけるディスクデータ格納部110に書き戻される。
また、第1の実施の形態のシステムでは、以下を前提とする。(1)計算ノード2とファイルサーバ11との間にキャッシュサーバ3が配置されている。(2)1つのキャッシュサーバ3を利用するジョブは複数ある。(3)キャッシュサーバ3は複数存在し、各ジョブが利用するキャッシュサーバ3をジョブの実行中に変更することが可能である。
図6に、計算ノード2の機能ブロック図を示す。図6の例では、IO(Input Output)処理部201、取得部202及び設定部203を含む処理部200と、ジョブ実行部204、特性管理部205と、特性データ格納部206と、資源割当部207と、バンド幅算出部208と、帯域データ格納部209と、リスト格納部210とを含む。
IO処理部201は、キャッシュサーバ3から受信したデータをジョブ実行部204に出力する処理を行い、又は、ジョブ実行部204から受け取ったデータをキャッシュサーバ3に送信する処理を行う。取得部202は、IO処理部201による処理を監視し、ディスクアクセスの特性を示すデータ(例えば単位時間あたりのディスクアクセスの回数、入力バイト数、出力バイト数及びアクセスするデータの位置を示す情報等。以下、特性データと呼ぶ。)を特性管理部205に出力する。ジョブ実行部204は、IO処理部201から受け取ったデータを用いてジョブを実行し、実行結果を含むデータをIO処理部201に出力する。特性管理部205は、特性データを用いて予測値を算出し、特性データ格納部206に格納する。また、特性管理部205は、ジョブ実行部204による処理を監視し、処理の状態に応じて資源の割当を資源割当部207に要求する。バンド幅算出部208は、計算ノード2の各通信路について使用可能なバンド幅を算出し、処理結果を帯域データ格納部209に格納する。また、バンド幅算出部208は、算出されたバンド幅を他の計算ノード2、キャッシュサーバ3及びファイルサーバ11に送信する。資源割当部207は、特性管理部205からの要求に応じて、特性データ格納部206に格納されているデータ、帯域データ格納部209に格納されているデータ及びリスト格納部210に格納されているデータを用いて処理を行い、処理結果を設定部203に出力する。設定部203は、資源割当部207から受け取った処理結果に従い、IO処理部201に対してキャッシュについての設定等を行う。
図7に、キャッシュサーバ3の機能ブロック図を示す。キャッシュサーバ3は、キャッシュ処理部31と、キャッシュ32とを含む。キャッシュ処理部31は、キャッシュ32へのデータの入出力等を実施する。
次に、図3に示したシステムにおいて行われる処理について説明する。まず、ジョブ実行部204によりジョブが実行されている際に特性管理部205が行う処理について説明する。
まず、特性管理部205は、前回の処理から所定時間が経過したか判断する(図8:ステップS1)。所定時間が経過していない場合(ステップS1:Noルート)、処理を実行するタイミングではないので、ステップS1の処理を再度実行する。
一方、所定時間が経過した場合(ステップS1:Yesルート)、特性管理部205は、特性データを取得部202から受け取り、特性データ格納部206に格納する。図9に、特性データ格納部206に格納されているデータの一例を示す。図9の例では、期間毎に特性データ(例えば入力バイト数及び出力バイト数)が格納されている。
そして、特性管理部205は、特性データ格納部206に格納されているデータを用いて、次の所定期間についての入力バイト数の予測値を算出し、特性データ格納部206に格納する(ステップS3)。入力バイト数の予測値は、例えば以下のようにして算出する。
・D(N)=(N回前の入力バイト数−(N+1)回前の入力バイト数)
・E(N)=(1/2)*D(N)
・入力バイト数の予測値=(2−1)*{E(1)+E(2)+...+E(M)}/2M−1
ここで、M及びNは自然数とする。
また、特性管理部205は、特性データ格納部206に格納されているデータを用いて、次の所定期間についての出力バイト数の予測値を算出し、特性データ格納部206に格納する(ステップS5)。出力バイト数の予測値は、例えば以下のようにして算出する。
・D(N)=(N回前の出力バイト数−(N+1)回前の出力バイト数)
・E(N)=(1/2)*D(N)
・出力バイト数の予測値=(2−1)*{E(1)+E(2)+...+E(M)}/2M−1
ここで、M及びNは自然数とする。
図10に、特性データ格納部206に格納される予測値の一例を示す。図10の例では、期間毎に、入力バイト数及び出力バイト数の予測値が格納されている。例えば、時刻tに対応する入力バイト数及び出力バイト数の予測値は、時刻tからtn−1までの入力バイト数及び出力バイト数のデータを用いて算出された予測値である。
そして、特性管理部205は、処理を終了するか判断する(ステップS7)。処理を終了しない場合(ステップS7:Noルート)、ステップS1の処理に戻る。例えばジョブの実行が終了した場合には(ステップS7:Yesルート)、処理を終了する。
以上のような処理を実施すれば、ジョブの実行中に所定時間間隔で取得した特性データに基づいて、次の所定期間におけるディスクアクセスの特性を予測できるようになる。
次に、ジョブ実行部204によりジョブの実行が開始された際に資源割当部207が行う処理について説明する。まず、資源割当部207は、資源の割当をデフォルトの状態に設定する(図11:ステップS11)。ステップS11においては、資源割当部207が、資源の割当をデフォルトの状態に設定するように設定部203に要求する。設定部203は、これに応じ、資源の割当をデフォルトの状態に設定する。例えば、予め定められたキャッシュサーバ3のみを利用するようにIO処理部201に対して設定を行う。
資源割当部207は、特性データ格納部206から最新の入力バイト数の予測値(以下、入力予測値と呼ぶ)及び出力バイト数の予測値(以下、出力予測値と呼ぶ)を読み出す(ステップS13)。
資源割当部207は、入力予測値が予め定められた閾値より大きいか判断する(ステップS15)。入力予測値が予め定められた閾値より大きい場合(ステップS15:Yesルート)、資源割当部207は、資源割当処理を実施する(ステップS17)。資源割当処理については、図12乃至図20を用いて説明する。
まず、資源割当部207は、キャッシュサーバとして動作させることが可能なノードのリストをリスト格納部210から読み出す(図12:ステップS31)。
図13に、リスト格納部210に格納されているデータの一例を示す。図13の例では、ノードの識別情報が格納されるようになっている。リスト格納部210に識別情報が格納されているノードは、例えば計算ノード2のうちキャッシュサーバ3に転用可能な計算ノード2(例えば、ジョブを実行中ではない計算ノード2)等である。
資源割当部207は、リストが空であるか判断する(ステップS33)。リストが空である場合(ステップS33:Yesルート)、元の処理に戻る。
一方、リストが空ではない場合(ステップS33:Noルート)、資源割当部207は、リストからノードを1つ取り出す(ステップS35)。
そして、資源割当部207は、最適化処理を実施する(ステップS37)。最適化処理については、図14乃至図20を用いて説明する。なお、ステップS35において取り出されたノードは、以下ではキャッシュサーバ3であるとして取り扱われる。
まず、資源割当部207は、他の計算ノード2、キャッシュサーバ3及びファイルサーバ11から受信したバンド幅のデータを帯域データ格納部209から読み出す(図14:ステップS51)。
図15に、帯域データ格納部209に格納されているデータの一例を示す。図15の例では、始点にあたるノードの識別情報と、終点にあたるノードの識別情報と、使用可能なバンド幅とが格納されている。後で詳しく説明するが、帯域データ格納部209に格納されているデータは、バンド幅算出部208が他の計算ノード2、キャッシュサーバ3及びファイルサーバ11から受信したデータである。
資源割当部207は、帯域データ格納部209に格納されているデータを用いて、「転送経路に対応する重み付き有向グラフ」のデータを生成し、メインメモリ等の記憶装置に格納する(ステップS53)。
ステップS53においては、転送経路に対応する重み付有向グラフを以下のようにして生成する。
・ノード(ここでは、計算ノード2、キャッシュサーバ3又はファイルサーバ11とする)を「頂点」とする。
・ノード間の通信路を「辺」とする。
・各通信路において使用可能な(すなわち他のジョブによって使用されていない)バンド幅(ビット/秒)を「重み」とする。
・データ転送の向きを「(グラフにおける辺の)向き」とする。
ここで、「向き」は、以下のように始点及び終点を定めた場合における各通信路でのデータの転送方向とする。
・計算ノード2がファイルサーバ11におけるディスクデータ格納部110からデータを読み出す場合の通信においては、始点をファイルサーバ11とし、終点を計算ノード2とする。
・計算ノード2がファイルサーバ11におけるディスクデータ格納部110にデータを書き込む場合の通信においては、始点を計算ノード2とし、終点をファイルサーバ11とする。
なお、転送経路に対応する重み付き有向グラフは、行列形式のデータとしてノードのメモリ内に保持する。行列形式のデータは、以下のようにして作成する。
(1)ネットワークにおける各ノードに通し番号を割り当てる。
(2)i番目のノードからj番目のノードへの通信路において使用可能なバンド幅を行列における(i,j)成分とする。
(3)i番目のノードからj番目のノードへの通信路が無い又はジョブがその通信路を利用できない場合には、(i,j)成分を0とする。
例えば、ネットワークにおける各ノードの通し番号及び各通信路において使用可能なバンド幅が、図16に示すようになっている場合には、図17に示すような行列形式のデータが生成される。なお、図16において、丸はノードを表し、ノードに付された数字は通し番号を表し、ノード間を結ぶ線分は通信路を表し、通信路に付された括弧付きの数字は使用可能なバンド幅を表している。但し、説明を簡単にするため、i番目のノードからj番目のノードへの通信路において使用可能なバンド幅とj番目のノードからi番目のノードへの通信路において使用可能なバンド幅とは同じであると仮定している。
なお、転送経路に対応する重み付き有向グラフにおけるノード及び通信路に対して、以下のような仮想化を行うようにしてもよい。ここで言う仮想化とは、複数の物理的ノード又は複数の物理的通信路をまとめ、1つの仮想的な頂点又は仮想的な辺に対応させることである。これにより、最適化処理の負荷を削減することができる。
・複数のファイルサーバ11が1つの並列ファイルシステムで制御されている場合、それらのファイルサーバ11を1つの「仮想ファイルサーバ」とみなし、1つの頂点に対応させる。その際、複数のファイルサーバ11の各々の通信路をまとめたものを、仮想ファイルサーバに対応する「仮想通信路」とする。
・1つのジョブを実行する計算ノード群を複数の部分集合(N,N,...N。ここで、kは2以上の自然数。)に分ける。ここで、N(iは自然数)とキャッシュサーバ3との間の通信路とN(jはi<jを満たす自然数)とキャッシュサーバ3との間の通信路とが干渉しないように区分されている場合に、N及びNを仮想的に1つの計算ノードとして取り扱う。
図18に、仮想化を行った場合における有向グラフの一例を示す。図18において、丸はノードを表し、ノード間を結ぶ線分は通信路を表し、複数のノードを含む破線の四角は仮想化されたノード(以下、仮想ノードと呼ぶ)を表し、仮想ノード間を結ぶ線分は仮想通信路を表している。図18に示した有向グラフの行列形式のデータは、図19に示すようになる。
なお、転送経路に対応する重み付き有向グラフのデータは、図20に示すように圧縮することができる。図20においては、左側のデータが圧縮前のデータであり、右側のデータは圧縮後のデータである。図20に示した圧縮方法を、1行目のデータを例として説明する。
(1)最初の数字は行番号とする。ここでは「1」とする。
(2)次はカンマとする。
(3)1列目の数字が0以外であるかを判断する。ここでは1列目の数字が0であるので、何もしない。
(4)2列目の数字が0以外であるかを判断する。ここでは、2列目の数字が0以外であるので、3文字目を列番号「2」とし、4文字目をその数字「5」とする。
(5)3列目の数字が0以外であるかを判断する。ここでは3列目の数字が0であるので、何もしない。
(6)4列目の数字が0以外であるかを判断する。ここでは、4列目の数字が0以外であるので、5文字目を列番号「4」とし、文字目をその数字「5」とする。
(7)5列目の数字が0以外であるかを判断する。ここでは5列目の数字が0であるので、何もしない。
(8)6列目の数字が0以外であるかを判断する。ここでは、6列目の数字が0以外であるので、7文字目を列番号「6」とし、8文字目をその数字「7」とする。
(9)7列目の数字が0以外であるかを判断する。ここでは7列目の数字が0であるので、何もしない。
以上のようなルールによって、データを圧縮することができる。なお、このような方法でデータを効果的に圧縮できるのは、行列の成分に0が多い場合である。
図14の説明に戻り、資源割当部207は、ステップS53において生成されたデータを用いて、計算ノード2とキャッシュサーバ3との間について、転送時間が最短となる転送経路又はバンド幅が最大になる転送経路を特定する(ステップS55)。
ステップS55においては、例えばダイクストラ法、A*(エースター)法又はベルマンフォード法を用いることにより、転送時間が最短となるような転送経路を特定する。また、例えば増加道法又はプリフローッシュ法を用いることにより、2点間で同時に複数の経路が利用可能な場合における「最大バンド幅を与える経路の組」を特定する。ステップS55においては、例えば通信の性質に応じて前者と後者とを使い分ける。例えば単純なデータ転送であれば、データを分割すればよいだけなので、複数の経路を利用する後者の方法を採用することができる場合が有る。一方、計算ノード2におけるプログラムの1つのスレッドが逐次生成するデータを順次ディスクデータ格納部110に書き込んでいく場合には、後者の方法を採用するのは難しい場合が有る。
なお、例えば計算処理システム10のキャッシュサーバ3におけるキャッシュ32の容量が十分にある場合には、計算ノード2とキャッシュサーバ3との間の通信路のバンド幅がディスクアクセスの速度を制限する要因となる。このような場合には、例えば後者の方法によってバンド幅が最大となるような経路の組の候補を得て、さらに前者の方法によって転送時間が最短となるような経路の組に絞り込むようにしてもよい。
図14の説明に戻り、資源割当部207は、ステップS53において生成されたデータを用いて、キャッシュサーバ3とファイルサーバ11との間の通信について、転送時間が最短となる転送経路又はバンド幅が最大になる転送経路を特定する(ステップS57)。ステップS57の処理における具体的な計算方法等については、ステップS55と同様である。
資源割当部207は、ステップS55において特定された転送経路とステップS57において特定された転送経路とを合わせることにより、計算ノード2とファイルサーバ11との間の転送経路を決定する(ステップS59)。
資源割当部207は、決定された転送経路について転送時間を算出する(ステップS61)。そして元の処理に戻る。転送時間は、例えば転送経路のバンド幅とデータの転送量とを用いて算出する。転送時間を算出する方法はよく知られているので、ここでは詳細な説明は省略する。
以上のような処理を実施すれば、適切な転送経路が決定されるので、利用するキャッシュサーバ3(すなわち、転送経路上のキャッシュサーバ3)も決定することができるようになる。
図12の説明に戻り、資源割当部207は、ステップS61において算出した転送時間と元の転送経路で転送する場合における転送時間との差を算出する(ステップS39)。元の転送経路で転送する場合における転送時間についても、ステップS61の説明で述べたようにして算出することができる。
そして、資源割当部207は、ステップS39において算出した転送時間の差が、転送経路の変更に要する時間より長いか判断する(ステップS41)。なお、キャッシュサーバ3として動作させる計算ノード2を転送経路上に含む場合には、その計算ノード2をキャッシュサーバ3に転用するための時間及びキャッシュサーバ3として役割を終了させるための時間も、転送経路の変更に要する時間に加算する。
短い場合(ステップS41:Noルート)、転送経路を変更しない方がよいので、ステップS33の処理に戻る。一方、長い場合(ステップS41:Yesルート)、資源割当部207は、転送経路を変更するための設定処理を実行する(ステップS43)。具体的には、資源割当部207は、設定部203に変更後の転送経路を通知する。設定部203は、変更後の転送経路上のキャッシュサーバ3を利用するようにIO処理部201に対して設定する。また、計算ノード2をキャッシュサーバ3に転用する場合には、その計算ノード2に対して、キャッシュ処理部31(すなわち、キャッシュサーバプロセス)を起動するように要求する。そしてステップS33に戻る。
以上のような処理を実施すれば、転送経路を最適にするという観点に基づき、キャッシュに対して資源を適切に割り当てることができるようになる。
図11の説明に戻り、入力予測値が予め定められた閾値以下である場合(ステップS15:Noルート)、資源割当部207は、出力予測値が予め定められた閾値より大きいか判断する(ステップS19)。出力予測値が予め定められた閾値以上である場合(ステップS19:Yesルート)、資源割当部207は、資源割当処理を実施する(ステップS21)。資源割当処理については、ステップS17についての説明で述べたとおりである。
一方、出力予測値が予め定められた閾値以下である場合(ステップ19:Noルート)、IO処理部201がIO処理(すなわちディスクアクセス)を実行する(ステップS23)。なお、この処理は資源割当部207が実行する処理ではないので、図11のステップS23のブロックは点線で示している。
そして、資源割当部207は、資源の割当を変更すべきか判断する(ステップS25)。ステップS25においては、例えば、ジョブ実行部204の状態を監視している特性管理部205から、資源の割当を変更すべきことを通知されたか判断する。資源の割当を変更すべきではない場合(ステップS25:Noルート)、ステップS23の処理に戻る。一方、資源の割当を変更すべきである場合(ステップS25:Yesルート)、資源割当部207は、ジョブの実行を継続しているか判断する(ステップS27)。
ジョブの実行を継続している場合(ステップS27:Yesルート)、資源の割当を変更した方がよいので、ステップS13の処理に戻る。一方、ジョブの実行を継続していない場合(ステップS27:Noルート)、処理を終了する。
以上のような処理を実施すれば、ジョブの各実行段階におけるディスクアクセスの特性に応じて適切に資源が割り当てられるようになるので、ディスクアクセスを高速化することができるようになる。
次に、バンド幅算出部208の処理について説明する。なお、バンド幅算出部208は、以下のような処理を所定時間毎に行う。
まず、バンド幅算出部208は、計算ノード2の各通信路について使用可能なバンド幅を算出し、帯域データ格納部209に格納する(図21:ステップS71)。なお、通信路を使用しているジョブは複数存在する場合が有る。各ジョブによる使用バンド幅が予めわかっている場合には、通信を行っていない場合におけるバンド幅から各ジョブの使用バンド幅の合計を差し引くことにより、使用可能なバンド幅を算出する。各ジョブによる使用バンド幅がわからない場合には、バンド幅の使用実績による予測値を、例えばステップS3で説明したような予測式によって算出する。
なお、バンド幅算出部208は、他の計算ノード2、キャッシュサーバ3及びファイルサーバ11からバンド幅のデータを受信した場合においても、帯域データ格納部209にバンド幅のデータを格納する。
そして、バンド幅算出部208は、他のノード(具体的には、他の計算ノード2、キャッシュサーバ3及びファイルサーバ11)に対し、算出したバンド幅を含む通知を送信する(ステップS73)。そして処理を終了する。
以上のような処理を実施すれば、情報処理システム1における各ノードが、各通信路において使用可能なバンド幅を把握できるようになる。
[実施の形態2]
次に、第2の実施の形態について説明する。第2の実施の形態においては、情報処理システム1がCPUバウンド状態及びIOバウンド状態のいずれであるかを判断し、その判断結果に応じて資源の割当を行うようになっている。ここで、CPUバウンド状態とは、利用できるCPU時間がジョブ実行の実時間の長さを決める主な要因である状態(すなわち、CPUがボトルネックになっている状態)のことを言う。これに対し、IOバウンド状態とは、IO処理がジョブ実行の実時間の長さを決める主な要因である状態(すなわち、IOがボトルネックになっている状態)のことを言う。
第2の実施の形態のシステムについては、以下を前提とする。(1)計算ノード2とキャッシュサーバ3とが1つの同じパーティションの中に存在する。(2)ノード、CPU若しくはCPUコア及びメモリ領域の少なくともいずれかを計算ノード2に割り当てるか、キャッシュサーバ3に割り当てるかを選択できる。(3)ジョブの実行開始時及び実行中に、予め取得した特性データを参照することができる。
なお、パーティションとは、システムにおいて他の部分とは論理的に分断された部分のことを言う。
図22に、第2の実施の形態における計算ノード2の機能ブロック図を示す。図22の例では、IO処理部201、取得部202及び設定部203を含む処理部200と、ジョブ実行部204と、特性管理部205と、特性データ格納部206と、資源割当部207と、割当データ格納部211と、ジョブスケジューラ212とを含む。
IO処理部201は、キャッシュサーバ3から受信したデータをジョブ実行部204に出力する処理を行ったり、ジョブ実行部204から受け取ったデータをキャッシュサーバ3に送信する処理を行う。取得部202は、IO処理部201による処理及びCPUによる処理を監視し、特性データ(本実施の形態においては、CPU時間を含む)を特性管理部205に出力する。ジョブ実行部204は、IO処理部201から受け取ったデータを用いてジョブを実行し、実行結果をIO処理部201に出力する。特性管理部205は、ジョブの各実行段階についての特性データを生成し、特性データ格納部206に格納する。また、特性管理部205は、ジョブ実行部204による処理を監視し、処理の状態に応じて資源の割当を資源割当部207に要求する。資源割当部207は、特性管理部205からの要求に応じて、特性データ格納部206に格納されているデータ及び割当データ格納部211に格納されているデータを用いて処理を行い、処理結果を設定部203に出力する。設定部203は、資源割当部207から受け取った処理結果に従い、IO処理部201に対してキャッシュについての設定等を行う。ジョブスケジューラ212は、ジョブ実行部204に対して資源(例えばCPU又はCPUコア等)の割り当て等を行い、ジョブ実行部204によるジョブ実行の開始及び終了等を制御する。
次に、特性管理部205によって行われる処理について説明する。まず、特性管理部205は、ジョブの実行状態の変化又はディスクアクセスに関するイベントの発生まで待機する(図23:ステップS81)。ジョブの実行状態の変化とは、例えば、ジョブが開始又は終了したというような変化である。ディスクアクセスに関するイベントの発生とは、例えば、ジョブの実行プログラムにおいて特定の関数が実行されたというようなイベントの発生である。
特性管理部205は、ジョブの実行状態が変化又はディスクアクセスに関するイベントが発生した場合、それがジョブの開始を示しているか判断する(ステップS83)。ジョブの開始を示している場合(ステップS83:Yesルート)、特性管理部205は、時間帯番号を初期値に設定する(ステップS85)。そしてステップS81の処理に戻る。
一方、ジョブの開始を示していない場合(ステップS83:Noルート)、特性管理部205は、前回のイベント等から今回のイベント等までの間の時間帯の特性データを時間帯番号に対応付けて特性データ格納部206に格納する(ステップS87)。
図24に、特性データ格納部206に格納されているデータの一例を示す。図24の例では、時間帯番号と、特性データとが格納されている。特性管理部205は、取得部202から受け取った特性データを、時間帯毎に集約して特性データ格納部206に格納するようになっている。IO時間は、例えば(時間帯の長さ)−(CPU時間)によって算出する。なお、特性データ格納部206に各時間帯の長さの情報を格納しておき、ステップS111(図25)において資源割当部207に通知するようにしてもよい。
そして、特性管理部205は、時間帯番号を1増やす(ステップS89)。また、特性管理部205は、ジョブの実行が継続されているか判断する(ステップS91)。ジョブの実行が継続されている場合(ステップS91:Yesルート)、処理を継続するため、ステップS81の処理に戻る。
一方、ジョブの実行が継続されていない場合(ステップS91:Noルート)、処理を終了する。
以上のような処理を実施すれば、プログラムの実行段階(上で述べた例では、時間帯)毎に予め特性データを集約しておき、後の処理に利用できるようになる。
次に、特性管理部205及び資源割当部207が連携して資源の割り当てを行う処理について説明する。
まず、特性管理部205は、ジョブの実行状態の変化又はディスクアクセスに関するイベントの発生まで待機する(図25:ステップS101)。そして、特性管理部205は、ジョブの実行状態が変化した又はディスクアクセスに関するイベントが発生したことを検出する(ステップS103)。
特性管理部205は、それがジョブの開始を示しているか判断する(ステップS105)。ジョブの開始を示している場合(ステップS105:Yesルート)、特性管理部205は、資源の割当をデフォルトの状態に設定する(ステップS107)。ステップS107においては、資源割当部207が、資源の割当をデフォルトの状態に設定するように設定部203に要求する。設定部203は、これに応じ、資源の割当をデフォルトの状態に設定する。例えば、予め定められたキャッシュサーバ3のみを利用するようにIO処理部201に対して設定を行う。
一方、ジョブの開始を示していない場合(ステップS105:Noルート)、特性管理部205は、ジョブの終了を示しているか判断する(ステップS109)。ジョブの終了を示している場合(ステップS109:Yesルート)、処理を終了する。ジョブの終了を示していない場合(ステップS109:Noルート)、特性管理部205は、資源割当部207に対し、次の時間帯の時間帯番号を通知すると共に、割当方法特定処理の実施を要求する。これに応じ、資源割当部207は、割当方法特定処理を実施する(ステップS111)。割当方法特定処理については、図26を用いて説明する。
まず、資源割当部207は、次の時間帯に対応する特性データを特性データ格納部206から読み出す(ステップS121)。
資源割当部207は、次の時間帯についてCPU時間の割合及びIO時間の割合を算出する(ステップS123)。ステップS123においては、例えば、CPU時間の割合を(CPU時間)/(次の時間帯の長さ)によって算出し、IO時間の割合を(IO時間)/(次の時間帯の長さ)によって算出する。
資源割当部207は、CPU時間の割合が所定の閾値よりも大きいか判断する(ステップS125)。所定の閾値よりも大きい場合(ステップS125:Yesルート)、キャッシュに割り当てる資源をデフォルトより減らすような割当方法を割当データ格納部211から特定する(ステップS127)。ディスクアクセスよりもジョブの実行に資源を割り当てるべきであるからである。
図27に、割当データ格納部211に格納されているデータの一例を示す。図27の例では、状態の識別情報と、割当方法とが格納されている。割当方法の列には、例えば、キャッシュサーバ3として動作させるノードの識別情報が格納される。CPUバウンド状態に対応する割当方法は、パーティション内の資源のうちキャッシュに割り当てる資源をデフォルトより減らすような割当方法である。IOバウンド状態に対応する割当方法は、パーティション内の資源のうちキャッシュに割り当てる資源をデフォルトより増やすような割当方法である。CPUバウンド及びIOバウンドのいずれの状態でもない場合に対応する割当方法の列には、例えば、割当変更に要するコストが改善の効果より大きいような割当方法が格納される。但し、割当変更に要するコストがほとんどかからないような場合には、キャッシュに割り当てる資源を増やすような割当方法及び減らすような割当方法のいずれも格納するようにしてもよい。また、割当変更に要するコストが改善の効果等と比べて大きい場合には、何も格納しなくてもよい。
なお、ステップS125の閾値及びステップS129の閾値は、「CPUバウンド且つIOバウンド」という状態が発生しないように定める。
図26の説明に戻り、所定の閾値以下である場合(ステップS125:Noルート)、資源割当部207は、IO時間の割合が所定の閾値よりも大きいか判断する(ステップS129)。
所定の閾値より大きい場合(ステップS129:Yesルート)、資源割当部207は、キャッシュに割り当てる資源をデフォルトよりも増やすような割当方法を割当データ格納部211から特定する(ステップS131)。
一方、所定の閾値以下である場合(ステップS129:Noルート)、資源割当部207は、CPUバウンド及びIOバウンドのいずれの状態でもない場合の割当方法を割当データ格納部211から特定する(ステップS133)。そして元の処理に戻る。
以上のような処理を実施すれば、ディスクアクセス又はジョブの実行のうちボトルネックになっている方に対して資源を割り当てることができるようになる。
図25の説明に戻り、資源割当部207は、ステップS111において特定された各割当方法について転送時間を算出すると共に、元の転送時間との差を算出する(ステップS113)。ステップS113においては、例えば、各割当方法によってキャッシュを割り当てた場合における転送経路を特定し、その転送経路での転送時間をステップS61において述べたような方法によって算出する。
そして、資源割当部207は、(ステップS113において算出した転送時間の差)>(割当の変更に要する時間)という条件を満たす割当方法が有るか判断する(ステップS115)。条件を満たす割当方法が無い場合(ステップS115:Noルート)、ステップS101の処理に戻る。一方、条件を満たす割当方法がある場合(ステップS115:Yesルート)、資源割当部207は、条件を満たす割当方法の中から最も転送時間が短い割当方法を特定し、資源の割当を変更する(ステップS117)。具体的には、資源割当部207は、設定部203に割当方法を通知する。設定部203は、変更後の割当方法に従って処理を行うようにIO処理部201に対して設定する。また、計算ノード2をキャッシュサーバ3に転用する場合には、その計算ノード2に対して、キャッシュ処理部31(すなわち、キャッシュサーバプログラムのプロセス)を起動するように要求する。そしてステップS101の処理に戻る。
以上のような処理を実施すれば、情報処理システム1における資源が、処理のボトルネックになる可能性がある部分に対して適切に割り当てられるようになるので、情報処理システム1のスループットを向上させることができるようになる。
[実施の形態3]
次に、第3の実施の形態について説明する。第3の実施の形態においては、ジョブの実行プログラムから特性データを抽出する。
図28に、ジョブの実行プログラムの一例を示す。図28の例では、ジョブの実行プログラムが、2つのブロックに分かれている。1つ目のブロックには入力に関する処理が記述されており、2つ目のブロックには出力に関する処理が記述されている。第3の実施の形態においては、ジョブの実行プログラムにおけるこのようなブロック構造を手がかりにして、特性データを抽出する。
次に、特性管理部205によって行われる処理について説明する。まず、特性管理部205は、ブロック番号を初期化する(図29:ステップS141)。
特性管理部205は、読み込んだ行が入力指示の行であるか判断する(ステップS143)。入力指示の行である場合(ステップS143:Yesルート)、特性管理部205は、入力回数を1インクリメントし、また入力バイト数を引数分増やす(ステップS145)。そしてステップS143の処理に戻る。一方、入力指示の行ではない場合(ステップS143:Noルート)、特性管理部205は、読み込んだ行が出力指示の行であるか判断する(ステップS147)。
出力指示の行である場合(ステップS147:Yesルート)、特性管理部205は、出力回数を1インクリメントし、また出力バイト数を引数分増やす(ステップS149)。そしてステップS143の処理に戻る。一方、出力指示の行ではない場合(ステップS147:Noルート)、特性管理部205は、読み込んだ行がブロック開始の行であるか判断する(ステップS151)。
ブロック開始の行である場合(ステップS151:Yesルート)、特性管理部205は、ブロック番号を1インクリメントし、フラグをオンに設定する(ステップS153)。ステップS153において設定されるフラグは、ブロックの処理中であることを表すフラグである。一方、ブロック開始の行ではない場合(ステップS151:Noルート)、特性管理部205は、ブロック終了の行であるか判断する(ステップS155)。
ブロック終了の行である場合(ステップS155:Yesルート)、特性管理部205は、フラグをオフに設定し、ステップS143の処理に戻る(ステップS157)。一方、ブロック終了の行ではない場合(ステップS155:Noルート)、特性管理部205は、特性データ(例えば、入力バイト数及び出力バイト数等)をブロック番号に対応付けて特性データ格納部206に格納する(ステップS159)。
図30に、特性データ格納部206に格納されているデータの一例を示す。図30の例では、ブロック番号と、特性データとが格納されるようになっている。
そして、特性管理部205は、ジョブの実行プログラムの最終行であるか判断する(ステップS161)。最終行ではない場合(ステップS161:Noルート)、次の行について処理するため、ステップS143の処理に戻る。一方、最終行である場合(ステップS161:Yesルート)、処理を終了する。
以上のように、第3の実施の形態においては、ジョブの実行プログラムにおけるブロックを手がかりにしてジョブの実行段階を分けている。第2の実施の形態においては、ジョブの実行段階を時間帯によって分けていたが、第3の実施の形態のようにしても、第2の実施の形態と同様に、ディスクアクセスの特性に応じた資源の割当を行うことができる。
[実施の形態4]
次に、第4の実施の形態について説明する。第4の実施の形態においては、ステージイン及びステージアウトに合わせて資源の割当を行うことにより、特性データを利用することなく資源の割当を行えるようにする。
バッチジョブの実行においては、ファイルサーバ上のファイルへのアクセスに伴って発生するネットワークトラフィックの増加を抑制するため、以下のような制御を行うことがある。
・ジョブ実行開始時に、リモートファイルサーバ上のファイルをローカルファイルサーバにコピーする。この処理はファイルの「ステージイン」と呼ばれる。
・ジョブの実行中は、ローカルファイルサーバ上のファイルを使用する。
・ジョブ実行終了時に、ローカルファイルサーバ上のファイルをリモートファイルサーバに書き戻す。この処理はファイルの「ステージアウト」と呼ばれる。
ファイルのステージイン及びステージアウトは、例えば以下のいずれかの方法で制御される。
・ジョブスケジューラが解釈するスクリプトファイルにステージイン及びステージアウトについて記述することで制御する。ステージインはジョブの実行プログラムの実行前、ステージアウトはジョブの実行プログラムの実行後に、ジョブの実行プログラムとは独立して、ジョブスケジューラの処理の一部として実行される。
・ジョブの実行プログラム自身の動作を契機として制御を行う。例えば、ジョブの実行プログラムがファイルを最初にオープンする処理の延長でステージインを行い、最後にクローズする際又は最後のプロセスが終了する際にステージアウトする。このようなステージイン及びステージアウトの検出は、ジョブの実行プログラムを実行中に監視し、「最初のオープン」、「最後のクローズ」又は「プロセスの終了」という動作を「イベント」として捉えることで行う。
ファイルのステージイン及びステージアウトの際には、計算ノード2は、必然的にIOバウンドの状態になることが特性データを利用しなくても予測できる。そこで、本実施の形態においては、スクリプトファイルを利用して資源の割当を行う例について説明する。
図31に、ジョブスケジューラが解釈するスクリプトファイルの一例を示す。図31のスクリプトファイルには、ステージイン及びステージアウトを指示するための変数の記述と、ステージインの指示の記述と、ステージアウトの指示の記述とが含まれる。
次に、図32を用いて、ジョブスケジューラ212による処理について説明する。まず、ジョブスケジューラ212は、スクリプトを1行分読み出す(図32:ステップS171)。
ジョブスケジューラ212は、変数設定の行であるか判断する(ステップS173)。変数設定の行である場合(ステップS173:Yesルート)、ジョブスケジューラ212は、変数の設定データをメインメモリ等の記憶装置に格納する(ステップS175)。そしてステップS171の処理に戻る。なお、変数の設定データは後にステージイン及びステージアウトの指示をするときに利用される。一方、変数設定の行ではない場合(ステップS173:Noルート)、ジョブスケジューラ212は、最初のステージインの行であるか判断する(ステップS179)。
最初のステージインの行である場合(ステップS179:Yesルート)、ジョブスケジューラ212は、計算ノード2内に、キャッシュサーバプログラムのプロセスを起動する(ステップS181)。そしてステップS171の処理に戻る。これにより、計算ノード2のメモリ及びCPU若しくはCPUコア、又はネットワークにおける通信帯域等の資源がキャッシュサーバプログラムによってディスクアクセスのために使用される。一方、最初のステージインの行ではない場合(ステップS179:Noルート)、ジョブスケジューラ212は、ジョブの実行開始の行であるか判断する(ステップS183)。
ジョブの実行開始の行である場合(ステップS183:Yesルート)、ジョブスケジューラ212は、資源の割当をデフォルトの状態に設定し、ジョブ実行部204によるジョブの実行を開始させる(ステップS185)。そしてステップS171の処理に戻る。これにより、計算ノード2のメモリ及びCPU又はCPUコア等の資源は、ジョブ実行部204によるジョブの実行のために使用される。一方、ジョブの実行開始の行ではない場合(ステップS183:Noルート)、ジョブスケジューラ212は、最初のステージアウトの行であるか判断する(ステップS187)。
最初のステージアウトの行である場合(ステップS187:Yesルート)、ジョブスケジューラ212は、キャッシュサーバプログラムのプロセスを起動する(ステップS189)。そしてステップS171の処理に戻る。一方、最初のステージアウトの行ではない場合(ステップS187:Noルート)、ジョブスケジューラ212は、未処理の行が有るか判断する(ステップS191)。未処理の行が有る場合(ステップS191:Yesルート)、次の行について処理するため、ステップS171の処理に戻る。
一方、未処理の行が無い場合(ステップS191:Noルート)、処理を終了する。
以上のような処理を実施すれば、ステージイン及びステージアウトに要する時間を削減することができるようになる。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した計算ノード2及びキャッシュサーバ3の機能ブロック構成は必ずしも実際のプログラムモジュール構成に対応するものではない。
また、上で説明した各テーブルの構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
なお、キャッシュサーバ3において、キャッシュ32の容量が不足している場合又は不足することが予測される場合には、FIFO(First In First Out)又はLRU(Least Recently Used)等の方法で優先度を定めてディスクデータ格納部110への書き戻しを行うようにしてもよい。それでもキャッシュ32の容量の不足が避けられない場合には、ディスクデータ格納部110への書き戻しによってキャッシュサーバ3のメモリに空きが生じるまでの時間を、そのキャッシュサーバ3を経由する転送経路の転送時間に加算するようにしてもよい。
また、上で述べた例ではキャッシュ32をメモリ上に設けるようにしたが、例えばディスク装置上に設けるようにしてもよい。たとえディスク装置に設けるようにしたとしても、そのディスク装置を有するキャッシュサーバが計算ノード2と近い(例えば、少ないホップ数で到達可能である)場合には、ネットワーク遅延及びファイルサーバ11への負荷の集中等を抑制できる場合がある。
また、第2の実施の形態においては、ジョブスケジューラ212によってジョブが実行開始される際に、デフォルトの設定に従って資源の割当を行うようにしているが、以下のようにしてもよい。すなわち、ジョブの実行開始時に、IOバウンド状態にならないと予測される場合には、パーティション内においてキャッシュに割り当てるノードを通常よりも少なく設定するようにしてもよい。また、ジョブの実行開始時に、IOバウンド状態になると予測される場合、パーティション内においてキャッシュに割り当てるノードを通常よりも多く設定するようにしてもよい。
なお、上で述べた計算ノード2、キャッシュサーバ3及びファイルサーバ11は、コンピュータ装置であって、図33に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウェアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係る情報処理方法は、(A)複数のノードを含むネットワークにおける第1のノード上のディスク装置(例えばハードディスクドライブ等。SSD(Solid State Drive)等である場合もある)に格納されているデータを用いて実行すべきジョブについて、ディスク装置に対するアクセスの特性を示すデータを取得する処理と、(B)少なくともアクセスの特性を示すデータに基づき、ネットワークにおけるリソースのうちキャッシュに割り当てるリソースを決定する処理とを含む。
このようにすれば、複数のノードを含むネットワークにおいて、キャッシュを適切に配置することができるようになる。
また、上で述べたアクセスの特性を示すデータが、ディスク装置に対するアクセスによって転送されるデータ量の情報を含むようにしてもよい。そして、決定する処理において、(b1)データ量が第1の閾値以上である場合、ネットワークにおける他のノードから受信した帯域幅のデータを用いて、データの転送時間が最短になるような又はデータを転送するための帯域幅が最大になるように第1のノードまでの転送経路を決定し、当該転送経路上のノードのリソースをキャッシュに割り当てるようにしてもよい。このようにすれば、ディスク装置に対するアクセスを最大限高速化するようにリソースの割当を決定することができるようになる。
また、決定する処理において、(b2)ネットワークにおける各ノードを頂点とし、ネットワークにおける各通信路を辺とし、当該各通信路の帯域幅を重みとし、且つデータの転送方向を向きとした重み付き有向グラフを生成し、(b3)第1のノードまでの転送経路のうちキャッシュとして利用するメモリを有するノードまでの区間の経路を、重み付き有向グラフに対して第1のアルゴリズムを適用することにより決定し、(b4)第1のノードまでの転送経路のうちキャッシュとして利用するメモリを有するノードから第1のノードまでの区間の経路を、重み付き有向グラフに対して第1のアルゴリズムとは異なる第2のアルゴリズムを適用することにより決定するようにしてもよい。データの転送は、同じ転送経路であってもその区間によって特性が異なることがある。そこで、上で述べたようにすれば、区間に応じて適切なアルゴリズムを適用することができるようになる。
また、重み付き有向グラフを生成する処理において、(b21)ネットワークにおける複数のノードを仮想的に1つのノードとして頂点を生成し、且つネットワークにおける複数の通信路を仮想的に1つの通信路として辺を生成し、ネットワークにおける複数の通信路の各々の帯域幅の合計を当該複数の通信路に対応する仮想的な1つ通信路の帯域幅とすることにより重み付き有向グラフを生成するようにしてもよい。このようにすれば、転送経路を決定する際の計算の負荷を減らすことができるようになる。
また、取得する処理において、(a1)ジョブの実行に要するCPU時間及びディスク装置に対するアクセスのための処理に要する時間の情報をさらに取得してもよい。そして、決定する処理において、(b5)CPU時間及びディスク装置に対するアクセスのための処理に要する時間に基づき、複数のノードのリソースの割当方法を決定するようにしてもよい。このようにすれば、ジョブの実行又はディスク装置に対するアクセスのうちボトルネックとなっている方にリソースを割り当てることができるので、システムのスループットを向上させることができるようになる。
また、取得する処理において、(a2)ジョブの実行中にディスク装置に対するアクセスを監視することにより、アクセスの特性を示すデータを取得するようにしてもよい。このようにすれば、アクセスの特性を示すデータを適切に取得できるようになる。
また、取得する処理において、(a3)ジョブの実行中に、アクセスの特性を示すデータを格納するデータ格納部から当該アクセスの特性を示すデータを取得するようにしてもよい。例えば予めアクセスを示すデータが用意されている場合には、そのデータを利用することができるようになる。
また、取得する処理において、(a4)ジョブの実行前にジョブの実行プログラムを解析することによりアクセスの特性を示すデータを生成し、データ格納部に格納するようにしてもよい。このように、ジョブの実行プログラムを利用すれば、アクセスの特性を示すデータを予め用意しておくことができるようになる。
また、取得する処理において、(a5)ジョブの各実行段階について、アクセスの特性を示すデータを生成するようにしてもよい。そして、決定する処理において、(b6)ジョブの各実行段階について、ネットワークにおけるリソースのうちキャッシュに割り当てるリソースを決定するようにしてもよい。このようにすれば、ジョブの各実行段階のアクセス特性に応じて動的に対応を行うことができるようになる。
また、本情報処理方法が、(C)ジョブの実行を制御するためのプログラムを解析することにより又はジョブの実行を監視することにより、ジョブの実行開始又はジョブの実行終了を検出する処理と、(D)ジョブの実行開始又はジョブの実行終了が検出された場合に、コンピュータにおけるリソースのうちキャッシュに割り当てるリソースを増やす処理とをさらに含むようにしてもよい。このようにすれば、例えばステージイン又はステージアウトに合わせてキャッシュに割り当てるリソースを増やすことができるようになる。
また、上で述べた第1のアルゴリズム及び第2のアルゴリズムが、ダイクストラ法、エースター法、ベルマンフォード法、増加道法及びプリフロープッシュ法の少なくともいずれかであってもよい。このようにすれば、データの転送時間が最短になるような又はデータを転送するための帯域幅が最大になるような転送経路を適切に決定することができるようになる。
また、上で述べたキャッシュに割り当てるリソースが、CPU若しくはCPUコア又はメモリ若しくはメモリ領域のうち少なくともいずれかを含むようにしてもよい。このようにすれば、適切なリソースがキャッシュに割り当てられるようになる。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数のノードがネットワークを介して接続された並列計算機システムの制御プログラムにおいて、
前記複数のノードのいずれかに、
前記複数のノードのうち第1のノードの記憶装置に格納されたデータを用いて実行するジョブについて、前記記憶装置に格納されたデータに対するアクセスの特性を示す特性データを取得させ、
取得された前記特性データに基づき、前記並列計算機システム及び前記ネットワークが有する資源のうちキャッシュに割り当てる資源を決定させる
ことを特徴とする並列計算機システムの制御プログラム。
(付記2)
前記特性データが、前記記憶装置に格納されたデータに対するアクセスによって転送されるデータ量の情報を含み、
前記キャッシュに割り当てる資源を決定させる処理において、
前記データ量が第1の閾値以上である場合、前記複数のノードのうち他のノードから受信した帯域幅のデータを用いて、データの転送時間が最短になるように又はデータを転送するための帯域幅が最大になるように前記第1のノードまでの転送経路を決定させ、該転送経路上のノードの資源をキャッシュに割り当てさせる
ことを特徴とする、付記1記載の並列計算機システムの制御プログラム。
(付記3)
前記キャッシュに割り当てる資源を決定させる処理において、
前記複数のノードの各々を頂点とし、前記ネットワークにおける各通信路を辺とし、該各通信路の帯域幅を重みとし、且つデータの転送方向を向きとした重み付き有向グラフを生成させ、
前記第1のノードまでの転送経路のうちキャッシュに割り当てる資源を有するノードまでの区間の経路を、前記重み付き有向グラフに対して第1のアルゴリズムを適用することにより決定させ、
前記第1のノードまでの転送経路のうちキャッシュに割り当てる資源を有するノードから前記第1のノードまでの区間の経路を、前記重み付き有向グラフに対して前記第1のアルゴリズムとは異なる第2のアルゴリズムを適用することにより決定させる
ことを特徴とする、付記2記載の並列計算機システムの制御プログラム。
(付記4)
前記重み付き有向グラフを生成させる処理において、
前記複数のノードの一部を仮想的に1つのノードとして頂点を生成させ、前記ネットワークにおける複数の通信路を仮想的に1つの通信路として辺を生成させ、且つ前記ネットワークにおける複数の通信路の各々の帯域幅の合計を該複数の通信路に対応する仮想的な1つ通信路の帯域幅とすることにより前記重み付き有向グラフを生成させる
ことを特徴とする、付記3記載の並列計算機システムの制御プログラム。
(付記5)
前記特性データが、
前記ジョブの実行に要するCPU時間及び前記記憶装置に格納されたデータに対するアクセスのための処理に要する時間の情報を含み、
前記キャッシュに割り当てる資源を決定させる処理において、
前記CPU時間及び前記記憶装置に格納されたデータに対するアクセスのための処理に要する時間に基づき、前記複数のノードの資源の割当方法を決定させる
ことを特徴とする、付記1記載の並列計算機システムの制御プログラム。
(付記6)
前記特性データを取得させる処理において、
前記ジョブの実行中に前記記憶装置に格納されたデータに対するアクセスを監視することにより、前記特性データを取得させる
ことを特徴とする、付記1乃至5のいずれか1つ記載の並列計算機システムの制御プログラム。
(付記7)
前記特性データを取得させる処理において、
前記ジョブの実行中に、前記特性データを格納するデータ格納部から該特性データを取得させる
ことを特徴とする、付記1乃至5のいずれか1つ記載の並列計算機システムの制御プログラム。
(付記8)
前記特性データを取得させる処理において、
前記ジョブの実行前に前記ジョブの実行プログラムを解析することにより前記特性データを生成させ、前記データ格納部に格納させる
ことを特徴とする、付記7記載の並列計算機システムの制御プログラム。
(付記9)
前記特性データを取得させる処理において、
前記ジョブの各実行段階について前記特性データを取得させ、
前記キャッシュに割り当てる資源を決定させる処理において、
前記ジョブの各実行段階について前記キャッシュに割り当てる資源を決定させる
ことを特徴とする、付記1乃至8のいずれか1つ記載の並列計算機システムの制御プログラム。
(付記10)
前記複数のノードのいずれかに、さらに、
前記ジョブの実行を制御するためのプログラムを解析することにより又は前記ジョブの実行を監視することにより、前記ジョブの実行開始又は前記ジョブの実行終了を検出させ、
前記ジョブの実行開始又は前記ジョブの実行終了を検出させる処理において前記ジョブの実行開始又は前記ジョブの実行終了が検出された場合に、前記複数のノードのいずれかにおける資源のうちキャッシュに割り当てる資源を増加させる
ことを特徴とする、付記1乃至9のいずれか1つ記載の並列計算機システムのプログラム。
(付記11)
前記第1のアルゴリズム及び前記第2のアルゴリズムが、ダイクストラ法、エースター法、ベルマンフォード法、増加道法及びプリフロープッシュ法の少なくともいずれかである
ことを特徴とする付記3又は4記載のプログラム。
(付記12)
前記並列計算機システムが有する資源が、CPU若しくはCPUコア又はメモリ若しくはメモリ領域のうち少なくともいずれかを含む
ことを特徴とする付記1乃至11のいずれか1つ記載のプログラム。
(付記13)
複数のノードがネットワークを介して接続された並列計算機システムの制御方法において、
前記複数のノードのいずれかが、
前記複数のノードのうち第1のノードの記憶装置に格納されたデータを用いて実行するジョブについて、前記記憶装置に格納されたデータに対するアクセスの特性を示す特性データを取得し、
取得された前記特性データに基づき、前記並列計算機システム及び前記ネットワークが有する資源のうちキャッシュに割り当てる資源を決定する
ことを特徴とする並列計算機システムの制御方法。
(付記14)
複数のノードがネットワークを介して接続された並列計算機システムにおいて、
前記複数のノードのいずれかが、
前記複数のノードのうち第1のノードの記憶装置に格納されたデータを用いて実行するジョブについて、前記記憶装置に格納されたデータに対するアクセスの特性を示す特性データを取得する取得部と、
取得された前記特性データに基づき、前記並列計算機システム及び前記ネットワークが有する資源のうちキャッシュに割り当てる資源を決定する決定部と
を有することを特徴とする並列計算機システム。
1 情報処理システム 10 計算処理システム
11 ファイルサーバ 110 ディスクデータ格納部
2 計算ノード 200 処理部
201 IO処理部 202 取得部
203 設定部 204 ジョブ実行部
205 特性管理部 206 特性データ格納部
207 資源割当部 208 バンド幅算出部
209 帯域データ格納部 210 リスト格納部
211 割当データ格納部 212 ジョブスケジューラ
3 キャッシュサーバ 31 キャッシュ処理部
32 キャッシュ 4 ネットワーク
5 インターコネクト

Claims (10)

  1. 複数のノードがネットワークを介して接続された並列計算機システムの制御プログラムであって
    前記複数のノードのいずれかのノードである第1のノードに、
    前記複数のノードのうち第のノードの記憶装置に格納されたデータを用いて実行するジョブについて、前記記憶装置に格納されたデータに対するアクセスによって転送されるデータ量の情報を含む特性データを取得させ、
    前記データ量が第1の閾値以上である場合、前記複数のノードの各々を頂点とし、前記ネットワークにおける各通信路を辺とし、該各通信路の帯域幅を重みとし、且つデータの転送方向を向きとした重み付き有向グラフを生成させ、
    前記第1のノードと前記複数のノードのうち第3のノードとの間の通信について、データの転送時間が最短になる又はデータを転送するための帯域幅が最大になる第1の通信路を、前記重み付き有向グラフに対して第1のアルゴリズムを適用することにより決定させ、
    前記第3のノードと前記第2のノードとの間の通信について、データの転送時間が最短になる又はデータを転送するための帯域幅が最大になる第2の通信路を、前記重み付き有向グラフに対して前記第1のアルゴリズムとは異なる第2のアルゴリズムを適用することにより決定させ、
    前記第1の通信路及び前記第2の通信路を用いてデータを転送する時間が所定の条件を満たす場合、前記第3のノードの資源をキャッシュに割り当てさせる
    ことを特徴とする並列計算機システムの制御プログラム。
  2. 前記重み付き有向グラフを生成させる処理において、
    前記複数のノードの一部を仮想的に1つのノードとして頂点を生成させ、前記ネットワークにおける複数の通信路を仮想的に1つの通信路として辺を生成させ、且つ前記ネットワークにおける複数の通信路の各々の帯域幅の合計を該複数の通信路に対応する仮想的な1つ通信路の帯域幅とすることにより前記重み付き有向グラフを生成させる
    ことを特徴とする、請求項記載の並列計算機システムの制御プログラム。
  3. 前記特性データを取得させる処理において、
    前記ジョブの実行中に前記記憶装置に格納されたデータに対するアクセスを監視することにより、前記特性データを取得させる
    ことを特徴とする、請求項1又は2記載の並列計算機システムの制御プログラム。
  4. 前記特性データを取得させる処理において、
    前記ジョブの実行中に、前記特性データを格納するデータ格納部から該特性データを取得させる
    ことを特徴とする、請求項1乃至のいずれか1つ記載の並列計算機システムの制御プログラム。
  5. 前記特性データを取得させる処理において、
    前記ジョブの実行前に前記ジョブの実行プログラムを解析することにより前記特性データを生成させ、前記データ格納部に格納させる
    ことを特徴とする、請求項記載の並列計算機システムの制御プログラム。
  6. 記ジョブの各実行段階について前記特性データを取得する処理、前記重み付き有向グラフを生成する処理、前記第1の通信路を決定する処理、前記第2の通信路を決定する処理、及び前記第3のノードの資源をキャッシュに割り当てる処理を実行させる
    とを特徴とする、請求項1乃至のいずれか1つ記載の並列計算機システムの制御プログラム。
  7. 前記第1のノードに、さらに、
    前記ジョブの実行を制御するためのプログラムを解析することにより又は前記ジョブの実行を監視することにより、前記ジョブの実行開始又は前記ジョブの実行終了を検出させ、
    前記ジョブの実行開始又は前記ジョブの実行終了を検出させる処理において前記ジョブの実行開始又は前記ジョブの実行終了が検出された場合に、前記第3のノードにおける資源のうちキャッシュに割り当てる資源を増加させる
    ことを特徴とする、請求項1乃至のいずれか1つ記載の並列計算機システムの制御プログラム。
  8. 複数のノードがネットワークを介して接続された並列計算機システムの制御プログラムであって、
    前記複数のノードのいずれかのノードである第1のノードに、
    前記複数のノードのうち第2のノードの記憶装置に格納されたデータを用いて実行するジョブについて、前記ジョブの実行に要するCPU時間及び前記記憶装置に格納されたデータに対するアクセスのための処理に要する時間の情報を含む特性データを取得させ、
    前記CPU時間及び前記記憶装置に格納されたデータに対するアクセスのための処理に要する時間に基づき、前記複数のノードの資源の割当方法を決定させる
    ことを特徴とする並列計算機システムの制御プログラム。
  9. 複数のノードがネットワークを介して接続された並列計算機システムの制御方法であって
    前記複数のノードのいずれかのノードである第1のノードが、
    前記複数のノードのうち第のノードの記憶装置に格納されたデータを用いて実行するジョブについて、前記記憶装置に格納されたデータに対するアクセスによって転送されるデータ量の情報を含む特性データを取得し、
    前記データ量が第1の閾値以上である場合、前記複数のノードの各々を頂点とし、前記ネットワークにおける各通信路を辺とし、該各通信路の帯域幅を重みとし、且つデータの転送方向を向きとした重み付き有向グラフを生成し、
    前記第1のノードと前記複数のノードのうち第3のノードとの間の通信について、データの転送時間が最短になる又はデータを転送するための帯域幅が最大になる第1の通信路を、前記重み付き有向グラフに対して第1のアルゴリズムを適用することにより決定し、
    前記第3のノードと前記第2のノードとの間の通信について、データの転送時間が最短になる又はデータを転送するための帯域幅が最大になる第2の通信路を、前記重み付き有向グラフに対して前記第1のアルゴリズムとは異なる第2のアルゴリズムを適用することにより決定し、
    前記第1の通信路及び前記第2の通信路を用いてデータを転送する時間が所定の条件を満たす場合、前記第3のノードの資源をキャッシュに割り当てる
    ことを特徴とする並列計算機システムの制御方法。
  10. 複数のノードがネットワークを介して接続された並列計算機システムであって
    前記複数のノードのいずれかのノードである第1のノードが、
    前記複数のノードのうち第のノードの記憶装置に格納されたデータを用いて実行するジョブについて、前記記憶装置に格納されたデータに対するアクセスによって転送されるデータ量の情報を含む特性データを取得する取得部と、
    前記データ量が第1の閾値以上である場合、前記複数のノードの各々を頂点とし、前記ネットワークにおける各通信路を辺とし、該各通信路の帯域幅を重みとし、且つデータの転送方向を向きとした重み付き有向グラフを生成する生成部と、
    前記第1のノードと前記複数のノードのうち第3のノードとの間の通信について、データの転送時間が最短になる又はデータを転送するための帯域幅が最大になる第1の通信路を、前記重み付き有向グラフに対して第1のアルゴリズムを適用することにより決定し、
    前記第3のノードと前記第2のノードとの間の通信について、データの転送時間が最短になる又はデータを転送するための帯域幅が最大になる第2の通信路を、前記重み付き有向グラフに対して前記第1のアルゴリズムとは異なる第2のアルゴリズムを適用することにより決定する決定部と、
    前記第1の通信路及び前記第2の通信路を用いてデータを転送する時間が所定の条件を満たす場合、前記第3のノードの資源をキャッシュに割り当てる割当部と
    を有することを特徴とする並列計算機システム。
JP2012071235A 2012-03-27 2012-03-27 並列計算機、並列計算機の制御方法及び制御プログラム Expired - Fee Related JP5900088B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012071235A JP5900088B2 (ja) 2012-03-27 2012-03-27 並列計算機、並列計算機の制御方法及び制御プログラム
US13/832,266 US20130262683A1 (en) 2012-03-27 2013-03-15 Parallel computer system and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012071235A JP5900088B2 (ja) 2012-03-27 2012-03-27 並列計算機、並列計算機の制御方法及び制御プログラム

Publications (2)

Publication Number Publication Date
JP2013205891A JP2013205891A (ja) 2013-10-07
JP5900088B2 true JP5900088B2 (ja) 2016-04-06

Family

ID=49236590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012071235A Expired - Fee Related JP5900088B2 (ja) 2012-03-27 2012-03-27 並列計算機、並列計算機の制御方法及び制御プログラム

Country Status (2)

Country Link
US (1) US20130262683A1 (ja)
JP (1) JP5900088B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9847907B2 (en) * 2012-11-26 2017-12-19 Amazon Technologies, Inc. Distributed caching cluster management
US9602614B1 (en) 2012-11-26 2017-03-21 Amazon Technologies, Inc. Distributed caching cluster client configuration
US9529772B1 (en) 2012-11-26 2016-12-27 Amazon Technologies, Inc. Distributed caching cluster configuration
EP3018581B1 (en) * 2014-11-06 2017-03-08 Fujitsu Limited Data staging management system
US10156999B2 (en) * 2016-03-28 2018-12-18 Seagate Technology Llc Dynamic bandwidth reporting for solid-state drives
JP6696315B2 (ja) * 2016-06-17 2020-05-20 富士通株式会社 並列処理装置及びメモリキャッシュ制御方法
JP2022074864A (ja) * 2020-11-05 2022-05-18 富士通株式会社 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701482A (en) * 1993-09-03 1997-12-23 Hughes Aircraft Company Modular array processor architecture having a plurality of interconnected load-balanced parallel processing nodes
US6167438A (en) * 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
ATE479147T1 (de) * 2001-02-24 2010-09-15 Ibm Neuartiger massivparalleler supercomputer
JP2003085032A (ja) * 2001-09-10 2003-03-20 Kanazawa Inst Of Technology 自己組織化キャッシュ方法およびその方法を利用可能なキャッシュサーバ
US7362709B1 (en) * 2001-11-02 2008-04-22 Arizona Board Of Regents Agile digital communication network with rapid rerouting
US8473602B2 (en) * 2005-06-11 2013-06-25 Intellectual Business Machines Corporation System and method for autonomic system management through modulation of network controls
US8150946B2 (en) * 2006-04-21 2012-04-03 Oracle America, Inc. Proximity-based memory allocation in a distributed memory system
US7428629B2 (en) * 2006-08-08 2008-09-23 International Business Machines Corporation Memory request / grant daemons in virtual nodes for moving subdivided local memory space from VN to VN in nodes of a massively parallel computer system
US8150904B2 (en) * 2007-02-28 2012-04-03 Sap Ag Distribution of data and task instances in grid environments
US20090025004A1 (en) * 2007-07-16 2009-01-22 Microsoft Corporation Scheduling by Growing and Shrinking Resource Allocation
KR101440107B1 (ko) * 2008-01-28 2014-09-12 삼성전자주식회사 다중 코어 시스템에서 접근 시간에 기초한 메모리 관리방법 및 장치
JP2010009449A (ja) * 2008-06-30 2010-01-14 Nec Corp 分散情報配置システム
JP5052592B2 (ja) * 2009-12-28 2012-10-17 株式会社日立製作所 ストレージ管理システム、ストレージ階層管理方法及び管理サーバ
JP2012242975A (ja) * 2011-05-17 2012-12-10 Nippon Telegr & Teleph Corp <Ntt> 分散並列処理キャッシュ装置及び方法及び資源管理ノード及びプログラム
JP5880139B2 (ja) * 2012-02-29 2016-03-08 富士通株式会社 配置サーバ、情報処理システム、キャッシュ配置方法、キャッシュ配置プログラム

Also Published As

Publication number Publication date
US20130262683A1 (en) 2013-10-03
JP2013205891A (ja) 2013-10-07

Similar Documents

Publication Publication Date Title
JP5900088B2 (ja) 並列計算機、並列計算機の制御方法及び制御プログラム
US9864712B2 (en) Shared receive queue allocation for network on a chip communication
CN108431796B (zh) 分布式资源管理系统和方法
CN111344688B (zh) 云计算中资源提供的方法及系统
US8862744B2 (en) Optimizing traffic load in a communications network
JP4119239B2 (ja) 計算機資源割当方法、それを実行するための資源管理サーバおよび計算機システム
US9483187B2 (en) Quality of service implementation in a networked storage system with hierarchical schedulers
CN103098014B (zh) 存储系统
CN109962969B (zh) 用于云计算存储系统的自适应缓存负载均衡的方法和装置
JP5332065B2 (ja) クラスタ構成管理方法、管理装置及びプログラム
JP5664098B2 (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
JP7063284B2 (ja) 制御装置、制御方法及びプログラム
CN109684074A (zh) 物理机资源分配方法及终端设备
JP7442523B2 (ja) ワークロードの特性を使用したストレージ層間のデータ転送によるデータ性能の向上
JP5609730B2 (ja) 情報処理プログラム及び方法、転送処理装置
US9232000B1 (en) Method and system for balancing load across target endpoints on a server and initiator endpoints accessing the server
CN108540405B (zh) 网络资源迁移方法及装置
US9591099B1 (en) Server connection establishment over fibre channel using a block device access model
JP2014186411A (ja) 管理装置、情報処理システム、情報処理方法、及びプログラム
CN105635285B (zh) 一种基于状态感知的vm迁移调度方法
US20110055831A1 (en) Program execution with improved power efficiency
JP2010108300A (ja) 情報処理システム、及び情報処理システムにおけるi/oのパスへの割り当て方法
US9270786B1 (en) System and method for proxying TCP connections over a SCSI-based transport
US9509797B1 (en) Client communication over fibre channel using a block device access model
US9473590B1 (en) Client connection establishment over fibre channel using a block device access model

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160120

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160222

R150 Certificate of patent or registration of utility model

Ref document number: 5900088

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees