JP2015011716A - グリッドコンピューティングシステムの遊休リソースによるタスク実行 - Google Patents

グリッドコンピューティングシステムの遊休リソースによるタスク実行 Download PDF

Info

Publication number
JP2015011716A
JP2015011716A JP2014131089A JP2014131089A JP2015011716A JP 2015011716 A JP2015011716 A JP 2015011716A JP 2014131089 A JP2014131089 A JP 2014131089A JP 2014131089 A JP2014131089 A JP 2014131089A JP 2015011716 A JP2015011716 A JP 2015011716A
Authority
JP
Japan
Prior art keywords
edge device
subtask
time slot
grid
duration
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.)
Granted
Application number
JP2014131089A
Other languages
English (en)
Other versions
JP6490913B2 (ja
Inventor
スワルナヴァ・デイ
Dey Swarnava
アルパン・パル
Pal Arpan
アリジット・ムケールジェー
Mukherjee Arijit
ヒマドリ・セカール・ポール
Sekhar Paul Himadri
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.)
Tata Consultancy Services Ltd
Original Assignee
Tata Consultancy Services 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 Tata Consultancy Services Ltd filed Critical Tata Consultancy Services Ltd
Publication of JP2015011716A publication Critical patent/JP2015011716A/ja
Application granted granted Critical
Publication of JP6490913B2 publication Critical patent/JP6490913B2/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
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Telephonic Communication Services (AREA)

Abstract

【課題】グリッドコンピューティングシステムにおける遊休リソースによるタスク実行を提供する。
【解決手段】サブタスクを実行するためのエッジデバイス104は、複数の空きタイムスロットを識別し、複数の空きタイムスロットの持続時間を推定する。複数の空きタイムスロットは、エッジデバイスが遊休状態であることを示す。エッジデバイスは、複数の空きタイムスロット中にサブタスクを実行するためのエッジデバイスの少なくとも1つの計算能力パラメータを決定する。エッジデバイスは、少なくとも1つの空きタイムスロット、持続時間および関連する少なくとも1つの計算能力パラメータを含む通知プロファイルを作成する。エッジデバイスは、メインタスクを区分化してエッジデバイスによって実行可能なサブタスクを作成するために、通知プロファイルをグリッドコンピューティングシステム内の複数のグリッドサーバ102に提供する。
【選択図】図1

Description

本主題は、グリッドコンピューティングシステムに関し、さらに詳細には、グリッドコンピューティングシステムにおける遊休リソースによるタスク実行に関するが、これのみに限定されるわけではない。
現代の環境では、コンピュータやサーバなどのコンピューティングデバイスは、一般に様々なタスクを実行するために利用される。データ解析、シミュレーション、モデリングおよび検査などのタスクは、計算負荷が高く複雑になる可能性があり、1つのコンピューティングデバイスではこれらのタスクを実行することができないこともある。このような計算負荷の高いタスクは、実行に際して、コンピューティングリソースとして機能する複数のコンピューティングデバイスに分散させる。
グリッドコンピューティングは、計算負荷の高いタスクを含む複数のタスクを実行するために一般に利用されるこのような技術の1つである。グリッドコンピューティングでは、メインタスクの実行用に割り当てられるコンピューティングデバイスは、遊休コンピューティングリソースの処理能力を利用して、メインタスクのサブタスクを遊休コンピューティングリソースに実行させる。
詳細な説明は、添付の図面を参照して行う。これらの図面において、参照番号の一番左側の数字は、その参照番号が最初に出てくる図面を示している。同じ特徴および構成要素は、全ての図面を通じて同じ番号で示してある。本主題によるデバイスおよび/または方法のいくつかの実施態様について、例示のみを目的として、添付の図面を参照して述べる。
本主題の実施態様によるグリッドコンピューティングシステムを示す図である。 本主題の実施態様によるグリッドコンピューティングシステムのエッジデバイスおよびグリッドサーバを示す図である。 本主題の実施態様によるグリッドコンピューティングシステムにおいて遊休リソースによってタスクを実行する方法を示す図である。 本主題の実施態様によるグリッドコンピューティングシステムにおいて遊休リソースによってタスクを実行する方法を示す図である。
本明細書のいずれのブロック図も、本主題の原理を実施する例示的なシステムを示す概念図であることを、当業者なら理解されたい。同様に、いずれのフローチャート、流れ図、状態遷移図および擬似コードなども、コンピュータ可読媒体に実質的に表現して、コンピュータまたはプロセッサが明示されているか否かに関わらず、コンピュータまたはプロセッサによって実行することができる、様々なプロセスを表していることも理解されたい。
本主題は、グリッドコンピューティングシステムにおいて遊休リソースによってタスクを実行する方法およびデバイスに関する。遊休リソースは、遊休状態にあって、その処理能力が利用されておらず、タスクの実行に利用することができるコンピューティングデバイスであるものとして理解してよい。
グリッドコンピューティングシステムは、一般に、メインタスクが実行のために割り当てられる、専用リソースと呼ばれる、1つまたは複数のグリッドサーバを含む。メインタスクは、データ解析タスク、シミュレーション、モデリングタスク、および検査タスクなどを含むことができる。グリッドサーバは、非専用リソースと呼ばれる遊休コンピューティングデバイスと通信し、メインタスクに関連するサブタスクを遊休コンピューティングデバイスに割り当てることができる。遊休コンピューティングデバイスは、割り当てられたサブタスクを実行し、サブタスク結果をグリッドサーバに返送する。グリッドサーバは、遊休コンピューティングデバイスからサブタスク結果を取り出し、それらを集約してメインタスク結果を生成する。
グリッドコンピューティングシステムでは、グリッドサーバは、計算負荷の高いメインタスクのサブタスクを割り当てるために、どのコンピューティングデバイスが遊休状態または空き状態であるかを見つける役割を担うことができる。遊休状態にあるコンピューティングデバイスがグリッドサーバとの通信を開始し、実行するタスクを要求するようなグリッドコンピューティングシステムが知られている。グリッドサーバは、遊休コンピューティングデバイスからの要求を受信し、実行するサブタスクを割り当てる。
さらに、各グリッドサーバは、計算負荷の高いメインタスクを複数のデータ並列なサブタスクに分割する、または計算負荷の高いメインタスクを区分化していくつかのサブタスクを生成する。これらのすでに生成または区分化されているサブタスクは、実行のために遊休コンピューティングデバイスに割り当てられる。従来は、サブタスクが実行のために割り当てられる遊休コンピューティングデバイスが割り当てられたサブタスクを実行することができるかどうかを判定しない。これにより、割り当てられたサブタスクがその遊休コンピューティングデバイスによって実行され、完了されるかどうかを保証することができない。さらに、サブタスクは、タイムラインを用いて割り当てることができる。遊休コンピューティングデバイスの機能に関する知識を持たずにサブタスクを遊休コンピューティングデバイスに割り当てることにより、サブタスクがその遊休コンピューティングデバイスによってタイムライン内で実行されるかどうかを保証することができない。これは、遊休コンピューティングデバイスによるサブタスクの実行および完了に影響を及ぼし、ひいてはグリッドサーバに割り当てられたメインタスクの完了にも影響を及ぼす。
さらに、グリッドサーバは、サブタスクを区分化し、サブタスクを遊休コンピューティングデバイスに割り当てる前に、遊休コンピューティングデバイスの機能を判定することができる。遊休状態で、サブタスクの実行のためにグリッドサーバと通信している可能性があるコンピューティングデバイスが多数ある状況では、各グリッドサーバは、グリッドコンピューティングシステムに結合されたこれらの多数のコンピューティングデバイスについてその機能を判定しなければならないことがある。これにより、グリッドサーバに大きな作業負荷が生じることになる。さらに、多数のグリッドサーバが多数のコンピューティングデバイスをリソースとして管理することにより、グリッドコンピューティングシステムの管理オーバヘッドも大幅に高くなることになる。
本主題は、グリッドコンピューティングシステムにおいて遊休リソースによってタスクを実行するための方法およびデバイスに関する。グリッドコンピューティングシステムは、少なくとも1つのメインタスクが実行のために割り当てられる専用リソースとして機能する1つまたは複数のグリッドサーバを含み、また、遊休状態である間にメインタスクに関連するサブタスクの実行のために自分の処理能力を提供することができる非専用リソースとして機能する1つまたは複数のその他のコンピューティングデバイスを含む。1つの実施態様では、遊休リソースと呼ばれるその他のコンピューティングデバイスは、携帯電話や常駐ゲートウェイなどのエッジデバイスを含むことがある。エッジデバイスは、そのエッジデバイスが関連づけられたサービスプロバイダのネットワークの端部に位置するデバイスである。本主題のグリッドサーバおよびエッジデバイスは、遊休状態にある間にサブタスクを実行するエッジデバイスの計算能力に応じて、効率的にメインタスクからサブタスクに区分化することができるように構成される。これにより、エッジデバイスによるサブタスクの割当て、実行および完了は、従来のグリッドコンピューティングシステムの場合と比較して、大幅に効率的になる。
本主題によるエッジデバイスは、その遊休状態を把握している。本主題によるエッジデバイスの遊休状態とは、そのエッジデバイスが、グリッドサーバなどの外部デバイスから受け取るタスクを実行するための処理能力およびデバイス容量を有している状態である。エッジデバイスは、大きな処理能力およびデバイスキャパシティを利用しないアプリケーションをいくつかバックグラウンドで実行している、またはそのようなタスクをいくつかバックグラウンドで実行しているときに、遊休状態または比較的遊休的な状態であると理解される。1つの実施態様では、エッジデバイスが遊休状態であるタイムスロットは、エッジデバイスが識別する。このようなタイムスロットは、空きタイムスロットと呼ばれる。各空きタイムスロットごとに、エッジデバイスは、その空きタイムスロットの持続時間を推定する。空きタイムスロットの持続時間を推定することに加えて、エッジデバイスは、識別した空きタイムスロット中にサブタスクを実行するためのエッジデバイスの少なくとも1つの計算能力パラメータを決定する。1つの例では、計算能力パラメータは、空きタイムスロット中の、エッジデバイスの計算速度、エッジデバイスの利用可能な処理メモリ、およびエッジデバイスのネットワーク帯域幅を含む。
この識別および決定に基づいて、少なくとも1つの空きタイムスロット、その持続時間、およびその少なくとも1つの空きタイムスロットに関連するエッジデバイスの少なくとも1つの計算能力パラメータの情報が、エッジデバイスからグリッドコンピューティングシステム内のグリッドサーバに通知され、メインタスクの区分化が行われてエッジデバイスが実行できるサブタスクが生成される。
本主題によるグリッドサーバは、エッジデバイスからの通知をリッスンして、空きタイムスロットおよびエッジデバイスの計算能力パラメータについての情報を取得する。1つの実施態様では、エッジデバイスから通知される、少なくとも1つの空きタイムスロット、その持続時間および1つまたは複数のエッジデバイスの少なくとも1つの計算能力パラメータの情報は、グリッドサーバが受信する。グリッドサーバは、各エッジデバイスからのこの情報を受信すると、空きタイムスロットの持続時間が、エッジデバイスが最小のサブタスクを完了するのに十分であるかどうか、およびその空きタイムスロットに関連する少なくとも1つの計算能力パラメータで、そのエッジデバイスかその最小のサブタスクを実行し、そのサブタスクのタイムラインを満たすことができるかどうかを判定するためのチェックを実行する。
各エッジデバイスごとの上述のチェックに基づいて、グリッドサーバは、それに割り付けられたメインタスクを区分化して、各エッジデバイスが実行するサブタスクを作成する。各エッジデバイス用のサブタスクは、エッジデバイスによって通知された空きタイムスロットの持続時間および計算能力パラメータに基づいて作成される。エッジデバイス用に作成されたサブタスクは、次いで、グリッドサーバによってそれぞれ対応するエッジデバイスに割り当てられる。各エッジデバイスは、割り当てられたサブタスクを受信し、それを実行し、サブタスク結果をグリッドサーバに送る。グリッドサーバは、全てのエッジデバイスからのサブタスク結果を収集し、収集した結果を結合して、メインタスク結果を形成する。
本主題のデバイスおよび方法によれば、エッジデバイスは、計算タスクを引き受ける前に、リソースとして機能するための自らの可用性を推定し、通知する。これにより、利用可能な遊休リソースを見つけるグリッドサーバの負担が軽減される。さらに、エッジデバイスは、タスクを実行するために利用可能な期間およびタスクを実行するための能力を、それら自体で推定する。これにより、遊休リソースのタスク実行能力を判定する負担をグリッドサーバに掛けることがなくなる。
さらに、エッジデバイスの能力および遊休状態持続時間に見合ったサブタスクをグリッドサーバが区分化によって生成するので、エッジデバイスが空きタイムスロット中に実行することができるサブタスクが、実行のために割り当てられる。これにより、割り当てられたサブタスクの実行および完了が失敗する割合を低下させる助けとなり、メインタスクの完了が大幅に効率化される。
本主題の上記その他の利点について、以下の図面と関連してさらに詳細に述べる。なお、この記述および図面は、本主題の原理を単に例示するものに過ぎないことに留意されたい。
図1は、本主題の1実施態様によるグリッドコンピューティングシステム100を示す図である。グリッドコンピューティングシステム100は、メインタスクと呼ばれるタスクがそれぞれ実行のために割り当てられる、複数のグリッドサーバ102-1、102-2、…、102-Nを有する。以下、これら複数のグリッドサーバ102-1、102-2、…、102-Nは、全体としてグリッドサーバ102と呼び、また個々のグリッドサーバもグリッドサーバ102と呼ぶ。メインタスクは、外部のタスク割り付け器(図1には図示せず)によってグリッドサーバ102に割り付けることができる。グリッドコンピューティングシステム100では、複数のエッジデバイス104-1、104-2、…、104-Mが、メインタスクのサブタスクを実行するために、グリッドサーバ102のうちの1つまたは複数と通信可能に結合することができる。以下、エッジデバイス104-1、104-2、…、104-Mは、全体としてエッジサーバ104と呼び、また個々のエッジデバイスもエッジデバイス104と呼ぶ。エッジデバイス104としては、例えば携帯電話やタブレットなどのモバイルデバイスが含まれ、また例えばルータ、スイッチ、モデムなどの常駐ゲートウェイも含まれる。
グリッドサーバ102およびエッジデバイス104は、通信ネットワーク106を介して互いに通信可能に結合される。1つの実施態様では、エッジデバイス104は、インターネットに接続可能なエッジデバイスである。通信ネットワーク106は、ワイヤレスネットワークでもよいし、有線ネットワークでもよいし、またはそれらの組合せであってもよい。通信ネットワーク106は、個別ネットワークであってもよいし、あるいは例えばインターネットなど、互いに相互接続されて1つの大きなネットワークとして機能する多数の個別ネットワークの集合体であってもよい。通信ネットワーク106は、イントラネット、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネットなど、様々なタイプのネットワークのうちの1つとして実施することができる。通信ネットワーク106は、例えばハイパーテキスト転送プロトコル(HTTP)や伝送制御プロトコル/インターネットプロトコル(TCP/IP)など、様々なプロトコルを使用して互いに通信する様々なタイプのネットワークの結合したものを表す、専用ネットワークであっても共用ネットワークであってもよい。
通信ネットワーク106としては、広域自動車通信システム(GSM(登録商標))ネットワーク、汎用移動通信システム(UMTS)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、パーソナル通信サービス(PCS)ネットワーク、時分割多重アクセス(TDMA)ネットワーク、符号分割多重アクセス(CDMA)ネットワーク、次世代ネットワーク(NGN)、公衆交換電話網(PSTN)、およびサービス総合デジタル網(ISDN)などの個別ネットワークも挙げられるが、これらに限定されるわけではない。さらに、エッジデバイス104とグリッドサーバ102およびその他のエンティティとの間の通信は、通信ネットワーク106に適合した通信プロトコルに基づいて行うことができることも理解されるであろう。
さらに、図1に示すように、各エッジデバイス104は、タイムスロットおよび能力モニタ108、および通知モジュール110を含む。エッジデバイス104のタイムスロットおよび能力モニタ108は、エッジデバイス104の遊休状態を示す空きタイムスロットを識別するように構成される。タイムスロットおよび能力モニタ108は、また、各空きタイムスロットの持続時間も推定する。さらに、タイムスロットおよび能力モニタ108は、識別された空きタイムスロット中にサブタスクを実行するためのエッジデバイス104の1つまたは複数の計算能力パラメータを決定する。エッジデバイス104の通知モジュール110は、空きタイムスロット、それらの空きタイムスロットの持続時間、およびそれらの空きタイムスロットに関連するエッジデバイス104の能力パラメータをグリッドサーバ102に通知するように構成される。
図1に示すように、各グリッドサーバ102は、リソースモニタ112と、タスクスケジューラ114とを含む。グリッドサーバ102のリソースモニタ112は、空きタイムスロットおよび計算能力パラメータについての情報を有する、エッジデバイス104からの通知をリッスンするように構成される。リソースモニタ112は、1つまたは複数のエッジデバイス104から通知情報を受信することができる。各エッジデバイス104からの受信情報について、リソースモニタ112は、空きタイムスロットに関連する計算能力パラメータに基づいて、エッジデバイス104が最小のサブタスクを完了するための空きタイムスロットの持続時間の十分性と、エッジデバイス104の、その最小のサブタスクを実行して、そのサブタスクのタイムラインを満たす能力とに関するチェックを実行する。さらに、グリッドサーバ102のタスクスケジューラ114は、リソースモニタ112が実行したチェックに基づいて、それに割り付けられたメインタスクを区分化して、サブタスクを作成する。その後、タスクスケジューラ114は、作成したサブタスクを、実行するために対応するエッジデバイス104に割り当てる。
図2は、本主題の1実施態様によるグリッドコンピューティングシステム100のエッジデバイス104およびグリッドサーバ102を示す図である。エッジデバイス104およびグリッドサーバ102は、1つまたは複数のプロセッサ202-1、202-2と、インタフェース204-1、204-2と、プロセッサ202-1、202-2に結合されたメモリ206-1、206-2とを含む。プロセッサ202-1は、エッジデバイスに設置されたプロセッサを含み、プロセッサ202-2は、サーバに設置されたプロセッサを含む。プロセッサ202-1および202-2を総称して、プロセッサ202と呼ぶ。同様に、インタフェース204-1は、エッジデバイスに設置されたインタフェースを含み、インタフェース204-2は、サーバに設置されたインタフェースを含む。インタフェース204-1および204-2を総称して、インタフェース204と呼ぶ。同様に、メモリ206-1は、エッジデバイスに設置されたメモリを含み、メモリ206-2は、サーバに設置されたメモリを含む。メモリ206-1および206-2を総称して、メモリ206と呼ぶ。
各プロセッサ202は、単一のプロセッサユニットであってもよいし、それぞれが複数のコンピューティングユニットを含むこともあるいくつかのユニットであってもよい。各プロセッサ202は、1つまたは複数のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央処理装置、状態機械、論理回路および/または動作命令に基づいて信号を操作する任意のデバイスとして実装することができる。様々な機能の中でも特に、プロセッサ202は、メモリ206に格納されたコンピュータ可読命令およびデータを取り出して実行するように構成される。
インタフェース204としては、例えばキーボードや外部メモリなどの周辺デバイスとのインタフェースなど、様々なソフトウェアおよびハードウェアのインタフェースが挙げられる。インタフェース204は、エッジデバイス104とグリッドサーバ102との間の通信を可能にする1つまたは複数のポートを含むことができる。インタフェース204は、さらに、エッジデバイス104およびグリッドサーバ102が、外部コンピューティングデバイスや外部データベースなど他のデバイスと通信することも可能にすることができる。
メモリ206としては、例えばスタティックランダムアクセスメモリ(SRAM)やダイナミックランダムアクセスメモリ(DRAM)などの揮発性メモリ、および/または読取り専用メモリ(ROM)や消去可能プログラム可能ROM、フラッシュメモリ、ハードディスク、光ディスク、磁気テープなどの不揮発性メモリなど、当技術分野で既知の任意のコンピュータ可読媒体を挙げることができる。
さらに、エッジデバイス104およびグリッドサーバ102は、総称してモジュール208と呼ぶモジュール208-1および208-2と、総称してデータ210と呼ぶデータ210-1および210-2とをそれぞれ含む。モジュール208は、プロセッサ202に結合することができる。モジュール208は、特に、特定のタスクを実行する、または特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、構成要素およびデータ構造などを含む。モジュール208は、さらに、例えばオペレーティングシステムのモジュールなど、エッジデバイス104およびグリッドサーバ102上のアプリケーションを補足するモジュールも含む。データ210は、特に、モジュール208が取り出す、処理する、受信する、または生成することができるデータを格納するためのリポジトリとして機能する。データ210は、エッジデバイス104およびグリッドサーバ102の内部にあるものとして示してあるが、データ210は、エッジデバイス104およびグリッドサーバ102に結合することができる外部リポジトリ(この図には図示せず)に存在していてもよいことは理解されるであろう。エッジデバイス104およびグリッドサーバ102は、インタフェース204を介して外部リポジトリと通信して、データ210の情報を取得することができる。
1つの実施態様では、エッジデバイス104のモジュール208-1は、タイムスロットおよび能力モニタ108と、ユーザアクティビティモニタ212と、通知モジュール110と、タスクマネージャ214と、その他のモジュール216とを含む。1つの実施態様では、エッジデバイス104のデータ210-1は、ユーザアクティビティデータ220と、通知プロファイルデータ222と、タスクデータ224と、その他のデータ226とを含む。その他のモジュール216は、例えばエッジデバイス104のオペレーティングシステムのプログラムを補足し、それらとして機能するプログラムまたはコード化命令を含み、その他のデータ226は、これらの1つまたは複数のその他のモジュール216のうちの1つまたは複数に対応するデータを含む。
同様に、1つの実施態様では、グリッドサーバ102のモジュール208-2は、タスク実行モジュール228と、リソースモニタ112と、タスクスケジューラ114と、結果生成器230と、その他のモジュール232とを含む。1つの実施態様では、グリッドサーバ102のデータ210-2は、メインタスクデータ234と、サブタスクデータ236と、リソースデータ238と、結果データ240と、その他のデータ242とを含む。その他のモジュール232は、例えばグリッドサーバ102のオペレーティングシステムのプログラムを補足し、それらとして機能するプログラムまたはコード化命令が挙げられ、その他のデータ242は、これらのその他のモジュール232のうちの1つまたは複数に対応するデータを含む。
以下の記述では、グリッドコンピューティングシステム100におけるタスク実行について述べる。簡単にするために、本主題による、グリッドサーバ102に割り付けられた計算負荷の高いメインタスクを実行するための、1つのグリッドサーバ102と1つのエッジデバイス104との間の通信について述べる。この概念は、複数の計算負荷の高いメインタスクを実行するための、複数のエッジデバイス104と1つのグリッドサーバ102との間の通信、または複数のエッジデバイス104と複数のグリッドサーバ102との間の通信にも拡張することができることは理解されるであろう。
1つの実施態様では、エッジデバイス104は、グリッドコンピューティングシステム100に加入して、遊休状態にある自身の処理能力を提供するために、エッジデバイス104のユーザの同意を得ることがある。エッジデバイス104は、ユーザ同意に関してユーザから入力を受信することができる。このユーザ同意に基づいて、エッジデバイス104は、グリッドコンピューティングシステム100に加入するためのエッジデバイス104の遊休期間を決定するステップに進むことができる。
1つの実施態様では、ユーザアクティビティモニタ212は、エッジデバイス104上でユーザによって実行されているアクティビティをモニタリングし、リーン(lean)アクティビティ期間およびハイ(high)アクティビティ期間を決定する。アクティビティとしては、ウェブ閲覧、ソーシャルネットワーキング、通信に基づくアクティビティ、写真撮影、ビデオ作成などが挙げられる。リーンアクティビティ期間とは、エッジデバイス104上で実行されているユーザアクティビティが処理能力および処理容量を残している期間、すなわち処理速度、空き処理メモリ、空きネットワーク帯域幅、またはそれらの組合せなど、エッジデバイス104の計算能力パラメータのうちの1つまたは複数がそれぞれの既定のしきい値レベルを超えている期間である。同様に、ハイアクティビティ期間とは、エッジデバイス104上で実行されているユーザアクティビティが、処理能力および処理容量を残している期間、すなわち処理速度、空き処理メモリ、空きネットワーク帯域幅、またはそれらの組合せなど、エッジデバイス104の計算能力パラメータのうちの1つまたは複数がそれぞれの既定のしきい値レベル未満である期間である。このモニタリングに基づいて、ユーザアクティビティモニタ212は、エッジデバイス104上でのユーザアクティビティの履歴と、リーンアクティビティ期間およびハイアクティビティ期間の履歴とを保持する。1つの実施態様では、ユーザアクティビティモニタ212は、ユーザアクティビティの履歴をタイムスロットに基づいて保持することができる。ユーザアクティビティモニタ212が保持する履歴を使用して、エッジデバイス104の遊休期間を決定することができる。ユーザアクティビティに関する情報は、ユーザアクティビティデータ220に格納される。ユーザアクティビティは、エッジデバイス104のシステム状態を読み取ることによってモニタリングすることができる。1つの実施態様では、ユーザアクティビティモニタ212が、システム状態を読み取るためのユーザの許可を求めることもある。
エッジデバイス104が携帯電話またはタブレットである実施態様では、ユーザアクティビティモニタ212は、ユーザによるエッジデバイス104の使用パターンに基づいてユーザアクティビティを推定することができる。そのために、ユーザアクティビティモニタ212は、エッジデバイス104のユーザにアンケートを送る。このアンケートは、使用パターンについての情報をユーザに求める質問を含む。使用パターンに関する質問は、エッジデバイス104上に表示することができ、質問が表示されたら、ユーザが質問に応答することが必須であることもある。ユーザは、エッジデバイス104上で、自身のアクティビティの詳細、アクティビティのスケジュール、集中的に使用する時間帯、メディアアプリケーションの実行スケジュール、ソーシャルネットワーキング、ウェブ閲覧などを送って応答することができる。ユーザアクティビティモニタ212は、ユーザの応答を取り出し、ユーザの応答を評価して、エッジデバイス104のユーザの使用パターンを決定する。この使用パターンに基づいて、エッジデバイス104上のユーザアクティビティを推定することができる。使用パターンに関する情報は、ユーザアクティビティデータ220に格納される。
グリッドコンピューティングシステム100に加入するために、タイムスロットおよび能力モニタ108は、エッジデバイス104の処理能力がユーザアクティビティに利用されておらず、実質的にグリッドコンピューティングに利用可能である空きタイムスロットを識別する。空きタイムスロットは、ユーザアクティビティモニタ212が保持するユーザアクティビティおよび/または使用パターンの情報に基づいて識別される。1つの実施態様では、空きタイムスロットは、ユーザアクティビティモニタ212が保持するユーザアクティビティを有するタイムスロットから識別することができる。
タイムスロットおよび能力モニタ108は、1つまたは複数の空きタイムスロットを識別することができる。識別した空きタイムスロットに基づいて、タイムスロットおよび能力モニタ108は、各空きタイムスロットの持続時間を推定する。空きタイムスロットの持続時間は、本来空きであるはずのタイムスロット中ではユーザがエッジデバイス104上でアクティビティを開始する可能性があるので、予定持続時間または予定可能続時間であると理解される。
さらに、タイムスロットおよび能力モニタ108は、識別した空きタイムスロット中に、エッジデバイス104の1つまたは複数の計算能力パラメータを決定する。計算能力パラメータとしては、エッジデバイスの計算速度、エッジデバイスの空き処理メモリ、およびエッジデバイスのネットワーク帯域幅などが挙げられる。これらのパラメータは、ユーザアクティビティの履歴、アクティビティ期間、および/または空きタイムスロット中の使用パターンに基づいて決定することができる。
エッジデバイス104が携帯電話またはタブレットである実施態様では、ユーザアクティビティモニタ212は、空きタイムスロットを識別する前に、エッジデバイス104のバッテリ充電残量を決定することができる。充電残量を決定して、そのエッジデバイス104が空きタイムスロット中にタスクを実行するのに実質的に十分な充電量を有しているかどうかを知る。充電残量が不十分である、または既定値未満である場合には、タイムスロットおよび能力モニタ108は、エッジデバイス104が十分に充電される、または既定値を超えるまで充電されるまで待機した後で、空きタイムスロットを識別することができる。
さらに、1つの実施態様では、空きタイムスロットを識別する前に、ユーザアクティビティモニタ212は、任意のアプリケーションが現在エッジデバイス104上で実行中であるかどうかを判定することができる。これを判定して、エッジデバイス104が現在実行中のアプリケーションに関連するアクティビティの実行に占有されているかどうかを知る。こうしたアプリケーションとしては、ウェブブラウザ、ソーシャルネットワーキングウィジェット、ワードプロセッサ、通信に基づくアプリケーションアドが挙げられる。処理能力および処理容量を残す、すなわち処理速度、空き処理メモリ、空きネットワーク帯域幅またはそれらの組合せなどエッジデバイス104の計算能力パラメータのうちの1つまたは複数が既定のしきい値レベル未満となる1つまたは複数のアプリケーションが実行中である場合には、タイムスロットおよび能力モニタ108は、エッジデバイス104が空く、またはそのアプリケーションを停止するまで待機した後で、空きタイムスロットを識別することができる。
さらに、空きタイムスロットおよびエッジデバイス104の計算能力パラメータに基づいて、通知モジュール110は、空きタイムスロットおよびその空きタイムスロットについての計算能力パラメータの情報を通知するためのプロファイルを作成する。プロファイルは、通知プロファイルと称されることがある。通知プロファイルは、少なくとも1つの空きタイムスロット、その空きタイムスロットの持続時間、およびその空きタイムスロットについて決定された計算能力パラメータの情報を含む。1つの実施態様では、エッジデバイス104が携帯電話またはタブレットである場合には、通知プロファイルは、エッジデバイス104の充電残量の情報をさらに含む。通知プロファイルに関連するデータは、通知プロファイルデータ222に格納される。
通知プロファイルを作成した後で、通知モジュール110は、空きタイムスロットおよび能力パラメータを通知する。そのために、通知モジュール110は、通知プロファイルを、グリッドコンピューティングシステム100内のグリッドサーバ102に送る。1つの実施態様では、エッジデバイス104は、通知プロファイルを送るためのグリッドサーバ102を検索することができる。1つの実施態様では、エッジデバイス104は、エッジデバイス104が以前に通信した可能性がある複数のグリッドサーバ102の詳細を備えたキャッシュリストを有していることもある。通知モジュール110は、キャッシュリストに基づいて、通知プロファイルをこれらのグリッドサーバ102にマルチキャストすることもできる。
グリッドサーバ102では、タスク実行モジュール228が、そのグリッドサーバ102に実行のために割り付けられたメインタスクを受信することができる。メインタスクは、外部エンティティによって割り付けられることもある。メインタスクに関連するデータは、メインタスクデータ234に格納される。メインタスクが計算負荷の高いタスクである場合には、グリッドサーバ102は、そのメインタスクの一部分すなわちサブタスクを実行するための空きタイムスロットおよび能力を有するエッジデバイス104を探す。そのために、リソースモニタ112は、エッジデバイス104が通知する通知プロファイルをリッスンする。リソースモニタ112は、1つまたは複数のエッジデバイス104の通知プロファイルを受信することができ、これらの通知プロファイルを処理して、メインタスクを区分化して、エッジデバイス104向けのサブタスクを作成することができる。
エッジデバイス104から受信した通知プロファイルに基づいて、リソースモニタ112は、通知プロファイル中の空きタイムスロットの持続時間、およびその空きタイムスロットに関連する計算能力パラメータをチェックする。持続時間が、メインタスクの最小のサブタスクを完了するための既定のしきい値持続時間を超えているかどうかをチェックする。さらに、計算能力パラメータが、メインタスクの最小のサブタスクのタイムラインを満たす対応する既定のしきい値を超えているかどうかをチェックする。1つの例では、空きタイムスロットの持続時間が最小のサブタスクを完了するための既定のしきい値持続時間未満である場合、および/または計算能力パラメータが最小のサブタスクのタイムラインを満たす対応する既定のしきい値未満である場合には、グリッドサーバ102は、エッジデバイス104からの通知プロファイルを無視して、サブタスクを分配する。実行したチェックに基づいて、リソースモニタ112は、タスクを割り当てるためのエッジデバイス104を選択することができる。選択したエッジデバイス104に関連するデータは、リソースデータ238に格納される。
さらに、リソースモニタ112によって実行されたチェックに基づいて、タスクスケジューラ114は、メインタスクを区分化してエッジデバイス104向けのサブタスクを作成し、作成したサブタスクを、実行のための選択したエッジデバイス104に割り当てる。サブタスクは、そのサイズおよび計算要件がエッジデバイス104の計算能力に適合し、そのサブタスクに関連する既定のタイムライン内に実行することができるように作成される。1つの例では、リソースモニタ112は、複数のエッジデバイス104から通知プロファイルを受信することができる。通知プロファイルについてのチェックに基づいて、複数のエッジデバイス104がサブタスクを実行することができると判定された場合には、リソースモニタ112は、複数のエッジデバイス104を選択して、選択した各エッジデバイス104にサブタスクを割り当てることができ、タスクスケジューラ114は、メインタスクを区分化して、それらのエッジデバイス104のそれぞれに適した別個のサブタスクを作成することができる。サブタスクは、メインタスクの全体のタイムラインが満たされるように作成することができる。メインタスクの残りのタスクは、グリッドサーバ102が実行することができることは、理解されるであろう。サブタスクに関連するデータは、サブタスクデータ236に格納される。
通知プロファイルがエッジデバイス104の充電残量の情報を含む実施態様では、リソースモニタ112は、充電残量をチェックすることができる。充電残量が、メインタスクの最小のサブタスクを完了するための既定のしきい値充電値を超えているかどうかをチェックすることができる。充電残量が既定のしきい値充電値未満である場合には、エッジデバイス104からの通知プロファイルを無視して、サブタスクを共有して実行することができる。
さらに、割り当てられたサブタスクは、エッジデバイス104によって実行される。そのために、1つの実施態様では、エッジデバイス104が、実行するサブタスクを引き受ける前に、グリッドサーバ102で自身を認証しなければならないことがある。例えばパスワードに基づく認証チェックなどの認証機構を、エッジデバイス104とグリッドサーバ102との間に実装することができる。グリッドサーバ102は、エッジデバイス104が割り当てられたサブタスクを実行するステップに進むことを許可する前に、エッジデバイス104の身分証明および割り付けられたパスワードをチェックすることができる。
この認証に基づいて、エッジデバイス104のタスクマネージャ214は、エッジデバイス104の通知プロファイルに基づいて作成されたサブタスクをグリッドサーバ102から受信し、空きタイムスロット中に実行する。1つの例では、タスクマネージャ214は、割り当てられたサブタスクをダウンロードすることができる。タスクマネージャ214は、サブタスクを実行し、サブタスク結果をグリッドサーバ102に送る。サブタスクおよびサブタスク結果に関連するデータは、タスクデータ224に格納される。
さらに、1つの実施態様では、グリッドサーバ102は、複数のエッジデバイス104用のサブタスクを選択して、割り当てることができる。グリッドサーバ102のタスクスケジューラ114は、これらのエッジデバイス104をモニタリングして、完了状態のサブタスクを集めることができる。このモニタリングは、ポーリングに基づく機構によって行うことができる。さらに、1つの実施態様では、タスクスケジューラ114は、個別のエッジデバイス104に割り当てられたサブタスクのそれぞれのタイムラインを保持することができる。割り当てられた各サブタスクごとに、タスクスケジューラ114は、サブタスク完了期限を識別することができる。あるエッジデバイス104がサブタスク完了期限に間に合わない場合には、リソースモニタ112は、そのエッジデバイス104を解除することができ、タスクスケジューラ114は、対応するサブタスクをメインタスクとマージして、グリッドサーバ102が実行するようにすることができる。
1つの実施態様では、グリッドサーバ102によるエッジデバイス104のモニタリングに基づいて、いずれかのエッジデバイス104がユーザアクティビティまたはユーザが実行するアプリケーションでビジー状態である、または接続不能である場合には、リソースモニタ112は、そのエッジデバイス104を解除することができ、タスクスケジューラ114は、対応するサブタスクをメインタスクとマージして、グリッドサーバ112が実行するようにすることができる。
さらに、グリッドサーバ102の結果生成器230は、サブタスクが割り当てられたエッジデバイス104からサブタスク結果を収集する。結果生成器230は、グリッドサーバ102で実行された残りのメインタスクの結果とともにサブタスク結果を収集して、メインタスク結果を生成する。サブタスク結果およびメインタスク結果に関連するデータは、結果データ240に格納される。次いで、結果生成器230は、メインタスク結果を、そのメインタスクをグリッドサーバ102に割り付けたエンティティに送ることができる。
1つの実施態様では、サブタスクの実行に関わったエッジデバイス104は、実行したサブタスクに応じて、クレジットを稼ぐ、または支払いを受けることができる。そのために、グリッドサーバ102は、メインタスク全体を実行する際の各エッジデバイス104の寄与に関する情報を記憶することができる。1つの例では、これらの寄与は、メインタスクの百分率、あるいはサブタスクのタイプまたはレベルに換算することができる。グリッドサーバ102は、課金システム(図示せず)と通信し、各エッジデバイス104の寄与を送ることができる。課金システムは、エッジデバイス104に報酬を与えるように構成された外部エンティティとすることができる。課金システムは、エッジデバイス104のクレジットまたは報酬量を決定することができる。
エッジデバイス104向けのサブタスクが、それらのエッジデバイス104の個々の能力に基づいて、かつ空きタイムスロットの持続時間に基づいて作成されるグリッドコンピューティングシステム100では、各エッジデバイス104向けのサブタスクのサイズまたはレベルは、コスト節約または発生するコストを最適化するように作成することができる。
1つの実施態様では、エッジデバイス104のユーザは、遊休処理能力の共有または提供を停止または一時停止する入力を、グリッドコンピューティングシステム100中のグリッドサーバ102に与えて、サブタスクの実行に加わることができる。この場合、ユーザの入力に基づいて、エッジデバイス104の通知モジュール110は、グリッドサーバ102に通知プロファイルを送るのを停止する。また、ユーザは、どの通知モジュール110がグリッドサーバ102への通知プロファイルの供給を再開することができるかに基づいて、遊休処理能力の享有を再開する入力を、グリッドサーバ102に与えることもできる。この一時停止または停止は、グリッドサーバ102のサブタスク割当ての計画に影響を及ぼす可能性があり、またエッジデバイス104によるクレジットまたは報酬の取得に影響を及ぼす可能性もある。遊休処理能力の共有の停止は、一時的であっても永続的であってもよい。そのために、ユーザに対して、通知プロファイルの供給を一時的に停止するか永続的に停止するかの選択肢を与えることができる。1つの実施態様では、永続停止の場合には、グリッドサーバ102および課金システム内にあるエッジデバイス104の詳細を削除することができる。
図3および図4は、本主題の1実施態様による、グリッドコンピューティングシステムにおいて遊休リソースによってタスクを実行する方法300および400を示す図である。方法300および400を述べる順序は、制限的なものとして解釈するためのものではなく、記載する方法のブロックのうちの任意数のブロックを任意の順序で組み合わせて、方法300または400あるいは代替の方法を実施することができる。さらに、個々のブロックは、本明細書に記載する本主題の趣旨および範囲を逸脱することなく削除することもできる。
さらに、方法300および400は、任意の適当なハードウェアの1つもしくは複数のプロセッサまたはコンピューティングデバイス、非一時的な機械可読命令、あるいはそれらの組合せによって実施することができる。方法300および400のステップは、容易に理解されるであろうが、非一時的なコンピュータ可読媒体に格納された命令に基づいて実行することができることは理解されるであろう。非一時的なコンピュータ可読媒体としては、例えば、デジタルデータ記憶媒体、デジタルメモリ、磁気ディスクや磁気テープなどの磁気記憶媒体、ハードドライブ、または光可読デジタルデータ記憶媒体などが挙げられる。
さらに、方法300および400は、任意のコンピューティングデバイスで実施することができるが、図3および図4に示す例では、説明を容易にするために、前述のグリッドコンピューティングシステム100の状況において方法300および400を説明する。
図3を参照すると、ブロック302で、グリッドコンピューティングシステム100中のサブタスクを実行するためのエッジデバイス104が、空きタイムスロットを識別し、その空きタイムスロットの持続時間を推定する。空きタイムスロットは、そのエッジデバイス104が遊休状態であることを示す。ブロック304で、空きタイムスロット中にサブタスクを実行するためのエッジデバイス104が、エッジデバイス104の少なくとも1つの計算能力パラメータを決定する。計算能力パラメータとしては、計算速度、空きメモリ、および空きタイムスロット中のネットワーク帯域幅などが挙げられる。
1つの実施態様では、エッジデバイス104のユーザアクティビティの履歴ならびにエッジデバイス104のリーンアクティビティ期間およびハイアクティビティ期間に基づいて、空きタイムスロットを識別し、計算能力パラメータを決定する。そのために、エッジデバイス104は、エッジデバイス104上のユーザアクティビティの履歴と、ハイアクティビティ期間およびリーンアクティビティ期間の詳細とを保持する。1つの実施態様では、エッジデバイス104の使用パターンに基づいて、空きタイムスロットを識別し、計算能力パラメータを決定する。そのために、エッジデバイス104は、アンケートに対するユーザ応答を受信することができ、そのユーザ応答から使用パターンを決定することができる。
さらに、ブロック306で、空きタイムスロットの少なくとも1つ、持続時間、およびその少なくとも1つの空きタイムスロットに関連する少なくとも1つの計算能力パラメータを有する通知プロファイルを、エッジデバイス104が作成する。1つの実施態様では、通知プロファイルは、エッジデバイス104の充電残量を含むこともできる。
ブロック308で、エッジデバイス104が、通知プロファイルを、グリッドコンピューティングシステム100内のグリッドサーバ102に供給または通知する。通知プロファイルは、グリッドサーバ102が、通知プロファイル内の空きタイムスロットの持続時間および計算能力パラメータに基づいてメインタスクを区分化して、エッジデバイス104によって実行可能なサブタスクを作成することができるように供給される。1つの実施態様では、エッジデバイス104は、エッジデバイス104内のキャッシュリストに基づいて、複数のグリッドサーバ102に通知プロファイルをマルチキャストすることができる。
ブロック310で、エッジデバイス104の通知プロファイルに基づいて作成されたサブタスクを、エッジデバイス104が受信する。サブタスクを受信するために、エッジデバイス104は、グリッドサーバ102で自身を認証しなければならないことがある。ブロック312で、エッジデバイス104がサブタスクを実行し、サブタスク結果をグリッドサーバ102に送る。
図4を参照すると、ブロック402で、グリッドサーバ102は、グリッドコンピューティングシステム100内のサブタスクを実行するためのエッジデバイス104の空きタイムスロットおよび計算能力パラメータをリッスンする。ブロック404で、グリッドサーバ102が、エッジデバイス104から通知プロファイルを受信する。通知プロファイルは、エッジデバイス104が遊休状態であることを示す少なくとも1つの空きタイムスロット、その少なくとも1つの空きタイムスロットの持続時間、およびその少なくとも1つの空きタイムスロットに関連するエッジデバイス104の少なくとも1つの計算能力パラメータを有する。
受信した通知プロファイルに基づいて、ブロック406で、少なくとも1つの空きタイムスロットの持続時間およびその少なくとも1つの空きタイムスロットに関連する少なくとも1つの計算能力パラメータを、グリッドサーバ102がチェックする。少なくとも1つの空きタイムスロットの持続時間が、エッジデバイス104が最小のサブタスクを完了するための既定のしきい値持続時間を超えているかどうか、およびその少なくとも1つの空きタイムスロットに関連する少なくとも1つの計算能力パラメータが、エッジデバイス104が最小のサブタスクのタイムラインを満たすための対応する既定のしきい値を超えているかどうかをチェックする。
ブロック408で、グリッドサーバ102が、空きタイムスロットの持続時間および計算能力パラメータのチェックに基づいて、グリッドサーバ102に割り付けられたメインタスクを区分化して、サブタスクを作成する。エッジデバイス104向けのサブタスクは、そのサブタスクのレベルがエッジデバイス104の計算能力パラメータの範囲内となり、かつそのサブタスクが空きタイムスロットの持続時間内にエッジデバイス104によって完了するように作成される。
ブロック410で、エッジデバイス104向けに作成されたサブタスクは、グリッドサーバ102によって、実行のためにエッジデバイス104に割り当てられる。グリッドサーバ102は、割り当てたサブタスクを転送する前に、エッジデバイス104を認証することができる。さらに、グリッドサーバ102は、エッジデバイス104をモニタリングして、完了状態のサブタスクを集めることができる。エッジデバイス104がサブタスクを完了すると、グリッドサーバ102は、エッジデバイス104からサブタスク結果を取り出し、割り付けられたメインタスクのメインタスク結果を生成する。
構造的特徴に特有の表現で方法およびデバイスの実施態様を説明したが、本発明は、必ずしも記載した特定の特徴に限定されるわけではないことを理解されたい。あくまでも、これらの特定の特徴は、これらの方法およびデバイスのいくつかの実施態様という文脈で開示および説明したものである。
本主題の方法およびデバイスのその他の利点は、方法およびデバイスの例示的な実施態様の説明および特許請求の範囲からより理解できるであろう。本主題の方法およびデバイスは、本明細書において上述した実施態様に限定されない。
特定の実施態様を参照して本主題について述べたが、この記述は、限定的な意味で解釈すべきものではない。開示した実施態様の様々な修正形態、および本主題の代替の実施態様は、本主題の説明を参照すれば、当業者には明らかであろう。したがって、これらの修正は、定義する本主題の趣旨および範囲を逸脱することなく加えることができるものと企図されている。
102 グリッドサーバ
102-1 グリッドサーバ
102-2 グリッドサーバ
102-N グリッドサーバ
104 エッジデバイス
104-1 エッジデバイス
104-2 エッジデバイス
104-M エッジデバイス
106 通信ネットワーク
108 タイムスロットおよび能力モニタ
110 通知モジュール
112 リソースモニタ
114 タスクスケジューラ

Claims (15)

  1. グリッドコンピューティングシステム(100)においてタスクを実行する方法であって、
    サブタスクを実行するためのエッジデバイス(104)が、前記エッジデバイス(104)が遊休状態であることを示す複数の空きタイムスロットを識別し、前記複数の空きタイムスロットの持続時間を推定するステップと、
    前記エッジデバイス(104)が、前記複数の空きタイムスロット中にサブタスクを実行するための前記エッジデバイス(104)の少なくとも1つの計算能力パラメータを決定するステップと、
    前記エッジデバイス(104)が、前記複数の空きタイムスロットのうちの少なくとも1つの空きタイムスロットを含み、かつ前記少なくとも1つの空きタイムスロットの持続時間および前記少なくとも1つの空きタイムスロットに関連する前記少なくとも1つの計算能力パラメータを含む通知プロファイルを作成するステップと、
    前記エッジデバイス(104)が、メインタスクを区分化して前記エッジデバイス(104)によって実行可能なサブタスクを作成するために、前記通知プロファイルを前記グリッドコンピューティングシステム(100)内の複数のグリッドサーバ(102)に提供するステップとを含む、方法。
  2. 前記少なくとも1つの計算能力パラメータが、計算速度、空きメモリ、および前記複数の空きタイムスロット中のネットワーク帯域幅を含む、請求項1に記載の方法。
  3. 前記通知プロファイルを提供する前記ステップが、前記エッジデバイス(104)内のキャッシュリストに基づいて前記複数のグリッドサーバ(102)に前記通知プロファイルをマルチキャストするステップを含む、請求項1に記載の方法。
  4. 前記エッジデバイス(104)が、前記通知プロファイルに基づいて作成された前記サブタスクをグリッドサーバ(102)から受信するステップと、
    前記サブタスクを実行するステップと、
    サブタスク結果を前記グリッドサーバ(102)に送るステップとをさらに含む、請求項1に記載の方法。
  5. 前記複数の空きタイムスロット中に前記サブタスクを実行するための前記エッジデバイス(104)における充電残量を決定するステップをさらに含み、前記通知プロファイルが前記充電残量を含む、請求項1に記載の方法。
  6. グリッドコンピューティングシステム(100)においてタスクを実行する方法であって、
    前記グリッドコンピューティングシステム(100)内のグリッドサーバ(102)が、エッジデバイス(104)から、前記エッジデバイス(104)が遊休状態であることを示す少なくとも1つの空きタイムスロット、前記少なくとも1つの空きタイムスロットの持続時間、および前記少なくとも1つの空きタイムスロットに関連する前記エッジデバイス(104)の少なくとも1つの計算能力パラメータを含む通知プロファイルを受信するステップと、
    前記グリッドサーバ(102)が、前記少なくとも1つの空きタイムスロットの前記持続時間が、前記エッジデバイス(104)が最小のサブタスクを完了するための既定のしきい値持続時間を超えているかどうか、および前記少なくとも1つの空きタイムスロットに関連する前記少なくとも1つの計算能力パラメータが、前記エッジデバイス(104)が前記最小のサブタスクのタイムラインを満たすための対応する既定のしきい値を超えているかどうかをチェックするステップと、
    前記チェックに基づいて、メインタスクを区分化して前記エッジデバイス(104)が実行するサブタスクを作成するステップとを含む、方法。
  7. 前記チェックに基づいて前記エッジデバイス(104)を選択するステップと、実行用に作成された前記サブタスクを前記選択したエッジデバイス(104)に割り当てるステップとをさらに含み、前記サブタスクが、前記少なくとも1つの空きタイムスロットの前記持続時間および前記選択したエッジデバイス(104)の前記少なくとも1つの計算能力パラメータに基づいて作成される、請求項6に記載の方法。
  8. 前記通知プロファイルが、前記エッジデバイス(104)の充電残量を含み、前記エッジデバイス(104)の前記選択が、前記充電残量に基づいて行われる、請求項7に記載の方法。
  9. グリッドコンピューティングシステム(100)においてタスクを実行するエッジデバイス(104)であって、
    プロセッサ(202-1)と、
    サブタスクを実行するために、前記エッジデバイス(104)が遊休状態であることを示す複数の空きタイムスロットを識別し、前記複数の空きタイムスロットの持続時間を推定し、
    前記複数の空きタイムスロット中にサブタスクを実行するために、前記エッジデバイス(104)の少なくとも1つの計算能力パラメータを決定する、
    前記プロセッサ(202-1)に結合されたタイムスロットおよび能力モニタ(108)と、
    前記複数の空きタイムスロットのうちの少なくとも1つの空きタイムスロットを含み、かつ前記少なくとも1つの空きタイムスロットの持続時間および前記少なくとも1つの空きタイムスロットに関連する前記少なくとも1つの計算能力パラメータを含む通知プロファイルを作成し、
    メインタスクを区分化して前記エッジデバイス(104)によって実行可能なサブタスクを作成するために、前記通知プロファイルを前記グリッドコンピューティングシステム(100)内の複数のグリッドサーバ(102)に提供する、
    前記プロセッサ(202-1)に結合された通知モジュール(110)とを備える、エッジデバイス(104)。
  10. 前記少なくとも1つの計算能力パラメータが、計算速度、空きメモリ、および前記複数の空きタイムスロット中のネットワーク帯域幅を含む、請求項9に記載のエッジデバイス(104)。
  11. 前記通知プロファイルに基づいて作成された前記サブタスクを受信し、
    前記サブタスクを実行し、
    サブタスク結果を前記グリッドサーバ(102)に送る、
    前記プロセッサ(202-1)に結合されたタスクマネージャ(214)を備える、請求項9に記載のエッジデバイス(104)。
  12. 前記複数の空きタイムスロット中に前記サブタスクを実行するための前記エッジデバイス(104)における充電残量を決定する、
    前記プロセッサ(202-1)に結合されたユーザアクティビティモニタ(212)を備え、前記通知プロファイルが前記充電残量を含む、請求項9に記載のエッジデバイス(104)。
  13. グリッドコンピューティングシステム(100)においてタスクを実行するグリッドサーバ(102)であって、
    プロセッサ(202-2)と、
    エッジデバイス(104)から、前記エッジデバイス(104)が遊休状態であることを示す少なくとも1つの空きタイムスロット、前記少なくとも1つの空きタイムスロットの持続時間、および前記少なくとも1つの空きタイムスロットに関連する前記エッジデバイス(104)の少なくとも1つの計算能力パラメータを含む通知プロファイルを受信し、
    前記少なくとも1つの空きタイムスロットの前記持続時間が、前記エッジデバイス(104)が最小のサブタスクを完了するための既定のしきい値持続時間を超えているかどうか、および前記少なくとも1つの空きタイムスロットに関連する前記少なくとも1つの計算能力パラメータが、前記エッジデバイス(104)が前記最小のサブタスクのタイムラインを満たすための対応する既定のしきい値を超えているかどうかをチェックする、
    前記プロセッサ(202-2)に結合されたリソースモニタ(112)と、
    メインタスクを区分化して前記エッジデバイス(104)が実行するサブタスクを作成する、前記プロセッサ(202-2)に結合されたタスクスケジューラ(114)とを備え、前記サブタスクが、前記少なくとも1つの空きタイムスロットの前記持続時間および前記少なくとも1つの空きタイムスロットに関連する前記少なくとも1つの計算能力パラメータに基づいて作成される、グリッドサーバ(102)。
  14. 前記リソースモニタ(112)が、前記少なくとも1つの空きタイムスロットの前記持続時間および前記少なくとも1つの空きタイムスロットに関連する前記少なくとも1つの計算能力パラメータの前記チェックに基づいて前記エッジデバイス(104)を選択し、前記タスクスケジューラが、実行用に作成された前記サブタスクを前記選択したエッジデバイス(104)に割り当てる、請求項13に記載のグリッドサーバ(102)。
  15. 実行時に、エッジデバイス(104)に、
    サブタスクを実行するために、前記エッジデバイス(104)が遊休状態であることを示す複数の空きタイムスロットを識別し、前記複数の空きタイムスロットの持続時間を推定するステップと、
    前記複数の空きタイムスロット中にサブタスクを実行するための前記エッジデバイス(104)の少なくとも1つの計算能力パラメータを決定するステップと、
    前記複数の空きタイムスロットのうちの少なくとも1つの空きタイムスロットを含み、かつ前記少なくとも1つの空きタイムスロットの持続時間および前記少なくとも1つの空きタイムスロットに関連する前記少なくとも1つの計算能力パラメータを含む通知プロファイルを作成するステップと、
    メインタスクを区分化して前記エッジデバイス(104)によって実行可能なサブタスクを作成するために、前記通知プロファイルをグリッドコンピューティングシステム(100)内の複数のグリッドサーバ(102)に提供するステップと
    を実行させる1組のコンピュータ可読命令のセットを有する非一時的なコンピュータ可読記憶媒体。
JP2014131089A 2013-06-27 2014-06-26 グリッドコンピューティングシステムの遊休リソースによるタスク実行 Active JP6490913B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN2180MU2013 IN2013MU02180A (ja) 2013-06-27 2013-06-27
IN2180/MUM/2013 2013-06-27

Publications (2)

Publication Number Publication Date
JP2015011716A true JP2015011716A (ja) 2015-01-19
JP6490913B2 JP6490913B2 (ja) 2019-03-27

Family

ID=51032975

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014131089A Active JP6490913B2 (ja) 2013-06-27 2014-06-26 グリッドコンピューティングシステムの遊休リソースによるタスク実行

Country Status (5)

Country Link
US (1) US9201686B2 (ja)
EP (1) EP2819011A3 (ja)
JP (1) JP6490913B2 (ja)
CN (1) CN104252337B (ja)
IN (1) IN2013MU02180A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018179103A1 (ja) * 2017-03-28 2018-10-04 株式会社日立製作所 データ処理システムおよびその制御方法
KR20190051878A (ko) * 2017-11-07 2019-05-15 고려대학교 산학협력단 단말 장치의 유휴 컴퓨팅 자원 활용 시스템 및 이를 이용한 유휴 컴퓨팅 자원 활용 방법
JP2020161925A (ja) * 2019-03-26 2020-10-01 本田技研工業株式会社 通信装置及びプログラム
JP2020160661A (ja) * 2019-03-26 2020-10-01 本田技研工業株式会社 管理サーバ及びプログラム

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160026553A1 (en) * 2014-07-22 2016-01-28 Cray Inc. Computer workload manager
EP3191953A1 (en) * 2014-09-11 2017-07-19 Cisco Technology, Inc. Crowd-sourced cloud computing
US10248487B1 (en) * 2015-01-27 2019-04-02 Violin Systems Llc Error recovery for multi-stage simultaneously running tasks
US10108516B2 (en) 2015-01-29 2018-10-23 Knuedge Incorporated Affinity data collection in a computing system
US20180217870A1 (en) * 2015-07-31 2018-08-02 Societa Innovations Ipco Limited System And Method For Multi-Tiered Real Time Processing Using Configurable Platform Instances
CN105162840B (zh) * 2015-07-31 2018-12-28 清华大学 在线分布式请求调度和服务管理方法及代理***
US10331569B2 (en) 2016-01-05 2019-06-25 Friday Harbor Llc Packet router buffer management
US9954953B2 (en) * 2016-02-11 2018-04-24 International Business Machines Corporation Distributed load processing using forecasted location-based internet of things device clusters
US10025636B2 (en) * 2016-04-15 2018-07-17 Google Llc Modular electronic devices with contextual task management and performance
US10873540B2 (en) 2016-07-06 2020-12-22 Cisco Technology, Inc. Crowd-sourced cloud computing resource validation
US10360606B2 (en) 2016-07-19 2019-07-23 Cisco Technology, Inc. Crowd-sourced cloud computing in a multiple resource provider environment
CN106528274A (zh) * 2016-11-03 2017-03-22 许继集团有限公司 用电信息数据处理方法、用电信息采集***及智能电表
US11281501B2 (en) * 2018-04-04 2022-03-22 Micron Technology, Inc. Determination of workload distribution across processors in a memory system
EP3785116A1 (en) * 2018-04-25 2021-03-03 Telefonaktiebolaget LM Ericsson (publ) Systems and methods of deploying a program to a distributed network
US20190386928A1 (en) * 2018-06-19 2019-12-19 R-Stor Inc. System and method for utilizing idle network resources
EP3588290A1 (en) * 2018-06-28 2020-01-01 Tata Consultancy Services Limited Resources management in internet of robotic things (iort) environments
US11204967B2 (en) 2018-09-25 2021-12-21 Gunnar Lovelace Computer system transaction processing
US10901801B2 (en) * 2018-09-25 2021-01-26 Gunnar Lovelace Distributed monitoring of network computers for dynamically updating assignments of tasks
KR102191586B1 (ko) * 2018-10-23 2020-12-15 포항공과대학교 산학협력단 블록체인 기반의 유휴 컴퓨팅 자원 공유를 통한 포그 컴퓨팅 방법
CN109960574B (zh) * 2019-03-12 2023-04-07 昆明理工大学 一种网格环境下的静态调度改进方法
CN109960575B (zh) * 2019-03-26 2023-09-15 深圳市网心科技有限公司 一种计算能力共享方法、***及相关设备
US11669901B2 (en) 2019-07-12 2023-06-06 Core Scientific Operating Company Communication network for gaming rewards
CN110648102B (zh) * 2019-09-27 2024-05-28 拉扎斯网络科技(上海)有限公司 任务处理方法、装置、电子设备及存储介质
US11842225B2 (en) * 2019-10-03 2023-12-12 Steering Solutions Ip Holding Corporation Systems and methods for decentralized-distributed processing of vehicle data
US11485241B2 (en) 2019-10-21 2022-11-01 Core Scientific, Inc. Efficient computing in vehicles
CN112860421B (zh) * 2019-11-28 2024-05-07 伊姆西Ip控股有限责任公司 用于作业处理的方法、设备和计算机程序产品
CN111124640A (zh) * 2019-12-11 2020-05-08 浙江大华技术股份有限公司 任务分配方法及***、存储介质、电子装置
US11822955B2 (en) * 2020-01-17 2023-11-21 Steering Solutions Ip Holding Corporation System and method for decentralized vehicle software management
US11477134B1 (en) * 2020-03-31 2022-10-18 United Services Automobile Association (Usaa) Computer resource-based API transaction method and system
US11645111B2 (en) * 2020-10-23 2023-05-09 International Business Machines Corporation Managing task flow in edge computing environment
US11853810B2 (en) 2021-01-07 2023-12-26 International Business Machines Corporation Edge time sharing across clusters via dynamic task migration based on task priority and subtask result sharing
CN114979129A (zh) * 2021-02-23 2022-08-30 天翼数字生活科技有限公司 一种基于终端协作的边缘网关计算方法
US11953972B2 (en) * 2022-04-06 2024-04-09 International Business Machines Corporation Selective privileged container augmentation
CN117499341A (zh) * 2022-07-26 2024-02-02 中兴通讯股份有限公司 计算任务的处理方法、第一设备和存储介质
CN116347608B (zh) * 2023-04-19 2024-03-15 湖南科技学院 一种时分资源自适应调整方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141669A (ja) * 2003-11-10 2005-06-02 Nippon Telegr & Teleph Corp <Ntt> グリッドコンピューティング及びグリッドコンピューティングにおける負荷分散方法
JP2006048442A (ja) * 2004-08-05 2006-02-16 Canon Inc 情報処理装置およびその制御方法、並びに、画像処理方法
WO2006100752A1 (ja) * 2005-03-22 2006-09-28 Fujitsu Limited 分散処理管理装置、分散処理管理方法、分散処理管理プログラム
WO2013076775A1 (ja) * 2011-11-24 2013-05-30 株式会社日立製作所 計算機システム、分割ジョブ処理方法及びプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112225A (en) 1998-03-30 2000-08-29 International Business Machines Corporation Task distribution processing system and the method for subscribing computers to perform computing tasks during idle time
US20030005068A1 (en) * 2000-12-28 2003-01-02 Nickel Ronald H. System and method for creating a virtual supercomputer using computers working collaboratively in parallel and uses for the same
US8024395B1 (en) * 2001-09-04 2011-09-20 Gary Odom Distributed processing multiple tier task allocation
US7082132B1 (en) * 2001-12-26 2006-07-25 Nortel Networks Limited Universal edge node
US20030200347A1 (en) * 2002-03-28 2003-10-23 International Business Machines Corporation Method, system and program product for visualization of grid computing network status
US7831971B2 (en) * 2005-10-24 2010-11-09 International Business Machines Corporation Method and apparatus for presenting a visualization of processor capacity and network availability based on a grid computing system simulation
US8671403B2 (en) * 2006-05-22 2014-03-11 Infosys Limited Pre-creating virtual machines in a grid environment
US20080320482A1 (en) * 2007-06-20 2008-12-25 Dawson Christopher J Management of grid computing resources based on service level requirements
US7515899B1 (en) * 2008-04-23 2009-04-07 International Business Machines Corporation Distributed grid computing method utilizing processing cycles of mobile phones
US9307048B2 (en) * 2010-12-28 2016-04-05 Microsoft Technology Licensing, Llc System and method for proactive task scheduling of a copy of outlier task in a computing environment
US8856571B2 (en) * 2011-04-05 2014-10-07 Apple Inc. Adjusting device performance over multiple time domains
US8572421B2 (en) * 2011-04-05 2013-10-29 Apple Inc. Adjusting device performance based on processing profiles

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141669A (ja) * 2003-11-10 2005-06-02 Nippon Telegr & Teleph Corp <Ntt> グリッドコンピューティング及びグリッドコンピューティングにおける負荷分散方法
JP2006048442A (ja) * 2004-08-05 2006-02-16 Canon Inc 情報処理装置およびその制御方法、並びに、画像処理方法
WO2006100752A1 (ja) * 2005-03-22 2006-09-28 Fujitsu Limited 分散処理管理装置、分散処理管理方法、分散処理管理プログラム
WO2013076775A1 (ja) * 2011-11-24 2013-05-30 株式会社日立製作所 計算機システム、分割ジョブ処理方法及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
玉井 森彦,外3名: "「PCグリッド環境での市場原理に基づいた資源共有方式」", 情報処理学会論文誌, vol. 第47巻,第2号, JPN6018020542, 15 February 2006 (2006-02-15), pages 455 - 464 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018179103A1 (ja) * 2017-03-28 2018-10-04 株式会社日立製作所 データ処理システムおよびその制御方法
JPWO2018179103A1 (ja) * 2017-03-28 2019-11-07 株式会社日立製作所 データ処理システムおよびその制御方法
US11212231B2 (en) 2017-03-28 2021-12-28 Hitachi, Ltd. Data processing system and method of controlling the same
KR20190051878A (ko) * 2017-11-07 2019-05-15 고려대학교 산학협력단 단말 장치의 유휴 컴퓨팅 자원 활용 시스템 및 이를 이용한 유휴 컴퓨팅 자원 활용 방법
KR102122831B1 (ko) 2017-11-07 2020-06-15 고려대학교 산학협력단 단말 장치의 유휴 컴퓨팅 자원 활용 시스템 및 이를 이용한 유휴 컴퓨팅 자원 활용 방법
JP2020161925A (ja) * 2019-03-26 2020-10-01 本田技研工業株式会社 通信装置及びプログラム
JP2020160661A (ja) * 2019-03-26 2020-10-01 本田技研工業株式会社 管理サーバ及びプログラム
JP7049288B2 (ja) 2019-03-26 2022-04-06 本田技研工業株式会社 管理サーバ及びプログラム
JP7182502B2 (ja) 2019-03-26 2022-12-02 本田技研工業株式会社 通信装置及びプログラム

Also Published As

Publication number Publication date
EP2819011A2 (en) 2014-12-31
US20150007185A1 (en) 2015-01-01
CN104252337B (zh) 2019-03-01
US9201686B2 (en) 2015-12-01
JP6490913B2 (ja) 2019-03-27
IN2013MU02180A (ja) 2015-06-12
CN104252337A (zh) 2014-12-31
EP2819011A3 (en) 2016-06-22

Similar Documents

Publication Publication Date Title
JP6490913B2 (ja) グリッドコンピューティングシステムの遊休リソースによるタスク実行
US10542079B2 (en) Automated profiling of resource usage
US10452438B2 (en) Parameter selection for optimization of task execution based on execution history for prior tasks
EP3577561B1 (en) Resource management for virtual machines in cloud computing systems
US11252220B2 (en) Distributed code execution involving a serverless computing infrastructure
CN110249310B (zh) 云计算***中的用于虚拟机的资源管理
CA2900948C (en) Cost-minimizing task scheduler
US9430280B1 (en) Task timeouts based on input data characteristics
EP2894827B1 (en) Method, apparatus, and system for managing migration of virtual machine
US9535754B1 (en) Dynamic provisioning of computing resources
Li et al. Amoeba: Qos-awareness and reduced resource usage of microservices with serverless computing
US9535749B2 (en) Methods for managing work load bursts and devices thereof
CN107665143B (zh) 资源管理方法、装置及***
Li et al. MapReduce delay scheduling with deadline constraint
US9607275B2 (en) Method and system for integration of systems management with project and portfolio management
US9928092B1 (en) Resource management in a virtual machine cluster
US11656914B2 (en) Anticipating future resource consumption based on user sessions
US11182189B2 (en) Resource optimization for virtualization environments
CN109257256A (zh) 设备监控方法、装置、计算机设备及存储介质
WO2021262332A1 (en) Rightsizing virtual machine deployments in a cloud computing environment
CN115686813A (zh) 一种资源调度方法、装置、电子设备和存储介质
Diouani et al. An Adaptive Autonomic Framework for Optimizing Energy Consumption in the Cloud Data Centers.
US20230102654A1 (en) Relative displaceable capacity integration
US11126452B2 (en) Performance modeling for virtualization environments
Zhang et al. A Virtual Machine Placement Strategy Based on Virtual Machine Selection and Integration

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180904

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190228

R150 Certificate of patent or registration of utility model

Ref document number: 6490913

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250