[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2020024636A - スケジューリング装置、スケジューリングシステム、スケジューリング方法及びプログラム - Google Patents

スケジューリング装置、スケジューリングシステム、スケジューリング方法及びプログラム Download PDF

Info

Publication number
JP2020024636A
JP2020024636A JP2018149726A JP2018149726A JP2020024636A JP 2020024636 A JP2020024636 A JP 2020024636A JP 2018149726 A JP2018149726 A JP 2018149726A JP 2018149726 A JP2018149726 A JP 2018149726A JP 2020024636 A JP2020024636 A JP 2020024636A
Authority
JP
Japan
Prior art keywords
job
information
scheduling
time
snapshot
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.)
Pending
Application number
JP2018149726A
Other languages
English (en)
Inventor
良太 荒井
Ryota Arai
良太 荒井
伸吾 大村
Shingo Omura
伸吾 大村
大輔 谷脇
Daisuke Taniwaki
大輔 谷脇
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.)
Preferred Networks Inc
Original Assignee
Preferred Networks Inc
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 Preferred Networks Inc filed Critical Preferred Networks Inc
Priority to JP2018149726A priority Critical patent/JP2020024636A/ja
Priority to PCT/JP2019/028690 priority patent/WO2020031675A1/ja
Publication of JP2020024636A publication Critical patent/JP2020024636A/ja
Priority to US17/159,904 priority patent/US20210149726A1/en
Pending legal-status Critical Current

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】中断等を行うジョブを選択する。【解決手段】スケジューリング装置は、記憶部と、処理回路と、を備える。記憶部は、実行中のジョブの情報を記憶する。処理回路は、ジョブを受け付け、前記受け付けたジョブの実行リソースを確保できない場合に、前記実行中のジョブの情報に基づいて、前記実行中のジョブのうち前記受け付けたジョブよりも優先度が低いジョブの少なくとも1つを停止候補として選択し、前記停止候補に対して停止命令を発行する。【選択図】図2

Description

本発明は、スケジューリング装置、スケジューリングシステム、スケジューリング方法及びプログラムに関する。
コンピュータにおいて複数のジョブを同時に実行することは広く行われている。クラスタとして実装されているコンピュータに対しても、クラスタ中の1又は複数のコンピュータを同じタイミングで複数のジョブが起動されるように実装されることが多い。クラスタは、複数のユーザがアクセス可能であり、これら複数のユーザの各々がジョブを実行することができるように実装されていることが多い。
このような場合、リソースが十分に確保できない状態において、あるユーザが優先度の高いジョブを実行しようとすると、他のジョブを中断又は停止させることとなる。この中断等を行うジョブは、各ジョブに割り振られた優先度等さまざまな指標に基づいて決定される。クラスタを用いて行う計算は膨大な計算量であるものが多く、これらの膨大な計算量を有するジョブの中からどのように中断等を行うジョブを抽出するのかは課題の1つとなっている。
特許第6121431号公報 特開2018−26050号公報
そこで、一実施形態では、中断等を行うジョブを選択するスケジューリング装置を提供する。
一実施形態によれば、スケジューリング装置は、実行中のジョブの情報を記憶する記憶部と、ジョブを受け付け、前記受け付けたジョブの実行リソースを確保できない場合に、前記実行中のジョブの情報に基づいて、前記実行中のジョブのうち前記受け付けたジョブよりも優先度が低いジョブの少なくとも1つを停止候補として選択し、前記停止候補に対して停止命令を発行する、処理回路と、を備える。
一実施形態に係るスケジューリング装置が実装されたシステムの一例を示す図。 一実施形態に係るスケジューリング装置の一例を示すブロック図。 一実施形態に係るジョブ実行装置の一例を示すブロック図。 ジョブ実行中の一例を示す概念図。 複数ジョブ実行中の一例を示す概念図。 優先度の高いジョブがエンキューされた一例を示す概念図。 優先度の高いジョブがエンキューされた別例を示す概念図。 一実施形態に係るスケジューリング装置の処理の一例を示すフローチャート。 一実施形態に係る処理の別の例を示すフローチャート。 一実施形態に係る処理のさらに別の例を示すフローチャート。 一実施形態に係るジョブ実行装置の処理の一例を示すフローチャート。 装置実装のハードウェア構成例を示す図。
以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。
図1は、一実施形態に係るスケジューリング装置を用いたシステムの一例を示す図である。ユーザがクライアントからジョブを管理サーバに登録、又は、送信等すると、管理サーバが、当該ジョブにおいて利用される計算資源を判断し、計算サーバにジョブ(より細かくは、タスク)を振り分ける。このように、ユーザからの命令に基づいて、管理サーバによりジョブがクラスタにおいて実行される。ユーザは1であるとは限られず、例えば、複数のユーザが複数のクライアントを介して管理サーバにジョブをデプロイすることも可能である。
なお、図1においては、クラスタを構成するのは計算サーバとしているが、これには限られない。例えば、アクセラレータ等に搭載されている演算コア等の粒度であってもよい。計算サーバは、クラウド上に形成されているクラスタであってもよいし、オンプレミスに形成されているクラスタであってもよい。また、クラスタとは、上述した演算コア等の集合であってもよく、すなわち、図1においては複数のサーバが存在しているが、1つのサーバ内における演算コア等へのジョブ(又はタスク)の割り当てにも以下の説明におけるスケジューリングは適用できるものとする。
また、クライアントから管理サーバへのジョブ等の送信、及び、管理サーバから計算サーバへのジョブ等の送信は、仮想マシン環境を介して行ってもよい。演算の計算サーバへのデプロイは、例えば、コンテナを用いて行ってもよい。これらの手法は、一般的なものでよく、特定の技術に限られるものではない。
一実施形態に係るスケジューリング装置は、例えば、管理サーバに実装される。管理サーバは、独立したものとして記載されているがこれには限られず、クラスタとして構成されている計算サーバのうち少なくとも1つが管理サーバの機能を備えていてもよい。
図2は、一実施形態に係るスケジューリング装置の機能を示すブロック図の一例である。スケジューリング装置10は、例えば、ジョブスケジューラとして動作する装置であり、ジョブ受付部100と、優先度取得部102と、コスト取得部110と、記憶部104と、ジョブキュー106と、停止命令発行部112と、SS時刻取得部108と、を備える。一例として、図2のクライアントは、図1のクライアントに対応する。同様に、図2スケジューリング装置10、ジョブ実行装置20は、図1の管理サーバ、計算サーバにそれぞれ実装されるが、これに限られる構成でなくともよい。
ジョブ受付部100は、ユーザの指示によりジョブを受け付ける。この指示は、例えば、クライアントを介してスケジューリング装置10のジョブ受付部100へと送信される。このジョブ受付部100は、さらに、ジョブキュー106にエンキューされているジョブ及び/又はジョブ実行装置20において実行中であるジョブに使用されているリソースに基づいて、受け付けたジョブがそのタイミングにおいて実行可能であるか否かを判断する判断手段として機能してもよい。
優先度取得部102は、ジョブ受付部100が受け付けたジョブの優先度を取得する。取得した優先度は、ジョブと紐付けて記憶部104に記憶しておいてもよい。優先度とは、一般的にジョブに付与される優先度であり、例えば、優先度高、優先度中、優先度低、等のランク付けがされる。これには限られず、数値でさらに複数の優先度を表してもよいし、2段階の優先度(例えば、高、低)としてもよい。優先度は、クライアントにより設定されるものであってもよいし、ユーザが設定できるものであってもよい。
記憶部104は、スケジューリング装置10の動作に必要な情報を記憶する。例えば、ジョブ受付部100が受け付けたジョブに関する情報、既に動作しているジョブに関する情報、動作しているジョブのコスト計算に必要となる情報、各ジョブから送信されてきたスナップショットを取得した時間に関する情報等が記憶される。この他、スケジューリング装置10がソフトウェアにより動作している場合には、当該ソフトウェアを動作するために必要なプログラム、又は、バイナリファイル等を記憶していてもよい。
ジョブキュー106は、ジョブ受付部100が受け付けたジョブをエンキューしておくキューである。このジョブキュー106は、通常のキューで構成されていてもよいし、優先度付キューで構成されていてもよい。優先度付キューで無い場合には、優先度の高いジョブが受け付けられた場合に、ジョブキュー106を介さずに優先して命令を、ジョブを実行するジョブ実行装置20に送信してもよい。優先度付キューである場合には、例えば、優先度の高いジョブをキューの待ち行列の先頭付近に移動させてもよい。優先度付キューは、例えば、ヒープで実装されてもよいし、これ以外の実装であってもよい。デキューについては、ジョブ実行装置20の空きリソースが十分に確保できるタイミングにおいて、キューの先頭にあるジョブをスケジューリング装置10がジョブ実行装置20へと送信してもよいし、ジョブ実行装置20がキューの先頭にあるジョブを取得してもよい。
SS時刻取得部108は、ジョブ実行装置20がスナップショット(SS:Snap Shot)を取得した時間をジョブ実行装置20から取得する。例えば、ジョブ実行装置20は、スナップショットを取得しはじめたタイミングにおいて、その時刻を記憶しておき、スナップショットが取得し終えた後に、SS時刻取得部108へと記憶した当該時刻を送信する。SS時刻取得部108は、この時刻を受信して取得する。取得した時刻は、ジョブと紐付けて記憶部104に記憶してもよいし、SS時刻取得部108が記憶しておいてもよい。1つのジョブにおいて適切なタイミングにおいてスナップショット(あるいは、状態をダンプした情報)を取得しておくことにより、中断したジョブがスナップショットを参照することにより再開することが可能となる。各ジョブが取得したスナップショットは、共有ストレージ等に記憶する。
すなわち、スナップショットは、各ジョブが当該スナップショットを取得した状態に復帰可能な情報である復帰情報として取得され、記憶される。そして、スナップショットの取得を開始した時刻は、各ジョブが復帰情報を取得した時刻である。このように、SS時刻取得部108は、動作中の各ジョブが復帰情報を取得した時刻を取得して記憶部104に記憶する。以下においては、スナップショットを用いて説明するが、他の復帰情報としては、例えば、適切なタイミングでダンプされた復帰に必要となるデータ集合等で代替することも可能である。
コスト取得部110は、ジョブキュー106にジョブがエンキューされている状態において、優先度の高いジョブがジョブ受付部100により受付された場合に、そのタイミングにおいて動作している各ジョブのコストを取得する。このコスト取得部110は、さらに、取得したコストに基づいて、停止するジョブ(以下、単に停止候補とも記載する。)を選択する選択手段として機能してもよい。コストの取得は、記憶部104に記憶されている、各ジョブのスナップショットを取得した時刻に基づいて決定される。また、各ジョブのコスト計算に利用する情報にも依存していてもよい。
コスト計算に利用する情報とは、例えば、ジョブが使用する演算コアの個数、メモリ使用量、ハードディスク使用量、通信帯域、演算を行う際に発生する熱量、消費電力、又は、これらの情報を一元的に理解できるように金額若しくは所定の基準値に対する比率等により示される情報であり、単位時間あたりの指標となる情報である。コスト取得部110は、例えば、スナップショットを取得した時刻から現在時刻までの経過時間をコストとしてもよいし、この経過時間と、上記の単位時間あたりの指標とを乗算した値をコストとしてもよいし、さらには、優先度等の他のパラメータを用いてコストを計算するような関数に基づいてコストを求めてもよい。
停止命令発行部112は、コスト取得部110が取得した各ジョブのコストについて、コストの低いジョブの動作を停止する命令を発行し、ジョブ実行装置20へと送信する。ジョブ実行装置20は、停止命令に基づいて、コストの低いジョブの動作を停止する。ジョブ実行装置20は、停止した後、当該ジョブに利用されていたリソースが利用可能なリソースとなったことをスケジューリング装置10へと送信してもよい。
なお、図2においては、ジョブキュー106は、スケジューリング装置10に備えられているものであるが、これには限られない。例えば、スケジューリング装置10とは別に備えられ、スケジューリング装置10は、受け付けたジョブ、停止したジョブ(リソースが確保したタイミングで再開するジョブ)を、ジョブキュー106へとエンキューするような構成であってもよい。
図3は、一実施形態に係るジョブ実行装置20の機能を示すブロック図の一例である。ジョブ実行装置20は、演算実行部200と、SS取得部202と、時間通知部204と、を備える。このジョブ実行装置20は、処理回路上に仮想的に実装されているものであってもよく、具体的なハードウェア構成を有しない(より詳しくは、具体的に構成を考慮しなくてもよい)コンテナのようなものであってもよい。
演算実行部200は、ジョブにおいて実行されるべき演算を実行する。演算の実行は、例えば、アクセラレータ上に実装されている演算コアのような処理回路を用いてもよい。この演算実行部200は、ジョブキュー106からジョブ実行装置20へとジョブが送信又はジョブ実行装置20が生成されると、ストレージ30に当該ジョブについての復帰情報、すなわち、スナップショットが記録されているか否かを確認する。
当該ジョブについてスナップショットが無い場合、初期化を行った後にジョブを実行する。当該ジョブについてスナップショットがある場合、当該スナップショットを用いて、停止、又は、中断されているジョブを再開する。
SS取得部202は、ジョブにおいて演算処理を行っている間に、所定のタイミングで復帰情報としてスナップショットを取得し、ストレージ30に記憶する。スナップショットは、例えば、演算に必要となるパラメータ、それまでの演算により最適化されているパラメータ、乱数のシード及びスナップショット取得時における乱数表における位置等、並びに、その他の演算に必要となるパラメータ又は演算の途中経過として取得されうるパラメータを記録することにより取得される。このように、スナップショットは、処理中のジョブ全体のスナップショットであってもよいし、状態を復帰させるために必要なデータを、データごとにダンプした情報の集合をも含む概念であってもよい。
上述したように、演算実行部200によりジョブが実行されると、当該ジョブが新たな演算を行うのか、停止、中断された状態から再開するのかを判断する必要がある。このため、SS取得部202は、スナップショットにジョブの識別子等、いずれのジョブのスナップショットであるかの情報を付与してストレージ30に記憶させてもよい。あるいは、ストレージ30内にテーブル等を備えておき、当該テーブル等にスナップショットを記憶したジョブに関する情報を記憶してもよい。ジョブに関する情報は、例えば、ジョブに固有に割り振られたIDを用いてもよいし、ハッシュ値等ジョブから得られる情報を用いてもよい。
SS取得部202は、さらに、スナップショットの取得を開始した時刻を取得する。スナップショットを取得し終えた後、時間通知部204は、SS取得部202が取得した開始時刻をスケジューリング装置10へと送信する。
ジョブを複数のノードで並列演算している場合には、各ノードにおいてスナップショットを取得してもよい。これには限られず、各ノードの情報をマスターノードへと集約し、スナップショットを取得してもよい。各ノードにおいてスナップショットを取得する場合には、例えば、最後に取得したスナップショットに基づいて時刻を記憶するが、これには限られない。
ストレージ30に既に同じジョブのスナップショットがある場合には、SS取得部202は、スナップショットを取得したタイミングにおいて、当該過去のスナップショットを消去(削除)してもよい。あるいは、所定の個数のスナップショットを残し、当該タイミングにおいて、所定の個数以上のスナップショットがある場合には、一番古いスナップショットを消去してもよい。この所定の個数は、ジョブごとに設定されてもよい。
ストレージ30は、上記のスナップショットを記憶するための記憶領域である。このストレージ30は、ジョブ実行装置20の外部に備えられ、複数のジョブ実行装置20からアクセス可能な共有のストレージであってもよい。また、ストレージ30は、ファイルストレージであってもよいし、オブジェクトストレージであってもよい。
複数のジョブ実行装置20からアクセス可能とすることにより、停止、中断されたジョブについて、新しいジョブ実行装置20が仮想的に生成された場合においても、スナップショットが取得されているか否かを確認することが可能である。さらに、スナップショットが取得されている場合には、当該新しいジョブ実行装置20において実行するジョブが過去に停止、中断されたタイミングにおいて取得されている最新のスナップショットを参照することが可能となる。
以下、概念図を用いて、上述したスケジューリング装置10のスケジュールの様子を説明する。図4は、ジョブを実行中の様子を示す概念図である。
まず、スケジューリング装置10がジョブの実行を指示する。この指示は、上述したように、ジョブキューへのエンキュー及びジョブキューからのデキューにより行われる。
ジョブ実行装置20においてジョブが開始されると、所定のタイミングにおいて当該ジョブはスナップショットを取得する。図中の破線矢印で示すように、取得されたスナップショットはストレージ30に記憶される。一方、スナップショットがジョブ実行装置20において取得されたタイミング、又は、スナップショットがストレージ30に記憶されたタイミングにおいて、スナップショットの取得を開始した時刻がスケジューリング装置10へと送信される。
このように、演算リソースが足りない状況における優先度の高いジョブの割り込みが無い場合、所定のタイミングでスナップショットが取得され、ストレージ30へと記憶され、ジョブが終了するまで演算が繰り返される。なお、所定のタイミングとは、スナップショットを取る間隔が等しいというわけではなく、例えば、最適化計算における所定のイテレーションごと、ビッグデータ処理における所定のデータ数ごと、評価関数の減少度合い、又は、機械学習における1エポックごと、等、ジョブに応じて変更することが可能である。もちろん、所定の時間ごとにスナップショットを取得してもよいが、この場合においても、厳密に同間隔である必要は無い。
図5は、複数のジョブが存在する場合のジョブの様子の一例を示す図である。この図において、開始、終了は、ジョブの開始、終了のタイミングをそれぞれ表し、破線で示したSSと記載されている箇所は、スナップショットを取得するタイミングを表す。
ジョブAは、開始した後、所定の周期でスナップショットを取得し、ジョブを終了する。ジョブBは、開始した後、所定の周期ではあるが、時間的にはジョブAよりも短い周期でスナップショットを取得し、ジョブを終了する。ジョブの終了時間は、ジョブAよりも前である。ジョブCは、開始した後、スナップショットを取得することなく、終了する。
リソースが足りない状態において、優先度の高いジョブXがジョブキュー106にエンキューされた場合にどのような動作をするかを説明する。ただし、ジョブXは、ジョブA、B、Cのいずれかを停止させることにより使用するリソースが確保できるジョブであるとする。以下、ジョブキュー106は、優先度付キューであるとして説明する。優先度付キューではない場合には、一時的にキューからのデキューを停止させておき、ジョブXをジョブキュー106にはエンキューをせずに直接演算装置へと送信して実行させることにより以下の説明と同様の効果を得ることができる。
ジョブXをジョブキュー106にエンキューするタイミングにおいて、リソースが足りないと判断した場合、優先度取得部102は、ジョブXの優先度を取得する。ジョブXの優先度がジョブA、B、Cのいずれの優先度よりも高く無い場合には、ジョブキュー106にエンキューする。
一方、ジョブXの優先度がジョブA、B、Cのいずれかよりも高い場合には、ジョブXをジョブキュー106へとエンキューした上で、ジョブA、B、Cのいずれかを停止させる。ジョブA、B、Cにおいて、優先度がより低いジョブがある場合には、当該ジョブを停止させ、ジョブXを実行させる。例えば、ジョブAがジョブB、Cよりも優先度が低い場合には、ジョブAを停止させることにより、ジョブキュー106にエンキューされているジョブXが実行される。
ジョブA、B、Cの優先度に優劣が無い場合、ジョブA、B、Cのコストを取得して、コストの低いジョブを停止させる。
図6は、各ジョブにおいて直近でスナップショットを取得した時刻からの経過時間をコストとして取得する場合についての概念図を示す。コスト取得部110は、SS時刻取得部108により記憶部104に記憶されている各ジョブについてのスナップショットを取得した時刻から、ジョブXがジョブ受付部100により受け付けられたタイミング、又は、ジョブXがジョブキュー106にエンキューされたタイミングまでの時間を経過時間として算出し、算出した経過時間をコストとして取得する。
例えば、ジョブXが、図示したタイミングにおいて受付、又は、エンキューされた場合、各コストは、実線の矢印で示したようになり、この場合、コストの大きさとして矢印の長さで比較をして、コストA<コストB<コストCとなる。スナップショットが取得されていない場合、例えば、ジョブCのような場合には、ジョブの開始時刻からの時間を取得する。
図に示すようにコストAが最小となる場合、ジョブAを停止させ、ジョブXを実行させる。ジョブの停止は、コスト取得部110が取得したコストに基づいて停止命令発行部112がジョブAに対してジョブを停止する命令を発行することにより実行される。ジョブAが停止されると、優先度付キューにエンキューされているジョブXの実行が開始される。
停止したジョブAは、例えば、ジョブキュー106の先頭になるようにエンキューしてもよい。このようにしておくことにより、図6に示すように、ジョブXの実行が終了した後、ジョブキュー106からジョブAがデキューされ、ジョブAの実行が開始される。実行を開始したジョブAは、ストレージ30に記憶されているスナップショットを参照し、停止位置からジョブを再開する。なお、ジョブAの再エンキューは、必ずしもジョブキュー106の先頭にする必要は無く、ジョブAよりも優先度の高い、あるいは、等しいジョブがジョブキュー内に存在する場合は、そのジョブの後に実行されるようにエンキューされてもよい。別の実装としては、単純に、ジョブキューの最後にエンキューしてもよい。
ジョブXよりも先にジョブCが終了した場合、ジョブAが使用するリソースが足りるのであれば、ジョブCに利用されていたリソースを用いてジョブAがジョブの再開をしてもよい。このように、必ずしも停止以前に用いていたものと同じリソースを用いてジョブを再開する必要は無い。ストレージ30を各リソースからアクセスできる共有ストレージとしておくことにより、スムーズなジョブの再開を行うことが可能となる。
図7は、コスト取得の別の例の場合のジョブ実行の様子を示す概略図である。図6と同じようなタイミングでジョブXがエンキューされた場合であっても、コスト取得の方法によっては、必ずしもジョブAが停止されるわけではない。
例えば、図7において、コストは、単位時間あたりのリソースの使用率(単位時間あたりのコスト)×直近のスナップショット取得からの時間、として計算されるものであるとする。ジョブAの単位時間あたりのコストと時間を乗算したものが、ジョブBの単位時間あたりのコストと時間を乗算したものよりも大きく、ジョブAよりもジョブCのコストが大きくなる場合、コストB<コストA<コストCとなる。
この場合、ジョブBを停止させ、ジョブXの実行を開始する。そして、ジョブBをジョブキュー106の先頭へエンキューする。このようにすることにより、ジョブXを優先して実行し、かつ、停止したジョブBをリソースが空き次第再開することが可能となる。
単位時間あたりのコストは、例えば、GPU(Graphical Processing Unit)、CPU(Central Processing Unit)、メモリ、HDD(Hard Disc Drive)、FPGA(Field Programmable Gate Array)等の処理回路又は記憶領域の使用に関するコスト、あるいは、通信バス、インフィニバンド(Infini Band)等の通信コストを含むコストから計算されてもよい。もちろん、前述したように、発生する熱、消費電力等をコストとしてもよいし、これらの例を複合したものを時間あたりのコストとして計算してもよい。このように単位時間あたりのコストを一元的に数値にすることにより、コストの取得を簡易に行うことが可能となる。
図6及び図7の例においては、ジョブXは、ジョブA、B、Cのいずれかを停止することでリソースが足りるものであるとしたが、これには限られない。例えば、1つのジョブだけを停止してもリソースが足りない場合には、複数のジョブを停止してもよい。停止候補の選択は、コストの低いジョブから順に選択し、優先度の高いジョブを実行するためのリソースが確保できるところまでのジョブを停止してもよい。別の手法としては、コストを取得するタイミングで使用しているリソースを考慮してもよい。
また、優先度は、高い、低い、であるものとしたが、3以上の優先度を有していてもよい。この場合、コストに拘わらず、優先度の低いジョブを停止候補として選択し、同じ優先度内では、上記のようにコストを計算することにより停止候補を選択してもよい。
図8は、上述したスケジューリングについての処理を示すフローチャートである。このフローチャートを用いて、上述のスケジューリングについて処理の流れを説明する。
まず、スケジューリング装置10のジョブ受付部100は、ジョブを受け付ける(S100)。
次に、ジョブ受付部100が受け付けたジョブをジョブキュー106にエンキューする(S102)。ジョブキュー106が優先度付キューである場合、受け付けたジョブの優先度にしたがいエンキューする。エンキューするタイミングで優先度を確認する場合、後述のS106を省略してもよい。
次に、受け付けたジョブを実行するためのリソースが十分にあるか否かを判定する(S104)。リソースが十分であるか否かは、リソースモニタ等によりモニタリングして判断してもよい。また、ジョブキュー106にジョブが既に存在している場合には、リソースが足りていないと判断してもよい。
リソースが足りている場合(S104:YES)、スケジューリング装置10は、ジョブキュー106にエンキューされているジョブを順番に実行させるとともに、ジョブを受け付ける状態へと遷移する。リソースが足りていない場合(S104:NO)、優先度取得部102は、受け付けたジョブの優先度を取得する(S106)。
次に、実行されているジョブの優先度と、受け付けたジョブの優先度を比較する(S108)。受け付けたジョブの優先度が実行されているジョブの優先度よりも低いか、又は、優先度が同じである場合(S108:NO)、スケジューリング装置10は、ジョブキュー106にエンキューされているジョブを順番に実行させるとともに、ジョブを受け付ける状態へと遷移する。
受け付けたジョブの優先度が、実行されているジョブの優先度よりも高い場合(S108:YES)、コスト取得部110は、動作中のジョブのコストを取得する(S110)。なお、優先度の低いジョブが1つだけ実行されている場合には、以下の選択処理を行わずに、S114の処理を行ってもよい。
次に、コスト取得部110が取得したコストに基づいて、停止するジョブ(停止候補)を選択する(S112)。停止候補は、エンキューされ、実行しようとしている優先度の高いジョブのリソースが確保できるまで、1又は複数のジョブについて、コストの小さい順に選択する。
次に、停止命令発行部112は、停止候補に対して、ジョブの停止命令を送信する(S114)。停止命令が発行されたジョブについて、SS取得部202は、復帰情報としてスナップショットを取得し、適切なストレージ30へと格納する。そして、上述したように、スナップショットが取得された場合には、スナップショットを取得しはじめた時刻の情報をSS時刻取得部108へと送信する。SS時刻取得部108は、取得した時刻を記憶部104へと格納するが、S114以降の適切なタイミング、例えば、SS時刻を取得したタイミング又は停止したジョブを再エンキューするタイミング等でこの時刻をする。
そして、停止候補をジョブキュー106へとエンキューする(S116)。停止されたことを確認した後にエンキューしてもよいし、停止命令を発行のタイミングで優先度の高いジョブよりも遅く実行されるようにエンキューしてもよい。
なお、図8には示されていないが、ジョブ実行装置20からスナップショット(復帰情報)の取得時刻が送信された場合には、当該取得時刻を受信したタイミングにおいて、SS時刻取得部108は、記憶部104へ取得時刻を記憶させる。この場合、さらに、取得時刻が未来の時刻であった場合には、時刻の更新を拒否してもよい。
図9は、本実施形態の変形例に係る処理を示すフローチャートである。図8は、新たなジョブを受け付けた場合の処理であったが、図9においては、既に動作しているジョブの停止又は中断が発生した場合の処理を示すものである。
まず、何らかの原因により、ジョブの停止又は中断がされる(S118)。ジョブの停止又は中断は、ユーザが任意のタイミングで指示して行ってもよいし、計算サーバ又は管理サーバにおいて、実行不能になる状況が起こった場合にエラー処理として中止又は中断をしてもよい。
このような場合、ジョブキュー106にエンキューされているジョブの先頭、又は、ジョブキュー106に存在している最も優先度の高いジョブのうちエンキューされたタイミングが早いものを実行するリソースが足りているか否かを判定する(S120)。この後の処理は、図8に示す処理と同様である。このように、ジョブを受け付けた場合だけではなく、ジョブの停止/中断をフラグとしてスケジューリング装置10が動作してもよい。
図10は、本実施形態の別の変形例に係る処理を示すフローチャートである。優先度の判定(S108)までの処理は、図8に示した処理と同様である。優先度を判定した後、受け付けたジョブが必要とするリソースに対して、優先度が低いジョブがそのタイミングにおいて使用しているリソースの合計が少ない場合、優先度が低いジョブを中断させても解放されるリソースが少なく、受け付けたジョブを動作させることができない。
そこで、空き予定、すなわち、受け付けたジョブよりも優先度の低いジョブが使用しているリソースの合計が、受け付けたジョブのリソースよりも大きいか否か(以上であるか否か)を判断する(S122)。受け付けたジョブを実行するリソース(実行リソース)が確保できる場合(S122:YES)、S110からの処理を実行する。
一方で、受け付けたジョブを実行リソースの確保が困難である場合(S122:NO)、待機処理に移行する(S124)。この待機処理は、例えば、リソースが確保できるまで待機する処理である。リソースを確保することができたタイミングで実行させてもよい。別の例として、受け付けたジョブと同じ優先度のジョブが新たに受け付けられ、さらに、新たに受け付けたジョブの方が利用するリソースが少ない場合には、新たに受け付けられたジョブを実行させてもよい。
解放されるリソースが実行に必要なリソースよりも小さい場合には、優先度の低いジョブを停止させても受け付けたジョブを実行することができないので、優先度の低いジョブの実行を継続させる。このように、リソースに空きが出ないようにして、システム全体としてのリソースの使用率を向上させることも可能である。なお、図9のS122、S124は、図8の場合についても適用することが可能である。
図11は、ジョブ実行装置20の処理の流れを示すフローチャートである。以下の説明では、ジョブ実行装置20としてマスターの装置が存在し、当該マスターの装置において各リソースを用いたジョブを実行しているものとする。これには限られず、ジョブキュー106にエンキューされているジョブが、リソースが十分に使用できる状態となったタイミングにおいて、コンテナとして新しいジョブ実行装置20として生成される場合にも、以下の説明を適用することが可能である。コンテナは、例えば、ジョブ実行装置20が実装されるクラスタ内のマスターの計算機で生成されてもよいし、スケジューリング装置10が実装される、管理サーバ等のサーバで生成されてもよい。
まず、ジョブ実行装置20は、ジョブキュー106にエンキューされている先頭のジョブを実行するために必要なリソースが存在するか否かを判断する(S200)。リソースが十分にあいていない場合(S200:NO)、待機状態へと戻る。この場合、リソースの空きができたことを検知して待機してもよいし、所定時間ごとにリソースの状態を確認して待機してもよい。
ジョブを実行するのに十分なリソースの空きがある場合(S200:YES)、ジョブをデキューする(S202)。コンテナである場合、デキューすることにより、デキューしたジョブの実行を行うジョブ実行装置20が生成されてもよい。
次に、ジョブ実行装置20は、ストレージ30を参照し、当該ジョブに対応するスナップショット(復帰情報)が存在するか否かを確認する(S204)。ジョブに対応するスナップショットが存在する場合(S204:YES)、演算実行部200は、ストレージ30に記憶されているスナップショットを参照、又は、スナップショットをダウンロード等することにより、スナップショットの状態からジョブを再開する(S206)。
スナップショットが存在しない場合(S204:NO)、演算実行部200は、デキューしたジョブを新規のジョブとして初期状態から実行する。再開したジョブ、又は、新規のジョブを実行するとともに、所定のタイミングにおいて、SS取得部202は、スナップショットを取得し、ストレージ30へと記憶させる(S208)。上述したように、スナップショットの取得を開始した時刻を記憶する。時間通知部204は、取得が終了したタイミングで取得を開始した時刻をスケジューリング装置10へと送信する。
特に優先度の高いジョブが受け付けられず、停止命令を受信していない場合(S210:NO)、演算実行部200は、演算の実行を続行する。そして、ジョブが終了するか否かを判断し(S214)、ジョブが終了していない場合(S214:NO)には、停止命令の受信の待機状態へと遷移する。フローチャートにおいて、S210とS214はシリアルに記載されているがこれには限られず、ジョブ実行状態においては、これらの2つの判断を並行して監視してもよい。
停止命令を受信した場合(S210:YES)、ジョブ実行装置20は、ジョブの実行を停止し(S212)、待ち状態へと移行する。コンテナで実行している場合には、適切にコンテナを消去させてもよい。停止命令を受信せず(S210:NO)に、ジョブが終了した場合(S214:YES)も同様に、ジョブの待機状態、又は、コンテナの消去を行う。
ジョブ実行装置20は、上記のように、マスターとして存在している装置があり、当該マスターの装置からジョブを実行してもよいし、各ジョブ実行装置20が、コンテナとして生成されるものであってもよい。この実装は、コンピュータ、又は、クラスタ等の管理状態に応じて適切に変更できるものであり、本実施形態に記載の方法は、これらの管理方法に依存せずに実行できるものである。
以上のように、本実施形態によれば、スナップショットを利用し、優先度に応じたジョブのスケジューリングをすることが可能となる。スナップショットを取得した状態からのコストを計算することにより、優先度はもとより、クラスタ内のリソースの無駄を抑制するスケジューリングを行うことが可能となる。また、上述のスケジューリング装置10、ジョブ実行装置20、ストレージ30を併せてスケジューリングシステムとして構成してもよい。また、ストレージ30として不揮発性のメモリを用いた場合には通電状態に無い状態でもスナップショットが記憶され、クラスタを構成しているサーバのメンテナンス性を高めるとともに、既に計算されているデータに適用されるはずであったリソースの無駄を省くことも可能である。
スナップショット取得の時刻を利用してコストを計算することにより、例えば、機械学習、ビッグデータ利用等、一般的に計算時間又はリソースを含めた計算コストが大きい処理についても、優先度に基づいたスケジューリングを行うことが可能となる。これらの処理は、計算コストが大きくなるが、所定のタイミングごと(例えば、1エポックごと)にスナップショットを有効に取得することが可能である。
なお、動作中のプロセスのダンプを取得して中断したジョブの再開を行うライブマイグレーションを用いる場合においても、本実施形態を適用することは可能である。ライブマイグレーションを実行する場合、マイグレーションが実行される所定時間前に、仮想マシン上のゲストOSに対して開始が事前通知される。すなわち、ライブマイグレーションを行うためには、ある程度の時間が必要となる。そこで、この事前通知のタイミングにおいて、本実施形態に係るスケジューリング装置10における停止ジョブの選定手法を用いることが可能である。
さらに、ライブマイグレーションを行う場合、IPアドレス等のホストに関する情報や時刻に依存する動作がプログラムに含まれるとダンプを同じタイミングで取得する保証は無く、かつ、処理が複雑となり、実行するのが困難な場合がある。一方で、本実施形態によれば、このような場合においても、ソフトウェアレベルのスナップショットを利用することによりハードウェア等、実行環境が変化する場合にも対応することが可能である。
前述した実施形態におけるスケジューリング装置10及びジョブ実行装置20において、各機能は、アナログ回路、デジタル回路又はアナログ・デジタル混合回路で構成された回路であってもよい。また、各機能の制御を行う制御回路を備えていてもよい。各回路の実装は、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等によるものであってもよい。
上記の全ての記載において、スケジューリング装置10及びジョブ実行装置20の少なくとも一部はハードウェアで構成されていてもよいし、ソフトウェアで構成され、ソフトウェアの情報処理によりCPU等が実施をしてもよい。ソフトウェアで構成される場合には、スケジューリング装置10、ジョブ実行装置20及びその少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記憶媒体に収納し、コンピュータに読み込ませて実行させるものであってもよい。記憶媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記憶媒体であってもよい。すなわち、ソフトウェアによる情報処理がハードウェア資源を用いて具体的に実装されるものであってもよい。さらに、ソフトウェアによる処理は、FPGA等の回路に実装され、ハードウェアが実行するものであってもよい。ジョブの実行は、例えば、GPU等のアクセラレータを使用して行ってもよい。
例えば、コンピュータが読み取り可能な記憶媒体に記憶された専用のソフトウェアをコンピュータが読み出すことにより、コンピュータを上記の実施形態の装置とすることができる。記憶媒体の種類は特に限定されるものではない。また、通信ネットワークを介してダウンロードされた専用のソフトウェアをコンピュータがインストールすることにより、コンピュータを上記の実施形態の装置とすることができる。こうして、ソフトウェアによる情報処理が、ハードウェア資源を用いて、具体的に実装される。
例えば、スケジューリング装置10及びジョブがプログラムとして記載され、ソフトウェアの処理によりハードウェア上で具体的に実行される場合、スケジューリング装置10へのジョブのデプロイは、プラグイン、アドイン、アドオン等の簡易な設計とすることができる。この場合、事前に準備されているAPIを読み出したり、必要なファイルとリンクをしたりすることにより、簡単に実装することが可能である。これらのプラグイン等により、スナップショットを取得する動作が実装されていてもよい。
図12は、本発明の一実施形態におけるハードウェア構成の一例を示すブロック図である。スケジューリング装置10及びジョブ実行装置20は、プロセッサ71と、主記憶装置72と、補助記憶装置73と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたコンピュータ装置7として実現できる。
なお、図12のコンピュータ装置7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図12では、1台のコンピュータ装置7が示されているが、ソフトウェアが複数のコンピュータ装置にインストールされて、当該複数のコンピュータ装置それぞれがソフトウェアの異なる一部の処理を実行してもよい。
プロセッサ71は、コンピュータの制御装置および演算装置を含む電子回路(処理回路、Processing circuit、Processing circuitry)である。プロセッサ71は、コンピュータ装置7の内部構成の各装置などから入力されたデータやプログラムに基づいて演算処理を行い、演算結果や制御信号を各装置などに出力する。具体的には、プロセッサ71は、コンピュータ装置7のOS(オペレーティングシステム)や、アプリケーションなどを実行することにより、コンピュータ装置7を構成する各構成要素を制御する。プロセッサ71は、上記の処理を行うことができれば特に限られるものではない。スケジューリング装置10、ジョブ実行装置20及びそれらの各構成要素は、プロセッサ71により実現される。ここで、処理回路とは、1チップ上に配置された1又は複数の電気回路を指してもよいし、2つ以上のチップあるいはデバイス上に配置された1又は複数の電気回路を指してもよい。
主記憶装置72は、プロセッサ71が実行する命令および各種データなどを記憶する記憶装置であり、主記憶装置72に記憶された情報がプロセッサ71により直接読み出される。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、メモリでもストレージでもよい。また、メモリには、揮発性メモリと、不揮発性メモリがあるが、いずれでもよい。スケジューリング装置10及びジョブ実行装置20内において各種データを保存するためのメモリは、主記憶装置72または補助記憶装置73により実現されてもよい。例えば、記憶部104は、この主記憶装置72又は補助記憶装置73に実装されていてもよい。別の例として、アクセラレータが備えられている場合には、記憶部104は、当該アクセラレータに備えられているメモリ内に実装されていてもよい。
ネットワークインタフェース74は、無線または有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して通信接続された外部装置9Aと情報のやり取りが行われてもよい。
外部装置9Aは、例えば、カメラ、モーションキャプチャ、出力先デバイス、外部のセンサ、入力元デバイスなどが含まれる。また、外部装置9Aは、スケジューリング装置10及びジョブ実行装置20の構成要素の一部の機能を有する装置でもよい。そして、コンピュータ装置7は、スケジューリング装置10及びジョブ実行装置20の処理結果の一部を、クラウドサービスのように通信ネットワーク8を介して受け取ってもよい。
デバイスインタフェース75は、外部装置9Bと直接接続するUSB(Universal Serial Bus)などのインタフェースである。外部装置9Bは、外部記憶媒体でもよいし、ストレージ装置でもよい。記憶部104は、外部装置9Bにより実現されてもよい。
外部装置9Bは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声などを出力する装置などでもよい。例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、スピーカなどがあるが、これらに限られるものではない。
なお、外部装置9Bは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネルなどのデバイスを備え、これらのデバイスにより入力された情報をコンピュータ装置7に与える。入力装置からの信号はプロセッサ71に出力される。
上記の全ての記載に基づいて、本発明の追加、効果又は種々の変形を当業者であれば想到できるかもしれないが、本発明の態様は、上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更及び部分的削除が可能である。例えば、前述した全ての実施形態において、説明に用いた数値は、一例として示したものであり、これらに限られるものではない。
10:スケジューリング装置、100:ジョブ受付部、102:優先度取得部、104:記憶部、106:ジョブキュー、108:SS時刻取得部、110:コスト取得部、112:停止命令発行部、20:ジョブ実行装置、200:演算実行部、202:SS取得部、204:時間通知部、30:ストレージ

Claims (9)

  1. 実行中のジョブの情報を記憶する、記憶部と、
    ジョブを受け付け、前記受け付けたジョブの実行リソースを確保できない場合に、前記実行中のジョブの情報に基づいて、前記実行中のジョブのうち前記受け付けたジョブよりも優先度が低いジョブの少なくとも1つを停止候補として選択し、前記停止候補に対して停止命令を発行する、処理回路と、
    を備えるスケジューリング装置。
  2. 前記記憶部に記憶されている前記実行中のジョブの情報は、前記実行中のジョブの復帰情報を取得した時刻に関する情報を備え、
    前記処理回路は、前記時刻からの経過時間に基づいて、前記停止候補を選択する、
    請求項1に記載のスケジューリング装置。
  3. 前記記憶部に記憶されている前記実行中のジョブの情報は、前記実行中のジョブの単位時間あたりのコストに関する情報を備え、
    前記処理回路は、前記時刻からの経過時間と前記単位時間あたりのコストとの乗算値に基づいて、前記停止候補を選択する、
    請求項2に記載のスケジューリング装置。
  4. 前記復帰情報は、前記実行中のジョブのスナップショットである、請求項2又は請求項3に記載のスケジューリング装置。
  5. 前記処理回路は、前記停止候補が停止した後、又は、前記停止命令を発行した後に、停止した前記停止候補を実行待ち状態にする、請求項1乃至請求項4のいずれかに記載のスケジューリング装置。
  6. ジョブを受け付ける、クライアントと、
    請求項1乃至請求項5のいずれかに記載のスケジューリング装置と、
    前記スケジューリング装置が前記ジョブをエンキューする、ジョブキューと、
    前記ジョブキューにエンキューされている順序にしたがい、前記ジョブを実行する、ジョブ実行装置と、
    を備えるスケジューリングシステム。
  7. 前記ジョブ実行装置は、コンテナにより実装される、請求項6に記載のスケジューリングシステム。
  8. 実行中のジョブの情報を記憶するステップと、
    ジョブを受け付けるステップと、
    前記受け付けたジョブを実行するリソースが確保できるか否かを判断するステップと、
    前記受け付けたジョブを実行するリソースを確保できない場合に、前記実行中のジョブの情報に基づいて、前記実行中のジョブのうち前記受け付けたジョブよりも優先度が低いジョブの少なくとも1つを停止候補として選択するステップと、
    前記停止候補に対して停止命令を発行するステップと、
    を備えるスケジューリング方法。
  9. コンピュータを、
    実行中のジョブの情報を記憶する、記憶手段、
    ジョブを受け付ける、受付手段、
    前記受け付けたジョブを実行するリソースが確保できるか否かを判断する、判断手段、
    前記受け付けたジョブを実行するリソースを確保できない場合に、前記実行中のジョブの情報に基づいて、前記実行中のジョブのうち前記受け付けたジョブよりも優先度が低いジョブの少なくとも1つを停止候補として選択し、前記停止候補に対して停止命令を発行する、停止命令発行手段、
    として機能させるプログラム。
JP2018149726A 2018-08-08 2018-08-08 スケジューリング装置、スケジューリングシステム、スケジューリング方法及びプログラム Pending JP2020024636A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018149726A JP2020024636A (ja) 2018-08-08 2018-08-08 スケジューリング装置、スケジューリングシステム、スケジューリング方法及びプログラム
PCT/JP2019/028690 WO2020031675A1 (ja) 2018-08-08 2019-07-22 スケジューリング装置、スケジューリングシステム、スケジューリング方法、プログラム及び非一時的コンピュータ可読媒体
US17/159,904 US20210149726A1 (en) 2018-08-08 2021-01-27 Scheduling device, scheduling system, scheduling method, and non-transitory computer-readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018149726A JP2020024636A (ja) 2018-08-08 2018-08-08 スケジューリング装置、スケジューリングシステム、スケジューリング方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2020024636A true JP2020024636A (ja) 2020-02-13

Family

ID=69414127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018149726A Pending JP2020024636A (ja) 2018-08-08 2018-08-08 スケジューリング装置、スケジューリングシステム、スケジューリング方法及びプログラム

Country Status (3)

Country Link
US (1) US20210149726A1 (ja)
JP (1) JP2020024636A (ja)
WO (1) WO2020031675A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112022000944T5 (de) 2021-03-24 2023-12-14 Fujifilm Corporation Verarbeitungssystem für medizinische informationen und verarbeitungsverfahren für medizinische informationen, bereitstellungsverfahren von verarbeitungsdienst für medizinische informationen und programm

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114418282A (zh) * 2021-12-08 2022-04-29 交控科技股份有限公司 车站场景管理方法、装置、设备及计算机程序产品
CN115981808A (zh) * 2022-12-07 2023-04-18 京东科技信息技术有限公司 调度方法、装置、计算机设备和存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0319034A (ja) * 1989-06-16 1991-01-28 Nec Corp ジョブ管理方式
JP2002007364A (ja) * 2000-06-22 2002-01-11 Fujitsu Ltd 並列計算機システムのジョブスケジューリングを行うスケジューリング装置
US8214836B1 (en) * 2005-05-13 2012-07-03 Oracle America, Inc. Method and apparatus for job assignment and scheduling using advance reservation, backfilling, and preemption
JP2007199811A (ja) * 2006-01-24 2007-08-09 Hitachi Ltd プログラム制御方法、計算機およびプログラム制御プログラム
JP4336763B2 (ja) * 2006-06-08 2009-09-30 日本電気株式会社 ジョブ管理システム
JP2009025939A (ja) * 2007-07-18 2009-02-05 Renesas Technology Corp タスク制御方法及び半導体集積回路
JP4935595B2 (ja) * 2007-09-21 2012-05-23 富士通株式会社 ジョブ管理方法、ジョブ管理装置およびジョブ管理プログラム
US8185903B2 (en) * 2007-12-13 2012-05-22 International Business Machines Corporation Managing system resources
US8453152B2 (en) * 2011-02-01 2013-05-28 International Business Machines Corporation Workflow control of reservations and regular jobs using a flexible job scheduler
US9424078B2 (en) * 2011-11-14 2016-08-23 Microsoft Technology Licensing, Llc Managing high performance computing resources using job preemption
JP5787365B2 (ja) * 2012-09-18 2015-09-30 Necフィールディング株式会社 電力制御装置、電力制御システム、電力制御方法及びプログラム
US9442760B2 (en) * 2014-10-03 2016-09-13 Microsoft Technology Licensing, Llc Job scheduling using expected server performance information
EP3079059A1 (en) * 2015-04-07 2016-10-12 Huawei Technologies Co., Ltd. Method and apparatus for a mobile device based cluster computing infrastructure
US11087234B2 (en) * 2016-01-29 2021-08-10 Verizon Media Inc. Method and system for distributed deep machine learning
JP6577901B2 (ja) * 2016-04-18 2019-09-18 株式会社日立製作所 計算機システムおよびシステム状態再現方法
CN109522101B (zh) * 2017-09-20 2023-11-14 三星电子株式会社 用于调度多个操作系统任务的方法、系统和/或装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112022000944T5 (de) 2021-03-24 2023-12-14 Fujifilm Corporation Verarbeitungssystem für medizinische informationen und verarbeitungsverfahren für medizinische informationen, bereitstellungsverfahren von verarbeitungsdienst für medizinische informationen und programm

Also Published As

Publication number Publication date
US20210149726A1 (en) 2021-05-20
WO2020031675A1 (ja) 2020-02-13

Similar Documents

Publication Publication Date Title
US11314551B2 (en) Resource allocation and scheduling for batch jobs
US20200137151A1 (en) Load balancing engine, client, distributed computing system, and load balancing method
US9952896B2 (en) Asynchronous task management in an on-demand network code execution environment
US10282229B2 (en) Asynchronous task management in an on-demand network code execution environment
Delgado et al. Job-aware scheduling in eagle: Divide and stick to your probes
US20170031622A1 (en) Methods for allocating storage cluster hardware resources and devices thereof
JP2005056391A (ja) コンピューティング環境の作業負荷を均衡させる方法およびシステム
CN108776934A (zh) 分布式数据计算方法、装置、计算机设备及可读存储介质
EP2254049A2 (en) Job scheduling apparatus and job scheduling method
US20210149726A1 (en) Scheduling device, scheduling system, scheduling method, and non-transitory computer-readable medium
WO2018005500A1 (en) Asynchronous task management in an on-demand network code execution environment
WO2014194869A1 (zh) 一种请求处理方法、装置及系统
US20110314157A1 (en) Information processing system, management apparatus, processing requesting apparatus, information processing method, and computer readable medium storing program
US20170220385A1 (en) Cross-platform workload processing
CN111338785A (zh) 资源调度方法及装置、电子设备、存储介质
US11556382B1 (en) Hardware accelerated compute kernels for heterogeneous compute environments
US10013288B2 (en) Data staging management system
JP2016024612A (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
US11474868B1 (en) Sharded polling system
JP2007328413A (ja) 負荷分散方法
JPWO2008149657A1 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
JP2015094976A (ja) 情報処理装置、情報処理方法、及び、プログラム
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
JP6627475B2 (ja) 処理リソース制御プログラム、処理リソース制御装置、および処理リソース制御方法
CN112860446A (zh) 消息分发方法