JP6794862B2 - 情報処理装置、プログラム、および情報処理方法 - Google Patents

情報処理装置、プログラム、および情報処理方法 Download PDF

Info

Publication number
JP6794862B2
JP6794862B2 JP2017021458A JP2017021458A JP6794862B2 JP 6794862 B2 JP6794862 B2 JP 6794862B2 JP 2017021458 A JP2017021458 A JP 2017021458A JP 2017021458 A JP2017021458 A JP 2017021458A JP 6794862 B2 JP6794862 B2 JP 6794862B2
Authority
JP
Japan
Prior art keywords
nodes
job
leaf
switch
links
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
JP2017021458A
Other languages
English (en)
Other versions
JP2018128858A (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 JP2017021458A priority Critical patent/JP6794862B2/ja
Priority to US15/890,629 priority patent/US10511474B2/en
Publication of JP2018128858A publication Critical patent/JP2018128858A/ja
Application granted granted Critical
Publication of JP6794862B2 publication Critical patent/JP6794862B2/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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Environmental & Geological Engineering (AREA)
  • Hardware Redundancy (AREA)

Description

本件は、情報処理装置、プログラム、および情報処理方法に関する。
プロセッサを含む複数のノードを備える並列コンピュータシステムにおいて、各ノードは、例えば、leaf(リーフ)スイッチやspine(スパイン)スイッチによって構成されるファットツリー(fat tree)のごときトポロジーネットワークを介して相互に通信可能に接続される(図1参照)。
このとき、複数のleafスイッチのそれぞれには複数のノードが接続され、複数のspineスイッチは、複数のリンクを介して複数のleafスイッチのそれぞれに接続される(図1参照)。
ファットツリーにおいて、各leafスイッチの配下に接続されるノードの数と、各leafスイッチに接続されるspineスイッチの数(リンク数)とは同一である。これにより、leafスイッチとspineスイッチとの間でリンクを介して行なわれるノード間通信に際し、バンド幅(帯域)を確保することができる。
上述のような並列コンピュータシステムにおいて、ユーザジョブは、ジョブスケジューラによって、当該ユーザジョブを処理する一以上のノードに割り当てられ、バッチ処理によって処理される。
その際、複数のノードにはシリアルナンバが付与されており、ユーザジョブを二以上のノードに割り当てる場合、ジョブスケジューラは、ジョブを割り当てられていない空き状態のノード(空きノード)のうち連番の二以上のノードを確保する。そして、ジョブスケジューラは、確保した連番の二以上のノードにユーザジョブを割り当てる(図2参照)。
特表2012−532481号公報
システムの運用中、leafスイッチとspineスイッチとの間の全てのリンクが正常に動作するわけではなく、リンクの中には故障したリンクも存在する。leafスイッチとspineスイッチとの間のリンクが故障すると、ジョブ割り当て後の通信において、帯域が狭くなって競合が発生し(図3参照)、システム性能の劣化を招く。
一つの側面では、本件明細書に開示の発明は、リンク故障に伴う競合発生を抑止し性能の劣化を防ぐことを目的とする。
本件の情報処理装置は、複数のノードと、前記複数のノードを接続される複数の第1スイッチと、複数のリンクを介して前記複数の第1スイッチのそれぞれを接続される複数の第2スイッチと、を有する情報処理システムにおいて、所定数のノードを用いるジョブを前記複数のノードのうちのノードに割り当てる処理部を有する。そして、前記処理部は、前記複数の第1スイッチの中から、前記所定数以上の空きノードが接続される第1スイッチを検索する。前記処理部は、前記所定数以上の空きノードが接続される第1スイッチが検索された場合、検索された第1スイッチに接続される前記所定数の空きノードに、前記ジョブを割り当てる。一方、前記処理部は、前記所定数以上の空きノードが接続される第1スイッチが検索されなかった場合、前記スケジューラは、二以上の前記第1スイッチのそれぞれにおいて、各第1スイッチに接続される前記空きノードであって、各第1スイッチに接続される前記リンクのうち有効なリンクの数を超えない数の空きノードに、前記ジョブを割り当てる。
リンク故障に伴う競合発生を抑止し性能の劣化を防ぐことができる。
並列コンピュータシステムの構成の一例を示すブロック図である。 図1に示す並列コンピュータシステムにおける各ノードへのジョブ割り当て例を示す図である。 図1に示す並列コンピュータシステムにおいてリンク故障に伴い競合が発生する状態の例を示す図である。 図1に示す並列コンピュータシステムに適用される本実施形態のジョブスケジューリング手法の概要を説明する図である。 本発明の一実施形態としてのジョブスケジューリング機能を実現する情報処理装置のハードウェア構成の一例を示すブロック図である。 本発明の一実施形態としてのジョブスケジューリング機能を有する情報処理装置の機能構成の一例を示すブロック図である。 図6に示す本実施形態の情報処理装置を適用される並列コンピュータシステムの全体構成の一例を示すブロック図である。 図7に示す並列コンピュータシステムにおけるサブネットマネージャの動作を説明するブロック図である。 本実施形態の情報処理装置によるジョブスケジューリング動作を説明するフローチャートである。 単一のleafスイッチ配下のノードにジョブを割り当てる際のジョブスケジューリング動作を説明するフローチャートである。 複数のleafスイッチ配下のノードにジョブを割り当てる際のジョブスケジューリング動作を説明するフローチャートである。 本実施形態による並列コンピュータシステムの性能改善例を説明する図である。 単一のleafスイッチ配下のノードにジョブを割り当てる際のジョブスケジューリング動作の変形例を説明するフローチャートである。 図13に示すジョブスケジューリング動作の変形例による並列コンピュータシステムの性能改善例を説明する図である。 複数のleafスイッチ配下のノードにジョブを割り当てる際のジョブスケジューリング動作の変形例を説明するフローチャートである。 図15に示すジョブスケジューリング動作の変形例による並列コンピュータシステムの性能改善例を説明する図である。
以下に、図面を参照し、本願の開示する情報処理装置、プログラム、および情報処理方法の実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
〔1〕本実施形態の概要
図1は、並列コンピュータシステム(情報処理システム,スーパーコンピュータシステム)1の構成の一例を示すブロック図である。図1に示すように、並列コンピュータシステム1においては、プロセッサを含む複数のノード100が備えられる。各ノード100は、例えば、leafスイッチ200やspineスイッチ300によって構成されるファットツリーのごときトポロジーネットワークを介して相互に通信可能に接続される。
このとき、複数のleafスイッチ200のそれぞれには複数のノード100が接続され、複数のspineスイッチ300は、複数のリンクLを介して複数のleafスイッチ200のそれぞれに接続される。つまり、各leafスイッチ200は、複数のノード100を直接接続され、各leafスイッチ200に直接接続された複数のノード100の間を相互に通信可能に接続する。各spineスイッチ300は、複数のリンクLおよび複数のleafスイッチ200を介して全てのノード100の間を相互に通信可能に接続する。
例えば、図1に示す並列コンピュータシステム1では、16個のノードが備えられ、各ノード100には、ノード番号#1〜#16がシリアルに付与される。ここで、任意のノードを指す場合、符号100を用いて“ノード100”と表記する。特定のノードを指す場合、ノード番号#k(k=1〜16の整数)を用いて“ノード#k”と表記する。
また、図1に示す例では、4個のleafスイッチ200および4個のspineスイッチ300が備えられ、各スイッチ200または300には、スイッチ番号#1〜#4がシリアルに付与される。ここで、任意のleafスイッチまたはspineスイッチを指す場合、符号200または300を用いて“leafスイッチ200”または“spineスイッチ300”と表記する。特定のleafスイッチまたはspineスイッチを指す場合、スイッチ番号#i,#j(i,j=1〜4の整数)を用いて“leaf#i”または“spine#j”と表記する。なお、leafスイッチおよびspineスイッチは、それぞれ、第1スイッチおよび第2スイッチに相当し、leafSWおよびspineSWと表記される場合もある。
さらに、図1に示す例では、leafスイッチ200とspineスイッチ300との間は、並列計算用高速ネットワーク(InfiniBand)400(図7参照)によるリンクLによって接続される。ここで、任意のリンクを指す場合、符号Lを用いて“リンクL”と表記する。leaf#iとleaf#jとを結ぶ特定のリンクを指す場合、スイッチ番号#i,#jを用いて“リンクLij”と表記する。図1に示す例では、16本のリンクL11〜L14,L21〜L24,L31〜L34およびL41〜L44が備えられる。
ファットツリーにおいて、各leafスイッチ200の配下に接続されるノード100の数と、各leafスイッチ200に接続されるspineスイッチ300の数(リンク数)とは同一になっている。図1に示す例では、各leafスイッチ200の配下には4個のノード100が接続され、各spineスイッチ300の配下には4個のleafスイッチ200が接続される。つまり、spine#1の配下には、それぞれリンクL11〜L14を介して4個のleaf#1〜leaf#4が接続され、spine#2の配下には、それぞれリンクL21〜L24を介して4個のleaf#1〜leaf#4が接続される。同様に、spine#3の配下には、それぞれリンクL31〜L34を介して4個のleaf#1〜leaf#4が接続され、spine#4の配下には、それぞれリンクL41〜L44を介して4個のleaf#1〜leaf#4が接続される。また、leaf#1の配下には4個のノード#1〜#4が接続され、leaf#2の配下には4個のノード#5〜#8が接続され、leaf#3の配下には4個のノード#9〜#12が接続され、leaf#4の配下には4個のノード#13〜#16が接続される。このような構成により、leafスイッチ200とspineスイッチ300との間でリンクLを介して行なわれるノード間通信に際し、バンド幅(帯域)を確保することができる。
上述した並列コンピュータシステム1において、ユーザジョブは、ジョブスケジューラによって、当該ユーザジョブを処理する一以上のノード100に割り当てられ、バッチ処理によって処理される。
その際、ノード100に付与されるシリアルナンバに従ってユーザジョブを二以上のノード100に割り当てる場合、既存技術では、ジョブを割り当てられていない空き状態のノードのうち連番の二以上のノード100が確保される。そして、確保された連番の二以上のノード100にユーザジョブが割り当てられる。
例えば、ノード#1〜#16が全て空き状態である時に、8個のノード100を使用するジョブA、4個のノード100を使用するジョブB、および2個のノード100を使用するジョブCをこの順で割り当てると、その割り当ては図2に示すように行なわれる。つまり、まず、ジョブAについて、leaf#1およびleaf#2の配下における空き状態の8個のノード#1〜#8が確保され、これらのノード#1〜#8にジョブAが割り当てられる(図2の最上段参照)。ついで、ジョブBについて、leaf#3の配下における空き状態の4個のノード#9〜#12が確保され、これらのノード#9〜#12にジョブBが割り当てられる(図2の中段参照)。そして、ジョブCについて、leaf#4の配下における空き状態の2個のノード#13,#14が確保され、これらのノード#13,14にジョブCが割り当てられる(図2の最下段参照)。なお、図2は、図1に示す並列コンピュータシステム1における各ノード100へのジョブ割り当て例を示す図である。
ところで、並列コンピュータシステム1の運用中、leafスイッチ200とspineスイッチ300との間の全てのリンクLが正常に動作するわけではなく、リンクLの中には故障(リンクダウン)したリンクも存在する。leafスイッチ200とspineスイッチ300との間のリンクLが故障(リンクダウン)すると、ジョブ割り当て後の通信において、帯域が狭くなって、図3に示すように競合が発生し、システム性能の劣化を招く。
図3は、図1に示す並列コンピュータシステム1においてリンク故障(リンクダウン)に伴い競合が発生する状態の例を示す図である。図3に示す例では、リンク21,L22,L32,L33において故障(リンクダウン)が発生した状態で、図2の最上段のごとくノード#1〜#8にジョブAを割り当てた状態が示されている。このとき、例えば、正常(有効)なリンクL11,L12,L42において、競合が発生し、システム性能の劣化を招くことになる。
そこで、本実施形態では、図1に示すような情報処理システム1において、所定数のノードを用いるジョブをノード100に割り当てる際、まず、複数のleafスイッチ200の中から、所定数以上の空きノード100が接続されるleafスイッチ200が検索される。なお、空きノード100は、ジョブを割り当てられていない空き状態のノード100である。
所定数以上の空きノード100が接続される一のleafスイッチ200が検索された場合、検索されたleafスイッチ200に接続される所定数の空きノード100に、ジョブが割り当てられる。
一方、所定数以上の空きノード100が接続されるleafスイッチ200が検索されなかった場合、以下の割り当て動作が行なわれる。つまり、二以上のleafスイッチ200のそれぞれにおいて、各leafスイッチ200に接続される空きノード100であって、各leafスイッチ200に接続されるリンクLのうち有効なリンクの数を超えない数の空きノード100に、ジョブが割り当てられる。
例えば、ノード#1〜#16が全て空き状態であるが、leaf#1〜leaf#4に接続される4本のリンクのうち故障リンク数がそれぞれ1,2,1,0である時に、図2と同様のジョブ割り当てを行なった場合の、本実施形態によるジョブ割り当て動作を図4に示す。図4は、図1に示す並列コンピュータシステム1に適用される本実施形態のジョブスケジューリング手法の概要を説明する図である。なお、故障リンク数がそれぞれ1,2,1,0ということは、換言すると、leaf#1〜leaf#4に接続される4本のリンクのうち有効なリンク数は、それぞれ3,2,3,4である。
図4に示すように、8個のノード100を使用するジョブAについては、leaf#1配下の3個のノード#1〜#3と、leaf#2配下の2個のノード#5,#6と、leaf#3配下の3個のノード#9〜#11とに割り当てられる(図4の最上段参照)。
このように、本実施形態では、一つのジョブAを、異なるleafスイッチ200を跨いで割り当てる際、各leafスイッチ200において、上位側の有効なリンク(経路)の数を超えない数の空きノード100にジョブAが割り当てられる。つまり、異なるleafスイッチ200に属するノード100に割り当てる際、各leafスイッチ200において、上位側の有効なリンクの数を超えない数の空きノード100にしか、ジョブAが割り当てられないように、ジョブ割り当てが制御される。これにより、ジョブ割り当て後の通信において、リンク故障に伴う競合発生が抑止され、システム性能の劣化、例えば単位時間あたりのデータ転送量の低下を、防ぐことができる。
ついで、図4に示すように、ジョブAの割り当て後に4個のノード100を使用するジョブBを割り当てる際には、4個の空きノード100が接続される一のleaf#4が検索される。したがって、ジョブBは、leaf#4配下の4個のノード#13〜#16に割り当てられる(図4の中段参照)。
また、図4に示すように、ジョブBの割り当て後に2個のノード100を使用するジョブCを割り当てる際には、2個の空きノード100が接続される一のleaf#2が検索される。したがって、ジョブCは、leaf#2配下の2個のノード#7,#8に割り当てられる(図4の最下段参照)。
このとき、leaf#2においては、故障リンク数が2である状態で、4個のノード#5〜#8の全てにジョブが割り当てられている。しかし、リンクL12,L22,L32,L42を使用する可能性の高いノードは、ジョブAを割り当てられた2個のノード#5,#6であり、2個のノードしか使用しないジョブCを割り当てられた2個のノード#7,#8がリンクL12,L22,L32,L42を使用する可能性は低い。したがって、図4の最下段に示すように、故障リンク数が2である状態で4個のノード#5〜#8の全てにジョブを割り当てたとしても、図3に示すような競合が発生する可能性は低い。
〔2〕ジョブスケジューリング機能を実現する本実施形態の情報処理装置のハードウェア構成
まず、図5を参照しながら、本実施形態のジョブスケジューリング機能を実現する情報処理装置(コンピュータ,ジョブスケジューラ)10のハードウェア構成について説明する。図5は、当該ハードウェア構成の一例を示すブロック図である。
コンピュータ10は、例えば、プロセッサ11,RAM(Random Access Memory)12,HDD(Hard Disk Drive)13,グラフィック処理装置14,入力インタフェース15,光学ドライブ装置16,機器接続インタフェース17およびネットワークインタフェース18を構成要素として有する。これらの構成要素11〜18は、バス19を介して相互に通信可能に構成される。
プロセッサ(処理部)11は、コンピュータ10全体を制御する。プロセッサ11は、マルチプロセッサであってもよい。プロセッサ11は、例えばCPU(Central Processing Unit),MPU(Micro Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、プロセッサ11は、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
RAM(記憶部)12は、コンピュータ10の主記憶装置として使用される。RAM12には、プロセッサ11に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM12には、プロセッサ11による処理に必要な各種データが格納される。アプリケーションプログラムには、コンピュータ10によって本実施形態のジョブスケジューリング機能を実現するためにプロセッサ11によって実行されるジョブスケジューリングプログラム(プログラム;図6の符号31参照)が含まれてもよい。
HDD(記憶部)13は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行なう。HDD13は、コンピュータ10の補助記憶装置として使用される。HDD13には、OSプログラム,アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、SCM(Storage Class Memory)や、フラッシュメモリ等の半導体記憶装置(SSD:Solid State Drive)を使用することもできる。
グラフィック処理装置14には、モニタ(表示部,出力部)14aが接続されている。グラフィック処理装置14は、プロセッサ11からの命令に従って、画像をモニタ14aの画面に表示させる。モニタ14aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置等が挙げられる。
入力インタフェース15には、キーボード15aおよびマウス15bが接続されている。入力インタフェース15は、キーボード15aやマウス15bから送られてくる信号をプロセッサ11に送信する。なお、マウス15bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル,タブレット,タッチパッド,トラックボール等が挙げられる。
光学ドライブ装置16は、レーザ光等を利用して、光ディスク16aに記録されたデータの読み取りを行なう。光ディスク16aは、光の反射によって読み取り可能にデータを記録された可搬型の非一時的な記録媒体である。光ディスク16aには、DVD(Digital Versatile Disc),DVD−RAM,CD−ROM(Compact Disc Read Only Memory8),CD−R(Recordable)/RW(ReWritable)等が挙げられる。
機器接続インタフェース17は、コンピュータ10に周辺機器を接続するための通信インタフェースである。例えば、機器接続インタフェース17には、メモリ装置17aやメモリリーダライタ17bを接続することができる。メモリ装置17aは、機器接続インタフェース17との通信機能を搭載した非一時的な記録媒体、例えばUSB(Universal Serial Bus)メモリである。メモリリーダライタ17bは、メモリカード17cへのデータの書き込み、またはメモリカード17cからのデータの読み出しを行なう。メモリカード17cは、カード型の非一時的な記録媒体である。
ネットワークインタフェース18は、ネットワーク18aに接続される。ネットワークインタフェース18は、ネットワーク18aを介して、他のコンピュータまたは通信機器との間でデータの送受信を行なう。
以上のようなハードウェア構成を有するコンピュータ10によって、本実施形態のジョブスケジューリング機能を実現することができる。
なお、コンピュータ10は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム(後述するジョブスケジューリングプログラム31等)を実行することにより、本実施形態のジョブスケジューリング機能を実現する。コンピュータ10に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、コンピュータ10に実行させるプログラムをHDD13に格納しておくことができる。プロセッサ11は、HDD13内のプログラムの少なくとも一部をRAM12にロードし、ロードしたプログラムを実行する。
また、コンピュータ10(プロセッサ11)に実行させるプログラムを、光ディスク16a,メモリ装置17a,メモリカード17c等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ11からの制御により、HDD13にインストールされた後、実行可能になる。また、プロセッサ11が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
〔3〕ジョブスケジューリング機能を有する本実施形態の情報処理装置の機能構成
次に、図6を参照しながら、本実施形態のジョブスケジューリング機能を有する情報処理装置(コンピュータ,ジョブスケジューラ)10の機能構成について説明する。図6は、当該機能構成の一例を示すブロック図である。
コンピュータ10は、ジョブスケジューリング機能を果たす。つまり、コンピュータ10は、図1と同様の情報処理システム1において、所定数のノード100を用いるジョブを複数のノード100のうちの一以上のノード100に割り当てるジョブスケジューラ10としての機能を果たす。このため、コンピュータ10は、図6に示すように、少なくとも処理部20,記憶部30,入力部40および表示部50としての機能を有している。
処理部20は、例えば図5に示すようなプロセッサ11である。処理部20は、ジョブスケジューリングプログラム31を実行することで、後述する検索部21,割当部22およびソート部23としての機能を果たす。
記憶部30は、例えば図5に示すようなRAM12,HDD13であり、ジョブスケジューリング機能を実現するための各種情報を記憶し保存する。当該各種情報としては、上述したジョブスケジューリングプログラム31のほか、故障箇所情報32,ジョブ情報33,ノード情報34などが含まれる。
ジョブスケジューリングプログラム31は、前述の通り、処理部20(プロセッサ11)に、後述する検索部21,割当部22およびソート部23としての機能を実行させるものである。
故障箇所情報32は、図7および図8を参照しながら後述するサブネットマネージャ500によって検出される、故障(リンクダウン)したリンクに関する情報であり、例えば故障したリンクを特定するリンク識別情報を含む。
ジョブ情報33は、並列コンピュータシステム1のノードに割り当てられるジョブに関する情報であり、例えば、ジョブを特定するジョブ識別情報や、当該ジョブの処理に使用するノード100の数などを含む。
ノード情報34は、ジョブ割当対象である、例えば図1に示すような並列コンピュータシステム1を構成するノード100に関する情報である。ノード情報34は、例えば、各ノード100を特定するノード識別情報や、各ノード100に割り当てられたジョブの情報や、各ノード100が空きノードであるか否かを示す情報や、ノード100間を接続するleafスイッチ200やspineスイッチ300に関する情報を含む。
入力部40は、例えば図5に示すようなキーボード15aおよびマウス15bであり、ユーザによって操作され、ジョブスケジューリングに係る各種指示を行なう。なお、マウス15bに代え、タッチパネル,タブレット,タッチパッド,トラックボール等が用いられてもよい。
表示部50は、例えば図5に示すようなモニタ14aであり、その表示状態を、グラフィック処理装置14を介して制御される。本実施形態において、表示部50は、例えば、ジョブスケジューリングに係る各種情報を表示出力する。
次に、処理部20(プロセッサ11)によって実現される、検索部21,割当部22およびソート部23としての機能について説明する。
検索部21は、所定数のノードを用いるジョブをノード100に割り当てる際、複数のleafスイッチ200の中から、所定数以上の空きノード100が接続されるleafスイッチ200を検索する。このとき、検索部21は、例えば、記憶部30のノード情報34における空きノードであるか否かを示す情報や各leafスイッチ200に関する情報を参照してleafスイッチ200の検索を行なう。
割当部22は、検索部21によって所定数以上の空きノード100が接続される単一のleafスイッチ200が検索された場合、当該単一のleafスイッチ200に接続される所定数の空きノード100に、ジョブを割り当てる(図4の中段および最下段参照)。
一方、検索部21によって所定数以上の空きノード100が接続されるleafスイッチ200が検索されなかった場合、割当部22は、以下の割り当て動作を行なう。つまり、割当部22は、二以上のleafスイッチ200のそれぞれにおいて、各leafスイッチ200に接続される空きノード100であって、各leafスイッチ200に接続されるリンクLのうち有効なリンクの数を超えない数の空きノード100に、ジョブを割り当てる(図4の最上段参照)。このとき、割当部22によるジョブ割り当ては、記憶部30の故障箇所情報32,ジョブ情報33およびノード情報34を参照して行なわれる。
なお、割当部22によるジョブ割り当て結果は、記憶部30のノード情報34などに登録される。また、検索部21および割当部22によって行なわれる、本実施形態のジョブスケジューリング動作については、図9〜図12を参照しながら後述する。
ソート部23としての機能は、図13〜図16を参照しながら後述する二つの変形例において用いられるものである。
ソート部23の一例は、検索部21による検索動作に先立ち、複数のleafスイッチ200を、各leafスイッチ200に接続されるリンクLのうち故障したリンクの数が多い順にソートする。検索部21は、ソート部23によってソートした順に、各leafスイッチ200に所定数以上の空きノードが接続されているかを判断することによって、所定数以上の空きノードが接続されるleafスイッチ200の検索を行なう。当該ソート部23の一例の動作については、図13および図14を参照しながら後述する。
ソート部23の他例は、割当部22による割り当て動作に先立ち、複数のleafスイッチ200を、各leafスイッチ200に接続されるリンクLのうち故障したリンクの数が少ない順にソートする。割当部22は、ソート部23によってソートした順に、各leafスイッチ200に接続される有効なリンクの数を超えない数の空きノードに対する、ジョブの割り当てを行なう。当該ソート部23の他例の動作については、図15および図16を参照しながら後述する。
〔4〕本実施形態の情報処理装置を適用される並列コンピュータシステムの構成
次に、図7および図8を参照しながら、本実施形態のジョブスケジューラ10を適用される並列コンピュータシステム1の構成について説明する。図7は、その全体構成の一例を示すブロック図であり、図8は、図7に示す並列コンピュータシステム1におけるサブネットマネージャ(SM)500の動作を説明するブロック図である。
図7に示すように、本実施形態の並列コンピュータシステム1において、図1に示す例と同様、各ノード100は、leafスイッチ200およびspineスイッチ300によって構成されるファットツリーのごときトポロジーネットワークを介して相互に通信可能に接続される。また、leafスイッチ200とspineスイッチ300との間は、並列計算用高速ネットワーク(InfiniBand)400によるリンクLによって接続される。
そして、本実施形態の並列コンピュータシステム1においては、後述するサブネットマネージャ(SM)500と、前述したジョブスケジューラ10と、が備えられる。
サブネットマネージャ(SM)500は、並列計算用高速ネットワーク400(リンクL)の状態を監視し、リンク故障(リンク故障)を検出した場合に迂回路を設定する機能を有する。サブネットマネージャ500は、例えばleaf#4に接続され、leaf#4およびリンクLを介して並列計算用高速ネットワーク400の状態を監視する。サブネットマネージャ500の具体的な動作、例えば故障箇所検出動作や迂回路設定動作については、図8を参照しながら後述する。
ジョブスケジューラ10は、制御系ネットワーク(Ethernet:登録商標)600を介して各ノード100に接続されており、当該制御系ネットワーク600を介して各ノード100に対するジョブの割り当て・投入を行なう。ジョブスケジューラ10には、サブネットマネージャ500によって検出された故障箇所に関する情報が、サブネットマネージャ500から通知され、ジョブスケジューラ10の記憶部30に故障箇所情報32として保存される。
図7に示す並列コンピュータシステム1において、サブネットマネージャ500とジョブスケジューラ10とは、別筐体のコンピュータ等として構成しているが、単一のコンピュータ等が、サブネットマネージャ500およびジョブスケジューラ10の両方の機能を果たすように構成してもよい。
図7では、リンクL21,L22,L32,L33で故障が発生している例が示されており、これらのリンク故障箇所は、サブネットマネージャ500によって検出され、ジョブスケジューラ10に通知される。ここで、サブネットマネージャ500によって行なわれる、故障箇所であるリンクL21の検出動作や、リンクL21の迂回路の設定動作について、図8を参照しながら説明する。
まず、リンクL21の故障(リンクダウン)は、spine#2およびleaf#1によって検出されると、トラップ動作によってサブネットマネージャ500に通知される。このとき、spine#2による故障検出は、リンクL24およびleaf#4を介してサブネットマネージャ500に通知され、leaf#1による故障検出は、リンクL31,spine#3,リンクL34およびleaf#4を介してサブネットマネージャ500に通知される。
spine#2およびleaf#1からの故障通知を受けたサブネットマネージャ500は、leaf#4およびリンクL24を介して、spine#2のポート状態を確認するとともに、leaf#4,リンクL34,spine#3およびリンクL31を介して、leaf#1のポート状態を確認する。
これにより、サブネットマネージャ500は、リンクL21が切断されたことを検知し、その旨をジョブスケジューラ10に故障箇所情報32として通知する。また、サブネットマネージャ500は、故障したリンクL21を迂回する新しいルーティングを、リンクL24を介してleaf#4およびspine#2に設定するとともに、leaf#4,リンクL34,spine#3およびリンクL31を介してleaf#1に設定する。
〔5〕ジョブスケジューリング機能を有する本実施形態の情報処理装置の動作
次に、図9〜図12を参照しながら、本実施形態のジョブスケジューラ10による具体的なジョブスケジューリング動作について説明する。
まず、図9に示すフローチャート(ステップS1〜S3)に従って、本実施形態のジョブスケジューラ(情報処理装置)10によるジョブスケジューリング動作について説明する。ジョブスケジューラ10は、ステップS1において、単一のleafスイッチ配下のノード100にジョブを割り当てることが可能な場合、当該単一のleafスイッチ配下のノード100に当該ジョブを割り当てる。ステップS1の処理については、図10を参照しながら後述する。
単一のleafスイッチ200配下のノード100にジョブを割り当てることができない場合、つまりジョブを複数のleafスイッチ配下に跨って割り当てる場合、ジョブスケジューラ10は、ステップS2の処理を行なう。ステップS2において、ジョブスケジューラ10は、当該ジョブを割り当てる各leafスイッチ200において、割り当てジョブ数(一のleafスイッチ200において当該ジョブを割り当てられるノードの数)が、有効な上位リンク数を超えないように、ジョブを割り当てる。ステップS2の処理については、図11を参照しながら後述する。
ステップS1およびS2のいずれにおいてもジョブを割り当てることができなかった場合、ジョブスケジューラ10は、上位リンクの有効/無効に関係なく、とにかくジョブを空きノードに割り当てて(ステップS3)、ジョブスケジューリング動作(ジョブ割り当て処理)を終了する。
ついで、図10に示すフローチャート(ステップS11〜S14)に従って、単一のleafスイッチ配下のノード100にジョブを割り当てる際のジョブスケジューリング動作(図9のステップS1の処理)について説明する。
ジョブスケジューラ10(検索部21)は、ステップS11において、処理対象の一のleafスイッチ(対象leafスイッチ)配下の空きノード100の数(空きノード数)と、割り当て対象のジョブで用いるノード100の数(ジョブノード数;上記所定数)と、を比較する。ここで、対象leafスイッチ200は、複数のleafスイッチ200の中から、例えばスイッチ番号#iの昇順あるいは降順に選択されてよい。
対象leafスイッチ200の空きノード数がジョブノード数以上である場合(ステップS11のYESルート)、対象leafスイッチ200が、所定数以上の空きノード100が接続される単一のleafスイッチ200として検索される。このとき、ジョブスケジューラ10(割当部22)は、ステップS12において、対象leafスイッチ200に接続される空きノード100に、割り当て対象のジョブを割り当てて、ジョブ割り当て処理を終了する。
一方、対象leafスイッチ200の空きノード数がジョブノード数未満である場合(ステップS11のNOルート)、ジョブスケジューラ10(検索部21)は、ステップS13において、全てのleafスイッチ200に対しステップS11の処理を行なったか否かを確認する。
全てのleafスイッチ200に対しステップS11の処理を行なっていない場合(ステップS13のNOルート)、ジョブスケジューラ10(検索部21)は、ステップS14において、次のleafスイッチ200を対象leafスイッチ200として選択し、ステップS11の処理に戻る。
全てのleafスイッチ200に対しステップS11の処理を行なった場合(ステップS13のYESルート)、割り当て対象のジョブを単一のleafスイッチ配下のノード100に割り当てることができない場合であると判断される。つまり、ジョブスケジューラ10(割当部22)は、割り当て対象のジョブが複数のleafスイッチ配下に跨って割り当てられる場合に相当すると判断する。そして、ジョブスケジューラ10は、図9のステップS2(図11のステップS21)の処理へ移行する。
ついで、図11に示すフローチャート(ステップS21〜S27)に従って、複数のleafスイッチ配下のノード100にジョブを割り当てる際のジョブスケジューリング動作(図9のステップS2の処理)について説明する。
まず、ジョブスケジューラ10(割当部22)は、ステップS21において、ノード残数Restをジョブノード数(上記所定数)に設定する。この後、ジョブスケジューラ10(割当部22)は、ステップS22において、N=Min(対象leafSW配下の空きノード数,上位有効リンク数)を演算する。ここで、N=Min(x,y)は、x>yのときN=yとなり、x=yのときN=x=yとなり、x<yのときN=xとなる関数である。
そして、ジョブスケジューラ10(割当部22)は、ステップS23において、ノード残数RestをRest−Nに置き換えてから、ステップS24において、ノード残数Restが0以下であるか否かを判断する。
ノード残数Restが0以下である場合(ステップS24のYESルート)、ジョブスケジューラ10(割当部22)は、必要な数(つまり上記所定数)のノード100を確保できたものと判断する。そして、ジョブスケジューラ10(割当部22)は、ステップS25において、走査済みのleafSW配下のノード100に、割り当て対象のジョブを割り当てて、ジョブ割り当て処理を終了する。
一方、ノード残数Restが0よりも大きい場合(ステップS24のNOルート)、ジョブスケジューラ10(割当部22)は、まだノードが足りないと判断し、ステップS26において、全てのleafスイッチ200に対しステップS22〜S24の処理を行なったか否かを確認する。
全てのleafスイッチ200に対しステップS22〜S24の処理を行なっていない場合(ステップS26のNOルート)、ジョブスケジューラ10(割当部22)は、ステップS27において、次のleafスイッチ200を対象leafスイッチ200として選択し、ステップS22の処理に戻る。ここでも、対象leafスイッチ200は、複数のleafスイッチ200の中から、例えばスイッチ番号#iの昇順あるいは降順に選択されてよい。
全てのleafスイッチ200に対しステップS22〜S24の処理を行なった場合(ステップS26のYESルート)、割り当て対象のジョブを複数のleafスイッチ配下に跨って割り当てることができない場合に相当すると判断する。そして、ジョブスケジューラ10は、図9のステップS3の処理へ移行し、上位リンクの有効/無効に関係なく、とにかくジョブを空きノードに割り当てて、ジョブ割り当て処理を終了する。
ここで、図4に示した例について、図10および図11に示すフローチャートに従ってジョブ割り当て処理を行なった場合の、ジョブスケジューラ10の具体的な動作は、以下の通りである。なお、ここでも、ノード#1〜#16が全て空き状態であるが、leaf#1〜leaf#4に接続される4本のリンクのうち故障リンク数がそれぞれ1,2,1,0である時に、図2と同様のジョブ割り当てを行なった場合について説明する。このとき、leaf#1〜leaf#4に接続される4本のリンクのうち有効なリンク数はそれぞれ3,2,3,4である。
ジョブスケジューラ10は、最初に、8個のノード100を使用するジョブAの割り当てを行なうと、図10のステップS13のYESルートから図11に示す処理(図9のステップS2の処理)へ移行する。そして、ノード残数Restがジョブノード数8に設定され(ステップS21)、対象leaf#1について、N=Min(空きノード数4,上位有効リンク数3)=3が算出される(ステップS22)。したがって、ノード残数Rest=Rest−N=8−3=5が算出され(ステップS23)、ノード残数Rest=5>0であると判断される(ステップS24のNOルート)。このとき、ステップS26でNO判定となり、次のleaf#2が対象leafスイッチ200として選択される(ステップS27)。
この後、対象leaf#2について、N=Min(空きノード数4,上位有効リンク数2)=2が算出される(ステップS22)。したがって、ノード残数Rest=Rest−N=5−2=3が算出され(ステップS23)、ノード残数Rest=3>0であると判断される(ステップS24のNOルート)。このときも、ステップS26でNO判定となり、次のleaf#3が対象leafスイッチ200として選択される(ステップS27)。
そして、対象leaf#3について、N=Min(空きノード数4,上位有効リンク数3)=3が算出される(ステップS22)。したがって、ノード残数Rest=Rest−N=3−3=0が算出され(ステップS23)、ノード残数Rest=5は0以下であると判断される(ステップS24のYESルート)。このとき、走査済みのleaf#1〜#3配下のノード#1〜#3,#5,#6,#9〜#11に、ジョブAが割り当てられる(ステップS25;図4の最上段および図12参照)。
ジョブAの割り当て後、ジョブスケジューラ10は、4個のノード100を使用するジョブBの割り当てを行なうと、対象leafスイッチ200がleaf#4のとき、空きノード数4がジョブノード数4以上となる(ステップS11のYESルート)。このとき、対象leaf#4が、所定数4の空きノード100が接続される単一のleafスイッチ200として検索される。これに伴い、対象leaf#4に接続される空きノード#13〜#16に、ジョブBが割り当てられる(ステップS12;図4の中段および図12参照)。
ジョブBの割り当て後、ジョブスケジューラ10は、2個のノード100を使用するジョブCの割り当てを行なうと、対象leafスイッチ200がleaf#2のとき、空きノード数2がジョブノード数2以上となる(ステップS11のYESルート)。このとき、対象leaf#2が、所定数2の空きノード100が接続される単一のleafスイッチ200として検索される。これに伴い、対象leaf#2に接続される空きノード#7,#8に、ジョブCが割り当てられる(ステップS12;図4の最下段および図12参照)。
このように、本実施形態によれば、図4や図12に示すように、一つのジョブAを、異なるleafスイッチ200を跨いで割り当てる際、各leafスイッチ200において、上位側の有効なリンクの数を超えない数の空きノード100にジョブAが割り当てられる。つまり、異なるleafスイッチ200に属するノード100に割り当てる際、各leafスイッチ200において、上位側の有効なリンクの数を超えない数の空きノード100にしか、ジョブAが割り当てられないように、ジョブ割り当てが制御される。これにより、ジョブ割り当て後の通信において、リンク故障に伴う競合発生が抑止され、システム性能の劣化、例えば単位時間あたりのデータ転送量の低下を、防ぐことができる。
ここで、図12は、本実施形態による並列コンピュータシステム1の性能改善例を説明する図である。図12に示すように、リンクL21,L22,L32,L33において故障(リンクダウン)が発生したとしても、ジョブ割り当て後の通信において、矢印A1〜A3,B1,B2,C1〜C3に示すごとく、競合の発生を抑止することができる。
なお、leaf#2配下のノード#7,#8に割り当てられたジョブCは、2個のノードを用いるジョブであり、ジョブ割り当て後の通信において、ノード#7,#8は、ノード#7,#8以外のノードと通信する可能性は低く、リンク競合を発生させる可能性も低い。同様に、leaf#4配下のノード#13〜#16に割り当てられたジョブBは、4個のノードを用いるジョブであり、ジョブ割り当て後の通信において、ノード#13〜#16は、ノード#13〜#16以外のノードと通信する可能性は低く、リンク競合を発生させる可能性も低い。
〔6〕変形例
上述した本実施形態では、検索部21による検索動作に際し、対象leafスイッチ200を、例えばスイッチ番号#iの昇順あるいは降順に選択する場合について説明した。
〔6−1〕第1変形例
これに対し、第1変形例では、前述したソート部23の一例が用いられ、検索部21による検索動作に先立ち、複数のleafスイッチ200は、各leafスイッチ200に接続されるリンクLのうち故障したリンクの数が多い順にソートされる。そして、検索部21は、ソート部23によってソートした順に、各leafスイッチ200に所定数以上の空きノードが接続されているかを判断することによって、所定数以上の空きノードが接続されるleafスイッチ200の検索を行なう。
ここで、図13は、単一のleafスイッチ配下のノードにジョブを割り当てる際(図9のステップS1)のジョブスケジューリング動作の変形例(第1変形例)を説明するフローチャートである。図13に示すように、第1変形例のフローチャートでは、図10に示す本実施形態のフローチャートにおいて、leafスイッチ200を故障リンク数が多い順にソートするステップS10をステップS11の前段に備えた点のみが異なる。
これにより、ジョブを単一のleafスイッチ配下のノード100に割り当てる際、leafスイッチ200は、ステップS14において、故障リンク数の多いleafスイッチ200から順に対象leafスイッチ200として選択される。なお、図13におけるステップS11〜S14の処理は、図10におけるステップS11〜S14の処理と同様であるので、その説明は省略する。
図14は、図13に示すジョブスケジューリング動作の変形例(第1変形例)による並列コンピュータシステムの性能改善例を説明する図である。なお、図14では、ノード#1〜#12が全て空き状態であるが、leaf#1〜leaf#3に接続される4本のリンクのうち故障リンク数がそれぞれ0,2,3である時に、以下のようなジョブ割り当てが行なわれる。つまり、4個のノード100を使用するジョブD、2個のノード100を使用するジョブE、および6個のノード100を使用するジョブFが、この順で割り当てられる。なお、leaf#1〜leaf#3における有効リンク数はそれぞれ4,2,1である。
また、図14の(A)では、検索部21による検索動作に際し対象leafスイッチ200をスイッチ番号#iの昇順に選択する場合が示される。つまり、図14の(A)では、leafスイッチ200が、leaf#1,leaf#2,leaf#3の順で対象leafスイッチとして選択される場合が示される。
図14の(B)では、検索部21による検索動作に際し対象leafスイッチ200を故障リンク数が多い順に選択する場合が示される。つまり、図14の(B)では、leafスイッチ200が、leaf#3,leaf#2,leaf#1の順で対象leafスイッチとして選択される場合が示される。
図14の(A)に示す例では、まず、ジョブDについて、leaf#1の配下における4個の空きノード#1〜#4が確保され、これらのノード#1〜#4にジョブDが割り当てられる(図14の(A)の最上段参照)。ついで、ジョブEについて、leaf#2の配下における2個の空きノード#5,#6が確保され、これらのノード#5,#6にジョブEが割り当てられる(図14の(A)の中段参照)。そして、ジョブFについて、leaf#2の配下における2個の空きノード#7,#8とleaf#3の配下における4個の空きノード#9〜#12とが確保され、これらのノード#7〜#12にジョブFが割り当てられる(図14の(A)の最下段参照)。
このとき、ジョブFで使用される6個のノード#7〜#12は、二つのleaf#2とleaf#3に跨っているため、leaf#2とleaf#3との間の通信が頻繁に生じる可能性が高い。その上、leaf#2の故障リンク数は2つまり有効リンク数が2であり、leaf#3の故障リンク数は3つまり有効リンク数が1であるため、leaf#2とleaf#3との間のリンクで競合が発生する可能性が高く、システム性能の劣化を招くおそれがある。
これに対し、図14の(B)に示す例では、まず、ジョブDについて、故障リンク数が一番多いleaf#3の配下における4個の空きノード#9〜#12が確保され、これらのノード#9〜#12にジョブDが割り当てられる(図14の(B)の最上段参照)。ついで、ジョブEについて、故障リンク数が2番目に多いleaf#2の配下における2個の空きノード#5,#6が確保され、これらのノード#5,#6にジョブEが割り当てられる(図14の(B)の中段参照)。そして、ジョブFについて、leaf#2の配下における2個の空きノード#7,#8とleaf#1の配下における4個の空きノード#1〜#4とが確保され、これらのノード#1〜#4,#7,#8にジョブFが割り当てられる(図14の(B)の最下段参照)。
このように、第1変形例では、単一のleafスイッチ配下にジョブを割り当てる際、故障リンク数の多いleafスイッチ200から優先的にジョブが割り当てられる。これにより、単一のleafスイッチ配下へのジョブ割り当て後に二以上のleafスイッチ200を跨ぐジョブ割り当てを行なった場合、故障リンクが使用される可能性を低くすることができる。したがって、リンク故障に伴う競合発生が抑止され、システム性能の劣化をより確実に防ぐことができる。
〔6−2〕第2変形例
また、第2変形例では、前述したソート部23の他例が用いられ、割当部22による割り当て動作に先立ち、複数のleafスイッチ200は、各leafスイッチ200に接続されるリンクLのうち故障したリンクの数が少ない順にソートされる。そして、割当部22は、ソート部23によってソートした順に、各leafスイッチ200に接続される有効なリンクの数を超えない数の空きノードに対する、ジョブの割り当てを行なう。
ここで、図15は、複数のleafスイッチ配下のノードにジョブを割り当てる際(図9のステップS2)のジョブスケジューリング動作の変形例(第2変形例)を説明するフローチャートである。図15に示すように、第2変形例のフローチャートでは、図11に示す本実施形態のフローチャートにおいて、leafスイッチ200を故障リンク数が少ない順にソートするステップS20をステップS21の前段に備えた点のみが異なる。
これにより、ジョブを複数のleafスイッチ配下のノードに跨って割り当てる際、leafスイッチ200は、ステップS27において、故障リンク数の少ないleafスイッチ200から順に対象leafスイッチ200として選択される。なお、図15におけるステップS21〜S27の処理は、図11におけるステップS21〜S27の処理と同様であるので、その説明は省略する。
図16は、図15に示すジョブスケジューリング動作の変形例(第2変形例)による並列コンピュータシステムの性能改善例を説明する図である。なお、図16では、ノード#1〜#12が全て空き状態であるが、leaf#1〜leaf#3に接続される4本のリンクのうち故障リンク数がそれぞれ3,2,0である時に、以下のようなジョブ割り当てが行なわれる。つまり、6個のノード100を使用するジョブG、3個のノード100を使用するジョブH、および3個のノード100を使用するジョブIが、この順で割り当てられる。なお、leaf#1〜leaf#3における有効リンク数はそれぞれ1,2,4である。
また、図16の(A)では、複数のleafスイッチ配下のノードにジョブを割り当てる際に対象leafスイッチ200をスイッチ番号#iの昇順に選択する場合が示される。つまり、図16の(A)では、leafスイッチ200が、leaf#1,leaf#2,leaf#3の順で対象leafスイッチとして選択される場合が示される。
図16の(B)では、複数のleafスイッチ配下のノードにジョブを割り当てる際に対象leafスイッチ200を故障リンク数が少ない順に選択する場合が示される。つまり、図16の(B)では、leafスイッチ200が、leaf#3,leaf#2,leaf#1の順で対象leafスイッチとして選択される場合が示される。
図16の(A)に示す例では、まず、ジョブGについて、3個のleaf#1〜#3のそれぞれにおいて有効リンク数を超えない数の空きノード#1,#5,#6,#9〜#11が確保され、これらのノード#1,#5,#6,#9〜#11にジョブGが割り当てられる(図16の(A)の最上段参照)。ついで、ジョブHについて、leaf#1の配下における3個の空きノード#2〜#4が確保され、これらのノード#2〜#4にジョブHが割り当てられる(図16の(A)の中段参照)。そして、ジョブIについて、leaf#2の配下における2個の空きノード#7,#8とleaf#3の配下における1個の空きノード#12とが確保され、これらのノード#7,#8,#12にジョブIが割り当てられる(図16の(A)の最下段参照)。
このとき、ジョブGで使用される6個のノード#1,#5,#6,#9〜#11は、3個のleaf#1〜leaf#3に跨っているため、leaf#1〜leaf#3間の通信が頻繁に生じる可能性が高い。その上、leaf#1の故障リンク数は3つまり有効リンク数が1であり、leaf#2の故障リンク数は2つまり有効リンク数が2であるため、leaf#1〜leaf#3間のリンクで競合が発生する可能性が高く、システム性能の劣化を招くおそれがある。
これに対し、図16の(B)に示す例では、まず、ジョブGについて、故障リンク数が一番少ないleaf#3と故障リンク数が二番目に少ないleaf#2とのそれぞれにおいて有効リンク数を超えない数の空きノード#9〜#12,#5,#6が確保され、これらのノード#9〜#12,#5,#6にジョブGが割り当てられる(図16の(B)の最上段参照)。ついで、ジョブHについて、leaf#1の配下における3個の空きノード#1〜#3が確保され、これらのノード#1〜#3にジョブHが割り当てられる(図16の(B)の中段参照)。そして、ジョブIについて、leaf#1の配下における1個の空きノード#4とleaf#2の配下における2個の空きノード#7,#8とが確保され、これらのノード#4,#7,#8にジョブIが割り当てられる(図16の(B)の最下段参照)。
このように、第2変形例では、複数のleafスイッチ配下のノードにジョブを割り当てる際、故障リンク数の少ないleafスイッチ200から優先的にジョブが割り当てられる。これにより、同一ジョブが跨るleafスイッチ200の数をできるだけ少なくすることが可能になり、故障リンクが使用される可能性を低くすることができる。したがって、リンク故障に伴う競合発生が抑止され、システム性能の劣化をより確実に防ぐことができる。
なお、第1変形例と第2変形例との両方が、図9〜図11を参照しながら上述した本実施形態のジョブスケジューリング動作に適用されてもよいし、一方のみが、図9〜図11を参照しながら上述した本実施形態のジョブスケジューリング動作に適用されてもよい。
〔7〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
〔8〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数のノードと、前記複数のノードを接続される複数の第1スイッチと、複数のリンクを介して前記複数の第1スイッチのそれぞれを接続される複数の第2スイッチと、を有する情報処理システムにおいて、所定数のノードを用いるジョブを前記複数のノードのうちのノードに割り当てる処理部を有し、
前記処理部は、
前記複数の第1スイッチの中から、前記所定数以上の空きノードが接続される第1スイッチを検索し、
前記所定数以上の空きノードが接続される第1スイッチが検索された場合、検索された第1スイッチに接続される前記所定数の空きノードに、前記ジョブを割り当てる一方、
前記所定数以上の空きノードが接続される第1スイッチが検索されなかった場合、二以上の前記第1スイッチのそれぞれにおいて、各第1スイッチに接続される前記空きノードであって、各第1スイッチに接続される前記リンクのうち有効なリンクの数を超えない数の空きノードに、前記ジョブを割り当てる、情報処理装置。
(付記2)
前記処理部は、
前記複数の第1スイッチを、各第1スイッチに接続される前記リンクのうち故障したリンクの数が多い順にソートしてから、
ソートした順に、各第1スイッチに前記所定数以上の空きノードが接続されているかを判断することによって、前記所定数以上の空きノードが接続される第1スイッチの検索を行なう、付記1に記載の情報処理装置。
(付記3)
前記処理部は、
前記複数の第1スイッチを、各第1スイッチに接続される前記リンクのうち故障したリンクの数が少ない順にソートしてから、
ソートした順に、各第1スイッチに接続される前記有効なリンクの数を超えない数の空きノードに対する、前記ジョブの割り当てを行なう、付記1または付記2に記載の情報処理装置。
(付記4)
複数のノードと、前記複数のノードを接続される複数の第1スイッチと、複数のリンクを介して前記複数の第1スイッチのそれぞれを接続される複数の第2スイッチと、を有する、情報処理システムにおいて、所定数のノードを用いるジョブを前記複数のノードのうちのノードに割り当てる際、
前記複数の第1スイッチの中から、前記所定数以上の空きノードが接続される第1スイッチを検索し、
前記所定数以上の空きノードが接続される第1スイッチが検索された場合、検索された第1スイッチに接続される前記所定数の空きノードに、前記ジョブを割り当てる一方、
前記所定数以上の空きノードが接続される第1スイッチが検索されなかった場合、二以上の前記第1スイッチのそれぞれにおいて、各第1スイッチに接続される前記空きノードであって、各第1スイッチに接続される前記リンクのうち有効なリンクの数を超えない数の空きノードに、前記ジョブを割り当てる、
処理を、コンピュータに実行させる、プログラム。
(付記5)
前記複数の第1スイッチを、各第1スイッチに接続される前記リンクのうち故障したリンクの数が多い順にソートしてから、
ソートした順に、各第1スイッチに前記所定数以上の空きノードが接続されているかを判断することによって、前記所定数以上の空きノードが接続される第1スイッチの検索を行なう、
処理を、前記コンピュータに実行させる、付記4に記載のプログラム。
(付記6)
前記複数の第1スイッチを、各第1スイッチに接続される前記リンクのうち故障したリンクの数が少ない順にソートしてから、
ソートした順に、各第1スイッチに接続される前記有効なリンクの数を超えない数の空きノードに対する、前記ジョブの割り当てを行なう、
処理を、前記コンピュータに実行させる、付記4または付記5に記載のプログラム。
(付記7)
複数のノードと、前記複数のノードを接続される複数の第1スイッチと、複数のリンクを介して前記複数の第1スイッチのそれぞれを接続される複数の第2スイッチと、を有する、情報処理システムにおいて、所定数のノードを用いるジョブを前記複数のノードのうちのノードに割り当てる際、
前記複数の第1スイッチの中から、前記所定数以上の空きノードが接続される第1スイッチを検索し、
前記所定数以上の空きノードが接続される第1スイッチが検索された場合、検索された第1スイッチに接続される前記所定数の空きノードに、前記ジョブを割り当てる一方、
前記所定数以上の空きノードが接続される第1スイッチが検索されなかった場合、二以上の前記第1スイッチのそれぞれにおいて、各第1スイッチに接続される前記空きノードであって、各第1スイッチに接続される前記リンクのうち有効なリンクの数を超えない数の空きノードに、前記ジョブを割り当てる、情報処理方法。
(付記8)
前記複数の第1スイッチを、各第1スイッチに接続される前記リンクのうち故障したリンクの数が多い順にソートしてから、
ソートした順に、各第1スイッチに前記所定数以上の空きノードが接続されているかを判断することによって、前記所定数以上の空きノードが接続される第1スイッチの検索を行なう、付記7に記載の情報処理方法。
(付記9)
前記複数の第1スイッチを、各第1スイッチに接続される前記リンクのうち故障したリンクの数が少ない順にソートしてから、
ソートした順に、各第1スイッチに接続される前記有効なリンクの数を超えない数の空きノードに対する、前記ジョブの割り当てを行なう、付記7または付記8に記載の情報処理方法。
1 並列コンピュータシステム(情報処理システム)
10 コンピュータ(情報処理装置,ジョブスケジューラ,スケジューラ)
11 プロセッサ(処理部)
12 RAM(記憶部)
13 HDD(記憶部)
14 グラフィック処理装置
14a モニタ(表示部,出力部)
15 入力インタフェース
15a キーボード(入力部)
15b マウス(入力部)
16 光学ドライブ装置
16a 光ディスク
17 機器接続インタフェース
17a メモリ装置
17b メモリリーダライタ
17c メモリカード
18 ネットワークインタフェース
18a ネットワーク
19 バス
20 処理部
21 検索部
22 割当部
23 ソート部
30 記憶部
31 プログラム(ジョブスケジューリングプログラム)
32 故障箇所情報
33 ジョブ情報
34 ノード情報
40 入力部
50 表示部(出力部)
100 ノード
200 leafSW(leafスイッチ,leaf#1〜leaf#4,第1スイッチ)
300 spineSW(spineスイッチ,spine#1〜spine#4,第2スイッチ)
400 並列計算用高速ネットワーク(InfiniBand)
500 制御系ネットワーク(Ethernet)
600 サブネットマネージャ(SM)
L,L11〜L14,L21〜L24,L31〜L34,L41〜L44 リンク

Claims (5)

  1. 複数のノードと、前記複数のノードを接続される複数の第1スイッチと、複数のリンクを介して前記複数の第1スイッチのそれぞれを接続される複数の第2スイッチと、を有する情報処理システムにおいて、所定数のノードを用いるジョブを前記複数のノードのうちのノードに割り当てる処理部を有し、
    前記処理部は、
    前記複数の第1スイッチの中から、前記所定数以上の空きノードが接続される第1スイッチを検索し、
    前記所定数以上の空きノードが接続される第1スイッチが検索された場合、検索された第1スイッチに接続される前記所定数の空きノードに、前記ジョブを割り当てる一方、
    前記所定数以上の空きノードが接続される第1スイッチが検索されなかった場合、二以上の前記第1スイッチのそれぞれにおいて、各第1スイッチに接続される前記空きノードであって、各第1スイッチに接続される前記リンクのうち有効なリンクの数を超えない数の空きノードに、前記ジョブを割り当てる、情報処理装置。
  2. 前記処理部は、
    前記複数の第1スイッチを、各第1スイッチに接続される前記リンクのうち故障したリンクの数が多い順にソートしてから、
    ソートした順に、各第1スイッチに前記所定数以上の空きノードが接続されているかを判断することによって、前記所定数以上の空きノードが接続される第1スイッチの検索を行なう、請求項1に記載の情報処理装置。
  3. 前記処理部は、
    前記複数の第1スイッチを、各第1スイッチに接続される前記リンクのうち故障したリンクの数が少ない順にソートしてから、
    ソートした順に、各第1スイッチに接続される前記有効なリンクの数を超えない数の空きノードに対する、前記ジョブの割り当てを行なう、請求項1または請求項2に記載の情報処理装置。
  4. 複数のノードと、前記複数のノードを接続される複数の第1スイッチと、複数のリンクを介して前記複数の第1スイッチのそれぞれを接続される複数の第2スイッチと、を有する、情報処理システムにおいて、所定数のノードを用いるジョブを前記複数のノードのうちのノードに割り当てる際、
    前記複数の第1スイッチの中から、前記所定数以上の空きノードが接続される第1スイッチを検索し、
    前記所定数以上の空きノードが接続される第1スイッチが検索された場合、検索された第1スイッチに接続される前記所定数の空きノードに、前記ジョブを割り当てる一方、
    前記所定数以上の空きノードが接続される第1スイッチが検索されなかった場合、二以上の前記第1スイッチのそれぞれにおいて、各第1スイッチに接続される前記空きノードであって、各第1スイッチに接続される前記リンクのうち有効なリンクの数を超えない数の空きノードに、前記ジョブを割り当てる、
    処理を、コンピュータに実行させる、プログラム。
  5. 複数のノードと、前記複数のノードを接続される複数の第1スイッチと、複数のリンクを介して前記複数の第1スイッチのそれぞれを接続される複数の第2スイッチと、を有する、情報処理システムにおいて、所定数のノードを用いるジョブを前記複数のノードのうちのノードに割り当てる際、
    前記複数の第1スイッチの中から、前記所定数以上の空きノードが接続される第1スイッチを検索し、
    前記所定数以上の空きノードが接続される第1スイッチが検索された場合、検索された第1スイッチに接続される前記所定数の空きノードに、前記ジョブを割り当てる一方、
    前記所定数以上の空きノードが接続される第1スイッチが検索されなかった場合、二以上の前記第1スイッチのそれぞれにおいて、各第1スイッチに接続される前記空きノードであって、各第1スイッチに接続される前記リンクのうち有効なリンクの数を超えない数の空きノードに、前記ジョブを割り当てる、情報処理方法。
JP2017021458A 2017-02-08 2017-02-08 情報処理装置、プログラム、および情報処理方法 Active JP6794862B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017021458A JP6794862B2 (ja) 2017-02-08 2017-02-08 情報処理装置、プログラム、および情報処理方法
US15/890,629 US10511474B2 (en) 2017-02-08 2018-02-07 Information processing apparatus, computer-readable recording medium having stored therein program, and method for processing information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017021458A JP6794862B2 (ja) 2017-02-08 2017-02-08 情報処理装置、プログラム、および情報処理方法

Publications (2)

Publication Number Publication Date
JP2018128858A JP2018128858A (ja) 2018-08-16
JP6794862B2 true JP6794862B2 (ja) 2020-12-02

Family

ID=63038078

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017021458A Active JP6794862B2 (ja) 2017-02-08 2017-02-08 情報処理装置、プログラム、および情報処理方法

Country Status (2)

Country Link
US (1) US10511474B2 (ja)
JP (1) JP6794862B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7142505B2 (en) * 2000-01-04 2006-11-28 At&T Corp. Method and apparatus for restoring a network
US20050268300A1 (en) * 2004-05-14 2005-12-01 Microsoft Corporation Distributed task scheduler for computing environments
US8028293B2 (en) * 2007-06-28 2011-09-27 Microsoft Corporation Optimal policies for load balancing for distributed and strategic agents (more technically, optimal coordination mechanisms for machine scheduling)
EP2278756B1 (en) 2009-07-02 2016-10-26 Bull S.A.S. Methods and devices for evaluating interconnection efficiency of parallel computer networks based upon static routing schemes
US8869164B2 (en) * 2010-09-02 2014-10-21 International Business Machines Corporation Scheduling a parallel job in a system of virtual containers
JP5794011B2 (ja) * 2011-07-19 2015-10-14 富士通株式会社 ネットワーク管理装置及びネットワーク管理方法

Also Published As

Publication number Publication date
US20180227169A1 (en) 2018-08-09
JP2018128858A (ja) 2018-08-16
US10511474B2 (en) 2019-12-17

Similar Documents

Publication Publication Date Title
US11221884B2 (en) Hybrid virtual machine configuration management
US8438566B2 (en) Managing assignment of partition services to virtual input/output adapters
US9760455B2 (en) PCIe network system with fail-over capability and operation method thereof
US20080307425A1 (en) Data Processing System and Method
US8412863B2 (en) Storage apparatus and virtual port migration method for storage apparatus
EP2616935B1 (en) Dynamic balancing of io resources on numa platforms
US8185905B2 (en) Resource allocation in computing systems according to permissible flexibilities in the recommended resource requirements
US7484029B2 (en) Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters
US7644252B2 (en) Multi-processor system and memory accessing method
US6944847B2 (en) Virtualization of input/output devices in a logically partitioned data processing system
CN103810036A (zh) 移动性操作资源分配
JP2005216151A (ja) 資源運用管理システム及び資源運用管理方法
US8631132B2 (en) Ensuring affinity at all affinity domains by folding at each affinity level possible for a partition spanning multiple nodes
KR20200080458A (ko) 클라우드 멀티-클러스터 장치
JP6794862B2 (ja) 情報処理装置、プログラム、および情報処理方法
US11132324B2 (en) Data network with container virtualization
US20170153949A1 (en) Switching Allocation of Computer Bus Lanes
US20170277587A1 (en) Computer system and memory dump method
US20170154000A1 (en) Dynamic Re-Allocation of Computer Bus Lanes
US20200301742A1 (en) Bus allocation system
KR102573439B1 (ko) 단일 포트를 이용한 다중 서브넷에 대한 외부 트래픽 모니터링을 수행하는 hpc 시스템 및 방법
JP6631740B1 (ja) 情報処理装置、情報処理システムおよびプログラム
JP2021140264A (ja) 管理装置,タスク処理プログラムおよびタスク処理方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200915

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201026

R150 Certificate of patent or registration of utility model

Ref document number: 6794862

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150