JP7113840B2 - 計算ノード管理プロトコルのためのシステムおよび方法 - Google Patents

計算ノード管理プロトコルのためのシステムおよび方法 Download PDF

Info

Publication number
JP7113840B2
JP7113840B2 JP2019550755A JP2019550755A JP7113840B2 JP 7113840 B2 JP7113840 B2 JP 7113840B2 JP 2019550755 A JP2019550755 A JP 2019550755A JP 2019550755 A JP2019550755 A JP 2019550755A JP 7113840 B2 JP7113840 B2 JP 7113840B2
Authority
JP
Japan
Prior art keywords
node
computational
nodes
compute
artificial intelligence
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
JP2019550755A
Other languages
English (en)
Other versions
JP2020510938A (ja
Inventor
トッシュ,ジョージ
Original Assignee
セールスフォース ドット コム インコーポレイティッド
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 セールスフォース ドット コム インコーポレイティッド filed Critical セールスフォース ドット コム インコーポレイティッド
Publication of JP2020510938A publication Critical patent/JP2020510938A/ja
Application granted granted Critical
Publication of JP7113840B2 publication Critical patent/JP7113840B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明開示は、計算ノード(compute node)システムに関する。そして、より特定的には、計算ノード管理プロトコルに関する。
この出願は、2017年3月15日提出の米国特許出願第15/459725号に基づく優先権を主張するものである。
計算ノードのクラスタとして配置されている分散コンピューティングシステム(distributed computing systems)は、技術的な複雑性が増加している計算上の問題(computational problem)を解決するのに役立つ。例えば、計算上の問題は、データにおけるパターンを明らかにするために、大規模なデータセットに対する洗練されたアルゴリズム(例えば、人工知能ベースのアルゴリズム)を適用することを含み得る。問題の複雑性が増加していることを考慮して、そうしたシステムのための計算上の要件も、また著しく増加してきた。
現在、大部分のアルゴリズムベースのソリューション(solutions)は、様々な機能の計算ノード間に負荷(load)を分散すること(spreading)によって動作する。しかし、これらの異なるメカニズムを管理することは、実装前(before implementation)及び容量変更が発生する場合の両方で、かなりの考察と計画を必要とする。加えて、マシンのクラスタが増える(grow)につれて、リソースの非効率的な利用が生じ得る。
本発明は、以下に与えられる詳細な説明から、および、本発明の様々な実施形態に係る添付の図面から、より完全に理解されるだろう。しかしながら、それは、本発明を所定の実施形態について限定するように理解されるべきではなく、説明および理解のためだけのものである。
図1は、一つの実施形態に従って、計算環境(computing environment)を示すブロック図である。 図2は、計算ノードを示すブロック図であり、それらの技術的能力をアドバタイジング(advertising)している。 図3は、計算ノード属性(attributes)の分析を示すブロック図である。 図4は、ネットワークの待ち時間特性(latency characteristics)および処理環境特性の解析を示すブロック図である。 図5は、能力をアドバタイジングしている計算ノードを含む、動作シナリオを表すフローチャートである。 図6は、計算上の問題を解決するための計算ノードリソースの割り当てを含む、動作シナリオを表すフローチャートである。 図7は、計算ノードリソースの管理を促進するためのプロトコルデータ構造を示すブロック図である。 図8は、オンデマンド(on-demand)マルチテナント(multi-tenant)データベースシステムの一つの例示的な実施形態を表すブロック図である。
ここにおいて説明される技術的事項(subject matter)は、計算ノードの処理能力に対してユーザアクセスを提供する技術および物品(articles)を提供する。複雑な問題を解決するために人工知能ベース(AI-based)の計算ノードを使用するため、といったものである。いくつかの実施例において、ここにおいて開示される装置、システム、技術、および物品は、AIベースの計算ノードの大規模な実装を管理するためのプロトコルを提供する。いくつかの実施例において、ここにおいて開示されるシステムおよび方法は、計算ノードのアルゴリズム関連の処理属性を分析し、計算上の問題を解決するためにどのAIベースのコンポーネントが最も適しているかを決定する。
図1および以下の説明は、ここにおいて説明される実施態様が実施され得る例示的な環境に係る一つの限定することの無い(non-limiting)実施例の簡単で、一般的な説明を提供するように意図されている。当業者であれば、ここにおいて説明される実施形態は、他のコンピューティング環境を用いて実施され得ることを理解するだろう。
図1は、AI処理コンポーネント(AI processing components)102を管理するためのシステムに係る一つの例示的な実施形態100を示している。AI処理コンポーネント102は、複雑な計算上の問題を解決するために使用され、そして、計算ノード(compute node)104と呼ばれる、サーバのクラスタ上で動作する。計算ノード104は、相互に通信して、AI処理コンポーネント102によって提供される一式のサービスをクライアントが利用できるようにする。
大きなマルチユーザクラスタが大量のデータにアクセスし、かつ、処理することを要するときに、タスクスケジューリングは、複雑なアプリケーション環境を伴う異種クラスタ(heterogeneous cluster)において特に、技術的なチャレンジ(challenge)を提示し得る。そうした異種環境の一つの例は、中央処理装置(central processing unit、CPU)リソースを使用するいくつかの計算ノードを含み得る。一方で、所定の計算上の問題を解決するために、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA)、またはグラフィカル処理装置(Graphical Processor Unit、GPU)リソースを使用し得る。一つの例示として、108における計算ノード1は、この実施例において、ペリフェラルコンポーネントインターコネクト(Peripheral Component Interconnect、PCI)バスに接続された、マップ縮小機能(map reduction function)を取り扱うための3つの専用ASICを有しており、一方で、108における計算ノード2は、DNAシーケンシング(sequencing)を分析するためにCPU実装の(CPU-implemented)機械学習(machine learning)アルゴリズムを使用する。
システム100は、大量のデータを処理するためのAIベースの計算ノード104の実装の管理を支援するためにAI管理プロトコル110を提供する。AI管理プロトコル102は、AIベースの計算ノード104によって提供される利用可能な計算リソースを活用することを可能にする。より具体的には、AI管理プロトコル110は、AI空間において大きく複雑な数学的問題を解決する目的のために、ASIC、FPGA、GPU、CPU、および他のデバイスの利用に備えている。
計算ノード104は、AI管理プロトコル110を使用して、それぞれのハードウェア/ソフトウェアの問題解決能力に関して、データ通信ネットワーク112を介して相互に情報を交換する。計算ノード104からのそうした情報に基づいて、プロトコルマネージャ114は、システムのAIリソースのうちのどれがリクエスト(request)116を処理すべきかを決定することによって、計算上の問題リクエスト116を取り扱う。
データ通信ネットワーク112は、一式の処理サービスが分散AIベースのコンピューティングアプリケーションを通じて利用可能であるように、計算ノード104を相互接続する。計算ノード106間で情報の交換を取り扱うデータ通信ネットワーク112は、デバイス、システム、またはコンポーネント間で、メッセージまたはデータを送信することができる任意のデジタルまたは他の通信ネットワークであってよい。所定の実施形態において、データ通信ネットワーク112は、パケットベースのデータ通信、アドレス指定(addressing)、およびデータルーティングを促進するパケット交換ネットワーク(packet switched network)を含んでいる。パケット交換ネットワークは、例えば、ワイドエリアネットワーク、インターネット、等であり得る。様々な実施形態において、データ通信ネットワーク112は、任意の数の通信プロトコルをサポートする任意の数のパブリックまたはプライベートなデータ接続、リンク、またはネットワーク接続を含んでいる。データ通信ネットワーク112は、例えば、インターネット、もしくは、TCP/IPまたは他の従来のプロトコルに基づく他の任意のネットワークを含み得る。様々な実施形態において、データ通信ネットワーク112は、また、イーサネット(Ethernet)またはインフィニバンド(Infiniband)通信リンク(EthernetおよびInfinibandは商標(trademark)である)、並びに、移動電話、パーソナルデジタルアシスタント、及び/又は、類似のものと通信するためのセルラー通信ネットワークといった、無線及び/又は有線電話ネットワークを組み込むこともできよう。データ通信ネットワーク112は、また、1つまたはそれ以上のIEEE 802.3、IEEE 802.16、及び/又は、IEEE 802.11ネットワーク、及び/又は、短距離(例えば、Bluetooth(登録商標))プロトコルを実装するネットワークといった、任意の種類の無線または有線のローカル及び/又はパーソナルエリアネットワークを組み込むこともできる。簡潔のために、データ伝送、信号伝達(signaling)、ネットワーク制御、および、システムの他の機能的態様(および、システムの個々の動作コンポーネント)に関連する従来技術は、ここにおいて詳細には説明されていない。
図2は、システム100内のリソースに対して計算上の問題を適切に割り当てることに使用するためのノード処理属性データ200を提供することによって、その技術的能力をアドバタイジングしている(advertising)計算ノード104を示す。プロトコルマネージャ114は、計算ノード104によって送信されたノード処理属性データ200を管理するためのアドバタイジング処理機能202を含んでいる。アドバタイジング処理プロセス202は、計算ノード104の技術的能力を保管し、そして、システム100内の他の計算ノード104と情報を交換する。このようにして、プロトコルマネージャ114は、人工知能クラスタにおける計算ノード104の自己発見(self-discovery)およびクラスタ内の技術的能力のアドバタイズ(advertisement)のためのサービスを提供する。
ノード処理属性データ200は、計算ノード104に関連した問題解決能力に関する異なるタイプの情報を含むことができる。例えば、ノード処理属性データ200は、特定の計算ノードが取り扱うことができる特定のアルゴリズムを示すことができる。AI管理プロトコル110は、また、ノード毎に複数のアルゴリズム計算リソースをサポートするように構成することもできる。アルゴリズム計算リソースは、多くの異なるタイプのAIアルゴリズムを構成することができる。例えば、システム100は、ニューラルネットワークアルゴリズム、サポートベクトルマシン(support vector machine)アルゴリズム、遺伝的アルゴリズム、等を有し得る。
アルゴリズム能力情報は、ASIC(非常に高速で所定のアルゴリズムを解決することができるが、単一の問題に限定されるもの)といった特殊化されたハードウェア、および、CPU(多種多様なタスクを取り扱うことができるが、非常に低速度であるもの)といった特殊化されていないハードウェアを使用する問題を扱う(address)のに役立つ。特殊化されたハードウェアを使用する計算ノードの一つの例は、反陽子物理実験(antiproton physics experiments)における粒子検出のためのFPGAベースのシステムを含む。このシステムの例において、FPGAベースの計算ノードは、粒子イベント分析のためにマルチギガビット毎秒(Gbit/s)の帯域幅(bandwidth)能力を備えている。より具体的に、計算ノードは、リングイメージングチェレンコフ検出器(ring-imaging Cherenkov detectors)、クラスタ探索(cluster searching)、等のためにパターン認識を実行する。さらに、XILINX Virtex 4 FXシリーズといったFPGAは、Rocket IO、並びに、GBit Ethernetを介して高速接続を提供する。以下の参考文献は、追加的な情報を提供するものであり、そして、あらゆる目的のために、それにより、ここにおいて組み込まれている。W.Kuhnら著、”PGA-Based Compute Nodes for the PANDA Experiment at FAIR”、IEEE Xplore、2007年4月、DOI:10.1109/RTC.2007.4382729、である。多くの他のタイプのクラスタアーキテクチャを使用することができる。米国特許第9325593号(タイトル”Systems,methods,and devices for dynamic resource monitoring and allocation in a cluster system”)に記載されているハードウェアシステムおよび通信経路(communication pathways)といったものであり、あらゆる目的のために、それにより、ここにおいて組み込まれている。
ノード処理属性データ200は、クラスタ全体を通じて共有されているアルゴリズムIDを使用することによって、計算ノードのアルゴリズム能力を示している。共有されるアルゴリズムIDを用いて、クラスタによって実行されることが可能な各アルゴリズムは、アルゴリズムを解決することができるメトリック識別速度(metric identifying speed)と共にクラスタ全体を通じてアドバタイジングされる。例えば、クラスタ内の単一のアルゴリズムに対するASICの能力、および、複数のアルゴリズムに対するCPUの能力が、そうしたIDを用いて、システム100全体を通じて一貫して通信され得る。
図3は、コンポーネント割り当てプロセス302が、計算上の問題を取り扱うための計算ノードを適切に決定することができるように、計算ノード104の技術的能力のアドバタイジングを取り扱うだけでなく、それらの能力を300において分析する、プロトコルマネージャ114を示している。コンポーネント割り当てプロセス302は、計算上の問題が、典型的に、コンピュータのハードウェアまたはソフトウェアによって異なる方法で解決できることを認識している。属性分析プロセス300によって実行された分析を用いて特定の計算上の問題リクエストを検査する(examining)ことによって、コンポーネント割当てプロセス302は、システム100内のハードウェアおよびソフトウェアのどのコンポーネントが最も効率的に問題を解決できるかを決定することができる。
プロトコルマネージャ114は多くの異なる方法で構成され得ることが理解されるべきである。例えば、分配(distribution)計算ノード(バックアップも同様)は、プロトコルマネージャ114として動作するよう割り当てられ得る。そうした計算ノードは、ネットワーク上の各マシンの能力およびコストが分かっている。
図4は、リソース割り当ての決定において、属性分析プロセス300がコンポーネント割り当てプロセス302による検討のために分析することができる属性の一つの例を示している。例えば、計算ノード104は、AI管理プロトコル110を通じて、それぞれの処理能力、どのアルゴリズムをそれらが取り扱うことができるか、および、計算ノードに関する負荷(load)とヘルス(health)情報をアドバタイジングすることができる。プロトコルマネージャ114は、そうした情報を分析するための追加の機能を含んでいる。例えば、ノード分析プロセス400は、計算ノードが、それが有する各AI計算リソースについてアルゴリズムヘルスチェックをパスするか否かを決定することによって、計算ノード104からのヘルス情報およびノード故障情報(health and node failure information)を評価することができる。一つの例として、コンピュータノードが、そのPCIバスに接続されたマップ低減機能(map reduction function)を取り扱うために3個の専用ASICを有しており、かつ、ASICのうち1個が故障した場合に、コンピュータノードは、AI管理プロトコル110がどのように構成されてきたかに基づいて、クラスタから自身を完全に除去するか、または、劣化した状態において自身をクラスタに対してアドバタイジングし続け得るか、いずれかである。
負荷分析プロセス401は、計算ノード104の負荷を評価する。AI管理プロトコル110に従って、各アルゴリズムは、ハードウェアに対してアルゴリズムのサンプル(algorithmic sample)またはプルーフ(proof)を実行することによって生成され、かつ、マイクロ秒で測定される特定の負荷メトリック(load metric)を有している。プルーフは、システム100において使用されるハードウェアのタイプに基づいて変動し得る。例えば、ASICは、CPUよりも典型的に速いGPUよりも、典型的には速い。これは、次いで、システム負荷メトリックと組み合わされて、最終システム負荷メトリックを生成することができ、それによって、プロトコルマネージャ114は、ハードウェアプロファイルごとに負荷をカスタマイズすることができ、同様に、どのマシンが最初または最後に使用されるかについて制御することができる。
プロトコルマネージャ114は、さらに、ネットワーク待ち時間(latency)分析プロセス402を含むことができる。ネットワーク待ち時間分析プロセス402は、既知のリクエスト側ポイント(requestor point)からのネットワーク距離ベクトルを計算する。この分析は、データセンター内の既知のリクエスト側ポイントへの待ち時間に関して、AIクラスタにおける計算ノード104を測定することを含んでいる。例えば、外部エンドユーザがリクエストを開始するときに、外部ゲートウェイのルータに最も近い計算ノードは、より小さな計算上の問題について、機能的にネットワーク待ち時間分析402によって、より速い候補とみなされ得る。このことは、いつディザスタリカバリ(Disaster Recovery、DR)データセンター内のノードが利用できるか、および、ネットワークの待ち時間と期待される利用に基づいて、いつワーク(work)を送信することがより効率的であろうかを識別するのに役立つ。
図5および図6は、計算ノードがその能力をアドバタイジングする動作シナリオを提供する。計算上の問題を解決するように計算ノードリソースを割り当てるために使用されるものである。図5の動作シナリオにおいて、プロトコルマネージャは、問題を解決する(problem-solving)ノード能力の交換のために分配ポイント(distribution points)を使用することによって、計算ノードについてAI管理プロトコルを実施する。より具体的に、計算ノードは、プロセスブロック500において、プロトコルマネージャが最初に起動した後で、プロトコルマネージャのIPアドレスに関する情報を取得する。この実施例において、プロトコルマネージャは、情報交換のためにプライマリ分配ポイント(primary distribution point、PDP)およびセカンダリ分配ポイント(secondary distribution point、SDP)を使用する。これらのアドレスは、学習したノード機能の完全なテーブルのブロードキャストのために、その後、既定の時間(例えば、30分毎など)に使用される。このことは、ネットワーク上の全てのマシンが、同期しており、かつ、ネットワーク上の他のマシンの能力を知っていることを確実にしている。
ネットワークリンク上のアドバタイジング能力の目的のために、以下のマルチキャストIPアドレスを使用することができる。プライマリ分配ポイント:224.0.0.240、UDP 849、および、セカンダリ分配ポイント:224.0.0.241、UDP 849である。AI管理プロトコルのフレキシビリティは、現在で利用可能な最も高速なハードウェア(例えば、ASIC)の使用を超えて、将来において実装され得る新しいタイプのハードウェアに合わせて調整する(scaling)分配ポイントによって部分的に提供されている。
この動作シナリオにおいて、計算ノードは同じローカルマルチキャストネットワークの一部である。しかしながら、他の構成が使用され得ることが理解されるべきである。例えば、マルチキャストルーティング(routing)とMPBGP(MultiProtocol BGP)を通して、複数のサイトにわたり機能を拡張することができる。
プロセスブロック502において、各マシンは、それらが学習した事前に構成された問題のタイプおよびコストに関する情報を、全ての隣接するマシンに伝える。この動作シナリオにおいて、マシンは、共通の問題識別子(problem identifiers)を用いて、相互に問題解決能力の通信を標準化するために構成されている。
計算ノードは、PDPと通信し、そして、次いで、構成されている能力のリストをPDPに対して送信する。PDPは、プロセスブロック504において、この情報をノード情報テーブルに追加し、そして、プロセスブロック506において、ネットワーク上のマシンの能力の完全なリストをマシンに対して提供する。この時点で、マシンは、プロセスブロック508において示されるように、分配ポイントによって送信されたリクエストの処理を開始する準備ができている。
図6は、外部リクエストコンピュータ(external requesting computer)が、解決するためにはかなりのリソースを必要とする計算上の問題を有している動作シナリオを提供する。プロセスブロック600において、外部リクエストコンピュータからのリクエストは、事前に構成された仮想IPアドレスに対して送信される。プロセスブロック602においては、問題を現在のアクティブな分配ポイントに対して送信するために、ロードバランサが使用される。負荷分散(load balancing)は、単一のノードが、単に最も高速なハードウェアを有しているために、常に特定の問題がそのノードにルーティングされるようにすることによって圧倒される(overwhelmed)ことにならないことを確保している。
プロセスブロック604において、分配ポイントは、次いで、どの計算ノードが使用されるべきかを決定するために、その問題ルーティングテーブルを使用する。アルゴリズムIDは、どのリソースが計算上の問題を取り扱うことができるかを決定することができる。この動作シナリオにおいて、ネットワーク内でAI管理プロトコルに従って動作しているマシンは、実行する計算のタイプそれぞれについて固有のIDを有している。例えば、CPUを有するマシンは、アルゴリズムタイプについてのフィールドにワイルドカード(例えば、"*")を有することができる。それらは、より高いコストではあるが、あらゆるタイプのアルゴリズムを解決することができるからである。計算上の問題を取り扱うことができないマシンは、考慮から除外される。
プロセスブロック604は、さらに、他の追加的な要因を考慮する。アルゴリズム速度のコストメトリック(cost metric)、および、計算上の問題を取り扱うためにどのリソースが最低のコストを有するかを決定するためのネットワークのコストメトリック、といったものである。最低コストの計算は、ダイクストラのアルゴリズム(Dijkstra's algorithm)を使用することによって目標に到達するための最低コストのパス(path)を見つける、といった、多くの異なる方法で行うことができる。
当技術分野において一般に知られているように、ダイクストラのアルゴリズムは、目標に到達するための異なるパスにわたりコストを割り当てるものである。図6の特定的な動作シナリオにおいては、ノードリソースを評価するためのダイクストラのアルゴリズムにおけるコストとして、以下のアルゴリズムコストを使用することができる。ASIC=100、FPGA=200、GPU=300、およびCPU=400である。これらの値は、ミリ秒単位で測定された、計算上の問題を処理するための総時間を示している。より低い値が計算上の問題を解決するためには好ましく、そして、それにより、ダイクストラのアルゴリズムは最低の値をネイティブに選択することができる。システムエンジニアが特定の目的のためにこれらの値を操作する必要がある場合には、また、これらの値を操作することも可能である。
ダイクストラのアルゴリズムは、ネットワークコストといった、他のコストを使用することができる。ネットワークコストは、ミリ秒単位で測定される、現在アクティブな分配ポイントからワーカー(worker)計算ノードへアルゴリズムを送信するための総コストに基づいている。このようにして、ネットワーク待ち時間および解決される問題に対するその影響が考慮されている。例えば、プロトコルマネージャは、より単純な計算上の問題について、遠隔に配置されたASICよりも、ソースに物理的により近いGPUに対して問題をルーティングすることがより安価であることを決定することができる。ここでは、ASICに対して問題をルーティングすることによって、ネットワーク待ち時間がパフォーマンスゲインを上回るだろう。分配ポイントは、ダイクストラのアルゴリズムを使用して、最も適したワーカー計算ノードを選択するために、それ自身と、リモートルータまたはネットワークデスティネーションとの間でネットワークを通じた最短パスを計算することができる。
プロセスブロック604において、リソースが決定された後で、計算上の問題は、プロセスブロック606において、このタイプの問題を処理するのに十分に適した計算ノードまたは複数の計算ノードに対して送信される。ワーカー計算ノードによって問題が受信されると、ワーカー計算ノードは、問題を解決するためにそのリソースを使用し、そして、プロセスブロック608において、外部リクエストコンピュータに対して結果を返す。
図7は、AI管理プロトコル110が、計算ノード104を管理するためにプロトコルデータ構造(protocol data structure)700を使用できることを示している。一つの実施形態において、プロトコルデータ構造700は、多層データ構造(multi-tiered data structure)を使用することができ、702で示されるように、ノード処理属性データ200および計算ノードの他の情報を保管し、そして、分析する。例えば、プロトコルデータ構造700は、ノード1のデータフィールドを計算するために、702において示されるように、アルゴリズムID、負荷情報、および、ヘルス(health)とノード状態情報、を含むことができる。これにより、特に、プロトコルマネージャ114は、1つまたはそれ以上の計算ノードから欠落している情報を識別することができる。
本発明を開示するため、そして、また、あらゆる当業者が本発明を製造し、かつ、使用できるようにするために、実施例が使用されてきているが、本発明の特許可能な範囲は、請求項によって定義されるものであり、そして、そうした当業者について生じる他の実施例を含み得るものである。従って、ここにおいて開示された実施例は、限定するものではないと考えられるべきである。
ここにおいて開示されるシステムおよび方法の広い範囲の一つの例として、隣接するマシンと情報を交換するために使用される計算ノードのインターフェイスは、異なる方法で構成されてよい。2台のマシンだけがAI管理プロトコルを用いて動作している場合に、2つのルータは、それらがリンク上で唯一の「アドバタイズメント(”advertisements”)」であることを知っており、そして、それらは相互に能力情報を交換する。この場合には、いずれのマシンも分配ポイントの役割を実行することができる。
生産ネットワークの場合には、多くの異なるマシンが一つのネットワークセグメント上に存在し得る。生産リンクにおけるネットワークトラフィックの量を最小化するために、プロトコルマネージャは、ネットワーク内の各マシンの能力およびコストを学習するプライマリ分配マシン(primary distribution machine)(バックアップも同様)を選択する。
ここにおいて開示されたシステムおよび方法の広い範囲の別の実施例として、システムおよび方法は、AIクラスタにおける計算ノードサービスの自己発見(self-discovery)、および、クラスタの中で能力のアドバタイズメントができるように構成することができる。そうした機能を用いて、AIクラスタを管理するために必要な人材の数が削減され、一方で、AIクラスタによる最も効率的なリソースの使用を確保している。このことは、高い可用性とフォールトトレランス(fault tolerance)をサポートし、同様に、事前決定されたアルゴリズムプルーフに基づいて精度を確保するように、組み込み(built-in)ヘルスチェックをサポートしている。
ここにおいて開示されるシステムおよび方法は、事前に決定された計算(例えば、ネットワーク待ち時間、対アルゴリズム実行時間、対利用可能なハードウェアのタイプおよび量)に基づいて、ディザスタリカバリ(Disaster Recovery、DR)ハードウェアについて、使用することが効率的であるときに、そうすることができるように構成することができる。さらに、認証されていないデバイスがクラスタに参加するのを防ぐように、認証をサポートすることができる。
ここにおいて開示されるシステムおよび方法の広い範囲のさらに別の実施例として、多くの異なるタイプのコンポーネントが異種の(heterogeneous)処理環境を構成することができる。中央処理装置(CPU)、グラフィック処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、等といったものである。CPUは、汎用プロセッサである。それは、多種多様なオペレーションを実行するようにデザインされているという意味において、汎用(general purpose)である。CPUは多くのタスクを実行し得るが、達成されるパフォーマンスは、より計算集約的なアプリケーションにとって十分ではないことがある。
GPUは、コンピュータディスプレイのための画像の作成を促進するようにデザインされている。CPUは、典型的に、シーケンシャルな直列処理のために最適化された少数のコアで構成されているが、一方で、GPUは、典型的に、複数のタスクを同時に取り扱うためにデザインされた、数多くの(thousands of)より小さく、より効率的なコアで構成されている。それらは、テクスチャマッピング(texture mapping)、画像回転(image rotation)、変換(translation)、シェーディング(shading)、等の機能を実行するようにデザインされている。それらは、また、加速されたビデオ復号化のためのオペレーション(例えば、モーション補正など)をサポートすることもできる。
FPGAは、プログラムメモリの中に保管されたプログラムを実行しないので、それ自体はプロセッサではないという意味で、CPUまたはGPUとは異なっている。FPGAは、多数のプログラマブルインターコネクトにおいてサスペンドされた(suspended)一式の再構成可能なデジタル論理回路として考えることができる。典型的なFPGAは、また、専用メモリブロック、デジタルクロックマネージャ、I/Oバンク、および、異なるベンダとモデルにわたり変動する他の機能も有し得る。それらは、製造後にカスタマー側で構成することができるので、任意の論理機能(これに限定されるわけではないが、プロセッサコアを含む)を実装するために使用することができる。このことが、再構成可能なコンピューティングおよびアプリケーション固有の処理について理想的ものとしている。
ASICは、単一の目的のためにデザインされたチップであり、そして、数学的な問題を解決すること、といった特定の機能だけ実行することができる。ASICの利点は、それが解決するようにデザインされた問題を解決することについて、あらゆる他のソリューションよりも相当に速いことである。不利な点は、それらが構築された目的である問題を解決するためにだけ使用することができるという点で、それらは単一目的であるということである。このことは、特定の問題については役立つが、しかしながら、あらゆる他のタイプの問題については、それらを使用され得ないものにしている。
ここにおいて開示されるシステムおよび方法は、また、多くの異なるタイプのコンピュータ読取可能な記憶媒体においても提供され得る。ここにおいて説明されるオペレーションを実行し、そして、システムを実施するためのプロセッサによる実行における使用のための命令(例えば、ソフトウェア)を含む、コンピュータ記憶メカニズム(例えば、CD-ROM、ディスケット、RAM、フラッシュメモリ、コンピュータのハードドライブ、等といった固定の(non-transitory)媒体)を含むものである。
さらに、なお、システムおよび方法は、多くの異なるタイプの環境において実施され得る。一時的、永久的、半永久的、またはそれらの組み合わせのいずれかで、1つまたはそれ以上のデータを保管するように構成されたメモリを有する、ここにおいて説明されるコンピュータノードおよび他のコンピューティングシステム、といったものである。さらに、メモリは、揮発性メモリ、不揮発性メモリ、またはそれらの組み合わせを含んでよく、そして、複数のデバイスにわたり分散されてよい。様々な実施形態において、計算ノードおよびコンピューティングデバイスは、半永久的または実質的に永久的な形態でデータを保管するように構成された記憶媒体を含んでよい。様々な実施形態において、記憶媒体は、メモリへと統合され得る。
図8は、ここにおいて説明されたシステムおよび方法をユーザが使用することができる環境の別の実施例を示している。図8は、オンデマンドマルチテナント(on-demand multi-tenant)データベースシステム800内で動作しているユーザの一つの例示的な実施形態を示している。図示された図8のマルチテナントシステム800は、複数のテナント間で共有される共通データベース830からのデータ832に基づいて仮想アプリケーション828を動的に作成し、そして、サポートするサーバ802を含んでいる。代替的に、ここにおいては、マルチテナントデータベースとして参照されるものである。仮想アプリケーション828によって生成されるデータおよびサービスは、希望通りに、ネットワーク845を介して任意の数のクライアント装置840に対して提供される。各仮想アプリケーション828は、マルチテナントシステム800に加入している(subscribing)様々なテナントそれぞれについてデータベース830におけるデータ832に対する安全なアクセスを提供する共通アプリケーションプラットフォーム810を使用して、実行中に(またはオンデマンドで)適切に生成される。1つの限定的でない実施例に従って、マルチテナントシステム800は、複数のテナントに係る任意の数の認証されたユーザをサポートすることができる、オンデマンドマルチテナント顧客関係管理システム(customer relationship management、CRM)の形態で実装されている。
ここにおいて使用されているように、「テナント(”tenant”)」または「組織(”organization”)」は、マルチテナントデータベース830内でデータの共通サブセットに対するアクセスを共有する1つまたはそれ以上のユーザまたはエンティティのグループを参照するものとして理解されるべきである。この点に関して、各テナントは、それぞれのテナントに関連付けされ、割り当てられ、または、そうでなければ所属する、一人またはそれ以上のユーザを含んでいる。別の言葉で言えば、マルチテナントシステム800内の各ユーザそれぞれは、マルチテナントシステム800によってサポートされている複数のテナントの特定のテナントに対して、関連付けされ、割り当てられ、または、そうでなければ所属している。テナントは、顧客(customer)、顧客部門、事業または法務組織、及び/又は、マルチテナントシステム800内(すなわち、マルチテナントデータベース830において)で特定のセットのユーザについてデータを維持する他の任意のエンティティを代表し得る。例えば、アプリケーションサーバ802は、マルチテナントシステム800によってサポートされている1つまたはそれ以上のテナントと関連付けされ得る。複数のテナントは、サーバ802およびデータベース830に対するアクセスを共有し得るが、サーバ802から各テナントへ提供される特定のデータおよびサービスは、他のテナントへ提供されるものから安全に隔離することができる(例えば、フィルタリングのクライテリア(criterion)としてそのテナントの固有の組織識別子(organization identifier)を使用して、他のテナントが特定のテナントのデータにアクセスすることを制限することによる)。マルチテナントアーキテクチャにより、従って、他のテナントに属するか、または、そうでなければ関連付けされたデータ832のいずれかを必ずしも共有することなく、異なるセットのユーザは、機能性およびハードウェアリソースを共有することができる。
マルチテナントデータベース830は、任意の数のテナントと関連付けされたデータ832を保管および管理することができる任意の種類のリポジトリ(repository)または他のデータ記憶システムである。データベース830は、任意のタイプの従来のデータベースサーバのードウェアを使用して、実装され得る。様々な実施形態において、データベース830は、サーバ802と処理ハードウェア804を共有している。他の実施形態において、データベース830は、ここにおいて説明される種々の機能を実行するためにサーバ802と通信する、別個の物理的及び/又は仮想データベースサーバのハードウェアを使用して、実装されている。一つの例示的な実施形態において、データベース830は、仮想アプリケーション828によって開始、または、そうでなければ提供されるクエリに応答して、仮想アプリケーション828のインスタンスについて、データ832の特定のサブセットを検索し、そして、提供するための最適なクエリ計画(query plan)を決定することができる、データベース管理システムまたは他の同等なソフトウェアを含んでいる。マルチテナントデータベース830が、アプリケーションプラットフォーム810によって生成されるオンデマンド仮想アプリケーション828に対して実行中にデータを提供する(または、提供するために利用可能である)という点で、マルチテナントデ得る。
実際に、データ832は、アプリケーションプラットフォーム810をサポートするように、任意の方法でオーガナイズされ(organized)、そして、フォーマットされ得る。様々な実施形態において、データ832は、セミアモルファス(semi-amorphous)な「ヒープ(”heap”)」タイプのフォーマットを維持するために、比較的に少数の大きなデータテーブルへと適切にオーガナイズされている。データ832は、次いで、特定の仮想アプリケーション828のために、必要に応じて、オーガナイズされ得る。様々な実施形態において、従来のデータ関係は、インデックス付け(indexing)、一意性(uniqueness)、エンティティ間の関係、及び/又は、希望通りに従来のデータベース組織(organization)の他の態様を確立する任意の数のピボットテーブル834を使用して確立されている。さらに、データ操作およびレポートのフォーマッティング(formatting)は、一般的に、様々なメタデータコンストラクト(constructs)使用して、実行中に行われる。ユニバーサルデータディレクトリ(universal data directory、UDD)836内のメタデータは、例えば、任意の数のフォーム(forms)、レポート、ワークフロー、ユーザアクセス権、ビジネスロジック、および、複数のテナントに共通する他のコンストラクトを記述するために使用することができる。テナント特有のフォーマッティング、機能、および、他のコンストラクトは、希望通りに、各テナントについてテナント特有のメタデータ838として維持され得る。データ832を、全てのテナントおよびアプリケーションに共通なフレキシブルでないグローバル構造へと強制するより、むしろ、データベース830は、必要に応じて追加的な構造を提供するピボットテーブル834およびメタデータ838を用いて、比較的アモルファスであるように構成されている。この目的のために、アプリケーションプラットフォーム810は、仮想アプリケーション828の「仮想(”virtual”)」コンポーネントを生成するために、ピボットテーブル834及び/又はメタデータ838を適切に使用して、データベース830から比較的にモルファスなデータ832を論理的に取得し、処理し、そして、提示する。
サーバ802は、仮想アプリケーション828を生成するための動的アプリケーションプラットフォーム810を集合的に提供する、1つまたはそれ以上の現実及び/又は仮想コンピューティングシステムを使用して実装されている。例えば、サーバ802は、典型的には、従来のネットワーク通信、クラスタ管理、負荷分散、および他の適切な機能に伴って、相互に関連して動作する現実及び/又は仮想サーバのクラスタを使用して実装され得る。サーバ802は、プロセッサ805、メモリ806、入力/出力機能807、等といった、任意の種類の従来の処理ハードウェア804を用いて動作する。入力/出力機能807は、一般的に、ネットワーク(例えば、ネットワーク845、もしくは、あらゆる他のローカルエリア、ワイドエリア、または他のネットワーク)、大容量記憶装置、表示装置、データ入力装置、及び/又は類似のもの、に対するインターフェイスを表す。プロセッサ805は、1つまたはそれ以上のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、処理コア、及び/又は、任意の数の「クラウドベース(”cloud-base”)」または他の仮想システムを含む、任意の数の分散または統合システムにわたり広がった他の計算リソースといった、任意の適切な処理システムを使用して実装され得る。メモリ806は、プロセッサ805上で実行するためのプログラミング命令を保管することができる任意の固定の短期または長期の記憶装置、もしくは、他のコンピュータ読取可能媒体を表し、任意の種類のランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、フラッシュメモリ、磁気または光大容量記憶装置、および/または、類似のものを含んでいる。コンピュータ実行可能プログラミング命令は、サーバ802及び/又はプロセッサ805によって読み出され、かつ、実行されるとき、サーバ802及び/又はプロセッサ805に、アプリケーションプラットフォーム810及び/又は仮想アプリケーション828を作成し、生成し、または、そうでなければ促進させ、かつ、ここにおいて説明される1つまたはそれ以上の追加的なタスク、オペレーション、機能、及び/又は、プロセスを実行させる。メモリ806は、そうしたコンピュータ読取り可能媒体の一つの適切な実装を表しており、そして、代替的または追加的に、サーバ802は、ポータブルまたは移動可能なコンポーネントまたはアプリケーションプラットフォームとして具現化されている外部のコンピュータ読取り可能媒体、例えば、ポータブルハードドライブ、USBフラッシュドライブ、光ディスク、等を受け入れ、かつ、それらと協働し得るだろうことに留意すべきである。
アプリケーションプラットフォーム810は、クライアント装置840に対してデータ及び/又はサービスを提供する仮想アプリケーション828を生成する、あらゆる種類のソフトウェアアプリケーションまたは他のデータ処理エンジンである。一つの典型的な実施形態において、アプリケーションプラットフォーム810は、任意の種類の従来または独自(proprietary)のオペレーティングシステム808を使用して、処理リソース、通信インターフェイス、および、処理ハードウェア804の他の機能に対するアクセスを得る。仮想アプリケーション828は、典型的に、クライアント装置840から受信した入力に応答して、実行中に生成される。図示された実施形態について、アプリケーションプラットフォーム810は、バルクデータ処理エンジン812、クエリジェネレータ814、テキストのインデックスおよび他の検索機能を提供する検索エンジン816、および、ランタイムアプリケーションジェネレータ820を含んでいる。これらの機能それぞれは、別個のプロセスまたは他のモジュールとして実装されてよく、そして、多くの等価な実施形態は、希望通りに、異なる、かつ/あるいは、追加の機能、コンポーネント、または他のモジュールを含み得るだろう。
ランタイムアプリケーションジェネレータ820は、クライアント装置840から受信した特定のリクエストに応答して、動的に仮想アプリケーション828を構築し、そして、実行する。仮想アプリケーション828は、典型的には、テナント特有の(tenant-specific)メタデータ838に従って構築されている。特定のアプリケーション828の特定のテーブル、レポート、インターフェイス、及び/又は、他の特徴を記述するものである。様々な実施形態において、各仮想アプリケーション828は、必要に応じて、そのクライアント装置840に関連付けされたブラウザまたは他のクライアントプログラム842に提供され得るダイナミックWebコンテンツを生成する。
ランタイムアプリケーションジェネレータ820は、クエリジェネレータ814と適切にインタラクションして、クライアント装置840のユーザによって開始されるか、そうでなければ、提供される入力クエリに応答して、必要に応じて、データベース830からマルチテナントデータ832を効率的に取得する。典型的な実施形態において、クエリジェネレータ814は、特定の機能をリクエストしているユーザのアイデンティティ(identity)を考慮し、そして、次いで、システム全体(system-wide)のメタデータ836、テナント特有メタデータ838、ピボットテーブル834、及び/又は、他の利用可能なリソースを使用して、データベース830に対するクエリを(ユーザが関連するテナントと共に)構築し、そして、実行する。この実施例におけるクエリジェネレータ814は、従って、クエリが、リクエストを開始したユーザ及び/又はテナントに付与された(granted)アクセス権と一致していることを確保することによって、共通データベース830のセキュリティを維持している。このようにして、クエリジェネレータ814は、必要に応じて、データベース830からユーザ及び/又はテナントへアクセス可能なデータ832のリクエストされたサブセットを適切に取得し、ユーザ及び/又はテナントについて、特定の仮想アプリケーション828のテーブル、レポート、または、他の特徴を取り込む(populate)。
なおも、図8を参照すると、データ処理エンジン812は、アップロードまたはダウンロード、アップデート、オンライントランザクション処理、及び/又は、類似のもの、といった、データ832上のバルク処理オペレーション(bulk processing operations)を実行する。多くの実施形態においては、処理リソースが利用可能になるにつれて、より緊急でないデータ832のバルク処理が発生するようにスケジュールされ得る。それによって、クエリジェネレータ814、検索エンジン816、仮想アプリケーション828、等による、より緊急なデータ処理を優先することができる。
例示的な実施形態において、アプリケーションプラットフォーム810は、サポートするテナントについてデータ駆動型(data-driven)仮想アプリケーション828を作成、かつ/あるいは、生成するために利用されている。そうした仮想アプリケーション828は、カスタム(またはテナント特有)スクリーン824、標準(またはユニバーサル)スクリーン822、等といった、インターフェイス機能を利用することができる。任意の数のカスタム及び/又は標準オブジェクト826も、また、テナントが開発した(tenant-developed)仮想アプリケーション828への統合のために利用可能であり得る。ここにおいて使用されるように、「カスタム(”custom”)」は、それぞれのオブジェクトまたはアプリケーションが、テナント特有(例えば、マルチテナントシステムにおける特定のテナントに関連付けされたユーザだけに利用可能)であり、または、ユーザ特有(例えば、マルチテナントシステムにおける特定のユーザのサブセットだけに利用可能)であることを意味していると理解されるべきである。一方で、「標準(”standard”)」または「ユニバーサル(”universal”)」アプリケーションまたはオブジェクトは、マルチテナントシステムにおける複数テナントにわたり利用可能である。例えば、仮想CRMアプリケーションは、「アカウント(”account”)」オブジェクト、「機会(”opportunity”)」オブジェクト、「接触(”contact”)」オブジェクト、等といった、標準オブジェクト826を利用することができる。各仮想アプリケーション828に関連付けされたデータ832が、必要に応じて、データベース830に提供され、そして、リクエストされるか、または必要とされるまで、その特定の仮想アプリケーション828の所定の特徴(例えば、レポート、テーブル、ファンクション、オブジェクト、フィールド、数式、コード、等)を記述するメタデータ838と共に保管されている。例えば、仮想アプリケーション828は、テナントへアクセス可能な多数のオブジェクト826を含んでよく、ここで、テナントにアクセス可能な各オブジェクト826について、そのそれぞれのオブジェクトタイプに関連付けされる様々なフィールドに対する値と共に、そのオブジェクトタイプに属している情報は、データベース830においてメタデータ838として維持されている。この点に関して、オブジェクトタイプは、それぞれのオブジェクト826の構造(例えば、フォーマット、機能、および他の構成)および、それと関連付けされる種々のフィールドを定義する。
なおも、図8を参照すると、サーバ802によって提供されるデータおよびサービスは、ネットワーク845上の任意の種類のパーソナルコンピュータ、移動電話、タブレット、または、他のネットワーク可能なクライアント装置840を使用して取り出す(retrieve)ことができる。一つの例示的な実施形態において、クライアント装置840は、マルチテナントデータベース830から取り出されたデータ及び/又は情報をグラフィカルに提示することができるモニタ、スクリーン、または、別の従来の電子ディスプレイといった、ディスプレイ装置を含んでいる。典型的に、ユーザは、ハイパーテキストトランスポートプロトコル(hypertext transport protocol、HTTP)等といった、ネットワークプロトコルを使用して、ネットワーク845を介してサーバ802にコンタクトするために、クライアント装置840によって実行される従来のブラウザアプリケーションまたは他のクライアントプログラム842を動作させる。ユーザは、典型的には、サーバ802の後に続く通信においてユーザを識別するセッション識別子(”Session ID”)を取得するために、サーバ802に対する自身のアイデンティティを認証する。識別されたユーザが、仮想アプリケーション828へのアクセスをリクエストすると、ランタイムアプリケーションジェネレータ820は、必要に応じて、メタデータ838に基づいて、実行中に好適にアプリケーションを作成する。上述のように、仮想アプリケーション828は、クライアント装置840上で実行されている従来のクライアントソフトウェアを使用して提示することができる、Java(登録商標)、ActiveX、または他のコンテンツを含んでよく、他の実施形態は、必要に応じて、ユーザによって提示され、そして、見ることができる動的なウェブまたは他のコンテンツを単純に提供し得る。
一つのテナント(例えば、企業における一つの部署)によって保管されている、知識アーティクル(knowledge article)といった、データアイテムは、別のテナント(例えば、同じ企業における別の部署)に関連(relevant to)し得る。別のテナントドメインにおけるユーザに、物品(article)へのアクセスを提供する一つの方法は、物品の第2インスタンスを第2テナントのテナントドメインに保管することである。ここにおいて説明される装置、システム、技術、および物品は、第2コピーを保管することによってリソースを浪費することなく、別のテナントドメインにおけるユーザに、物品へのアクセスを提供する別の方法を提供する。

Claims (20)

  1. 人工知能問題解決能力を提供する、ネットワークにわたる計算ノードに対して、計算上の問題を割り当てるための方法であって、
    計算ノードから、プロトコルマネージャが、ノード関連処理属性に関する情報を受信するステップであり、前記計算ノードは、前記人工知能問題解決能力および問題解決速度に関して異種の計算ノードであり、前記ノード関連処理属性は、前記計算ノードが解決できる事前設定された問題のタイプの表示、前記計算ノードが前記事前設定された問題を解決できる速度の表示、および、前記計算ノードに関連付けされたネットワーク待ち時間属性を含む、ステップと、
    前記プロトコルマネージャが、リクエスト側ポイントに関連付けされた外部のコンピュータから、解決すべき計算上の問題を受信するステップと、
    前記計算ノードの前記ノード関連処理属性に基づいて、1つまたはそれ以上の前記計算ノードのうちどれが前記計算上の問題を解決する能力があるか、および、各計算ノードが前記計算上の問題を解決するのに要する時間の量を決定するために、前記プロトコルマネージャが前記計算ノードの前記ノード関連処理属性を使用するステップと、
    前記計算ノードのネットワークロケーション、および、前記計算上の問題を提供したコンピュータに関連付けされたリクエスト側ポイントからのネットワーク距離ベクトルを計算することによって、前記計算ノードに関連付けされたネットワーク待ち時間メトリックを決定し、それにより、前記ネットワーク待ち時間属性を処理するステップと、
    計算上の問題を解決する能力がある前記計算ノードのうちの1つ、および、前記計算上の問題を解決するのに要する時間の量の前記決定に基づいて、かつ、前記ネットワーク待ち時間メトリックに基づいて、1つまたはそれ以上の前記計算ノードのうちどれが前記計算上の問題を処理するのかを決定するステップと、
    含み、
    人工知能管理プロトコルは、前記計算ノードの前記人工知能問題解決能力を交換し、かつ、分析するためにそれぞれの問題ルーティングテーブルにアクセスする分配ポイントを使用することによって、前記計算ノード間の情報交換を標準化し、さらに、
    前記プロトコルマネージャが、前記計算上の問題を前記決定された1つまたはそれ以上の前記計算ノードに送信するステップと、
    前記計算上の問題が計算ノードによって受信されると、前記計算ノードが、前記問題を解決するためにリソースを使用するステップ、および、前記計算ノードが、前記外部のリクエストコンピュータに結果を返すステップと、
    を含む、方法。
  2. 前記計算ノードは、異なる人工知能問題解決能力を提供するための人工知能ベースの処理コンポーネントを含む、
    請求項1に記載の方法。
  3. 前記方法は、さらに、
    人工知能クラスタに配置されている前記計算ノードと関連付けされた技術的能力の自己発見のために、前記人工知能管理プロトコルによるサービスを提供するステップ、
    を含む、請求項に記載の方法。
  4. 前記ノード関連処理属性は、前記計算ノードがどの人工知能アルゴリズムを扱うかに関するデータを含み、前記ノード関連処理属性は、前記計算ノードと関連付けされた処理コンポーネントのタイプに基づく処理速度情報を含む、
    請求項1乃至のいずれか一項に記載の方法。
  5. 前記計算ノードは、中央処理装置、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、および、グラフィカルプロセッサ装置のうち、2つまたはそれ以上の異なるタイプの処理コンポーネントタイプを含み、
    前記2つまたはそれ以上の異なるタイプの処理コンポーネントタイプは、前記計算ノードのための異種の処理環境を構成する、
    請求項に記載の方法。
  6. 前記方法は、さらに、
    前記処理速度情報を分析するための前記計算ノードの処理コンポーネントタイプを決定するステップ、を含み、
    1つまたはそれ以上の前記計算ノードのうちどれが前記計算上の問題を処理するのかを決定する前記ステップは、前記決定された処理コンポーネントのタイプに基づくものである、
    請求項4または5に記載の方法。
  7. 前記方法は、さらに、
    前記計算ノードの前記決定された処理コンポーネントのタイプに関する計算上の問題リクエストを検査し、かつ、前記計算上の問題を解決するために、前記計算ノードに関連付けされた人工知能計算リソースを検査するステップと、
    前記計算ノードに関連するヘルス情報およびノード故障情報を検査するステップであり、前記検査されたヘルス情報は、前記計算ノードが、計算ノードの各人工知能計算リソースについてアルゴリズムのヘルスチェックをパスするか否かに基づいて決定される、ステップと、
    前記計算ノードの負荷を検査するステップと、を含み、
    1つまたはそれ以上の前記計算ノードのうちどれが前記計算上の問題を処理するのかを決定する前記ステップは、前記決定された処理コンポーネントのタイプ、前記検査された計算上の問題リクエスト、前記検査されたヘルス情報およびノード故障情報、前記検査された負荷、および前記決定されたネットワーク待ち時間メトリックに基づいている、
    請求項に記載の方法。
  8. 前記方法は、さらに、
    情報交換のために、プライマリ分配ポイントとセカンダリ分配ポイントを使用することにより問題ルーティングテーブルにアクセスするステップであり、前記計算ノードの前記人工知能問題解決能力に関する情報を前記計算ノード間で通信する、ステップ、
    を含む、請求項1乃至いずれか一項に記載の方法。
  9. 前記方法は、さらに、
    前記計算上の問題を解決する特定用途向け集積回路の問題解決速度よりも速い問題解決速度を有するハードウェアのタイプに合わせて、前記プライマリ分配ポイントと前記セカンダリ分配ポイントを使用することにより問題ルーティングテーブルにアクセスする、ステップ、
    を含む、請求項に記載の方法。
  10. 人工知能問題解決能力を提供する、ネットワークにわたる計算ノードに対して、計算上の問題を割り当てるためのシステムであって、
    1つまたはそれ以上のデータプロセッサと、
    前記1つまたはそれ以上のデータプロセッサにオペレーションを実行させるように構成可能である実行可能な命令を含む、メモリ記憶デバイスと、を含み、
    前記オペレーションは、
    計算ノードから、プロトコルマネージャが、ノード関連処理属性に関する情報を受信するステップであり、前記計算ノードは、前記人工知能問題解決能力および問題解決速度に関して異種の計算ノードであり、前記ノード関連処理属性は、前記計算ノードが解決できる事前設定された問題のタイプの表示、前記計算ノードが前記事前設定された問題を解決できる速度の表示、および、前記計算ノードに関連付けされたネットワーク待ち時間属性を含む、ステップと、
    前記プロトコルマネージャが、リクエスト側ポイントに関連付けされた外部のコンピュータから、解決すべき計算上の問題を受信するステップと、
    前記計算ノードの前記ノード関連処理属性に基づいて、1つまたはそれ以上の前記計算ノードのうちどれが前記計算上の問題を解決する能力があるか、および、各計算ノードが前記計算上の問題を解決するのに要する時間の量を決定するために、前記プロトコルマネージャが前記計算ノードの前記ノード関連処理属性を使用するステップと、
    前記計算ノードのネットワークロケーション、および、前記計算上の問題を提供したコンピュータに関連付けされたリクエスト側ポイントからのネットワーク距離ベクトルを計算することによって、前記計算ノードに関連付けされたネットワーク待ち時間メトリックを決定し、それにより、前記ネットワーク待ち時間属性を処理するステップと、
    計算上の問題を解決する能力がある前記計算ノードのうちの1つ、および、前記計算上の問題を解決するのに要する時間の量の前記決定に基づいて、かつ、前記ネットワーク待ち時間メトリックに基づいて、1つまたはそれ以上の前記計算ノードのうちどれが前記計算上の問題を処理するのかを決定するステップと、
    含み、
    人工知能管理プロトコルは、前記計算ノードの前記人工知能問題解決能力を交換し、かつ、分析するためにそれぞれの問題ルーティングテーブルにアクセスする分配ポイントを使用することによって、前記計算ノード間の情報交換を標準化し、さらに、
    前記プロトコルマネージャが、前記計算上の問題を前記決定された1つまたはそれ以上の前記計算ノードに送信するステップと、
    前記計算上の問題が計算ノードによって受信されると、前記計算ノードが、前記問題を解決するためにリソースを使用するステップ、および、前記計算ノードが、前記外部のリクエストコンピュータに結果を返すステップと、
    を含む、システム。
  11. 前記計算ノードは、異なる人工知能問題解決能力を提供するための人工知能ベースの処理コンポーネントを含む、
    請求項10に記載のシステム。
  12. 人工知能クラスタに配置されている前記計算ノードと関連付けされた技術的能力の自己発見のためのサービスが提供される、
    請求項10に記載のシステム。
  13. 前記ノード関連処理属性は、前記計算ノードがどの人工知能アルゴリズムを扱うかに関するデータを含み、前記ノード関連処理属性は、前記計算ノードと関連付けされた処理コンポーネントのタイプに基づく処理速度情報を含む、
    請求項10乃至12のいずれか一項に記載のシステム。
  14. 前記計算ノードは、中央処理装置、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、および、グラフィカルプロセッサ装置のうち、2つまたはそれ以上の異なるタイプの処理コンポーネントタイプを含み、
    前記2つまたはそれ以上の異なるタイプの処理コンポーネントタイプは、前記計算ノードのための異種の処理環境を構成する、
    請求項13に記載のシステム。
  15. 前記1つまたはそれ以上のデータプロセッサによって実行される前記オペレーションは、
    前記処理速度情報を分析するための前記計算ノードの処理コンポーネントタイプを決定するステップ、を含み、
    1つまたはそれ以上の前記計算ノードのうちどれが前記計算上の問題を処理するのかを決定する前記ステップは、前記決定された処理コンポーネントのタイプに基づくものである、
    請求項13または14に記載のシステム。
  16. 前記1つまたはそれ以上のデータプロセッサによって実行される前記オペレーションは、
    前記計算ノードの前記決定された処理コンポーネントのタイプに関する計算上の問題リクエストを検査し、かつ、前記計算上の問題を解決するために、前記計算ノードに関連付けされた人工知能計算リソースを検査するステップと、
    前記計算ノードに関連するヘルス情報およびノード故障情報を検査するステップであり、前記検査されたヘルス情報は、前記計算ノードが、計算ノードの各人工知能計算リソースについてアルゴリズムのヘルスチェックをパスするか否かに基づいて決定される、ステップと、
    前記計算ノードの負荷を検査するステップと、を含み、
    1つまたはそれ以上の前記計算ノードのうちどれが前記計算上の問題を処理するのかを決定する前記ステップは、前記決定された処理コンポーネントのタイプ、前記検査された計算上の問題リクエスト、前記検査されたヘルス情報およびノード故障情報、前記検査された負荷、および前記決定されたネットワーク待ち時間メトリックに基づいている、
    請求項15に記載のシステム。
  17. 情報交換のために、プライマリ分配ポイントとセカンダリ分配ポイントを使用することにより問題ルーティングテーブルがアクセスされ、前記計算ノードの前記人工知能問題解決能力に関する情報を前記計算ノード間で通信する、
    請求項10乃至16いずれか一項に記載のシステム。
  18. 前記計算上の問題を解決する特定用途向け集積回路の問題解決速度よりも速い問題解決速度を有するハードウェアのタイプに合わせて、前記プライマリ分配ポイントと前記セカンダリ分配ポイントを使用することにより前記問題ルーティングテーブルがアクセスされる、
    請求項17に記載のシステム。
  19. コンピュータで実行可能な命令を含み、プロセッサによって実行されると、コンピュータに方法を実行させる固定のコンピュータ読取可能媒体であって、前記方法は、
    計算ノードから、プロトコルマネージャが、ノード関連処理属性に関する情報をネットワークにわたり受信するステップであり、前記計算ノードは、人工知能問題解決能力および問題解決速度に関して異種の計算ノードであり、前記ノード関連処理属性は、前記計算ノードが解決できる事前設定された問題のタイプの表示、前記計算ノードが前記事前設定された問題を解決できる速度の表示、および、前記計算ノードに関連付けされたネットワーク待ち時間属性を含む、ステップと、
    前記プロトコルマネージャが、リクエスト側ポイントに関連付けされた外部のコンピュータから、解決すべき計算上の問題を受信するステップと、
    前記計算ノードの前記ノード関連処理属性に基づいて、1つまたはそれ以上の前記計算ノードのうちどれが前記計算上の問題を解決する能力があるか、および、各計算ノードが前記計算上の問題を解決するのに要する時間の量を決定するために、前記プロトコルマネージャが前記計算ノードの前記ノード関連処理属性を使用するステップと、
    前記計算ノードのネットワークロケーション、および、前記計算上の問題を提供したコンピュータに関連付けされたリクエスト側ポイントからのネットワーク距離ベクトルを計算することによって、前記計算ノードに関連付けされたネットワーク待ち時間メトリックを決定し、それにより、前記ネットワーク待ち時間属性を処理するステップと、
    計算上の問題を解決する能力がある前記計算ノードのうちの1つ、および、前記計算上の問題を解決するのに要する時間の量の前記決定に基づいて、かつ、前記ネットワーク待ち時間メトリックに基づいて、1つまたはそれ以上の前記計算ノードのうちどれが前記計算上の問題を処理するのかを決定するステップと、
    含み、
    人工知能管理プロトコルは、前記計算ノードの前記人工知能問題解決能力を交換し、かつ、分析するためにそれぞれの問題ルーティングテーブルにアクセスする分配ポイントを使用することによって、前記計算ノード間の情報交換を標準化し、さらに、
    前記プロトコルマネージャが、前記計算上の問題を前記決定された1つまたはそれ以上の前記計算ノードに送信するステップと、
    前記計算上の問題が計算ノードによって受信されると、前記計算ノードが、前記問題を解決するためにリソースを使用するステップ、および、前記計算ノードが、前記外部のリクエストコンピュータに結果を返すステップと、
    を含む、コンピュータ読取可能媒体。
  20. コンピュータで実行可能な命令を含み、プロセッサによって実行されると、コンピュータに方法を実行させるコンピュータプログラムであって、前記方法は、
    計算ノードから、プロトコルマネージャが、ノード関連処理属性に関する情報をネットワークにわたり受信するステップであり、前記計算ノードは、人工知能問題解決能力および問題解決速度に関して異種の計算ノードであり、前記ノード関連処理属性は、前記計算ノードが解決できる事前設定された問題のタイプの表示、前記計算ノードが前記事前設定された問題を解決できる速度の表示、および、前記計算ノードに関連付けされたネットワーク待ち時間属性を含む、ステップと、
    前記プロトコルマネージャが、リクエスト側ポイントに関連付けされた外部のコンピュータから、解決すべき計算上の問題を受信するステップと、
    前記計算ノードの前記ノード関連処理属性に基づいて、1つまたはそれ以上の前記計算ノードのうちどれが前記計算上の問題を解決する能力があるか、および、各計算ノードが前記計算上の問題を解決するのに要する時間の量を決定するために、前記プロトコルマネージャが前記計算ノードの前記ノード関連処理属性を使用するステップと、
    前記計算ノードのネットワークロケーション、および、前記計算上の問題を提供したコンピュータに関連付けされたリクエスト側ポイントからのネットワーク距離ベクトルを計算することによって、前記計算ノードに関連付けされたネットワーク待ち時間メトリックを決定し、それにより、前記ネットワーク待ち時間属性を処理するステップと、
    計算上の問題を解決する能力がある前記計算ノードのうちの1つ、および、前記計算上の問題を解決するのに要する時間の量の前記決定に基づいて、かつ、前記ネットワーク待ち時間メトリックに基づいて、1つまたはそれ以上の前記計算ノードのうちどれが前記計算上の問題を処理するのかを決定するステップと、
    含み、
    人工知能管理プロトコルは、前記計算ノードの前記人工知能問題解決能力を交換し、かつ、分析するためにそれぞれの問題ルーティングテーブルにアクセスする分配ポイントを使用することによって、前記計算ノード間の情報交換を標準化し、さらに、
    前記プロトコルマネージャが、前記計算上の問題を前記決定された1つまたはそれ以上の前記計算ノードに送信するステップと、
    前記計算上の問題が計算ノードによって受信されると、前記計算ノードが、前記問題を解決するためにリソースを使用するステップ、および、前記計算ノードが、前記外部のリクエストコンピュータに結果を返すステップと、
    を含む、コンピュータプログラム。
JP2019550755A 2017-03-15 2018-03-12 計算ノード管理プロトコルのためのシステムおよび方法 Active JP7113840B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/459,725 2017-03-15
US15/459,725 US11049025B2 (en) 2017-03-15 2017-03-15 Systems and methods for compute node management protocols
PCT/US2018/022033 WO2018169876A1 (en) 2017-03-15 2018-03-12 Systems and methods for compute node management protocols

Publications (2)

Publication Number Publication Date
JP2020510938A JP2020510938A (ja) 2020-04-09
JP7113840B2 true JP7113840B2 (ja) 2022-08-05

Family

ID=61906830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019550755A Active JP7113840B2 (ja) 2017-03-15 2018-03-12 計算ノード管理プロトコルのためのシステムおよび方法

Country Status (6)

Country Link
US (1) US11049025B2 (ja)
EP (1) EP3596600B1 (ja)
JP (1) JP7113840B2 (ja)
CN (1) CN110506259A (ja)
CA (1) CA3054607C (ja)
WO (1) WO2018169876A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10827042B2 (en) * 2017-04-10 2020-11-03 Vmware, Inc. Traffic optimization for multi-node applications
JP2019056970A (ja) * 2017-09-19 2019-04-11 カシオ計算機株式会社 情報処理装置、人工知能選択方法及び人工知能選択プログラム
US20200117978A1 (en) * 2018-10-12 2020-04-16 Alibaba Group Holding Limited Systems and methods for efficiently mapping neural networks to programmable logic devices
WO2020258098A1 (en) * 2019-06-26 2020-12-30 Orange Deploying computing tasks on client computing apparatus
US10757597B1 (en) * 2019-07-08 2020-08-25 Bank Of America Corporation Resource stability indicator determination based on downstream network node-based resource health indicators
CN114097259B (zh) * 2020-06-24 2024-03-01 北京小米移动软件有限公司 一种通信处理方法、通信处理装置及存储介质
US11900170B2 (en) 2021-08-11 2024-02-13 Intergraph Corporation Cloud-based systems for optimized multi-domain processing of input problems using multiple solver types
WO2023018599A1 (en) * 2021-08-11 2023-02-16 Intergraph Corporation Cloud-based systems for optimized multi-domain processing of input problems using multiple solver types
JP7195558B1 (ja) 2022-03-25 2022-12-26 AI inside株式会社 プログラム、サーバ、システム及び方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005234931A (ja) 2004-02-20 2005-09-02 Toshiba Corp リソース探索方法、及び、クラスタマネージャ装置
JP2008077281A (ja) 2006-09-20 2008-04-03 Nec Corp スーパースケジューラ、処理依頼方法、およびスーパースケジューラプログラム

Family Cites Families (144)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608872A (en) 1993-03-19 1997-03-04 Ncr Corporation System for allowing all remote computers to perform annotation on an image and replicating the annotated image on the respective displays of other comuters
US5649104A (en) 1993-03-19 1997-07-15 Ncr Corporation System for allowing user of any computer to draw image over that generated by the host computer and replicating the drawn image to other computers
US7991347B1 (en) 1994-04-07 2011-08-02 Data Innovation Llc System and method for accessing set of digital data at a remote site
US5577188A (en) 1994-05-31 1996-11-19 Future Labs, Inc. Method to provide for virtual screen overlay
US7181758B1 (en) 1994-07-25 2007-02-20 Data Innovation, L.L.C. Information distribution and processing system
GB2300991B (en) 1995-05-15 1997-11-05 Andrew Macgregor Ritchie Serving signals to browsing clients
US5715450A (en) 1995-09-27 1998-02-03 Siebel Systems, Inc. Method of selecting and presenting data from a database using a query language to a user of a computer system
US5821937A (en) 1996-02-23 1998-10-13 Netsuite Development, L.P. Computer method for updating a network design
US5831610A (en) 1996-02-23 1998-11-03 Netsuite Development L.P. Designing networks
US5873096A (en) 1997-10-08 1999-02-16 Siebel Systems, Inc. Method of maintaining a network of partially replicated database system
US6604117B2 (en) 1996-03-19 2003-08-05 Siebel Systems, Inc. Method of maintaining a network of partially replicated database system
AU6440398A (en) 1997-02-26 1998-09-18 Siebel Systems, Inc. Method of using a cache to determine the visibility to a remote database client of a plurality of database transactions
WO1998040804A2 (en) 1997-02-26 1998-09-17 Siebel Systems, Inc. Distributed relational database
WO1998038583A1 (en) 1997-02-26 1998-09-03 Siebel Systems, Inc. Method of determining visibility to a remote database client of a plurality of database transactions having variable visibility strengths
JP2002511164A (ja) 1997-02-26 2002-04-09 シーベル システムズ,インコーポレイティド 単純化された可視度ルールに用いるための複数のデータベース・トランザクションのリモート・データベース・クライアントの可視度決定方法
WO1998038762A2 (en) 1997-02-26 1998-09-03 Siebel Systems, Inc. Determining visibility to a remote database client
EP1019807B1 (en) 1997-02-27 2017-04-05 Siebel Systems, Inc. Method of migrating to a successive level of a software distribution incorporating local modifications
WO1998040805A2 (en) 1997-02-27 1998-09-17 Siebel Systems, Inc. Method of synchronizing independently distributed software and database schema
WO1998038564A2 (en) 1997-02-28 1998-09-03 Siebel Systems, Inc. Partially replicated distributed database with multiple levels of remote clients
US6169534B1 (en) 1997-06-26 2001-01-02 Upshot.Com Graphical user interface for customer information management
US5918159A (en) 1997-08-04 1999-06-29 Fomukong; Mundi Location reporting satellite paging system with optional blocking of location reporting
US6560461B1 (en) 1997-08-04 2003-05-06 Mundi Fomukong Authorized location reporting paging system
US20020059095A1 (en) 1998-02-26 2002-05-16 Cook Rachael Linette System and method for generating, capturing, and managing customer lead information over a computer network
US6732111B2 (en) 1998-03-03 2004-05-04 Siebel Systems, Inc. Method, apparatus, system, and program product for attaching files and other objects to a partially replicated database
US6772229B1 (en) 2000-11-13 2004-08-03 Groupserve, Inc. Centrifugal communication and collaboration method
US6161149A (en) 1998-03-13 2000-12-12 Groupserve, Inc. Centrifugal communication and collaboration method
US5963953A (en) 1998-03-30 1999-10-05 Siebel Systems, Inc. Method, and system for product configuration
AU5791899A (en) 1998-08-27 2000-03-21 Upshot Corporation A method and apparatus for network-based sales force management
US6728960B1 (en) 1998-11-18 2004-04-27 Siebel Systems, Inc. Techniques for managing multiple threads in a browser environment
US6601087B1 (en) 1998-11-18 2003-07-29 Webex Communications, Inc. Instant document sharing
US6549908B1 (en) 1998-11-18 2003-04-15 Siebel Systems, Inc. Methods and apparatus for interpreting user selections in the context of a relation distributed as a set of orthogonalized sub-relations
JP2002531890A (ja) 1998-11-30 2002-09-24 シーベル システムズ,インコーポレイティド クライアントサーバーアプリケーションにおける開発ツール、方法及びシステム
AU2707200A (en) 1998-11-30 2000-06-19 Siebel Systems, Inc. Assignment manager
EP1183636A4 (en) 1998-11-30 2002-03-06 Siebel Systems Inc STATE MODELS FOR PROCESS MONITORING
EP1196882A1 (en) 1998-11-30 2002-04-17 Siebel Systems, Inc. Smart scripting call centers
US7356482B2 (en) 1998-12-18 2008-04-08 Alternative Systems, Inc. Integrated change management unit
US6574635B2 (en) 1999-03-03 2003-06-03 Siebel Systems, Inc. Application instantiation based upon attributes and values stored in a meta data repository, including tiering of application layers objects and components
US20020072951A1 (en) 1999-03-03 2002-06-13 Michael Lee Marketing support database management method, system and program product
US7698160B2 (en) 1999-05-07 2010-04-13 Virtualagility, Inc System for performing collaborative tasks
US8095413B1 (en) 1999-05-07 2012-01-10 VirtualAgility, Inc. Processing management information
US7290056B1 (en) * 1999-09-09 2007-10-30 Oracle International Corporation Monitoring latency of a network to manage termination of distributed transactions
US6621834B1 (en) 1999-11-05 2003-09-16 Raindance Communications, Inc. System and method for voice transmission over network protocols
US6535909B1 (en) 1999-11-18 2003-03-18 Contigo Software, Inc. System and method for record and playback of collaborative Web browsing session
US6324568B1 (en) 1999-11-30 2001-11-27 Siebel Systems, Inc. Method and system for distributing objects over a network
US6654032B1 (en) 1999-12-23 2003-11-25 Webex Communications, Inc. Instant sharing of documents on a remote server
US6938256B2 (en) 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
US6336137B1 (en) 2000-03-31 2002-01-01 Siebel Systems, Inc. Web client-server system and method for incompatible page markup and presentation languages
US6577726B1 (en) 2000-03-31 2003-06-10 Siebel Systems, Inc. Computer telephony integration hotelling method and system
US6732100B1 (en) 2000-03-31 2004-05-04 Siebel Systems, Inc. Database access method and system for user role defined access
US7266502B2 (en) 2000-03-31 2007-09-04 Siebel Systems, Inc. Feature centric release manager method and system
US6842748B1 (en) 2000-04-14 2005-01-11 Rightnow Technologies, Inc. Usage based strength between related information in an information retrieval system
US6665655B1 (en) 2000-04-14 2003-12-16 Rightnow Technologies, Inc. Implicit rating of retrieved information in an information search system
US6434550B1 (en) 2000-04-14 2002-08-13 Rightnow Technologies, Inc. Temporal updates of relevancy rating of retrieved information in an information search system
US7730072B2 (en) 2000-04-14 2010-06-01 Rightnow Technologies, Inc. Automated adaptive classification system for knowledge networks
US6763501B1 (en) 2000-06-09 2004-07-13 Webex Communications, Inc. Remote document serving
US7069231B1 (en) 2000-07-20 2006-06-27 Oracle International Corporation Methods and systems for defining, applying and executing customer care relationship plans
KR100365357B1 (ko) 2000-10-11 2002-12-18 엘지전자 주식회사 무선통신 단말기의 데이터 통신 방법
US7581230B2 (en) 2001-02-06 2009-08-25 Siebel Systems, Inc. Adaptive communication application programming interface
USD454139S1 (en) 2001-02-20 2002-03-05 Rightnow Technologies Display screen for a computer
US6829655B1 (en) 2001-03-28 2004-12-07 Siebel Systems, Inc. Method and system for server synchronization with a computing device via a companion device
US7174514B2 (en) 2001-03-28 2007-02-06 Siebel Systems, Inc. Engine to present a user interface based on a logical structure, such as one for a customer relationship management system, across a web site
US7363388B2 (en) 2001-03-28 2008-04-22 Siebel Systems, Inc. Method and system for direct server synchronization with a computing device
US20030206192A1 (en) 2001-03-31 2003-11-06 Mingte Chen Asynchronous message push to web browser
US20030018705A1 (en) 2001-03-31 2003-01-23 Mingte Chen Media-independent communication server
US6732095B1 (en) 2001-04-13 2004-05-04 Siebel Systems, Inc. Method and apparatus for mapping between XML and relational representations
US7761288B2 (en) 2001-04-30 2010-07-20 Siebel Systems, Inc. Polylingual simultaneous shipping of software
US6782383B2 (en) 2001-06-18 2004-08-24 Siebel Systems, Inc. System and method to implement a persistent and dismissible search center frame
US6763351B1 (en) 2001-06-18 2004-07-13 Siebel Systems, Inc. Method, apparatus, and system for attaching search results
US6728702B1 (en) 2001-06-18 2004-04-27 Siebel Systems, Inc. System and method to implement an integrated search center supporting a full-text search and query on a database
US6711565B1 (en) 2001-06-18 2004-03-23 Siebel Systems, Inc. Method, apparatus, and system for previewing search results
US20030004971A1 (en) 2001-06-29 2003-01-02 Gong Wen G. Automatic generation of data models and accompanying user interfaces
US7761535B2 (en) 2001-09-28 2010-07-20 Siebel Systems, Inc. Method and system for server synchronization with a computing device
US6724399B1 (en) 2001-09-28 2004-04-20 Siebel Systems, Inc. Methods and apparatus for enabling keyboard accelerators in applications implemented via a browser
US6826582B1 (en) 2001-09-28 2004-11-30 Emc Corporation Method and system for using file systems for content management
US6993712B2 (en) 2001-09-28 2006-01-31 Siebel Systems, Inc. System and method for facilitating user interaction in a browser environment
US6978445B2 (en) 2001-09-28 2005-12-20 Siebel Systems, Inc. Method and system for supporting user navigation in a browser environment
US6901595B2 (en) 2001-09-29 2005-05-31 Siebel Systems, Inc. Method, apparatus, and system for implementing a framework to support a web-based application
US8359335B2 (en) 2001-09-29 2013-01-22 Siebel Systems, Inc. Computing system and method to implicitly commit unsaved data for a world wide web application
US7146617B2 (en) 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
US7962565B2 (en) 2001-09-29 2011-06-14 Siebel Systems, Inc. Method, apparatus and system for a mobile web client
US7289949B2 (en) 2001-10-09 2007-10-30 Right Now Technologies, Inc. Method for routing electronic correspondence based on the level and type of emotion contained therein
US7062502B1 (en) 2001-12-28 2006-06-13 Kesler John N Automated generation of dynamic data entry user interface for relational database management systems
US6804330B1 (en) 2002-01-04 2004-10-12 Siebel Systems, Inc. Method and system for accessing CRM data via voice
US7058890B2 (en) 2002-02-13 2006-06-06 Siebel Systems, Inc. Method and system for enabling connectivity to a data system
US7672853B2 (en) 2002-03-29 2010-03-02 Siebel Systems, Inc. User interface for processing requests for approval
US7131071B2 (en) 2002-03-29 2006-10-31 Siebel Systems, Inc. Defining an approval process for requests for approval
US6850949B2 (en) 2002-06-03 2005-02-01 Right Now Technologies, Inc. System and method for generating a dynamic interface via a communications network
US7437720B2 (en) 2002-06-27 2008-10-14 Siebel Systems, Inc. Efficient high-interactivity user interface for client-server applications
US8639542B2 (en) 2002-06-27 2014-01-28 Siebel Systems, Inc. Method and apparatus to facilitate development of a customer-specific business process model
US7594181B2 (en) 2002-06-27 2009-09-22 Siebel Systems, Inc. Prototyping graphical user interfaces
US20040010489A1 (en) 2002-07-12 2004-01-15 Rightnow Technologies, Inc. Method for providing search-specific web pages in a network computing environment
US7251787B2 (en) 2002-08-28 2007-07-31 Siebel Systems, Inc. Method and apparatus for an integrated process modeller
US9448860B2 (en) 2003-03-21 2016-09-20 Oracle America, Inc. Method and architecture for providing data-change alerts to external applications via a push service
JP2006523353A (ja) 2003-03-24 2006-10-12 シーベル システムズ,インコーポレイティド 共通共通オブジェクト
WO2004086197A2 (en) 2003-03-24 2004-10-07 Siebel Systems, Inc. Custom common object
US7904340B2 (en) 2003-03-24 2011-03-08 Siebel Systems, Inc. Methods and computer-readable medium for defining a product model
US8762415B2 (en) 2003-03-25 2014-06-24 Siebel Systems, Inc. Modeling of order data
US7685515B2 (en) 2003-04-04 2010-03-23 Netsuite, Inc. Facilitating data manipulation in a browser-based user interface of an enterprise business application
US7412455B2 (en) 2003-04-30 2008-08-12 Dillon David M Software framework that facilitates design and implementation of database applications
US7620655B2 (en) 2003-05-07 2009-11-17 Enecto Ab Method, device and computer program product for identifying visitors of websites
US7590984B2 (en) 2003-05-29 2009-09-15 International Business Machines Corporation System and method for balancing a computing load among computing resources in a distributed computing problem
US7409336B2 (en) 2003-06-19 2008-08-05 Siebel Systems, Inc. Method and system for searching data based on identified subset of categories and relevance-scored text representation-category combinations
US20040260659A1 (en) 2003-06-23 2004-12-23 Len Chan Function space reservation system
US7237227B2 (en) 2003-06-30 2007-06-26 Siebel Systems, Inc. Application user interface template with free-form layout
US7694314B2 (en) 2003-08-28 2010-04-06 Siebel Systems, Inc. Universal application network architecture
US8607322B2 (en) 2004-07-21 2013-12-10 International Business Machines Corporation Method and system for federated provisioning
US7289976B2 (en) 2004-12-23 2007-10-30 Microsoft Corporation Easy-to-use data report specification
US7774822B2 (en) * 2005-08-03 2010-08-10 Novell, Inc. Autonomous policy discovery
US7831972B2 (en) 2005-11-03 2010-11-09 International Business Machines Corporation Method and apparatus for scheduling jobs on a network
US8566301B2 (en) 2006-05-01 2013-10-22 Steven L. Rueben Document revisions in a collaborative computing environment
US8209308B2 (en) 2006-05-01 2012-06-26 Rueben Steven L Method for presentation of revisions of an electronic document
US9135228B2 (en) 2006-05-01 2015-09-15 Domo, Inc. Presentation of document history in a web browsing application
US7779475B2 (en) 2006-07-31 2010-08-17 Petnote Llc Software-based method for gaining privacy by affecting the screen of a computing device
US8082301B2 (en) 2006-11-10 2011-12-20 Virtual Agility, Inc. System for supporting collaborative activity
US8954500B2 (en) 2008-01-04 2015-02-10 Yahoo! Inc. Identifying and employing social network relationships
US8583615B2 (en) 2007-08-31 2013-11-12 Yahoo! Inc. System and method for generating a playlist from a mood gradient
US20090100342A1 (en) 2007-10-12 2009-04-16 Gabriel Jakobson Method and system for presenting address and mapping information
US8230070B2 (en) * 2007-11-09 2012-07-24 Manjrasoft Pty. Ltd. System and method for grid and cloud computing
US8504945B2 (en) 2008-02-01 2013-08-06 Gabriel Jakobson Method and system for associating content with map zoom function
US8490025B2 (en) 2008-02-01 2013-07-16 Gabriel Jakobson Displaying content associated with electronic mapping systems
US8032297B2 (en) 2008-05-08 2011-10-04 Gabriel Jakobson Method and system for displaying navigation information on an electronic map
US8014943B2 (en) 2008-05-08 2011-09-06 Gabriel Jakobson Method and system for displaying social networking navigation information
CA2665669A1 (en) 2008-05-09 2009-11-09 Research In Motion Limited Method for cell selection in a radio access network
US20090319576A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Extensible task execution techniques for network management
US8646103B2 (en) 2008-06-30 2014-02-04 Gabriel Jakobson Method and system for securing online identities
US8510664B2 (en) 2008-09-06 2013-08-13 Steven L. Rueben Method and system for displaying email thread information
US8661056B1 (en) 2008-11-03 2014-02-25 Salesforce.Com, Inc. System, method and computer program product for publicly providing web content of a tenant using a multi-tenant on-demand database service
US8510045B2 (en) 2009-12-22 2013-08-13 Steven L. Rueben Digital maps displaying search-resulting points-of-interest in user delimited regions
US8925041B2 (en) 2010-04-01 2014-12-30 Salesforce.Com, Inc. System, method and computer program product for performing one or more actions based on a determined access permissions for a plurality of users
US8566654B2 (en) 2010-08-13 2013-10-22 Salesforce.Com, Inc. Debugging site errors by an admin as a guest user in a multi-tenant database environment
EP2442228A1 (en) * 2010-10-13 2012-04-18 Thomas Lippert A computer cluster arrangement for processing a computaton task and method for operation thereof
US20130205028A1 (en) * 2012-02-07 2013-08-08 Rackspace Us, Inc. Elastic, Massively Parallel Processing Data Warehouse
EP2700008A4 (en) * 2011-04-19 2015-09-30 Hewlett Packard Development Co PLANNING CORRESPONDENCE TASKS AND REDUCING JOBS FOR PERFORMANCE OBJECTIVE PERFORMANCE EXECUTION
US9201690B2 (en) * 2011-10-21 2015-12-01 International Business Machines Corporation Resource aware scheduling in a distributed computing environment
US8943002B2 (en) 2012-02-10 2015-01-27 Liveperson, Inc. Analytics driven engagement
US8756275B2 (en) 2012-02-17 2014-06-17 Zebedo Variable speed collaborative web browsing system
US8769017B2 (en) 2012-02-17 2014-07-01 Zebedo Collaborative web browsing system having document object model element interaction detection
US8769004B2 (en) 2012-02-17 2014-07-01 Zebedo Collaborative web browsing system integrated with social networks
US9875142B2 (en) * 2013-03-22 2018-01-23 Palo Alto Research Center Incorporated System and method for efficient task scheduling in heterogeneous, distributed compute infrastructures via pervasive diagnosis
US9602423B2 (en) * 2013-06-28 2017-03-21 Pepperdata, Inc. Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system
US9513967B2 (en) * 2014-09-18 2016-12-06 International Business Machines Corporation Data-aware workload scheduling and execution in heterogeneous environments
US20160210550A1 (en) 2015-01-20 2016-07-21 Nomizo, Inc. Cloud-based neural networks
KR20170128703A (ko) * 2016-05-13 2017-11-23 한국전자통신연구원 매니코어 시스템 및 이의 동작방법
US10241834B2 (en) * 2016-11-29 2019-03-26 International Business Machines Corporation Bandwidth aware resource optimization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005234931A (ja) 2004-02-20 2005-09-02 Toshiba Corp リソース探索方法、及び、クラスタマネージャ装置
JP2008077281A (ja) 2006-09-20 2008-04-03 Nec Corp スーパースケジューラ、処理依頼方法、およびスーパースケジューラプログラム

Also Published As

Publication number Publication date
JP2020510938A (ja) 2020-04-09
WO2018169876A1 (en) 2018-09-20
CN110506259A (zh) 2019-11-26
US20180268302A1 (en) 2018-09-20
US11049025B2 (en) 2021-06-29
CA3054607A1 (en) 2018-09-20
CA3054607C (en) 2022-04-19
EP3596600A1 (en) 2020-01-22
EP3596600B1 (en) 2022-09-07

Similar Documents

Publication Publication Date Title
JP7113840B2 (ja) 計算ノード管理プロトコルのためのシステムおよび方法
JP7411735B2 (ja) マルチクラスタイングレス
AU2019257143B2 (en) Policy based service routing
CN107566150B (zh) 处理云资源的方法和物理节点
US9246765B2 (en) Apparatus and methods for auto-discovery and migration of virtual cloud infrastructure
US11102125B2 (en) Securing communications between services in a cluster using load balancing systems and methods
US9647943B2 (en) Method for providing tiered load balancing for a hosted voice-over internet protocol (VoIP) private branch exchange (PBX)
US11743206B2 (en) Systems and methods for intelligent application grouping
US20130138813A1 (en) Role instance reachability in data center
US20220247647A1 (en) Network traffic graph
EP3178215B1 (en) Routing requests with varied protocols to the same endpoint within a cluster
US20240095809A1 (en) Cloud infrastructure-based online publishing platforms for virtual private label clouds
US11870647B1 (en) Mapping on-premise network nodes to cloud network nodes
US20200127923A1 (en) System and method of performing load balancing over an overlay network
Hammad et al. Novel methods for virtual network composition
US11874940B2 (en) Method and system for limiting access of multiple data nodes to shared storage during the performance of data protection services through load balancing
US20230113327A1 (en) Scalable fine-grained resource count metrics for cloud-based data catalog service
Chen A scalable architecture for federated service chaining

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190913

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210924

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20211207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220405

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220405

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220413

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220419

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220726

R150 Certificate of patent or registration of utility model

Ref document number: 7113840

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150