JP7513189B2 - スケジューリング装置、スケジューリング方法、および、スケジューリングプログラム - Google Patents

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

Info

Publication number
JP7513189B2
JP7513189B2 JP2023503319A JP2023503319A JP7513189B2 JP 7513189 B2 JP7513189 B2 JP 7513189B2 JP 2023503319 A JP2023503319 A JP 2023503319A JP 2023503319 A JP2023503319 A JP 2023503319A JP 7513189 B2 JP7513189 B2 JP 7513189B2
Authority
JP
Japan
Prior art keywords
model
task
accelerator
time
unit
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
JP2023503319A
Other languages
English (en)
Other versions
JPWO2022185527A1 (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2022185527A1 publication Critical patent/JPWO2022185527A1/ja
Application granted granted Critical
Publication of JP7513189B2 publication Critical patent/JP7513189B2/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/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/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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、スケジューリング装置、スケジューリング方法、および、スケジューリングプログラムに関する。
ハードウェアの計算機資源であるリソースを、ソフトウェアのVM(Virtual Machine)やコンテナにどの程度割り当てるかというリソース割り当てにより、得られる性能が異なってくる。そこで、リソースのサーバ負荷に応じて、自動的にVM/コンテナの数を増減させる「オートスケール」という機能が提案されている。
特許文献1には、少ないリソース割当量でのオートスケールの実行により、VM/コンテナにおいて無駄なリソースが少なくなるようにリソース割当を行うネットワーク性能保証システムが記載されている。
特許文献2には、性能に対してリソースの割当量の依存度が有るか否かを求め、依存有りに該当する割当量のリソースのみをオートスケール実行により増減可能とするオートスケール型の性能保証システムが記載されている。
特開2020-123848号公報 特開2020-123849号公報
CPU(Central Processing Unit)が行う処理の一部を代行し、処理の高速化を行うハードウェアアクセラレータが普及している。アクセラレータは、例えば、FPGA(Field-Programmable Gate Array、書き換え可能な論理回路)として実装される。FPGAデバイスは、例えば、CNN(Convolutional Neural Network)アルゴリズムが実装されたモデルを、CPUよりも高速に動作させる。
なお、CNNとは、主に画像認識・分類に使用される人工知能(ニューラルネットワーク)の一つであり、画像の局所的な特徴を抽出する畳み込み層を持つ。CNNアルゴリズムは、例えば、画像分類に適したモデルや、顔認識に適したモデルなどのユースケースによって、各層の深さや大きさが異なる様々なものが提案されている。
FPGAリソースを潤沢に使用できる場合には、モデルごとに専用のFPGAデバイスをそれぞれ用意すればよい。そして、同じモデルを利用するユーザ間で、特許文献1,2のようなオートスケールを適用すればよい。
一方、初期投資(CAPEX:Capital Expenditure)の削減などのため、FPGAリソースが少ない場合には、同じFPGAリソースを共用する複数種類のモデルを、時間的に切り替える必要がある。なお、FPGAリソースが少ない原因として、大学の研究室等で各メンバがオンプレミスのFPGAを共同で利用する場合も考えられる。
ここで、Linux(登録商標)で使用され、研究が多くなされているCPUのスケジューラでは、FPGAリソース上のモデルを切り替える用途には不向きである。まず、CPUのスケジューラに実装されるタスクの選定機能は、コンテキストスイッチを前提に、タイムスライスによるCPUのスケジューリングを実行する。しかし、FPGAではコンテキストの保存が行われないため、タイムスライスを利用したLinux従来のスケジューリングが適用できない。
このように、従来技術では、FPGA上のモデルの切替制御をプラットフォームで支援する機能は提供されていない。つまり、マルチユーザがそれぞれ実行させるモデルを、共用されるFPGA上で円滑に切り替える手段は提供されてこなかった。
そこで、本発明は、同じアクセラレータ上で複数種類のモデルを切替えながら複数のユーザのタスクを実行することを主な課題とする。
前記課題を解決するために、本発明のスケジューリング装置は、以下の特徴を有する。
本発明は、各タスクの使用するモデルを取得するコントローラ部と、
前記コントローラ部が取得したモデルが処理可能となるように、アクセラレータの設定を切り替える制御を行う制御部と、
各タスクの使用するモデルごとにタスクを保管するキューを参照し、前記制御部が切り替えたことで処理可能となったモデルを使用するタスクを読み込んで前記アクセラレータに実行させるスケジューラ部とを有しており、
各タスクには、タスクの到着時刻からタスクの終了時刻までに要する制限時間であるTAT(Turn Around Time)要件が指定されており、
前記制御部は、前記アクセラレータで動作中の現モデルから別モデルへの前記アクセラレータの切り替え時間と、前記別モデルのタスクの実行時間をもとに、前記現モデルを前記別モデルに切り替えることを仮定したときの前記別モデルの終了時刻が、前記別モデルのTAT要件から算出される締め切り時刻を超過する場合に、前記現モデルから前記別モデルへの切り替えを前記アクセラレータに設定することを特徴とする。
本発明によれば、同じアクセラレータ上で複数種類のモデルを切替えながら複数のユーザのタスクを実行することができる。
本実施形態に係わるスケジューリング装置の構成図である。 本実施形態に係わるスケジューリング装置の詳細を示す構成図である。 本実施形態に係わるスケジューリング装置のハードウェア構成図である。 本実施形態に係わるタスク要件の組み合わせによる分類を示すテーブルである。 本実施形態に係わる締め切り型のスケジューリング処理を示すフローチャートである。 本実施形態に係わるベストエフォート型のスケジューリング処理を示すフローチャートである。 本実施形態に係わる混在型のスケジューリング処理を示すフローチャートである。
以下、本発明の一実施形態について、図面を参照して詳細に説明する。
図1は、スケジューリング装置100の構成図である。
スケジューリング装置100は、プロセス10の実行環境であるCPU(図示省略)と、モデルの実行環境であるFPGA70とを有する。なお、プロセス10の実行環境と、モデルの実行環境とはそれぞれスケジューリング装置100とは別の装置として構成してもよい。
プロセス10は、ユーザ自身がプログラムをデプロイした結果の処理単位である。図1の例では、2人のユーザそれぞれのプロセス10(第1ユーザのプロセス10X、第2ユーザのプロセス10Y)がデプロイされている。
1つのプロセス10は1つ以上の「タスク」を実行する。タスクはジョブとも呼ばれ、画像分類や顔認識などの個別の処理を行う処理単位である。1つのタスクは、ある1つの「モデル」を使用して推論処理を実行する。よって、各タスクが各モデルを使用する処理要求はキュー43に格納される。
なお、1つのプロセス10は複数のタスクを並行して実行してもよい。同じプロセス10でも、顔認識のユースケース等でそれぞれ異なるCNNアルゴリズムのモデルを使用する複数のタスクを組み合わせて、パイプライン的に処理することもある。
FPGA70内のIPコア71は、複数種類のモデルを切替えながら実行するハードウェアアクセラレータである。IPコア71は、例えば、CNNの畳み込み計算を実装した推論回路である。IPコア71に一度回路を構成すると、回路を再構成することなく様々なCNNモデルを切り替えて利用できるものもある。しかし、IPコア71で実行される複数種類のモデルを切り替えるには、切替時間が発生する。
ここで、画像分類、顔認証、人物(ポーズ)検出、物体検出、標識・レーン検出などユースケースごとに適切なモデルが存在する。例えば、画像分類のタスクは、入力された画像が猫の画像なのか犬の画像なのかを、Resnet50というモデルを使用して推論する。さらに同じCNNアルゴリズムでも学習の仕方が異なれば、別々のCNNモデルとして利用される場合もある。
なお、IPコア71でのモデルの切替処理の前提は、以下の通りである。
(前提1)FPGA70はCPUからの通知を契機にモデルを使用するタスクを開始し、そのタスクの終了時にCPUに処理を返却するルックアサイド型の処理を行う。
(前提2)各タスクをFPGA70で実行する前に、そのタスクが使用するモデルがIPコア71に設定されていない場合、一定時間の再設定時間を要する(CNNモデルの切替えに相当)。
(前提3)IPコア71がモデルAに切替が行われた後は、別のモデルBを使用する別タスクを実行するまでは、IPコア71の切替の必要なくモデルAを使用する複数のタスクを継続的に処理できる。
(前提4)IPコア71の切替時間やモデルを利用した実処理の実行時間が一定であり、プラットフォーム側(後記するFPGA制御部50)で取得可能であるとする。ただし、各プロセス10からの各モデル実行要求は非周期的(aperiodic)で予測不能(unpredictable)とする。
スケジューリング装置100は、IPコア71上のモデルを切り替える制御部として、コントローラ部30と、共通部40と、キュー43と、FPGA制御部50と、スケジューラ部60とを有する。コントローラ部30と、FPGA制御部50と、スケジューラ部60との詳細は、図2で後記する。
各プロセス10は、モデルAを使用するタスクの実行要求であるモデルA要求21と、モデルBを使用するタスクの実行要求であるモデルB要求22とを、それぞれモデル要求20としてコントローラ部30に通知する。
共通部40は、コントローラ連携部41と、キュー振分け部42と有する。コントローラ連携部41は、コントローラ部30から使用可能なキュー43に関する情報を受け取り、キュー43をモデルごとに作成する。そして、キュー振分け部42は、モデル要求20で指定した各タスクを各プロセス10から受け、各タスクを使用するモデル別にキュー43に格納する。
なお、モデル要求20には、どのモデルを実行すればよいかというモデル種別(モデルA,B,…)の指定に加え、そのモデルの実行性能に関する要件(タスク要件)がプロセス10から指定されることもある。タスク要件は、例えば、以下の2つが代表的である。
・TAT(Turn Around Time)要件は、タスクの到着時刻からタスクの終了時刻までに要する時間(TAT)の許容される最大値(制限時間)であり、500[ms]などが指定される。
・TP(Throughput)要件は、単位時間(例えば1秒)あたりに処理される量の許容される最小値であり、200[batch/second]などが指定される。
以下、タスク要件に関する各種パラメータを定義する。「t」は時刻(ある瞬間)を示し、「T」は時間(開始時刻から終了時刻までの期間長)を示す。
t_nowは、現在時刻である。
t_arrivalは、タスクの到着時刻である。
T_tat[A]は、タスクが使用するモデルAのTAT要件である。
t_limitは、タスクの締め切り時刻である。
よって、t_limit=t_arrival+T_tat[A]となる。
T_waitは、タスクがIPコア71上で開始されるまでの待ち時間である。
t_startは、タスクの開始時刻である。
よって、t_start=t_arrival+T_waitとなる。
t_endは、タスクの終了時刻である。
T_reconf[A→B]は、モデルAからモデルBへのFPGAの切替時間である。
T_exec[B]は、モデルBのタスクの実行時間である。
よって切替が必要な場合、t_end=t_start+T_reconf[A→B]+T_exec[B]となる。
R[A]は、モデルAのTP要件である。
P_totalは、スケジューリング装置100のCPUが扱うプロセス10の数の総和である。
図2は、スケジューリング装置100の詳細を示す構成図である。
コントローラ部30は、コマンド受付部31と、キュー管理部32と、使用IPコア制御部33と、FPGAモデル設定部34とを有する。
コマンド受付部31は、プロセス10からのリソース制御命令(使用IPコア数)を受け付ける。
キュー管理部32は、新たなモデルを使用するタスクが立ち上がるごとに、そのモデル用のキュー43(複数の優先度を持つキューのセット)の作成をコントローラ連携部41に通達する。
使用IPコア制御部33は、FPGA70のIPコア71の占有/空き状態を管理し、コマンド受付部31から指定された数のIPコアを確保する。また、使用IPコア制御部33は、必要に応じてモデルごとに排他的となるように固定的に割り当てたマップを作成し管理する。また、使用IPコア制御部33は、割り当て情報に関しては更新の都度、スケジューラ部60に通達し、空きのIPコア71が足りない場合は、NGを返す。
このように、使用IPコア制御部33がIPコアの空き状態を見て内部でIPコアマスクを指定し、スケジューラ部60に設定するため、クラウド内部の情報がプロセス10に露呈しない。また、コントローラ部30に外部IFを持たせることで、リソースの動的制御を実現する。
FPGAモデル設定部34は、各プロセス10から各タスクの使用するモデルを取得する。
FPGA制御部50は、収容可否計算部51と、FPGAモデル管理部52と、FPGAモデル構成部53と、タスク到着時刻管理部54と、タスク切替部55と、タスク実行時間管理部56とを有する。
収容可否計算部51は、各プロセス10のタスク要件をもとに、各プロセス10のデプロイの可否を判断する。
FPGAモデル管理部52は、FPGAモデル設定部34が取得したモデルを、プロセス10に対応付けてコンテキストのデータとして保持する。
FPGAモデル構成部53は、FPGAモデル管理部52の保持するデータを参照して、実際にIPコア71のモデルの切替えを行う。
なお、タスクの使用モデルを考慮せずにスケジューリングすると、スループットが著しく低下する。よって、以下に列挙する理由などにより、プロセス10の要求するTAT要件を満たすように、モデルの切替えタイミングを決定することが望ましい。
・FIFO(First In First Out)やRR(Round Robin)などの単純なスケジューリングでタスクを実行していくと、スイッチングコストが大きく、スループットが低下する。
・スイッチングした後に、ある程度タスクをまとめて処理する必要があるが、一定時間で切替える方式ではアイドル状態が生まれリソース効率が低い。
・処理限度を決めてキューにタスクがない場合は即座に切替えることでリソース効率は上がるが、タスク到着頻度の小さいタスクが必要以上に待たされることになり、TAT要件に影響する。
そこで、タスク到着時刻管理部54、タスク切替部55、および、タスク実行時間管理部56を用いることで、FPGA制御部50は、TAT要件を満たすようにモデルの切替えタイミングを決定する。
まず、タスク到着時刻管理部54は、キュー43を監視することで、各タスクの到着時刻を取得し、スケジューリング装置100の内部に保持する。一方、タスク実行時間管理部56は、FPGA70を監視することで、各タスクの実行時間および切替時間を取得する。
タスク切替部55は、コントローラ部30が取得したモデルが処理可能となるように、FPGA70の設定を切り替える制御を行う。つまり、タスク切替部55は、タスク到着時刻管理部54およびタスク切替部55の取得したタスクに関する各種の時間情報、時刻情報をもとに、TAT要件を守るようにモデル切替えのタイミングを決定する。この決定アルゴリズムでは、公平性やタスクの待ち時間が考慮される(詳細は図6)。
また、TP要件を守るために、収容可否計算部51は、各プロセス10の要求するTP要件をFPGAモデル設定部34から取得し、デプロイの可否を判断してもよい。
スケジューラ部60は、キュー間スケジューリング部61と、キュー内スケジューリング部62と、コントローラ連携部63と、IPコアマスク設定部64とを有する。
キュー間スケジューリング部61は、ラウンドロビン等の公平なアルゴリズムによって、各優先度のキューを内包する独立したモデルごとのキュー43から、タスクの取り出し元となるキュー43を選択する。
キュー内スケジューリング部62は、キュー間スケジューリング部61が選択したキュー43内で、優先度の高いキューからタスクを取り出す等、優先度を考慮したアルゴリズムによって、実行するタスクを選択する。
コントローラ連携部63は、コントローラ部30からFPGA70の設定情報(IPコアマスク)を受け取る。
IPコアマスク設定部64は、キュー内スケジューリング部62がキュー43を参照して取得したタスクをFPGA70に実行させる。そのため、IPコアマスク設定部64は、コントローラ連携部63を介して受け取った各タスクにIPコアマスクを設定し、指定されていないIPコア71を使用しないように制御する。IPコアマスク設定部64により、各プロセス10のアイソレーション(分離)を実現する。
図3は、スケジューリング装置100のハードウェア構成図である。
スケジューリング装置100は、CPU901と、RAM902と、ROM903と、HDD904と、通信I/F905と、入出力I/F906と、メディアI/F907とを有するコンピュータ900として構成される。
通信I/F905は、外部の通信装置915と接続される。入出力I/F906は、入出力装置916と接続される。メディアI/F907は、記録媒体917からデータを読み書きする。さらに、CPU901は、RAM902に読み込んだプログラム(アプリケーションや、その略のアプリとも呼ばれる)を実行することにより、各処理部を制御する。そして、このプログラムは、通信回線を介して配布したり、CD-ROM等の記録媒体917に記録して配布したりすることも可能である。
図4は、タスク要件の組み合わせによる分類を示すテーブル200である。
テーブル200は、分類ごとに、プロセス10と、そのプロセス10が生成したタスクの使用モデルと、そのタスクのモデル要求20で指定されるタスク要件(TAT要件、TP要件)と、そのプロセス10の稼働(デプロイ)の可否とを対応付ける。
・分類「締め切り型」は、TAT要件(タスクの到着時刻とTATとから求まる締め切り時刻)などのタスク要件が、すべてのタスクごとに厳密に指定される場合である。
・分類「ベストエフォート型」は、タスク要件が、どのタスクにも指定されない場合である。
・分類「混在型」は、一部のタスクにはタスク要件が指定され、他方のタスクにはタスク要件が指定されない場合である。
なお、デプロイ済のプロセスX(モデルA)のタスク要件と、デプロイ済のプロセスY(モデルB)のタスク要件とを守りつつ、新たにプロセスZ(モデルC)のタスク要件が課せられたとする。
しかし、FPGA70の処理能力では、モデルCのタスク要件を追加で守るには不足する。この場合、収容可否計算部51は、プロセスZを「デプロイ不可」と判定することにより、処理超過を予防する。
図5は、締め切り型のスケジューリング処理を示すフローチャートである。このフローチャートの実行前に、コマンド受付部31は、各プロセス10からモデル要求20(使用モデル、TAT要件、TP要件)を受け取っておく。
FPGAモデル構成部53は、現モデルA用にFPGA70を再設定(または初期設定)する(S101)。
キュー内スケジューリング部62は、現モデルAのタスクをキュー43から取り出し(S102)、IPコアマスク設定部64を介してFPGA70に実行させる。
キュー内スケジューリング部62は、現モデルAとは別モデルBのタスクがキュー43に存在するか否かを判定する(S103)。S103でNoなら、キュー内スケジューリング部62は、別モデルBのタスクが存在するまでキュー43の監視を継続する。
別モデルBのタスクが存在する場合(S103,Yes)、タスク切替部55は、FPGA70で動作中の現モデルAを別モデルBに切り替えることを仮定し、その別モデルBの終了時刻t_endが、別モデルBの締め切り時刻t_limitを超過する場合に、切り替えが必要と判断する(S104,Yes)。S104の判定式は、例えば以下の(式1)であり、bufは適当なバッファ時間である。
t_now-t_arrival>T_tat[B]-(T_reconf[A→B]+T_exec[B])+buf …(式1)
例えば、t_now=12:20,t_arrival=12:18,T_tat[B]=0:30,T_reconf[A→B]=0:10,T_exec[B]=0:05,buf=0:05の場合、
(式1)の左辺=12:20-12:18=0:02
(式1)の右辺=0:30-(0:10+0:05)+0:05=0:20
よって、左辺<右辺なので判定式を満たさず(S104,No)、現時点12:20での切り替えは不要となる。
切り替えが必要な場合(S104,Yes)、FPGAモデル構成部53は、現モデルA用から別モデルB用にFPGA70を再設定する(S111)。キュー内スケジューリング部62は、別モデルBのタスクをキュー43から取り出し(S112)、IPコアマスク設定部64を介してFPGA70に実行させる。
その後は、S111で再設定した別モデルBを「現モデルA」と読み替えて、タスク切替部55は、S103以降の処理を繰り返す。
図6は、ベストエフォート型のスケジューリング処理を示すフローチャートである。
図6のフローチャートは、図5のS104をS105に置き換えたものである。図6のフローチャートの実行前に、コマンド受付部31は、各プロセス10からモデル要求20(使用モデルの指定はあるが、タスク要件の指定はない)を受け取っておく。
タスク切替部55は、現モデルAのキュー43よりも別モデルBのキュー43により長い待ち時間のタスクがより多く存在するか否かを判定する(S105)。S105でYesならS111に進み、NoならS103に戻る。
なお、全体のスループット向上のためには、同じモデルを使用する複数のタスクを連続して使用するべきだが、それだけだとタスクのリクエストが頻繁なモデルに処理が集中してしまう。
そのため、S105においてタスク切替部55は、以下の2つの指針を併せて考慮して、FPGA70の設定を切り替えるスケジューリング処理を行う。
(指針1)同じモデルを使用する複数のタスクを連続してFPGA70に実行させることで、FPGA70の切り替え回数を削減する。
(指針2)キュー43内に保管されたタスクの待ち時間が短縮されるように、FPGA70の設定を待ちタスクの多いモデルに切り替える。
具体的には、S105においてタスク切替部55は、各タスクの数だけでなく、各タスクの待ち時間によりエイジングした値を同時に考慮する。S105の判定式は、例えば以下の(式2)である。
W_total[A]+S_cost[B]<W_total[B] …(式2)
W_total[B]は、モデルBの全ての待ちタスクの合計待ち時間である。
S_cost[B]は、モデルBへの切替コストであり、頻繁にモデルが切り替わらないための調整因子である。
図7は、混在型のスケジューリング処理を示すフローチャートである。
図7のフローチャートは、図5のS104と図6のS105とを準に実行するものである。つまり、別モデルBへの切り替え(再設定)を行う条件として、S104を満たす場合でもよいし、S105を満たす場合でもよい。
なお、S104で判定される(式1)の右辺にはTAT要件「T_tat[B]」が存在するが、TAT要件が指定されないタスクも混在している。その場合、仮のTAT要件として、充分大きいT_tat[B](=100年など)を代入することにより、(式1)の判定式を常に満たさないようにできる。
以上、図5-図7を参照して、TAT要件を満たすためのスケジューリング処理(タスクBへの切り替え判定処理)を説明した。以下では、TP要件を満たすための収容可否計算部51によるプロセス10のデプロイ判定処理を説明する。
収容可否計算部51は、実行中のプロセスX,Yを考慮し、新たにデプロイしようとするプロセスZのTP要件が厳しく、仮にプロセスZをデプロイしてもプロセスX,Y,ZのTP要件を満たせない場合は、プロセスZをデプロイするまえにデプロイ不可(キャパシティ超過)と判定する。
そのため、収容可否計算部51は、各プロセス10の要求するTP要件をFPGAモデル設定部34から取得する。
そして、収容可否計算部51は、以下の(1)~(3)の手順により、プロセスZのデプロイ可否をプラットフォーム側で判定する。
(1)現状すべてのデプロイ中の現プロセスX,YがそれぞれTP要件を満たすようなモデル要求20を発行している状況下であるとする。
(2)今回追加予定の新プロセスZをデプロイし、プロセスZが単独で動作したときであればそのプロセスZがTP要件を満たすようなモデル要求20を発行したと仮定する。
(3)前記(1)および(2)の仮定において、タスク切替部55は、図5-図7の処理により、プロセスX,Y,Zがそれぞれ発行する各タスクを切り替えてスケジューリングをしたとする。このスケジューリングの切替時間を考慮しても、タスク切替部55がプロセスX,Y,ZそれぞれのTP要件およびTAT要件の双方を満たすスケジューリングが立案できる場合は、収容可否計算部51は、デプロイ可能と判断する。
以下、手順(1)~(3)を定式化する。
Figure 0007513189000001
最高負荷のとき、TAT要件から最悪の場合、各プロセスiは高々n[i]回の実行でプロセス(が発行するタスクが使用するモデルのFPGA70上の設定)を切り替える必要がある。このときのn[i]は、(式3)、(式4)のように、TAT要件と、自身以外のプロセスの実行時間+切替時間とを見比べることで算出できる。
Figure 0007513189000002
このとき、最悪の場合でもTP要件を満たせる条件は、(式5)で示される。そして、(式5)に(式4)のn[i]を代入する(式6)は、収容可否計算部51がデプロイ可能かどうかの判別式として使用できる。
なお、TAT要件が指定されていないときには充分大きなT_tat[i]を用いればよく、TP要件が指定されていないときには充分大きなR[i]を用いればよい。
[効果]
本発明のスケジューリング装置100は、各タスクの使用するモデルを取得するコントローラ部30と、
コントローラ部30が取得したモデルが処理可能となるように、FPGA70の設定を切り替える制御を行うFPGA制御部50と、
各タスクの使用するモデルごとにタスクを保管するキュー43を参照し、FPGA制御部50が切り替えたことで処理可能となったモデルを使用するタスクを読み込んでFPGA70に実行させるスケジューラ部60とを有することを特徴とする。
これにより、FPGA70上のモデルの切替制御をFPGA制御部50というプラットフォームで支援することで、同じアクセラレータ(FPGA70)上で複数種類のモデルを切替えながら複数のユーザのタスクを実行することができる。よって、マルチユーザでのFPGA70の共用を可能にし、FPGAの収容効率を高めることができる。
本発明は、FPGA制御部50が、同じモデルを使用する複数のタスクを連続してFPGA70に実行させることでFPGA70の切り替え回数を削減するとともに、キュー43内に保管されたタスクの到着時刻からの待ち時間が短縮されるように、FPGA70の設定を切り替えるスケジューリング処理を行うことを特徴とする。
これにより、具体的な性能要件が指定されていないベストエフォート型の各タスクに対して、スループットの向上と、待ち時間の短縮とをバランスよく両立させた切替制御が提供できる。
本発明の各タスクには、タスクの到着時刻からタスクの終了時刻までに要する制限時間であるTAT(Turn Around Time)要件が指定されており、
FPGA制御部50が、FPGA70で動作中の現モデルAから別モデルBへのFPGA70の切り替え時間と、別モデルBのタスクの実行時間をもとに、現モデルAを別モデルBに切り替えることを仮定したときの別モデルBの終了時刻が、別モデルBのTAT要件から算出される締め切り時刻を超過する場合に、現モデルAから別モデルBへの切り替えをFPGA70に設定することを特徴とする。
これにより、制限時間が指定された締め切り型の各タスクに対して、締め切りを超過する前に適切に切替制御を実行できる。つまり、CPUのコンテキストスイッチとは異なり、設定の切替えに無視できない時間のかかるFPGA70においても、TAT要件を順守できる。
本発明の各プロセスは1つ以上のタスクを発行し、
各タスクには、単位時間あたりのタスクの処理量を規定するTP(Throughput)要件が指定されており、
FPGA制御部50が、デプロイ中のプロセスX,Yに加えて、新たにプロセスZが発生したとき、そのプロセスZのTP要件およびTAT要件に加えて、プロセスX,YのTP要件およびTAT要件も満たすようなスケジューリング処理が立案できる場合が、プロセスZをデプロイ可能と判断することを特徴とする。
これにより、デプロイ前のプロセスZについて、あらかじめデプロイにより性能要件を満たせないことをスケジューリング処理の立案により推測するすることで、デプロイによるキャパシティ超過を未然に予防できる。
10 プロセス
20 モデル要求
30 コントローラ部
31 コマンド受付部
32 キュー管理部
33 使用IPコア制御部
34 FPGAモデル設定部
40 共通部
41 コントローラ連携部
42 キュー振分け部
43 キュー
50 FPGA制御部(制御部)
51 収容可否計算部
52 FPGAモデル管理部
53 FPGAモデル構成部
54 タスク到着時刻管理部
55 タスク切替部
56 タスク実行時間管理部
60 スケジューラ部
61 キュー間スケジューリング部
62 キュー内スケジューリング部
63 コントローラ連携部
64 IPコアマスク設定部
70 FPGA(アクセラレータ)
71 IPコア
100 スケジューリング装置

Claims (6)

  1. 各タスクの使用するモデルを取得するコントローラ部と、
    前記コントローラ部が取得したモデルが処理可能となるように、アクセラレータの設定を切り替える制御を行う制御部と、
    各タスクの使用するモデルごとにタスクを保管するキューを参照し、前記制御部が切り替えたことで処理可能となったモデルを使用するタスクを読み込んで前記アクセラレータに実行させるスケジューラ部とを有しており、
    各タスクには、タスクの到着時刻からタスクの終了時刻までに要する制限時間であるTAT(Turn Around Time)要件が指定されており、
    前記制御部は、前記アクセラレータで動作中の現モデルから別モデルへの前記アクセラレータの切り替え時間と、前記別モデルのタスクの実行時間をもとに、前記現モデルを前記別モデルに切り替えることを仮定したときの前記別モデルの終了時刻が、前記別モデルのTAT要件から算出される締め切り時刻を超過する場合に、前記現モデルから前記別モデルへの切り替えを前記アクセラレータに設定することを特徴とする
    スケジューリング装置。
  2. 各プロセスは1つ以上のタスクを発行し、
    各タスクには、単位時間あたりのタスクの処理量を規定するTP(Throughput)要件が指定されており、
    前記制御部は、デプロイ中の現プロセスに加えて、新プロセスが発生したとき、その新プロセスのTP要件およびTAT要件に加えて、前記現プロセスのTP要件およびTAT要件も満たすようなスケジューリング処理が立案できる場合は、前記新プロセスをデプロイ可能と判断することを特徴とする
    請求項1に記載のスケジューリング装置。
  3. 各タスクの使用するモデルを取得するコントローラ部と、
    前記コントローラ部が取得したモデルが処理可能となるように、アクセラレータの設定を切り替える制御を行う制御部と、
    各タスクの使用するモデルごとにタスクを保管するキューを参照し、前記制御部が切り替えたことで処理可能となったモデルを使用するタスクを読み込んで前記アクセラレータに実行させるスケジューラ部とを有しており、
    前記制御部は、同じモデルを使用する複数のタスクを連続して前記アクセラレータに実行させることで前記アクセラレータの切り替え回数を削減するとともに、前記キュー内に保管された待ちタスクの到着時刻からの待ち時間について、前記アクセラレータの第1設定で処理可能な待ちタスクの合計待ち時間よりも、前記アクセラレータの第2設定で処理可能な待ちタスクの合計待ち時間のほうが長くなった場合に、前記アクセラレータの設定を前記第1設定から前記第2設定に切り替えるスケジューリング処理を行うことを特徴とする
    スケジューリング装置。
  4. スケジューリング装置は、コントローラ部と、制御部と、スケジューラ部とを有しており、
    前記コントローラ部は、各タスクの使用するモデルを取得し、
    前記制御部は、前記コントローラ部が取得したモデルが処理可能となるように、アクセラレータの設定を切り替える制御を行い、
    前記スケジューラ部は、各タスクの使用するモデルごとにタスクを保管するキューを参照し、前記制御部が切り替えたことで処理可能となったモデルを使用するタスクを読み込んで前記アクセラレータに実行させ
    各タスクには、タスクの到着時刻からタスクの終了時刻までに要する制限時間であるTAT要件が指定されており、
    前記制御部は、前記アクセラレータで動作中の現モデルから別モデルへの前記アクセラレータの切り替え時間と、前記別モデルのタスクの実行時間をもとに、前記現モデルを前記別モデルに切り替えることを仮定したときの前記別モデルの終了時刻が、前記別モデルのTAT要件から算出される締め切り時刻を超過する場合に、前記現モデルから前記別モデルへの切り替えを前記アクセラレータに設定することを特徴とする
    スケジューリング方法。
  5. スケジューリング装置は、コントローラ部と、制御部と、スケジューラ部とを有しており、
    前記コントローラ部は、各タスクの使用するモデルを取得し、
    前記制御部は、前記コントローラ部が取得したモデルが処理可能となるように、アクセラレータの設定を切り替える制御を行い、
    前記スケジューラ部は、各タスクの使用するモデルごとにタスクを保管するキューを参照し、前記制御部が切り替えたことで処理可能となったモデルを使用するタスクを読み込んで前記アクセラレータに実行させ
    前記制御部は、同じモデルを使用する複数のタスクを連続して前記アクセラレータに実行させることで前記アクセラレータの切り替え回数を削減するとともに、前記キュー内に保管された待ちタスクの到着時刻からの待ち時間について、前記アクセラレータの第1設定で処理可能な待ちタスクの合計待ち時間よりも、前記アクセラレータの第2設定で処理可能な待ちタスクの合計待ち時間のほうが長くなった場合に、前記アクセラレータの設定を前記第1設定から前記第2設定に切り替えるスケジューリング処理を行うことを特徴とする
    スケジューリング方法。
  6. コンピュータを、請求項1ないし請求項3のいずれか1項に記載のスケジューリング装置として機能させるためのスケジューリングプログラム。
JP2023503319A 2021-03-05 2021-03-05 スケジューリング装置、スケジューリング方法、および、スケジューリングプログラム Active JP7513189B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/008680 WO2022185527A1 (ja) 2021-03-05 2021-03-05 スケジューリング装置、スケジューリング方法、および、スケジューリングプログラム

Publications (2)

Publication Number Publication Date
JPWO2022185527A1 JPWO2022185527A1 (ja) 2022-09-09
JP7513189B2 true JP7513189B2 (ja) 2024-07-09

Family

ID=83154130

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023503319A Active JP7513189B2 (ja) 2021-03-05 2021-03-05 スケジューリング装置、スケジューリング方法、および、スケジューリングプログラム

Country Status (3)

Country Link
US (1) US20240231904A1 (ja)
JP (1) JP7513189B2 (ja)
WO (1) WO2022185527A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016189177A (ja) 2015-03-30 2016-11-04 キヤノン株式会社 画像処理装置、その制御方法およびプログラム
JP2018190045A (ja) 2017-04-28 2018-11-29 日立オートモティブシステムズ株式会社 車両電子制御装置
JP2021012643A (ja) 2019-07-09 2021-02-04 富士ゼロックス株式会社 制御装置、及び制御プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105678379B (zh) * 2016-01-12 2020-08-07 腾讯科技(深圳)有限公司 一种cnn的处理方法和装置
JP2020190867A (ja) * 2019-05-21 2020-11-26 株式会社日立製作所 構成変更型集積回路の割当システム、構成変更型集積回路の割当方法およびコンピュータプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016189177A (ja) 2015-03-30 2016-11-04 キヤノン株式会社 画像処理装置、その制御方法およびプログラム
JP2018190045A (ja) 2017-04-28 2018-11-29 日立オートモティブシステムズ株式会社 車両電子制御装置
JP2021012643A (ja) 2019-07-09 2021-02-04 富士ゼロックス株式会社 制御装置、及び制御プログラム

Also Published As

Publication number Publication date
JPWO2022185527A1 (ja) 2022-09-09
WO2022185527A1 (ja) 2022-09-09
US20240231904A1 (en) 2024-07-11

Similar Documents

Publication Publication Date Title
US9367357B2 (en) Simultaneous scheduling of processes and offloading computation on many-core coprocessors
US20200174844A1 (en) System and method for resource partitioning in distributed computing
US8185908B2 (en) Dynamic scheduling in a distributed environment
US20100115526A1 (en) Method and apparatus for allocating resources in a compute farm
EP3253027A1 (en) Resource allocation method and apparatus for virtual machines
JPH0659906A (ja) 並列計算機の実行制御方法
WO2022068697A1 (zh) 任务调度方法及装置
WO2024021489A1 (zh) 一种任务调度方法、装置及Kubernetes调度器
CN109783225B (zh) 一种多租户大数据平台的租户优先级管理方法及系统
CN113282381A (zh) 任务调度方法、装置、计算机设备和存储介质
JP4912927B2 (ja) タスク割当装置、及びタスク割当方法
CN106201681B (zh) Hadoop平台下基于预释放资源列表的任务调度方法
WO2020108337A1 (zh) 一种cpu资源调度方法及电子设备
CN113849295A (zh) 模型训练的方法、装置及计算机可读存储介质
CN111597044A (zh) 任务调度方法、装置、存储介质及电子设备
CN109189581B (zh) 一种作业调度方法和装置
CN116610422A (zh) 一种任务调度方法、装置和系统
US20170344266A1 (en) Methods for dynamic resource reservation based on classified i/o requests and devices thereof
JP7513189B2 (ja) スケジューリング装置、スケジューリング方法、および、スケジューリングプログラム
CN111522637A (zh) 一种基于成本效益的storm任务调度方法
KR102681134B1 (ko) 클러스터 컴퓨팅 시스템에서의 리소스 할당 방법 및 장치
CN113590289B (zh) 作业调度方法、系统、装置、计算机设备和存储介质
EP2413240A1 (en) Computer micro-jobs
CN114896070A (zh) 一种用于深度学习任务的gpu资源分配方法
US10853138B2 (en) Scheduling resource usage

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240521

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

R150 Certificate of patent or registration of utility model

Ref document number: 7513189

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150