JP6107801B2 - 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム - Google Patents

情報処理装置、情報処理システム、タスク処理方法、及び、プログラム Download PDF

Info

Publication number
JP6107801B2
JP6107801B2 JP2014252130A JP2014252130A JP6107801B2 JP 6107801 B2 JP6107801 B2 JP 6107801B2 JP 2014252130 A JP2014252130 A JP 2014252130A JP 2014252130 A JP2014252130 A JP 2014252130A JP 6107801 B2 JP6107801 B2 JP 6107801B2
Authority
JP
Japan
Prior art keywords
task
job
server
task execution
information
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
JP2014252130A
Other languages
English (en)
Other versions
JP2016115065A (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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2014252130A priority Critical patent/JP6107801B2/ja
Priority to PCT/JP2015/006167 priority patent/WO2016092856A1/ja
Priority to US15/525,123 priority patent/US20180239646A1/en
Publication of JP2016115065A publication Critical patent/JP2016115065A/ja
Application granted granted Critical
Publication of JP6107801B2 publication Critical patent/JP6107801B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

本発明は、データの並列処理が可能な情報処理装置、情報処理システム、タスク処理方法、及び、プログラムに関する。
複数のサーバノード、及び、サーバノードからアクセス可能な分散ファイルシステムにより構成されたシステムにおいて、分散ファイルシステムに格納されているデータ群を対象としたデータ解析を実行する際、データ解析処理時間を短縮する手法が存在する。その手法は、データ解析のタスクを複数のジョブ群に分割し、複数のサーバノードに分配して、ジョブを並列に実行させる。
この手法の代表的な例として、Hadoop(登録商標)のMapReduce(登録商標)アルゴリズムによるデータ解析手法が挙げられる。本解析手法は、データ解析のタスクのプログラム作成者が、データ解析を行う分散処理システムの構成(ノード構成や、データの配置先など)を意識する必要がない。そして、本解析手法は、MapReduceの処理手順に基づく手続きをプログラミングするだけで、分散処理システム側の構成に合わせて、タスクを並列実行させることができる。このような機能を実現できるのは、Hadoopに備えられた並列分散機構が、システム構成に応じて、タスクを複数のジョブに分割し、ジョブの配布、結果の収集を自律的に制御する機能を備えているためである。
また、上記データ解析手法の他の例としては、次のような手法も存在する。この手法は、上記手法と同様の分散処理システムにおいて、分散処理システムの構成、各ノードのCPU(Central Processing Unit)コア数、動作周波数、スレッド数といったCPUのリソース量、分散ファイルシステム用のストレージシステムのI/O(Input/Output)性能、実行するタスクの特性(例えば、CPU依存であるか、I/O依存であるか等)に応じて、データ解析処理タスクを複数のジョブに分割する。そして、本手法は、実行するノードを固定的にして、プログラミングする。
この手法は、Hadoopを用いる場合に比べて、プログラミングの複雑度が上がり、プログラム自体のシステム構成変更に対する自由度が低下する。その代わりに、本手法は、タスクを複数のジョブに分割し並列実行する際、タスクの特性に応じて、与えられた計算リソースを効率的に利用することが可能であり、タスクを実行する処理時間をより短縮させることが可能となる。
特許文献1は、仮想システム環境における仮想マシンへのリソース割り当てのための技術を開示する。具体的には、コンピュータが、物理的なマシンの中の仮想空間内に、業務を実行するための空間として業務空間を定義し、業務空間に対してリソースの割り当てを行う。
特許文献2は、CPU依存(CPUバウンド)系タスクとI/O依存(I/Oバウンド)系タスクとに分けて管理し、CPUとI/Oの状態(フリー状態/ビジー状態)により、処理タスクの優先順位を決定することにより、トータルスループットの向上を図る技術について開示している。
特開2011−118864号公報 特開平06−012263号公報
タスクを複数のジョブに分割しジョブを並列に実行させる処理を、Hadoopを用いて実行する場合、コンピュータは、分散処理システムを構成するノード単位で均一になるように、ジョブを分散させることにより、実行する。
また、Hadoopを実行する際、分散処理システムを構成するサーバノード群のH/Wスペックが、一部異なっている場合においても、ノード単位のジョブの均一配布を前提に、処理が実行される。このため、最も性能が劣るノードのジョブの処理時間にタスク全体の処理時間が依存してしまい、処理時間が長時間化する。つまり、分散処理システムのリソースの使用に空きが出現しないように効率的に使うことが難しいという課題があった。
このような課題を解決するために、コンピュータは、分散処理システムを構成する、各サーバノードのCPUリソース、ストレージシステムの特性と、実行するタスクの特性を考慮して、ジョブを分割する。そして、コンピュータが、各ノードのリソース量に応じて、分割したジョブ数を割り当てるよう、タスクをプログラミングする。これにより、コンピュータが、リソース使用に空きが出現しないようにタスクを実行する環境を作ることが可能である。また、上記の実行方法をプログラミングするのではなく、タスクの特性に応じたジョブ分配のスケジューラが、リソース使用に空きが出現しないようにすることも可能である。
しかし、本環境においては、あるサーバノード内に複数のジョブが並列に実行されるため、ジョブ間での物理リソース使用量を制限することが難しく、ジョブ間でのリソース利用に競合が発生し、処理遅延が発生しうるという課題があった。また、処理を実行する分散処理システムが固定化されておらず、使用できるノードの構成の変更、また使用できるリソース量に変動があった場合、変動の度にプログラムの改修が必要である。
特許文献1は、特定の仮想マシンに対して、リソースを割り当てる手法であり、分散処理システム全体のリソースの効率的な利用については言及していない。
特許文献2は、単に、CPUバウンド系タスクとI/Oバウンド系タスクにタスクを分けて管理しただけであり、Hadoop等における分散処理システムのリソースの使用の効率化や、ジョブ間でのリソース利用での競合による処理遅延に対する対策については、言及していない。
このため、本発明の目的は、上述した課題である、Hadoop等の分散処理システムにおいて、リソースの使用に空きが出現しないように効率的に使うことが難しいという課題、及び、各ノードのリソース量に応じて、分割したジョブ数を割り当てるようにした場合、ジョブ間でのリソース利用に競合が発生し、処理遅延が発生しうるという課題を解決することにある。
本発明の情報処理装置は、サーバ仮想化環境を構築可能な、複数のタスク実行サーバに接続される情報処理装置であって、前記タスク実行サーバの構成を示すクラスタ構成情報を管理するクラスタ管理手段と、複数の前記タスク実行サーバに対して、各タスク実行サーバの仮想マシンの数を示すデプロイパターンに基づいて前記仮想マシンの起動を命令するデプロイメント手段と、前記クラスタ構成情報によって示される前記仮想マシンであって前記タスク実行サーバ上で起動している前記仮想マシンにジョブを配布するジョブ配布手段と、前記ジョブ配布サーバに前記ジョブを含むタスクを送信し、前記タスクに含まれる前記ジョブに付与された付帯情報に基づき、前記デプロイパターンを決定し、前記デプロイメント手段に送信するタスク実行命令手段と、を包含する。
本発明の方法は、タスク実行サーバの構成を示すクラスタ構成情報を管理し、複数の前記タスク実行サーバに対して、各タスク実行サーバの仮想マシンの数を示すデプロイパターンに基づいて前記仮想マシンの起動を命令し、前記クラスタ構成情報によって示される前記仮想マシンであって前記タスク実行サーバ上で起動している前記仮想マシンにジョブを配布し、前記ジョブを含むタスクを送信し、前記タスクに含まれる前記ジョブに付与された付帯情報に基づき、前記デプロイパターンを決定し、送信する。
本発明のコンピュータプログラムは、タスク実行サーバの構成を示すクラスタ構成情報を管理する処理と、複数の前記タスク実行サーバに対して、各タスク実行サーバの仮想マシンの数を示すデプロイパターンに基づいて前記仮想マシンの起動を命令する処理と、前記クラスタ構成情報によって示される前記仮想マシンであって前記タスク実行サーバ上で起動している前記仮想マシンにジョブを配布する処理と、前記ジョブを含むタスクを送信し、前記タスクに含まれる前記ジョブに付与された付帯情報に基づき、前記デプロイパターンを決定し、送信する処理と、をコンピュータに実行させる。
本発明によれば、Hadoop等の分散処理システムにおいて、リソースの使用に空きが出現しないように効率的に使うことが難しいという課題、及び、各ノードのリソース量に応じて、分割したジョブ数を割り当てるようにした場合、ジョブ間でのリソース利用に競合が発生し、処理遅延が発生しうるという課題を解決し、タスクの実行時間を短縮することが可能となる。
図1は、本発明の第一の実施形態に係る、情報処理システムの構成の一例を示したブロック図である。 図2は、タスクを構成する複数のジョブ、及び、各ジョブに付帯する付帯情報の例を示す図である。 図3は、仮想マシンのデプロイパターンの定義例を示す図である。 図4は、定義される対応パターンの定義例を示す図である。 図5は、情報処理システムの動作を示すフローチャートである。 図6は、第二の実施形態に係る、情報処理システムの構成の一例を示すブロック図である。 図7は、第三の実施形態に係る、情報処理装置の構成の一例を示すブロック図である。
発明を実施するための第一の形態について、図面を参照して詳細に説明する。
図1は、本発明の第一の実施形態に係る、情報処理システム20の構成の一例を示したブロック図である。
情報処理システム20は、タスク実行命令サーバ1、ジョブ配布サーバ2、クラスタ管理サーバ3、デプロイメントサーバ4、少なくとも2台以上のタスク実行サーバ10、及び、分散ファイルシステム12により構成される。また、これらの構成要素(各サーバ)は、ネットワーク5を介して、各サーバ間での通信が可能である。タスク実行命令サーバ1、ジョブ配布サーバ2、クラスタ管理サーバ3、およびデプロイメントサーバ4は、タスク実行サーバ10に接続する情報処理装置の一例である。
タスク実行サーバ10は、分散ファイルシステム12に対するデータの入出力を担う。また、タスク実行サーバ10は、与えられた条件に基づいて、デプロイメントサーバ4で指定された各々の仮想マシン(VM:Virtual Machine)11を起動する。
また、分散ファイルシステム12は、複数のタスク実行サーバ10内に備えられた記憶デバイスを組み合わせたストレージシステムとして動作するが、タスク実行サーバ10の外部に備えられた複数の記憶媒体を、ネットワークを経由して接続する外部ストレージシステムとして構成してもよい。
タスク実行命令サーバ1は、後述の図2にて説明する処理対象となるタスクに付与される付帯情報を、タスクを構成するジョブと対応づけて格納する。また、タスク実行命令サーバ1は、付帯情報に基づき、タスクを構成するジョブを実行する際の仮想マシン11の数(配備数またはデプロイ数)を決定する。すなわち、タスク実行命令サーバ1は、各タスク実行サーバ10における仮想マシン11のデプロイメント(配備)のためのデプロイメントパターンを決定する。さらに、タスク実行命令サーバ1は、タスク実行サーバ10でのデプロイメント完了後、上記ジョブをジョブ配布サーバ2へ送信する。なお、デプロイメントによる仮想マシンの起動は、後述するデプロイメントサーバ4によって行われる。
ジョブ配布サーバ2は、タスク実行命令サーバ1より与えられた実行対象となるジョブを、複数の仮想マシン11(仮想マシン群)に分配する。具体的に、ジョブ配布サーバ2は、クラスタ管理サーバ3にて管理されているクラスタ構成情報を基に、タスク処理基盤のハードウェア群であるクラスタを構成するタスク実行サーバ10上で起動している複数の仮想マシン11に、ジョブを分配する。
クラスタ管理サーバ3は、タスク処理基盤を構成するクラスタ構成情報を管理しており、クラスタ構成情報の更新、及び、他のサーバからのクラスタ構成情報の問い合わせに対する情報の提供を行う。
デプロイメントサーバ4は、仮想マシン群の設定パターンを示すデプロイパターンを記憶する。また、デプロイメントサーバ4は、外部サーバ群(タスク実行命令サーバ1)からの命令に基づき、デプロイメントサーバ4で指定されたパターン(以下、デプロイパターンと記載)での仮想マシン11の起動を、各タスク実行サーバ10に対して命令する。さらに、デプロイメントサーバ4は、仮想マシン11の起動後、クラスタ管理サーバ3に対して、起動した仮想マシン11群に合わせて、管理するクラスタ構成情報の更新命令を発行してもよい。
ここで、タスク実行命令サーバ1、ジョブ配布サーバ2、クラスタ管理サーバ3、デプロイメントサーバ4、及び、タスク実行サーバ10は、それぞれコンピュータ等の情報処理装置で構成される。
ネットワーク5は、有線ネットワーク、無線ネットワーク、または、それらの混在のいずれで構成されてもよい。
ところで、情報処理システム20は、タスク実行サーバ10、すなわち、分散システムを構成する各ノードに、KVM(Kernel−based Virtual Machine)、Xen(登録商標)、VMware(登録商標)といった仮想マシンの実行環境を組み込み、本実行環境上で、仮想マシンを単一ジョブの実行の単位としたHadoopに代表される並列分散処理の実行環境を実現する。
また、上記環境に接続するストレージシステム(分散ファイルシステム12)は、HadoopのHDFS(Hadoop分散ファイルシステム:Hadoop Distributed FileSystem)に代表されるような、分散システムを構成する物理ノード上の記録媒体を連動して動作させる分散ファイルシステム、もしくは、すべての仮想マシンから、解析タスクの対象となるすべてのデータへのアクセスを可能とする外部ストレージシステムにより構成される。
本実行環境において、デプロイメントサーバ4は、システムを構成しているノードのCPUリソース、及び、平均I/O性能に応じた仮想マシン11の数(仮想マシン数)の最大値(最小値:1ノードあたり1仮想マシン)を定義する。これらの定義に基づき、デプロイメントサーバ4は、実行されるタスクの特性に応じて発生しうるシステムのボトルネックの早期発生を防ぐようなリソース配分となる仮想マシン11のデプロイパターンを予め設定しておく。また、デプロイメントサーバ4は、各仮想マシン11には、使用するCPUリソースや、時間あたりの最大発行I/O数を設定し、物理リソースの利用に制限をかけておくこととする。
本実施形態のタスク実行命令サーバ1は、上記定義に基づく仮想マシン11のデプロイパターンを基に、実行するタスク内に、個々のジョブの並列実行適正度、I/O、もしくはCPU依存度、データ容量等の諸条件を付帯情報として付与しておく。そして、タスク実行命令サーバ1は、例えばタスク実行命令サーバ1が有するタスクスケジューラにより、ジョブの分配方法を変更するのではなく、ジョブを実行する仮想マシンのデプロイ数を変更することで、ジョブを仮想マシン単位で分配して実行する手段を備える。
また、タスク実行命令サーバ1は、例えば、タスクが複数のステップからなる複数のジョブにより構成されている場合を想定して、次に実行するジョブ実行時間と仮想マシン11の再構築(仮想マシンのシャットダウン〜次のジョブ実行に最適な仮想マシン環境のデプロイ)時間とを比較し、仮想マシン11の再構築時間が、次のジョブ実行時間よりも十分小さい場合のみ、仮想マシン11の再構築を行う判定手段を備える、としてもよい。
なお、分散システムを構成する物理ノードの構成が変更された場合、情報処理システム20は、仮想マシン11のデプロイパターンのみを変更するものとし、実行するタスクについては、変更を加えないものとする。
図2は、タスクを構成する複数のジョブ、及び、各ジョブに付帯する付帯情報の例を示す図である。
タスクを構成する各ジョブには、少なくとも処理特性、並列処理適合度、及び、I/O特性の3つの付帯情報が付与されている。
処理特性とは、CPU処理時間がジョブの全処理時間に対して支配的か(CPU Bound:CPU依存)、もしくはI/O処理時間がジョブの全処理時間に対して支配的か(I/O Bound:I/O依存)を示す付帯情報である。
並列処理適合度とは、プログラミングされているジョブがマルチプロセスやマルチスレッド対応されているか否か(Yes or No)を示す付帯情報である。
I/O特性とは、ジョブによる処理対象となるデータをどのように読み出しするのか(Sequential or Random:連続読み出し または ランダム読み出し)を示す付帯情報である。
これらの付帯情報は、タスクを投入するタスク実行命令サーバ1を管理するユーザにより事前に付与され格納されるものとする。しかし、予めジョブの特性を決定できない場合は、ユーザによりタスク実行命令サーバ1が、後から随時、情報を付与するとしてもよい。
図3は、複数のタスク実行サーバ10からなるクラスタシステムを前提とした場合の、仮想マシン11のデプロイパターンの定義例を示した図である。この定義例は、デプロイメントサーバ4に定義(設定)される。
各デプロイパターンは、パターン制約条件、1つのタスク実行サーバ10あたりの仮想マシン数(VM数)、及び、各パターンを識別するためのパターン番号の3つの情報から構成される。
各デプロイパターンのパターン制約条件は、ジョブの付帯情報に含まれる処理特性に応じて定義される。デプロイメントサーバ4は、CPU Boundの場合における仮想マシン数の最大値、及び、最小値、さらに、I/O Bound時におけるSequential READ(連続読み出し)性能が最大となる仮想マシン数、及び、RandomREAD(ランダム読み出し)性能が最大となる仮想マシン数を設定する。
なお、CPU Boundの場合における仮想マシン数の最大値は、例えば、タスク実行サーバ10上で動作する仮想化基盤が利用できるCPUの特性に基づき、CPUの論理コア、物理コア、論理スレッド数等に対応する値を設定する。
また、CPU Boundの場合における仮想マシン数の最小値は、1タスク実行サーバ10あたり、1つの仮想マシン11(VM数が1)が最小となる。
例えば、コア数が30で構成されるCPUに対して、ジョブの実行プログラムが1並列処理まで対応可能な処理プログラムである場合、VM数は30となる。また、コア数が30で構成されるCPUに対して、30並列処理まで対応可能な処理プログラムである場合、VM数は1となる。このようにして導出されたVM数が、例えば、上記に示したような最大値、最小値として設定される。
これらのパターン定義値は、タスク実行サーバ10のスペック情報や、分散ファイルシステム12のスペック情報、または、あらかじめ計測したシステムとしての性能スペック情報に基づき、例えば、本システムの運用管理者により、あらかじめデプロイメントサーバ4あるいはタスク実行命令サーバ1に設定されているものとする。
なお、異なるスペックのタスク実行サーバ10が混在している場合には、本システムの運用管理者が、デプロイメントサーバ4にスペックごとに本デプロイパターンを定義するものとする。
図4は、図2に示すように付与されたジョブの付帯情報と、図3に示すように定義されたデプロイパターン(パターン番号)に基づき、定義される対応パターンの定義例を示す図である。
ジョブの処理特性が、I/O Boundであった場合は、そのI/O特性がSequential(連続読み出し)かRandom(ランダム読み出し)かで、パターンが決定づけられる。
また、ジョブの処理特性が、CPU Boundであった場合は、プログラミングされたジョブがマルチプロセス、マルチスレッド実行に対応しているか否かで、並列処理適合度が決められ、パターンが決定づけられる。 ジョブの処理特性が付与されているが、並列処理適合度、I/O特性のいずれかの付帯情報が付与されていなかった場合についても(図4の「ジョブの処理特性」が「N/A(Not Available)」の場合など)、付与される情報の優先度を、1.処理特性、2.I/O特性、3.並列処理適合度の順に設定するなどして、付与されている情報の中からパターンに合致するものを選択する。
なお、上記優先度については、タスク処理サーバ10を構成するCPU性能、および記憶媒体の性能に応じて、優先順位を変更することができるものとする。例えば、タスク処理サーバ10の記憶媒体にSSD(Solid State Drive)などの半導体デバイスを用いていた場合は、I/O特性の依存度が軽減されることから、並列処理適合度を優先するなどの優先順位の定義が考えられる。
また、図4に示される対応パターン定義例は、タスク実行命令サーバ1にて保存管理されるものとする。
図5は、情報処理システム20の動作を示すフローチャートである。
以下、図2に示したタスクへ付与した付帯情報、及び、図3、図4に示した付帯情報に対応するパターンの定義に基づき、タスク実行命令サーバ1にて投入されたタスクの実行手順について、図5に示したフローチャートを参照し、説明する。
まず、タスクを実行したいユーザにより、タスク実行命令サーバ1に対してタスクが投入される。
タスク実行命令サーバ1は、タスクを内部に含まれるジョブに分解し、さらにジョブに付与された付帯情報を参照し、図4の例に示された対応パターン表と照合する(ステップS101)。そして、タスク実行命令サーバ1は、上記ジョブの実行時における仮想マシンのデプロイパターンを抽出する。次にタスク実行命令サーバ1は、抽出されたデプロイパターンから、図3に示す定義例を参照して、パターン番号に対応するデプロイする仮想マシン数を決定する(ステップS102)。
次に、タスク実行命令サーバ1は、クラスタ管理サーバ3からクラスタ構成情報を、デプロイメントサーバ4から仮想マシンのデプロイ状況を問い合わせ、上記通り決定した仮想マシン数と、既にデプロイされている仮想マシン数を比較し、差異があるかを確認する。これにより、タスク実行命令サーバ1は、仮想マシン11の構成変更が必要であるかどうかを判定する(ステップS103)。
仮想マシン11の構成変更が必要でない場合(S103でNO)、タスク実行命令サーバ1は、タスクを構成する実行対象となるジョブをジョブ配布サーバ2へ送信し、処理が完了するまで待機する。また、ジョブ配布サーバ2は、クラスタ管理サーバ3にクラスタ構成情報を問い合わせ、クラスタを構成する仮想マシン群11へジョブを配布し、すべてのジョブの処理が完了するまで待機する(ステップS106)。
仮想マシン11の構成変更が必要である場合(S103でYES)、タスク実行命令サーバ1は、デプロイメントサーバ4へ、前述のステップS102で決定した仮想マシン数での仮想マシン11のデプロイ(配備)を行うように指示を行う。
デプロイメントサーバ4は、指示に基づき、タスク実行サーバ10上で動作する既存の仮想マシン11をシャットダウンし、指定された数の仮想マシン11をタスク実行サーバ10へデプロイ(再デプロイ)する(ステップS104)。
デプロイの完了後、デプロイメントサーバ4は、タスク実行命令サーバ1へ、指定した仮想マシン11のデプロイが完了したことを通知する。
タスク実行命令サーバ1は、上記完了通知を受け取った後、クラスタ構成管理サーバ3に対して、デプロイした仮想マシン構成に基づき、クラスタ構成情報の変更命令を実行する(ステップS105)。
クラスタ構成管理サーバ3でのクラスタ構成情報の変更完了後、タスク実行命令サーバ1は、前述のタスクを構成する実行対象となるジョブをジョブ配布サーバ2へ送信し、前述のS106の通り、すべての処理が完了するまで待機する。
S106において、ジョブを配布した仮想マシン11におけるすべての処理が完了後、ジョブ配布サーバ2は、タスク実行命令サーバ1に対して、ジョブの実行が完了したことを通知する。
タスク実行命令サーバ1は、次のジョブが存在するかどうかを判定し(ステップS107)、次のジョブが存在する場合は、S101へ戻り、タスクの実行を継続する。一方、次のジョブが存在しない場合は、タスク実行命令サーバ1は、タスクの実行を完了する。
なお、S104の動作方法として仮想マシン11の再デプロイが必要な場合、ジョブの処理特性がI/O Boundであり、処理対象となるデータの総容量を分散ファイルシステム12に問い合わせることで取得できる場合は、タスク実行命令サーバ1は、I/Oパターンに応じて、総I/O時間を算出する。
また、ジョブの処理特性がCPU Boundであり、処理対象となるデータの総数が分散ファイルシステム12に問い合わせることで取得できる場合は、タスク実行命令サーバ1は、試験的に現クラスタ環境において1データにかかる目安となる処理時間を計測し総処理時間を算出する。
そして、タスク実行命令サーバ1は、算出した各々の時間に比べて、仮想マシン11のシャットダウン時間、及び、仮想マシン11のデプロイ時間を合計した時間が十分小さい場合にのみ、仮想マシン11の再デプロイを実行する、としてもよい。
ところで、情報処理システム20は、分散処理システムを構成しているサーバノード等の物理ノードの構成が変動するような環境や、異なるスペックを持つ物理ノードを組み合わせた環境の場合も考えられる。この場合においても、情報処理システム20は、仮想マシン11をデプロイするパターンの定義のみを変更し、タスクの特性に応じた仮想マシン数をデプロイした後、Hadoopのような並列分散処理基盤を介してジョブ分配する。これにより、タスクを実行するプログラムに変更を加えることなく、タスクの実行時間を短縮することが可能となる、としてもよい。
本実施形態に係る情報処理システム20は、以下に記載するような効果を奏する。
その効果は、Hadoop等の分散処理システムにおいて、リソースの使用に空きが出現しないように効率的に使うことが難しいという課題、及び、各ノードのリソース量に応じて、分割したジョブ数を割り当てるようにした場合、ジョブ間でのリソース利用に競合が発生し、処理遅延が発生しうるという課題を解決し、タスクの実行時間を短縮することが可能となる。
その理由は、実行するタスク内の個々のジョブに、処理特性、並列処理適合度、I/O特性等の諸条件を付帯情報として付与しておき、予め設定した、付帯情報に対応する、仮想マシン11の数を示すデプロイパターンを基に、タスクの特性に応じて、ジョブを実行する仮想マシン11のデプロイ数を変更することで、ジョブを仮想マシン単位で分配して実行するからである。
<第二の実施形態>
次に、本発明を実施するための第二の形態について図面を参照して詳細に説明する。
図6は、第二の実施形態に係る、情報処理システム30の構成の一例を示すブロック図である。
情報処理システム30は、図1に示した第一の実施形態のデータ並列処理実行制御システム20と同様の構成(タスク実行命令サーバ31、デプロイメントサーバ34、ネットワーク35、タスク実行サーバ310、仮想マシン311、及び、分散ファイルシステム312)において、複数のジョブ配布サーバ320、321、及び、クラスタ管理サーバ330、331のペアが、システム接続し、タスク実行命令サーバ31、デプロイメントサーバ34、及び、処理実行サーバ310群を共有している構成である。なお、図6では、上記ペアが2つの場合を示しているが、ペアの数量は2以上の任意の数であってもよい。
情報処理システム30は、この構成において、ジョブ配布サーバ320、クラスタ管理サーバ330、及び、ジョブ配布サーバ321、クラスタ管理サーバ331の各ペアが並列に異なる特性のタスクを実行する際、あらかじめ各々が利用するタスク実行サーバ310群の使用リソース比率を決めておく。そして、情報処理システム30は、上記各ペアが使用するリソース比率を前提として、上記各ペアに対応した、仮想マシン311のデプロイパターン(第一の実施形態の図3に相当)、及び、ジョブ特性に対応したパターン(第一の実施形態の図4に相当)を定義しておくことにより、複数の特性の異なるタスクを混在して並列に実行することができる。
上記により、情報処理システム30は、タスク間でリソース競合を発生することなく、あらかじめ決められたリソースの使用比率の範囲内で、タスクの処理時間を短縮するという効果が得られる。
本実施形態に係る情報処理システム30は、以下に記載するような効果を奏する。
その効果は、ジョブ配布サーバ320、クラスタ管理サーバ330、及び、ジョブ配布サーバ321、クラスタ管理サーバ331の各ペアが並列に異なる特性のタスクを実行する際、タスク間でリソース競合を発生することなく、あらかじめ決められたリソースの使用比率の範囲内で、タスクの処理時間を短縮する。
その理由は、あらかじめ、情報処理システム30が、ジョブ配布サーバ320、クラスタ管理サーバ330、及び、ジョブ配布サーバ321、クラスタ管理サーバ331の各ペアが利用する処理実行サーバ10群の使用リソース比率を決めておく。そして、情報処理システム30が、各ペアが使用するリソース比率を前提として、各ペアに対応した仮想マシンのデプロイパターン、及び、ジョブ特性に対応したパターンを定義しておくからである。
<第三の実施形態>
次に、本発明を実施するための第三の形態について図面を参照して詳細に説明する。
図7は、第三の実施形態に係る、情報処理装置40の構成の一例を示すブロック図である。
情報処理装置40は、タスク実行命令部41、ジョブ配布部42、クラスタ管理部43、デプロイメント部44を備える。タスク実行命令部41、ジョブ配布部42、クラスタ管理部43、およびデプロイメント部44と、タスク実行サーバ45とは、情報処理装置40の内部バスまたはネットワークによって接続されている。
情報処理装置40は、サーバ仮想化環境を構築可能な、複数のタスク実行サーバ45に接続される、情報処理装置40である。そして、情報処理装置40は、タスク実行サーバ45の構成を示すクラスタ構成情報を管理するクラスタ管理部43と、複数のタスク実行サーバ45に対して、各タスク実行サーバ45の仮想マシン46の数を示すデプロイパターンに基づいて仮想マシン46の起動を命令するデプロイメント部44と、クラスタ構成情報によって示される仮想マシン46であってタスク実行サーバ45上で起動している仮想マシン46にジョブを配布するジョブ配布部42と、ジョブ配布部42にジョブを含むタスクを送信し、タスクに含まれるジョブに付与された付帯情報に基づき、デプロイパターンを決定し、デプロイメント部44に送信するタスク実行命令部41と、を包含する。
本実施形態に係る情報処理装置40は、以下に記載するような効果を奏する。
その効果は、Hadoop等の分散処理システムにおいて、リソースの使用に空きが出現しないように効率的に使うことが難しいという課題、及び、各ノードのリソース量に応じて、分割したジョブ数を割り当てるようにした場合、ジョブ間でのリソース利用に競合が発生し、処理遅延が発生しうるという課題を解決し、タスクの実行時間を短縮することが可能となる。
その理由は、タスクに含まれるジョブに付与された付帯情報に基づき、仮想マシン46の数を示すデプロイパターンを決定し、デプロイパターンでの仮想マシン46の起動を命令するからである。
以上、図面を参照して本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
1 タスク実行命令サーバ
2 ジョブ配布サーバ
3 クラスタ管理サーバ
4 デプロイメントサーバ
5 ネットワーク
10 タスク実行サーバ
11 仮想マシン(VM:Virtual Machine)
12 分散ファイルシステム
20 情報処理システム
30 情報処理システム
31 タスク実行命令サーバ
310 タスク実行サーバ
311 仮想マシン
312 分散ファイルシステム
320、321 ジョブ配布サーバ
330、331 クラスタ管理サーバ
34 デプロイメントサーバ
35 ネットワーク
40 情報処理装置
41 タスク実行命令部
42 ジョブ配布部
43 クラスタ管理部
44 デプロイメント部
45 タスク実行サーバ
46 仮想マシン

Claims (8)

  1. サーバ仮想化環境を構築可能な、複数のタスク実行サーバに接続される情報処理装置であって、
    複数の前記タスク実行サーバのそれぞれの構成を示すクラスタ構成情報を管理する複数のクラスタ管理手段と、
    複数の前記タスク実行サーバに対して、各タスク実行サーバの仮想マシンの数を示すデプロイパターンを定義する、ジョブの付帯情報に含まれる処理特性に応じて定義されるパターン制約条件に基づいて、前記仮想マシンの起動を命令するデプロイメント手段と、
    各前記クラスタ管理手段と複数のペアを成し、各前記クラスタ構成情報によって示される前記仮想マシンであって前記タスク実行サーバ上で起動している前記仮想マシンに前記ジョブを配布する複数のジョブ配布手段と、
    前記ジョブ配布手段に前記ジョブを含むタスクを送信し、前記タスクに含まれる前記ジョブに付与された前記付帯情報に基づき、前記ペアごとに前記デプロイパターンを決定し、前記デプロイメント手段に送信するタスク実行命令手段と、
    を包含する情報処理装置。
  2. 前記付帯情報が、CPU(Central Processing Unit)依存、または、I/O(Input/Output)依存を示す処理特性を含む、請求項1に記載の情報処理装置。
  3. 前記付帯情報が、マルチプロセス、または、マルチスレッドに適合するか否かを示す並列処理適合度を含む、請求項1または2に記載の情報処理装置。
  4. 前記付帯情報が、シーケンシャル、または、ランダムを示すI/O特性を含む、請求項1または2に記載の情報処理装置。
  5. 請求項1乃至4のいずれか1項に記載の情報処理装置と、
    前記複数のタスク実行サーバと、を包含する情報処理システム。
  6. 複数のクラスタ管理手段により、複数のタスク実行サーバのそれぞれの構成を示すクラスタ構成情報を管理し、
    複数の前記タスク実行サーバに対して、各タスク実行サーバの仮想マシンの数を示すデプロイパターンを定義する、ジョブの付帯情報に含まれる処理特性に応じて定義されるパターン制約条件に基づいて、前記仮想マシンの起動を命令し、
    複数のジョブ配布手段により、各前記クラスタ管理手段と複数のペアを成し、各前記クラスタ構成情報によって示される前記仮想マシンであって前記タスク実行サーバ上で起動している前記仮想マシンに前記ジョブを配布し、
    各前記ジョブ配布手段に前記ジョブを含むタスクを送信し、
    タスク実行命令手段により、前記タスクに含まれる前記ジョブに付与された前記付帯情報に基づき、前記ペアごとに前記デプロイパターンを決定し、送信する、
    タスク処理方法。
  7. 前記付帯情報が、CPU依存、または、I/O依存を示す処理特性を含む、請求項6に記載のタスク処理方法。
  8. 前記付帯情報が、マルチプロセス、または、マルチスレッドに適合するか否かを示す並列処理適合度を含む、請求項6または7に記載のタスク処理方法。
JP2014252130A 2014-12-12 2014-12-12 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム Active JP6107801B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014252130A JP6107801B2 (ja) 2014-12-12 2014-12-12 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム
PCT/JP2015/006167 WO2016092856A1 (ja) 2014-12-12 2015-12-10 情報処理装置、情報処理システム、タスク処理方法、及び、プログラムを記憶する記憶媒体
US15/525,123 US20180239646A1 (en) 2014-12-12 2015-12-10 Information processing device, information processing system, task processing method, and storage medium for storing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014252130A JP6107801B2 (ja) 2014-12-12 2014-12-12 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2016115065A JP2016115065A (ja) 2016-06-23
JP6107801B2 true JP6107801B2 (ja) 2017-04-05

Family

ID=56107068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014252130A Active JP6107801B2 (ja) 2014-12-12 2014-12-12 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム

Country Status (3)

Country Link
US (1) US20180239646A1 (ja)
JP (1) JP6107801B2 (ja)
WO (1) WO2016092856A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417582B2 (en) * 2017-01-27 2019-09-17 Wipro Limited Method and device for automating operational tasks in an enterprise network
US20200195531A1 (en) * 2018-12-14 2020-06-18 Hewlett Packard Enterprise Development Lp Analytics on network switch using multi-threaded sandboxing of a script
CN112398669B (zh) * 2019-08-15 2023-09-26 北京京东尚科信息技术有限公司 一种Hadoop部署方法和装置
JP7327635B2 (ja) * 2020-02-26 2023-08-16 日本電信電話株式会社 仮想マシンの接続制御装置、仮想マシンの接続制御システム、仮想マシンの接続制御方法およびプログラム
CN112506619B (zh) * 2020-12-18 2023-08-04 北京百度网讯科技有限公司 作业处理方法、装置、电子设备和存储介质
US11803448B1 (en) 2021-06-29 2023-10-31 Amazon Technologies, Inc. Faster restart of task nodes using periodic checkpointing of data sources

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223842A (ja) * 2008-03-19 2009-10-01 Fujitsu Ltd 仮想計算機制御プログラム及び仮想計算機システム
US8161479B2 (en) * 2008-06-13 2012-04-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
EP2395430B1 (en) * 2009-02-09 2017-07-12 Fujitsu Limited Virtual computer allocation method, allocation program, and information processing device having a virtual computer environment
US8276139B2 (en) * 2009-09-30 2012-09-25 International Business Machines Corporation Provisioning virtual machine placement
US8260840B1 (en) * 2010-06-28 2012-09-04 Amazon Technologies, Inc. Dynamic scaling of a cluster of computing nodes used for distributed execution of a program
JPWO2012093469A1 (ja) * 2011-01-06 2014-06-09 日本電気株式会社 性能評価装置及び性能評価方法
US20130346983A1 (en) * 2011-03-11 2013-12-26 Nec Corporation Computer system, control system, control method and control program
US9626222B2 (en) * 2012-01-17 2017-04-18 Alcatel Lucent Method and apparatus for network and storage-aware virtual machine placement
US9268590B2 (en) * 2012-02-29 2016-02-23 Vmware, Inc. Provisioning a cluster of distributed computing platform based on placement strategy
JP6048500B2 (ja) * 2012-07-05 2016-12-21 富士通株式会社 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
JP6083278B2 (ja) * 2013-03-22 2017-02-22 富士通株式会社 計算システム及びその電力管理方法

Also Published As

Publication number Publication date
US20180239646A1 (en) 2018-08-23
WO2016092856A1 (ja) 2016-06-16
JP2016115065A (ja) 2016-06-23

Similar Documents

Publication Publication Date Title
JP6107801B2 (ja) 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム
US20220075643A1 (en) Unified resource management for containers and virtual machines
US10827020B1 (en) Assignment of microservices
Chowdhury et al. Implementation and performance analysis of various VM placement strategies in CloudSim
EP3347816B1 (en) Extension of resource constraints for service-defined containers
US11113782B2 (en) Dynamic kernel slicing for VGPU sharing in serverless computing systems
Zhang et al. Integrating resource consumption and allocation for infrastructure resources on-demand
US9563474B2 (en) Methods for managing threads within an application and devices thereof
US20170024251A1 (en) Scheduling method and apparatus for distributed computing system
US10108463B2 (en) System, method of controlling to execute a job, and apparatus
JP6741941B2 (ja) 仮想マシン管理プログラム、仮想マシン管理方法、及び、仮想マシン管理装置
US11740921B2 (en) Coordinated container scheduling for improved resource allocation in virtual computing environment
Armstrong et al. Scheduling many-task workloads on supercomputers: Dealing with trailing tasks
JP6519111B2 (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
US20220253341A1 (en) Memory-aware placement for virtual gpu enabled systems
Raj et al. Enhancement of hadoop clusters with virtualization using the capacity scheduler
US20210011751A1 (en) Memory-aware placement for virtual gpu enabled systems
KR102052964B1 (ko) 컴퓨팅 스케줄링 방법 및 시스템
JP6239400B2 (ja) 制御装置
US20140101669A1 (en) Apparatus and method for processing task
KR101867960B1 (ko) 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법
JP5879117B2 (ja) 情報処理システムおよび運用管理方法
KR102014246B1 (ko) 리소스 통합관리를 위한 메소스 처리 장치 및 방법
Komarasamy et al. Priority scheduling with consolidation based backfilling algorithm in cloud
Janardhanan et al. Study of execution parallelism by resource partitioning in Hadoop YARN

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160418

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161212

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20161220

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170220

R150 Certificate of patent or registration of utility model

Ref document number: 6107801

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150