JP2021099782A - ファンクション・アズ・ア・サービスコンピューティングのための統一プログラミングモデル - Google Patents

ファンクション・アズ・ア・サービスコンピューティングのための統一プログラミングモデル Download PDF

Info

Publication number
JP2021099782A
JP2021099782A JP2020153484A JP2020153484A JP2021099782A JP 2021099782 A JP2021099782 A JP 2021099782A JP 2020153484 A JP2020153484 A JP 2020153484A JP 2020153484 A JP2020153484 A JP 2020153484A JP 2021099782 A JP2021099782 A JP 2021099782A
Authority
JP
Japan
Prior art keywords
platform
cloud
service call
cloud service
parameters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020153484A
Other languages
English (en)
Inventor
バーグソーキ サラ
Baghsorkhi Sara
バーグソーキ サラ
アール. ハギガット モハマド
R Haghighat Mohammad
アール. ハギガット モハマド
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2021099782A publication Critical patent/JP2021099782A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】ファンクション・アズ・ア・サービス(FaaS)コンピューティングのための統一プログラミングモデルを提供する。【解決手段】方法は、プラットフォーム固有パラメータが、クラウドサービスコール内では指定されないアプリケーション内のクラウドサービスコールを検出するステップと、クラウドサービスコールに関連付けられる1つ以上の性能制約と、第1クラウドプラットフォームに関連付けられるパラメータの第1セットに基づいて、第1クラウドプラットフォームを選択するステップと、クラウドサービスコールとパラメータの第1セットに基づいて、第1プラットフォーム固有サービスコールを自動的に生成するステップと、クラウドサービスコールを第1プラットフォーム固有サービスコールにマップするステップ、を含む。【選択図】図4

Description

実施形態は、一般に、アプリケーションプログラミングインタフェース(API)に関する。より具体的には、実施形態は、ファンクション・アズ・ア・サービス(FaaS)コンピューティングのための統一プログラミングモデルに関する。
アプリケーションをクラウドコンピューティングインフラストラクチャ(「クラウド」)上で展開するとき、アプリケーションプログラミングインタフェース(API)及びアプリケーション内で使用されるプロトコルは、典型的に、(例えば固有のクラウドプロバイダによって動作される)固有のプラットフォームに密接に結びつけられる。クラウドプロバイダのランドスケープが成長して、より異種になるにつれて、この密な結合は、性能、スケーラビリティ、効率及び/又は対費用効果に関して問題を提示する可能性がある。例えばクラウドアプリケーションが展開された後(又は展開中に)、より有利なサービスプラットフォームが利用可能になる場合、クラウドアプリケーションを、より有利なサービスプラットフォームに移行するオーバヘッドは、新たなサービスプラットフォームの利点に勝る可能性がある。そのような状況は、専用APIエンドポイントがクラウド上でプロビジョニングされて、比較的短い時間でコード実行要求を受け取って実行する、ファンクション・アズ・ア・サービス(FaaS)アーキテクチャでより顕著になる可能性さえある。
実施形態の様々な利点は、以下の明細書及び添付の特許請求の範囲を読み、以下の図面を参照することにより、当業者に明らかになるであろう。
一実施形態による、異種クラウドの例のブロック図である。
一実施形態による、異種クラウド上で実行している1つ以上のモジュールへのクラウドアプリケーションの移植(porting)の例のブロック図である。
一実施形態による、異種クラウドコンピューティングアーキテクチャにおける移植されたクラウドアプリケーションの例のブロック図である。
一実施形態による、アプリケーションを異種クラウドに移植する方法の例のフローチャートである。
一実施形態による、アプリケーションを異種クラウドに移植するより詳細な方法の例のフローチャートである。
一実施形態による、クラウドプラットフォーム間のアプリケーションの増分移行(incremental migration)の例のブロック図である。
一実施形態による、クラウドプラットフォーム間のアプリケーションの完全な移行(completed migration)の例のブロック図である。
一実施形態による、クラウドプラットフォーム間のアプリケーションの移行の方法の例のフローチャートである。
一実施形態による、クラウドサービスコールを処理する方法の例のフローチャートである。
一実施形態による、クラウドプラットフォームの間で状態データを転送する方法の例のフローチャートである。
一実施形態による、クラウドサービスコールを処理する、より詳細な方法の例のフローチャートである。
一実施形態による、性能強化されたコンピューティングシステムの例のブロック図である。
一実施形態による、半導体装置の例の図である。
一実施形態による、プロセッサの例のブロック図である。
一実施形態による、マルチプロセッサベースのコンピューティングシステムの例のブロック図である。
次に図1に移ると、異種クラウド20が図示されており、異種クラウド20では、クラウドポータブルアプリケーション22が、動作中に、ストレージサービス、自然言語処理(NLP)サービス、データベースサービス、認証サービス等を使用する。一実施形態では、例えばONEAPIのような統一プログラミングモデル28(28a〜28d)を使用して、広く異なるタイプのハードウェアリソース(例えばホストプロセッサ、グラフィクスプロセッサ、フィールドプログラマブルゲートアレイ/FPGA、特別目的の加速度計等)を含み得る異種クラウド20にまたがる実行のためにアプリケーション22を構成する。
図示される例では、クラウドプラットフォームは、ストレージサービスを提供する一組の異種ストレージサービスプラットフォーム24(24a、24b)から自動的に選択される。例えば第1ストレージサービスプラットフォーム24a(「第1ストレージサービスプラットフォーム」)は、AMAZON(登録商標) SIMPLE STORAGE SERVICE(S3)プラットフォームであってよく、一方、第2ストレージサービスプラットフォーム(「第nストレージサービスプラットフォーム」)はGOOGLE(登録商標) CLOUD STORAGEプラットフォームであってよい。したがって、ストレージサービスは、ストレージサービスサポートを提供するよう、異なるプラットフォーム固有パラメータを有する異なるクラウドプロバイダ/ベンダから取得されてよい。一実施形態において、統一プログラミングモデル28は、一組の異種ストレージサービスプラットフォーム24内の選択されたクラウドプラットフォームにおけるアプリケーション22の構成を容易にする、ストレージサービスコンポーネント28aを含む。
更に詳細に議論されるように、ストレージサービスコンポーネント28aは、利用可能なストレージサービス(例えば特徴、価格)における変更及び/又はアプリケーション22の性能制約における変更に基づいて、一組の異種ストレージストレージプラットフォーム24内のクラウドプラットフォーム間の(例えばアプリケーションユーザの視点からの)アプリケーション22の透明な移行を可能にし得る。そのようなアプローチは、性能、スケーラビリティ、効率及び対費用効果を高め得る。
クラウドプラットフォームはまた、NLPサービスを提供する一組の異種NLPサービスプラットフォーム30(30a、30b)から自動的に選択されてもよい。例えば第1NLPサービスプラットフォーム30a(「第1翻訳プラットフォーム」)は、AMAZON TRANSLATEプラットフォームであってよく、一方、第2NLPサービスプラットフォーム30b(「第m翻訳プラットフォーム」)はGOOGLE TRANSLATEプラットフォームであってよい。したがって、NLPサービスは、NLPサービスサポートを提供するよう、異なるプラットフォーム固有パラメータを有する異なるクラウドプロバイダ/ベンダから取得されてもよい。一実施形態において、統一プログラミングモデル28は、一組の異種NLPサービスプラットフォーム30内の選択されたクラウドプラットフォームにおけるアプリケーション22の構成を容易にする、NLPサービスコンポーネント28bを含む。
したがって、NLPサービスコンポーネント28bは、利用可能なNLPサービス(例えば特徴、価格)における変更及び/又はアプリケーション22の性能制約における変更に基づいて、一組の異種NLPサービスプラットフォーム30内のクラウドプラットフォーム間の(例えばアプリケーションユーザの視点からの)アプリケーション22の透明な移行を可能にし得る。そのようなアプローチは、性能、スケーラビリティ、効率及び対費用効果を高め得る。
加えて、クラウドプラットフォームは、データベースサービスを提供する一組の異種データベースサービスプラットフォーム32(32a〜32d)から自動的に選択されてもよい。例えば第1データベースサービスプラットフォーム32a(「データベースプラットフォームA」)は、AMAZON DYNAMODBプラットフォームであってよく、第2データベースサービスプラットフォーム32b(「データベースプラットフォームi」)はAMAZON AURORAプラットフォームであってよく、第3データベースサービスプラットフォーム32c(「データベースプラットフォームi+1」)は、GOOGLE CLOUD FIRESTOREプラットフォームであってよく、第4データベースサービスプラットフォーム32d(「データベースプラットフォームN」)はGOOGLE CLOUD SQLプラットフォームであってよい。したがって、データベースサービスは、データベースサービスサポートを提供するよう、異なるプラットフォーム固有パラメータを有する異なるクラウドプロバイダ/ベンダから取得されてよい。一実施形態において、統一プログラミングモデル28は、一組の異種データベースサービスプラットフォーム32内の選択されたクラウドプラットフォームにおけるアプリケーション22の構成を容易にする、データベースサービスコンポーネント28cを含む。
データベースサービスコンポーネント28cは、利用可能なデータベースサービス(例えば特徴、価格)における変更及び/又はアプリケーション22の性能制約における変更に基づいて、一組の異種データベースサービスプラットフォーム32内のクラウドプラットフォーム間のアプリケーション22の透明な移行を可能にする。そのようなアプローチは、性能、スケーラビリティ、効率及び対費用効果を更に高め得る。
さらに、クラウドプラットフォームは、認証サービスを提供する一組の異種認証サービスプラットフォーム34(34a、34b)から自動的に選択されてもよい。例えば第1認証サービスプラットフォーム34a(「認証プラットフォーム#1」)は、AMAZON CONGNITOプラットフォームであってよく、一方、第2認証サービスプラットフォーム34b(「認証プラットフォーム#M」)はGOOGLE FIREBASEプラットフォームであってよい。したがって、認証サービスは、認証サービスサポートを提供するよう、異なるプラットフォーム固有パラメータを有する異なるクラウドプロバイダ/ベンダから取得されてもよい。一実施形態において、統一プログラミングモデル28は、一組の異種認証サービスプラットフォーム34内の選択されたクラウドプラットフォームにおけるアプリケーション22の構成を容易にする、認証サービスコンポーネント28dを含む。
一例において、認証サービスコンポーネント28dは、利用可能な認証サービス(例えば特徴、価格)における変更及び/又はアプリケーション22の性能制約における変更に基づいて、一組の異種認証サービスプラットフォーム34内のクラウドプラットフォーム間のアプリケーション22の透明な移行を可能にする。そのようなアプローチは、性能、スケーラビリティ、効率及び対費用効果を更に高め得る。
FaaSは、イベント指向の高度にスケーラブルなコンピュータコード実行可能モデルであり、典型的には、専用のAPIエンドポイントをクラウドコンピューティングインフラストラクチャにおいてプロビジョニングし、比較的短い時間でコード実行要求を受け取って実行する。そのようなコード実行要求及び/又は要求されたコードの実行は、ラムダ(lambda)、関数、アクション及び/又はrun−to−completionプロシージャと様々かつ一般的に呼ばれる。アプリケーション22の一部をクラウドプラットフォームに移植し、アプリケーション22の一部をクラウドプラットフォーム間で移行するための図示されたアプローチは、機能と基礎となるハードウェアとの間の結びつきの一時的な性質に起因して、FaaS設定において特に有利であり得る。
図2は、第1クラウドプラットフォーム42a(例えばGOOGLEクラウド)、第2クラウドプラットフォーム42b(例えばMICROSOFT(登録商標)クラウド)及び第3クラウドプラットフォーム42c(例えばAMAZONクラウド)を含む異種クラウド42(42a〜42c)へのクラウドポータブルアプリケーション40(例えばFaaSラムダ、関数、アクション及び/又はrun−to−completionプロシージャを含む)の移植を示している。図示される例では、ディスパッチ44(「統一動的クラウドディスパッチ及びクラウド転送ランタイム(「Unified Dynamic Cloud Dispatch and Cloud Transfer Runtime」)は、第1モジュールマネージャ46を使用して第1クラウドプラットフォーム42aのための第1移植モジュール48を生成し、第2モジュールマネージャ50を使用して第2クラウドプラットフォーム42bのための第2移植モジュール52を生成する。展開時に、ディスパッチ44は、利用可能なクラウドサービス/ベンダを調査し、アプリケーション40によって要求されるサービスの要件、例えばスケーラビリティ及び/又は読み出し/書き込み帯域幅等に基づいて、サービスが、クラウド42内のどのリソースにマップされるべきかを決定する。このとき、特別なコード/コールが、ベンダのAPI及び一貫性のあるプロトコルと一致する/従うように、各一般APIコールのために作成され得る。
図3は、移植されたクラウドアプリケーションを示している。図示された例では、第1移植モジュール48と第1クラウドプラットフォーム42aとの間、第2移植モジュール52と第2クラウドプラットフォーム42bとの間、第1移植モジュール48と第2移植モジュール52との間に、通信が確立される。コンピュータリソース要件/制約の考慮事項以外に、サービス価格のようなファクタもディスパッチ44によって(例えばクラウドプロバイダの中で動的入札スキームを展開することにより)考慮されることがある。
図4は、アプリケーションを異種クラウドに移植する方法60を示している。方法60は一般に、例えば既に議論したディスパッチ44(図2及び図3)のようなディスパッチ及び/又はランタイムエンジンにおいて実装されてよい。より具体的には、方法60は、1つ以上のモジュールにおいて、例えばランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、プログラマブルROM(PROM)、ファームウェア、フラッシュメモリ等のような機械又はコンピュータ読取可能記憶媒体内に、例えばプログラマブル論理アレイ(PLA)、FPGA、CPLD(complex programmable logic device)のような構成可能ロジック内に、例えば特定用途向け集積回路(ASIC)、CMOS(complementary metal oxide semiconductor)又はトランジスタ−トランジスタロジック(TTL)技術のような固定機能論理ハードウェア内に、あるいはそれらの任意の組合せに格納される一組の論理命令として実装されてよい。
例えば方法60に示される動作を実行するコンピュータプログラムコードは、JAVA(登録商標)、SMALLTALK(登録商標)、C++等のようなオブジェクト指向プログラミング言語、「C」プログラミング言語又は同様のプログラミング言語のような従来の手続的プログラミング言語を含む、1つ以上のプログラミング言語の任意の組合せで書かれてよい。加えて、論理命令は、アセンブラ命令、ISA命令、機械命令、機械依存命令、マイクロコード、状態設定データ、集積回路のための構成データ、電子回路を個人化する状態情報及び/又はハードウェア(例えばホストプロセッサ、中央処理ユニット/CPU、マイクロコントローラ等)に固有の他の構造的コンポーネントを含んでよい。
図示される処理ブロック62は、アプリケーション内の一般クラウドサービスコール(generic cloud service call)を検出するが、ここで、プラットフォーム固有パラメータは、クラウドサービスコール内では指定されていない(unspecified)。例えばクラウドサービスコールがデータベースサービスに関連する場合、コールは、ベンダ固有のAPI又はモジュールを指定することなく、一般APIコールを使用して、キー−値データベーステーブルの作成、行/列の追加、アイテムの除去、クエリの開始、クエリの更新等を伴うことがある。ブロック64において、第1クラウドプラットフォームが、1つ以上の性能制約(例えばスケーラビリティ及び/又は読み出し/書き込み要件)と、第1クラウドプラットフォームに関連付けられるパラメータの第1セット(例えばベンダ固有のAPI及び/又はモジュール)に基づいて選択される。
ブロック66は、クラウドサービスコール及びパラメータの第1セットに基づいて、第1プラットフォーム固有サービスコールを自動的に生成することを提供する。一例において、ブロック66は、コンパイラ分析の組合せを使用して、例えば例外処理コード及びクエリ応答後処理のような、一般コールに関連する/それを取り巻く後方/前方コードスライスと、各ベンダに対応するAPIコールのために予めコンパイル/生成される一連の特別なコードレット(codelets)とを検出することを含む。一実施形態において、ブロック68は、クラウドサービスコールを第1プラットフォーム固有サービスコールにマップする。図示される方法60は、したがって、指定されていないプラットフォーム固有パラメータを有するアプリケーションをクラウドプラットフォームに移植することを可能にすることにより、性能、スケーラビリティ、効率及び/又は対費用効果を高める。
図5は、アプリケーションを異種クラウドに移植する、より詳細な方法70を示している。方法70は一般に、例えば既に議論したディスパッチ44(図2及び図3)のようなディスパッチ及び/又はランタイムエンジンにおいて実装されてよい。より具体的には、方法70は、1つ以上のモジュールにおいて、RAM、ROM、PROM、ファームウェア、フラッシュメモリ等のような機械又はコンピュータ読取可能記憶媒体内に、例えばPLA、FPGA、CPLDのような構成可能ロジック内に、例えばASIC、CMOS又はTTL技術のような固定機能論理ハードウェア内に、あるいはそれらの任意の組合せに格納される一組の論理命令として実装されてよい。
図示される処理ブロック72は、アプリケーションが、任意の一般クラウドサービスAPIコールを含むかどうかを判断することを提供する。含んでいない場合、方法70は終了してよい。そうでない場合、ブロック74は、例えばデータベースサービスのような既存のクラウドサービスのクラスをピック/選択する。ブロック76において、サービスのためにアプリケーションによって設定された性能要件又はコスト予算が存在するかどうかに関する判断が行われる。存在する場合、それに応じて、最小限(「min」)性能要件(例えばデータベースのための読み出し/書き込み帯域幅)が、ブロック78において設定されてよい。次いで、ブロック80は、合致する性能プロファイル及びコスト見積りを有するサービスについて、クラウドプロバイダを調査することを提供する。次いで、ブロック84において、合致するサービス/プロファイル/予算を有するプロバイダが見つかったかどうかに関する判断が行われてよい。見つかった場合、ブロック86は、ベンダのAPI及び一貫性のあるプロトコルに合致するよう、特別なコード/コールを構成して一般サービスAPIコールを置き換える。ブロック86は、コンパイラ分析と、各ベンダに対応するAPIコールのために予めコンパイル/生成される一連のコードレットを使用することを含んでよい。
ブロック76において検出される性能要件又はコスト予算が存在しない場合、図示されるブロック82は、デフォルトの閾値を使用し、方法70はブロック80に進む。加えて、ブロック84においてプロバイダが見つからなかった場合、ブロック88は(例えばアプリケーション及び/又はユーザからのフィードバックを用いて又は用いずに)閾値を再調整する。方法70は、次いでブロック80に戻ってよい。方法70は、したがって、指定されていないプラットフォーム固有パラメータを有するアプリケーションをクラウドプラットフォームに移植することを可能にすることにより、性能、スケーラビリティ、効率及び/又は対費用効果を高める。
図6Aは、サービスの可用性、アプリケーションの要件又はアプリケーションのライフサイクル中の価格変更として、図示されるディスパッチ44が、ほとんどアプリケーション実行の中断なく又は最小限で、あるクラウドプロバイダから別のクラウドプロバイダにアプリケーションの一部又はすべてを徐々に移行することができることを説明している。図示される例では、ディスパッチ44は第3モジュールマネージャ90を使用して、最終的に第2クラウドプラットフォーム42bを置き換えることになる第3クラウドプラットフォーム42cのための第3移植モジュール92を生成する。ランタイム中に、状態データが第2クラウドプラットフォーム42bから第3クラウドプラットフォーム42cに転送されている間、図示される第3移植モジュール92は「コールド(cold)」であるとみなされる。更に詳細に説明されるように。状態データの転送は、移行がアプリケーションユーザに効果的に透明であることを可能にする方法で追跡され得る。
次に図6Bに移ると、完全な移行が示されている。図示される例では、第3移植モジュール92と第3クラウドプラットフォーム42cとの間及び第3移植モジュール92と第1移植モジュール48との間で通信が確立される。加えて、内部状態データの転送が完了するので、第3移植モジュール92はもはやコールドであるとはみなされない。
図7は、一実施形態による、クラウドプラットフォーム間でアプリケーションを移行する方法100を示す図である。方法100は一般に、例えば既に議論したディスパッチ44(図2、図3、図6A及び図6B)のようなディスパッチ及び/又はランタイムエンジンにおいて実装されてよい。より具体的には、方法100は、1つ以上のモジュールにおいて、RAM、ROM、PROM、ファームウェア、フラッシュメモリ等のような機械又はコンピュータ読取可能記憶媒体内に、例えばPLA、FPGA、CPLDのような構成可能ロジック内に、例えばASIC、CMOS又はTTL技術のような固定機能論理ハードウェア内に、あるいはそれらの任意の組合せに格納される一組の論理命令として実装されてよい。
図示される処理ブロック102は、1つ以上の性能制約(例えばスケーラビリティ及び/又は読み出し/書き込み帯域幅要件)と、第2プラットフォームに関連付けられるパラメータの第2セット(例えばベンダ固有API及び/又はモジュール)に基づいて、第2クラウドプラットフォームを選択する。ブロック104は、一般クラウドサービスコール及びパラメータの第2セットに基づいて、第2プラットフォーム固有のコールを自動的に生成し得る。一実施形態において、ブロック104は、コンパイラ分析の組合せと、各サービスプロバイダ/ベンダに対応するAPIコールについて予めコンパイル/生成された一連のコードレットを使用することを含む。ブロック106において、一般クラウドサービスコールが第2プラットフォーム固有サービスコールにマップされ得る。ブロック108は、第1クラウドプラットフォームから第2クラウドプラットフォームへの状態データの転送を実施し、図示されるブロック110は、ビットマップを介して転送を追跡する。一実施形態において、ビットマップの各ビットは、現在の(例えば「古い」)クラウドプラットフォームの内部状態のセグメント、バイト及び/又は部分(例えばサブセット)に対応する。したがって、ビットマップは、内部状態の様々なサブセットが(例えばディスパッチ/ランタイムによる直接コピー又はアプリケーションの書き込みオペレーションのいずれかを介して)次の(例えば「第2」又は「新たな」)クラウドプラットフォームに転送されると、更新されてよい。図示される方法100は、したがって、指定されていないプラットフォーム固有パラメータを有するアプリケーションをクラウドプラットフォーム間で透明に移行することを可能にすることにより、性能、スケーラビリティ、効率及び/又は対費用効果を高める。
図8は、クラウドサービスコールを処理する方法120を示している。方法120は一般に、例えば既に議論したディスパッチ44(図2、図3、図6A及び図6B)のようなディスパッチ及び/又はランタイムエンジンにおいて実装されてよい。より具体的には、方法120は、1つ以上のモジュールにおいて、RAM、ROM、PROM、ファームウェア、フラッシュメモリ等のような機械又はコンピュータ読取可能記憶媒体内に、例えばPLA、FPGA、CPLDのような構成可能ロジック内に、例えばASIC、CMOS又はTTL技術のような固定機能論理ハードウェア内に、あるいはそれらの任意の組合せに格納される一組の論理命令として実装されてよい。
図示される処理ブロック122は、クラウドサービスコールのランタイムインスタンスを検出することを提供する。既に示したように、プラットフォーム固有パラメータは、クラウドサービスコール内で指定されていない(存在しない)ことがある。一実施形態において、ブロック124は、ランタイムインスタンスに応答して、転送のステータスに基づいて、第1プラットフォーム固有サービスコール又は第2プラットフォーム固有サービスコールのうちの1つ以上を選択的に発行する。例えばクラウドサービスコールが、既に第2(例えば新たな)クラウドプラットフォームに転送された状態データのサブセットのみに影響を与える場合、ブロック124は、第1及び第2プラットフォーム固有サービスコールの双方を発行してよい。対照的に、クラウドサービスコールが、第2クラウドプラットフォームにまだ転送されていない状態データのサブセットに影響を与える場合、ブロック124は、第1プラットフォーム固有サービスコールのみを(例えば第1クラウドプラットフォームに)発行してよい。そのようなアプローチは、移行が増加的かつ透明に起こることを確実にし得る。
図9Aは、クラウドプラットフォーム間で状態データを転送する方法130を示している。方法130は一般に、例えば既に議論したディスパッチ44(図2、図3、図6A及び図6B)のようなディスパッチ及び/又はランタイムエンジンにおいて実装されてよい。より具体的には、方法130は、1つ以上のモジュールにおいて、RAM、ROM、PROM、ファームウェア、フラッシュメモリ等のような機械又はコンピュータ読取可能記憶媒体内に、例えばPLA、FPGA、CPLDのような構成可能ロジック内に、例えばASIC、CMOS又はTTL技術のような固定機能論理ハードウェア内に、あるいはそれらの任意の組合せに格納される一組の論理命令として実装されてよい。
図示される処理ブロック132は、ビットマップを作成し、ここで、各ビットは、現在の/古いサービスベンダ(例えばクラウドプラットフォーム)の内部状態のセグメント、バイト又は部分を表している。一実施形態において、ブロック134は、古いベンダの各内部状態セグメントを新たなベンダの内部状態へコピーして転送する。加えて、転送される各バイト/セグメントについて、ブロック134は、転送が完了したことを示すように、ビットマップ内の対応するビットを設定してよい。ブロック136において、ビットマップのすべてのビットが設定されたかどうかに関する判断が行われてよい。すべてのビットが設定されていない場合、方法130はブロック134に戻る。そうでなければ、ブロック138は、古いベンダを開放して、新たなベンダと完全に連動(engage)し、方法130は終了する。
図9Bは、クラウドサービスコールを処理する、より詳細な方法140を示している。方法140は一般に、例えば既に議論したディスパッチ44(図2、図3、図6A及び図6B)のようなディスパッチ及び/又はランタイムエンジンにおいて実装されてよい。より具体的には、方法130は、1つ以上のモジュールにおいて、RAM、ROM、PROM、ファームウェア、フラッシュメモリ等のような機械又はコンピュータ読取可能記憶媒体内に、例えばPLA、FPGA、CPLDのような構成可能ロジック内に、例えばASIC、CMOS又はTTL技術のような固定機能論理ハードウェア内に、あるいはそれらの任意の組合せに格納される一組の論理命令として実装されてよい。
図示される処理ブロック142は、アプリケーションからの新たなサービス要求(例えばクラウドサービスコールのインスタンス)を検出する。一実施形態では、ブロック144において、新たな要求が、完全な転送のために設定されたビットを有する内部状態のサブセットのみを読み出すかどうかに関する判断が行われる。そうである場合、ブロック146において、要求は、古いベンダと新たなベンダ(例えばクラウドプラットフォーム)の双方に対して再生(例えばプラットフォーム固有サービスコールを介して発行)されてよい。一例において、ブロック148は次いで、新たな要求が、完全な転送のために設定されたビットを有する内部状態のサブセットのみを書き込むかどうかを判断する。そうである場合、要求の処理はブロック150において完了する。ブロック148において、新たな要求が、完全な転送のために設定されたビットを有する内部状態のサブセットのみを書き込むものでないと判断された場合、ブロック152は、要求によって更新されたサブセットのための転送完了ビットを設定する。
ブロック144において、新たな要求が、完全な転送のために設定されたビットを有する内部状態のサブセットのみを読み出すものでないと判断された場合、図示されるブロック154は、要求を古いベンダのみに対して再生(例えばプラットフォーム固有サービスコールを介して発行)する。加えて、ブロック156において、新たな要求が、完全な転送のために設定されたビットを有する内部状態のサブセットのいずれかに書き込むかどうかに関する判断が行われてよい。そうである場合、ブロック158は、要求によって更新された内部状態のサブセットのための転送完了ビットをクリア/リセットする。そうでない場合、要求の処理は、ブロック160において完了する。
次に図10に移ると、性能が強化されたコンピューティングシステム170が図示されている。システム170は、一般に、コンピューティング機能(例えばパーソナルデジタルアシスタント/PDA、ノートブックコンピュータ、タブレットコンピュータ、コンバーチブルタブレット、サーバ)、通信機能(例えばスマートフォン)、イメージング機能(例えばカメラ、カムコーダ)、メディア再生機能(例えばスマートテレビジョン/TV)、ウェアラブル機能(例えば時計、アイウェア、ヘッドウェア、フットウェア、ジュエリー)、乗り物機能(例えば車、トラック、モーターサイクル)、ロボット機能(例えば自律ロボット)等又はそれらの任意の組合せを有する電子デバイス/プラットフォームの一部であり得る。図示される例では、システム170は、システムメモリ176に結合される一体型メモリコントローラ(IMC)174を有するホストプロセッサ172を含む。
図示されるシステム170は、システムオンチップ(SoC)として半導体ダイ182上でホストプロセッサ172及びグラフィクスプロセッサ180と一緒に実装される入力出力(IO)モジュール178も含む。図示されるIOモジュール178は、例えばディスプレイ184(例えばタッチスクリーン、液晶ディスプレイ/LCD、発光ダイオード/LEDディスプレイ)、ネットワークコントローラ186(例えば有線及び/又は無線)及び大容量ストレージ188(例えばハードディスクドライブ/HDD、光ディスク、ソリッドステートドライブ/SSD、フラッシュメモリ)と通信する。
一実施形態では、ホストプロセッサ172、グラフィクスプロセッサ180及び/又はIOモジュール178は、システムメモリ176及び/又は大容量ストレージ188から取り出したプログラム命令190を実行して、既に議論した方法60(図4)、方法70(図5)、方法100(図7)、方法120(図8)、方法130(図9A)及び/又は方法140(図9B)のうちの1つ以上の態様を実施する。したがって、図示される命令190の実行は、コンピューティングシステム170に、アプリケーション内のクラウドサービスコールを検出させることができ、ここで、プラットフォーム固有のパラメータは、クラウドサービスコール内では指定されず、クラウドサービスコールに関連付けられる1つ以上の性能制約と、第1クラウドプラットフォームに関連付けられるパラメータの第1セットに基づいて、第1クラウドプラットフォームを選択する。命令190の実行はまた、コンピューティングシステム170に、クラウドサービスコール及びパラメータの第1セットに基づいて、第1プラットフォーム固有サービスを自動的に生成させ得る。
さらに、命令190の実行は、コンピューティングシステム170に、性能制約と、第2クラウドプラットフォームに関連付けられるパラメータの第2セットに基づいて、第2クラウドプラットフォームを選択させ、クラウドサービスコール及びパラメータの第2セットに基づいて、第2プラットフォーム固有サービスを自動的に生成させ得る。図示されるコンピューティングシステム170は、したがって、少なくとも、一般クラウドサービスコールを有するアプリケーションをクラウドプラットフォームに移植し、かつ/又はクラウドプラットフォームの間でアプリケーションを移行する程度まで性能強化される。
図11は、半導体パッケージ装置192を示している。図示される装置192は、1つ以上の基板194(例えばシリコン、サファイア、ガリウムひ素)と、該基板194に結合されるロジック196(例えばトランジスタアレイ及び他の集積回路/ICコンポーネント)を含む。ロジック196は、少なくとも部分的に、構成可能論理又は固定機能論理ハードウェアで実装されてよい。一例において、ロジック196は、既に議論した方法60(図4)、方法70(図5)、方法100(図7)、方法120(図8)、方法130(図9A)及び/又は方法140(図9B)のうちの1つ以上の態様を実装する。したがって、ロジック196は、アプリケーション内のクラウドサービスコールを検出してよく、ここで、プラットフォーム固有のパラメータは、クラウドサービスコール内では指定されず、クラウドサービスコールに関連付けられる1つ以上の性能制約と、第1クラウドプラットフォームに関連付けられるパラメータの第1セットに基づいて、第1クラウドプラットフォームを選択する。ロジック196はまた、クラウドサービスコール及びパラメータの第1セットに基づいて、第1プラットフォーム固有サービスを自動的に生成してもよい。
さらに、ロジック196は、性能制約と、第2クラウドプラットフォームに関連付けられるパラメータの第2セットに基づいて、第2クラウドプラットフォームを選択し、クラウドサービスコール及びパラメータの第2セットに基づいて、第2プラットフォーム固有サービスを自動的に生成してよい。図示される装置192は、したがって、少なくとも、一般クラウドサービスコールを有するアプリケーションをクラウドプラットフォームに移植し、かつ/又はクラウドプラットフォームの間でアプリケーションを移行する程度まで性能強化される。
一例において、ロジック196は、基板194内に配置される(例えば埋め込まれる)トランジスタチャネル領域を含む。したがって、ロジック196と基板194との間のインタフェースは、階段接合ではない可能性がある。また、ロジック196は、基板194の初期ウェハ上で成長するエピタキシャル層を含むものと考えられてよい。
図12は、一実施形態によるプロセッサコア200を示している。プロセッサコア200は、マイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ又はコードを実行する他のデバイスのような、任意のタイプのプロセッサのためのコアであってよい。図12では1つのプロセッサコア200のみが図示されているが、処理要素は、代替的に、図12に図示されるプロセッサコア200を1つより多く含んでもよい。プロセッサコア200は、シングルスレッドコアであってよく、あるいは少なくとも1つの実施形態について、プロセッサコア200は、コアごとに1つより多くのハードウェアスレッドコンテキスト(又は「論理プロセッサ」)を含み得るという点で、マルチスレッド化されてよい。
図12は、プロセッサコア200に結合されるメモリ270も図示している。メモリ270は、当技術分野で知られているか、そうでなくても利用可能な多様なメモリ(メモリ階層の様々な層を含む)のいずれかであってよい。メモリ270は、プロセッサコア200によって実行される1つ以上のコード213命令を含んでよく、コード213は、既に議論した方法60(図4)、方法70(図5)、方法100(図7)、方法120(図8)、方法130(図9A)及び/又は方法140(図9B)のうちの1つ以上の態様を実装し得る。プロセッサコア200は、コード213によって示される命令のプログラムシーケンスに従う。各命令は、フロントエンド部分210を入力し、1つ以上のデコーダ220によって処理されてよい。デコーダ220は、その出力として、所定のフォーマットの固定幅のマイクロオペレーションのようなマイクロオペレーションを生成してよく、あるいは元のコード命令を反映する他の命令、マイクロ命令又は制御信号を生成してもよい。図示されるフロントエンド部分210は、一般的にリソースを割り当てて、実行のために変換命令に対応するオペレーションをキューに入れる、レジスタリネームロジック(register renaming logic)225及びスケジューリングロジック230も含む。
プロセッサコア200は、一組の実行ユニット255−1〜255−Nを有する実行ロジック250を含むように図示されている。いくつかの実施形態は、特定の関数又は関数のセットに専用の複数の実行ユニットを含んでよい。他の実施形態は、1つのみの実行ユニット又は特定の関数を実行することができる1つの実行ユニットを含んでよい。図示される実行ロジック250は、コード命令によって指定されるオペレーションを実行する。
コード命令によって指定されたオペレーションの実行の完了後、バックエンドロジック260は、コード213の命令をリタイア(retire)させる。一実施形態において、プロセッサコア200は、順不同の実行(out of order execution)を許容するが、命令の順序どおりのリタイア(in order retirement)を必要とする。リタイアメントロジック265は、当業者に公知の様々な形式をとってよい(例えば再順序付けバッファ(re−order buffers)等)。このようにして、プロセッサコア200は、少なくとも、デコーダによって生成される出力、レジスタリネームロジック225によって利用されるハードウェアレジスタ及びテーブル、並びに実行ロジック250によって修正される任意のレジスタ(図示せず)に関して、コード213の実行中に変換される。
図12に図示されていないが、処理要素は、プロセッサコア200とともにチップ上に他の要素を含んでよい。例えば処理要素は、プロセッサコア200と一緒にメモリ制御ロジックを含んでよい。処理要素は、I/O制御ロジックを含んでよく、かつ/又はメモリ制御ロジックと統合されるI/O制御ロジックを含んでよい。処理要素は、1つ以上のキャッシュも含んでよい。
次に図13に移ると、一実施形態による、コンピューティングシステム1000の実施形態のブロック図が示されている。図13に示されているのは、第1処理要素1070及び第2処理要素1080を含むマルチプロセッサシステム1000である。2つの処理要素1070及び1080が示されているが、システム1000の実施形態は、そのような処理要素を1つのみ含んでもよいことが理解されよう。
システム1000は、ポイントツーポイント相互接続システムとして図示されており、第1処理要素1070及び第2処理要素1080は、ポイントツーポイント相互接続1050を介して結合される。図13に図示される相互接続のいずれか又はすべてを、ポイントツーポイント相互接続ではなく、マルチドロップバスとして実装してもよいことを理解されたい。
図13に図示されるように、処理要素1070及び1080の各々は、第1及び第2プロセッサコア(すなわち、処理コア1074a及び1074bと、処理コア1084a及び1084b)を含む、マルチコアプロセッサであってよい。そのようなコア1074a、1074b、1084a、1084bは、図12に関連して上述したものと同様の方法で命令コードを実行するように構成されてよい。
各処理要素1070、1080は、少なくとも1つの共有キャッシュ1896a、1896bを含んでよい。共有キャッシュ1896a、1896bは、それぞれ、コア1074a、1074b及び1084a、1084bのような、プロセッサの1つ以上のコンポーネントによって利用されるデータ(例えば命令)を格納してよい。例えば共有キャッシュ1896a、1896bは、プロセッサのコンポーネントによるより早いアクセスのために、メモリ1032、1034に格納されているデータをローカルにキャッシュしてよい。1つ以上の実施形態において、共有キャッシュ1896a、1896bは、レベル2(L2)、レベル3(L3)、レベル4(L4)又は他のレベルのキャッシュのような1つ以上の中間レベルキャッシュ、最終レベルキャッシュ(LLC)及び/又はそれらの組合せを含んでよい。
2つのみの処理要素1070、1080が図示されているが、実施形態の範囲はそのように限定されないことが理解されよう。他の実施形態では、1つ以上の追加の処理要素が所与のプロセッサ内に存在してもよい。あるいは、処理要素1070、1080のうちの1つ以上が、加速度計やフィールドプログラマブルゲートアレイのような、プロセッサ以外の要素であってもよい。例えば追加の処理要素は、第1プロセッサと同じ追加のプロセッサ、第1プロセッサ1070と異種又は非対称の追加のプロセッサ、加速度計(例えばグラフィクス加速度計又はデジタル信号処理(DSP)ユニット)、フィールドプログラマブルゲートアレイ又は任意の他の処理要素を含んでよい。構造上、マイクロ構造上、熱、電力消費特性等を含むメリットのメトリクスの範囲に関して、処理要素1070と1080の間に様々な差異が存在する可能性がある。これらの差異は、処理要素1070と1080の間の非対称性及び異種性として効果的に現れる可能性がある。少なくとも1つの実施形態について、様々な処理要素1070、1080が同じダイパッケージ内に存在してよい。
第1処理要素1070は、メモリコントローラロジック(MC)1072と、ポイントツーポイント(P−P)インタフェース1076及び1078を更に含んでよい。同様に、第2処理要素1080は、MC1082と、P−Pインタフェース1086及び1088を含んでよい。図13に図示されているように、MC1072及び1082は、プロセッサを、それぞれのメモリ、すなわちメモリ1032及びメモリ1034に結合する。メモリ1032及びメモリ1034は、それぞれのプロセッサにローカルに取り付けられるメインメモリの一部であってよい。MC1072及び1082は、処理要素1070、1080に一体化されるように図示されているが、代替的な実施形態では、MCロジックは、処理要素1070、1080の中に一体化されるのではなく、処理要素1070、1080の外部にある別個のロジックであってよい。
第1処理要素1070及び第2処理要素1080は、それぞれ、P−P相互接続1076、1086を介してI/Oサブシステム1090に結合されてよい。図14に図示されるように、I/Oサブシステム1090は、P−Pインタフェース1094及び1098を含む。さらに、I/Oサブシステム1090は、I/Oサブシステム1090を高性能グラフィクスエンジン1038に結合するインタフェース1092を含む。一実施形態において、バス1049を使用してグラフィクスエンジン1038をI/Oサブシステム1090に結合してもよい。あるいは、ポイントツーポイント相互接続がこれらのコンポーネントを結合してもよい。
次に、I/Oサブシステム1090は、インタフェース1096を介して第1バス1016に結合されてよい。一実施形態において、第1バス1016は、周辺コンポーネント相互接続(PCI)バス又はPCIエクスプレスバスや別の第三世代I/O相互接続バスのようなバスであり得るが、実施形態の範囲はそのように限定されない。
図13に図示されるように、様々なI/Oデバイス1014(例えばバイオメトリックスキャナ、スピーカ、カメラ、センサ)が、第1バス1016を第2バス1020に結合し得るバスブリッジ1018とともに、第1バス1016に結合されてよい。一実施形態において、第2バス1020は、ローピンカウント(LPC:low pin count)バスであってよい。一実施形態では、例えばキーボード/マウス1012、通信デバイス1026及びコード1030を含み得るディスクドライブや他の大容量ストレージデバイスのようなデータストレージユニット1019を含む、様々なデバイスが第2バス1020に結合されてよい。図示されるコード1030は、既に議論した方法60(図4)、方法70(図5)、方法100(図7)、方法120(図8)、方法130(図9A)及び/又は方法140(図9B)のうちの1つ以上の態様を実装し得る。さらに、オーディオI/O1024が第2バス1020に結合されてよく、バッテリ1010は、コンピューティングシステム1000に電力を供給してよい。
他の実施形態も考えられることに留意されたい。例えば図13のポイントツーポイント構造の代わりに、システムは、マルチドロップバスや別のそのような通信トポロジを実装してもよい。また、図13の要素は、代替的に、図13に図示されるものよりも多くの又は少ない集積回路を使用して分割されてもよい。
追加の注記及び例
例1は、性能強化されたコンピューティングシステムであって、ネットワークコントローラと、ネットワークコントローラに結合されたプロセッサと、プロセッサに結合されたメモリと、を備え、メモリは、プロセッサによって実行されると、当該コンピューティングシステムに、アプリケーション内のクラウドサービスコールを検出させ、ここで、プラットフォーム固有パラメータは、クラウドサービスコール内では指定されず、クラウドサービスコールに関連付けられる1つ以上の性能制約と、第1クラウドプラットフォームに関連付けられるパラメータの第1セットに基づいて、第1クラウドプラットフォームを選択させ、クラウドサービスコールとパラメータの第1セットに基づいて、第1プラットフォーム固有サービスコールを自動的に生成させる、実行可能プログラム命令のセットを備える、コンピューティングシステムを含む。
例2は、例1のコンピューティングシステムを含み、命令は実行されると、当該コンピューティングシステムに、クラウドサービスコールを第1プラットフォーム固有サービスコールにマップさせる。
例3は、例1又は例2のコンピューティングシステムを含み、命令は実行されると、当該コンピューティングシステムに更に、1つ以上の性能制約と、第2クラウドプラットフォームに関連付けられるパラメータの第2セットに基づいて、第2クラウドプラットフォームを選択させ、クラウドサービスコールとパラメータの第2セットに基づいて、第2プラットフォーム固有サービスコールを自動的に生成させ、クラウドサービスコールを第2プラットフォーム固有サービスコールにマップさせる。
例4は、例3のコンピューティングシステムを含み、命令は実行されると、当該コンピューティングシステムに更に、第1クラウドプラットフォームから第2クラウドプラットフォームへの状態データの転送を実施させる。
例5は、例4のコンピューティングシステムを含み、命令は実行されると、当該コンピューティングシステムに更に、ビットマップを介して転送を追跡させる。
例6は、例4のコンピューティングシステムを含み、命令は実行されると、当該コンピューティングシステムに更に、クラウドサービスコールのランタイムインスタンスを検出させ、ランタイムインスタンスに応答して、転送のステータスに基づいて、第1プラットフォーム固有サービスコール又は第2プラットフォーム固有サービスコールのうちの1つ以上を選択的に発行(issue)させる。
例7は、半導体装置であって、1つ以上の基板と、1つ以上の基板に結合されたロジックと、を備え、ロジックは、少なくとも部分的に、構成可能ロジック又は固定機能ハードウェアロジックのうちの1つ以上で実装され、1つ以上の基板に結合されたロジックは、アプリケーション内のクラウドサービスコールを検出し、ここで、プラットフォーム固有パラメータは、クラウドサービスコール内では指定されず、クラウドサービスコールに関連付けられる1つ以上の性能制約と、第1クラウドプラットフォームに関連付けられるパラメータの第1セットに基づいて、第1クラウドプラットフォームを選択し、クラウドサービスコールとパラメータの第1セットに基づいて、第1プラットフォーム固有サービスコールを自動的に生成する、半導体装置を含む。
例8は、例7の半導体装置を含み、1つ以上の基板に結合されたロジックは、クラウドサービスコールを第1プラットフォーム固有サービスコールにマップする。
例9は、例7又は例8の半導体装置を含み、1つ以上の基板に結合されたロジックは、1つ以上の性能制約と、第2クラウドプラットフォームに関連付けられるパラメータの第2セットに基づいて、第2クラウドプラットフォームを選択し、クラウドサービスコールとパラメータの第2セットに基づいて、第2プラットフォーム固有サービスコールを自動的に生成し、クラウドサービスコールを第2プラットフォーム固有サービスコールにマップする。
例10は、例9の半導体装置を含み、1つ以上の基板に結合されたロジックは、第1クラウドプラットフォームから第2クラウドプラットフォームへの状態データの転送を実施する。
例11は、例10の半導体装置を含み、1つ以上の基板に結合されたロジックは、ビットマップを介して転送を追跡する。
例12は、例10の半導体装置を含み、1つ以上の基板に結合されたロジックは、クラウドサービスコールのランタイムインスタンスを検出し、ランタイムインスタンスに応答して、転送のステータスに基づいて、第1プラットフォーム固有サービスコール又は第2プラットフォーム固有サービスコールのうちの1つ以上を選択的に発行する。
例13は、コンピューティングシステムによって実行されると、該コンピューティングシステムに、アプリケーション内のクラウドサービスコールを検出させ、ここで、プラットフォーム固有パラメータは、クラウドサービスコール内では指定されず、クラウドサービスコールに関連付けられる1つ以上の性能制約と、第1クラウドプラットフォームに関連付けられるパラメータの第1セットに基づいて、第1クラウドプラットフォームを選択させ、クラウドサービスコールとパラメータの第1セットに基づいて、第1プラットフォーム固有サービスコールを自動的に生成させる、実行可能プログラム命令のセットを備える、少なくとも1つのコンピュータ読取可能記憶媒体を含む。
例14は、例13の少なくとも1つのコンピュータ読取可能媒体を含み、命令は実行されると、コンピューティングシステムに、クラウドサービスコールを第1プラットフォーム固有サービスコールにマップさせる。
例15は、例13の少なくとも1つのコンピュータ読取可能媒体を含み、命令は実行されると、コンピューティングシステムに更に、1つ以上の性能制約と、第2クラウドプラットフォームに関連付けられるパラメータの第2セットに基づいて、第2クラウドプラットフォームを選択させ、クラウドサービスコールとパラメータの第2セットに基づいて、第2プラットフォーム固有サービスコールを自動的に生成させ、クラウドサービスコールを第2プラットフォーム固有サービスコールにマップさせる。
例16は、例15の少なくとも1つのコンピュータ読取可能媒体を含み、命令は実行されると、コンピューティングシステムに更に、第1クラウドプラットフォームから第2クラウドプラットフォームへの状態データの転送を実施させる。
例17は、例16の少なくとも1つのコンピュータ読取可能媒体を含み、命令は実行されると、コンピューティングシステムに更に、ビットマップを介して転送を追跡させる。
例18は、例16の少なくとも1つのコンピュータ読取可能媒体を含み、命令は実行されると、コンピューティングシステムに更に、クラウドサービスコールのランタイムインスタンスを検出させ、ランタイムインスタンスに応答して、転送のステータスに基づいて、第1プラットフォーム固有サービスコール又は第2プラットフォーム固有サービスコールのうちの1つ以上を選択的に発行させる。
例19は、性能強化されたコンピューティングシステムを動作させる方法を含み、当該方法は、アプリケーション内のクラウドサービスコールを検出するステップであって、プラットフォーム固有パラメータは、クラウドサービスコール内では指定されない、ステップと、クラウドサービスコールに関連付けられる1つ以上の性能制約と、第1クラウドプラットフォームに関連付けられるパラメータの第1セットに基づいて、第1クラウドプラットフォームを選択するステップと、クラウドサービスコールとパラメータの第1セットに基づいて、第1プラットフォーム固有サービスコールを自動的に生成するステップと、を含む。
例20は、例19の方法を含み、クラウドサービスコールを第1プラットフォーム固有サービスコールにマップするステップを更に含む。
例21は、例19又は例20の方法を含み、1つ以上の性能制約と、第2クラウドプラットフォームに関連付けられるパラメータの第2セットに基づいて、第2クラウドプラットフォームを選択するステップと、クラウドサービスコールとパラメータの第2セットに基づいて、第2プラットフォーム固有サービスコールを自動的に生成するステップと、クラウドサービスコールを第2プラットフォーム固有サービスコールにマップするステップと、を更に含む。
例22は、例21の方法を含み、第1クラウドプラットフォームから第2クラウドプラットフォームへの状態データの転送を実施するステップを更に含む。
例23は、例22の方法を含み、ビットマップを介して転送を追跡するステップを更に含む。
例24は、例22の方法を含み、クラウドサービスコールのランタイムインスタンスを検出するステップと、ランタイムインスタンスに応答して、転送のステータスに基づいて、第1プラットフォーム固有サービスコール又は第2プラットフォーム固有サービスコールのうちの1つ以上を選択的に発行するステップとを更に含む。
例25は、例19乃至例24のいずれかに記載の方法を実行するための手段を含む。
したがって、本明細書で説明される技術は、一般クラウドサービスと、アプリケーション又はその一部を透過的に移動させて異なるクラウドベンダサービスからの利益を受けるランタイムを対象とする、統一プログラミングインタフェースを提供する。クラウドアプリケーション開発者は、本明細書で説明されるように、一般クラウドサービスAPIを使用して、それらのコードを一度書き込むことができる。ランタイムは、一般APIを(例えばベンダのプールから選択している)利用可能/最適クラウドサービスに移植/マップしてよい。ランタイムは、サービスを中断することなく、あるクラウドベンダから別のクラウドベンダへの、アプリケーション又は固有モジュールの段階的な移行も提供し得る。
実施形態は、すべてのタイプの半導体集積回路(「IC」)チップでの使用に適用可能である。これらのICチップの例は、これらに限定されないが、プロセッサ、コントローラ、チップセットコンポーネント、プログラマブルゲートアレイ(PLA)、メモリチップ、ネットワークチップ、システムオンチップ(SoC)、SSD/NANDコントローラASIC等を含む。加えて、図面の一部において、信号線がラインで表されている。いくつかは、更なる構成信号経路を示すよう異なる可能性があり、複数の構成信号経路を示すよう数字ラベルを有することがあり、かつ/又は主な情報の流れの方向を示すように1つ以上の端部に矢印を示すことがある。しかしながら、これは、限定するように解釈されるべきではない。むしろ、そのような追加の詳細は、回路のより容易な理解を促進するために、1つ以上の例示の実施形態に関連して使用されていることがある。表されているいずれかの信号線は実際には、追加の情報を有するか否かに関わらず、複数の方向に進む可能性があり、かつ任意の適切なタイプの信号スキームで実装される可能性がある1つ以上の信号、例えば異なるペアで実装されるデジタル又はアナログ線、光ファイバ線及び/又はシングルエンド線を含んでよい。
例示のサイズ/モデル/値/範囲が与えられていることがあるが、実施形態は同じものに限定されない。製造技術(例えばフォトリソグラフィ)が経時的に成熟すると、より小さいサイズのデバイスを製造することができると予測される。加えて、ICチップ及び他のコンポーネントへの周知の電力/設置接続は、図示及び議論の容易性のため、そして実施形態の特定の態様をあいまいにしないようにするために、図面に示されていることも示されていないこともある。さらに、配置が、ブロック図の形式で示されていることがあるが、これは、実施形態をあいまいにすることを避けるため、また、ブロック図配置の実装に関する具体性が、実施形態が実装されるコンピューティングシステムに大きく依存する、すなわち、そのような具体性は、十分に当業者の範囲内にあるべきである、という事実の観点からである。例示の実施形態を記述するために具体的な詳細(例えば回路)が説明されるが、当業者には、それらの具体的な詳細なしに又はそのバリエーションを用いて実施形態を実施することができることが明らかであるべきである。したがって、説明は、限定ではなく、例示として解釈されるべきである。
「結合される」という用語は、本明細書では、問題となっているコンポーネント間の任意のタイプの関係、すなわち直接又は間接的なものを指すように使用されてよく、電気、機械、流体、光、電磁気、電気機械又は他の接続に適用してよい。加えて、「第1」、「第2」等の用語は、本明細書では、議論を容易にするためだけに使用され得、特段の記載がない限り、特定の時間的又は年代的重要性を伝え得ない。
本明細書及び特許請求の範囲で使用されるとき、「のうちの1つ以上」という用語によって連結されるアイテムのリストは、列挙される用語の任意の組合せを意味してよい。例えば「A、B又はCのうちの1つ以上」というフレーズは、A;B;C;A及びB;A及びC;B及びC;又はA、B及びCを意味してよい。
当業者は、前述の説明から、実施形態の広範な技術を様々な形式で実装することができることを認識するであろう。したがって、実施形態は、それらの特定の例に関連して説明されているが、図面、明細書及び以下の特許請求の範囲の教示から他の修正が当業者に明らかになるので、実施形態の真の範囲はそのように限定されるべきではない。

Claims (31)

  1. コンピューティングシステムであって:
    ネットワークコントローラと;
    前記ネットワークコントローラに結合されたプロセッサと;
    前記プロセッサに結合されたメモリと;
    を備え、前記メモリは、前記プロセッサによって実行されると、当該コンピューティングシステムに、
    アプリケーション内のクラウドサービスコールを検出させ、ここで、プラットフォーム固有パラメータは、前記クラウドサービスコール内では指定されず、
    前記クラウドサービスコールに関連付けられる1つ以上の性能制約と、第1クラウドプラットフォームに関連付けられるパラメータの第1セットに基づいて、前記第1クラウドプラットフォームを選択させ、
    前記クラウドサービスコールと前記パラメータの第1セットに基づいて、第1プラットフォーム固有サービスコールを自動的に生成させる、
    実行可能プログラム命令のセットを備える、
    コンピューティングシステム。
  2. 前記命令は実行されると、当該コンピューティングシステムに、前記クラウドサービスコールを前記第1プラットフォーム固有サービスコールにマップさせる、
    請求項1に記載のコンピューティングシステム。
  3. 前記命令は実行されると、当該コンピューティングシステムに更に、
    前記1つ以上の性能制約と、第2クラウドプラットフォームに関連付けられるパラメータの第2セットに基づいて、前記第2クラウドプラットフォームを選択させ、
    前記クラウドサービスコールと前記パラメータの第2セットに基づいて、第2プラットフォーム固有サービスコールを自動的に生成させ、
    前記クラウドサービスコールを前記第2プラットフォーム固有サービスコールにマップさせる、
    請求項1又は2に記載のコンピューティングシステム。
  4. 前記命令は実行されると、当該コンピューティングシステムに更に、前記第1クラウドプラットフォームから前記第2クラウドプラットフォームへの状態データの転送を実施させる、
    請求項3に記載のコンピューティングシステム。
  5. 前記命令は実行されると、当該コンピューティングシステムに更に、ビットマップを介して前記転送を追跡させる、
    請求項4に記載のコンピューティングシステム。
  6. 前記命令は実行されると、当該コンピューティングシステムに更に、
    前記クラウドサービスコールのランタイムインスタンスを検出させ、
    前記ランタイムインスタンスに応答して、前記転送のステータスに基づいて、前記第1プラットフォーム固有サービスコール又は前記第2プラットフォーム固有サービスコールのうちの1つ以上を選択的に発行させる、
    請求項4に記載のコンピューティングシステム。
  7. 半導体装置であって:
    1つ以上の基板と;
    前記1つ以上の基板に結合されたロジックと;
    を備え、前記ロジックは、少なくとも部分的に、構成可能ロジック又は固定機能ハードウェアロジックのうちの1つ以上で実装され、前記1つ以上の基板に結合された前記ロジックは、
    アプリケーション内のクラウドサービスコールを検出し、ここで、プラットフォーム固有パラメータは、前記クラウドサービスコール内では指定されず、
    前記クラウドサービスコールに関連付けられる1つ以上の性能制約と、第1クラウドプラットフォームに関連付けられるパラメータの第1セットに基づいて、前記第1クラウドプラットフォームを選択し、
    前記クラウドサービスコールと前記パラメータの第1セットに基づいて、第1プラットフォーム固有サービスコールを自動的に生成する、
    半導体装置。
  8. 前記1つ以上の基板に結合された前記ロジックは、前記クラウドサービスコールを前記第1プラットフォーム固有サービスコールにマップする、
    請求項7に記載の半導体装置。
  9. 前記1つ以上の基板に結合された前記ロジックは、
    前記1つ以上の性能制約と、第2クラウドプラットフォームに関連付けられるパラメータの第2セットに基づいて、前記第2クラウドプラットフォームを選択し、
    前記クラウドサービスコールと前記パラメータの第2セットに基づいて、第2プラットフォーム固有サービスコールを自動的に生成し、
    前記クラウドサービスコールを前記第2プラットフォーム固有サービスコールにマップする、
    請求項7又は8に記載の半導体装置。
  10. 前記1つ以上の基板に結合された前記ロジックは、前記第1クラウドプラットフォームから前記第2クラウドプラットフォームへの状態データの転送を実施する、
    請求項9に記載の半導体装置。
  11. 前記1つ以上の基板に結合された前記ロジックは、ビットマップを介して前記転送を追跡する、
    請求項10に記載の半導体装置。
  12. 前記1つ以上の基板に結合された前記ロジックは、
    前記クラウドサービスコールのランタイムインスタンスを検出し、
    前記ランタイムインスタンスに応答して、前記転送のステータスに基づいて、前記第1プラットフォーム固有サービスコール又は前記第2プラットフォーム固有サービスコールのうちの1つ以上を選択的に発行する、
    請求項10に記載の半導体装置。
  13. コンピューティングシステムによって実行されると、該コンピューティングシステムに、
    アプリケーション内のクラウドサービスコールを検出させ、ここで、プラットフォーム固有パラメータは、前記クラウドサービスコール内では指定されず、
    前記クラウドサービスコールに関連付けられる1つ以上の性能制約と、第1クラウドプラットフォームに関連付けられるパラメータの第1セットに基づいて、前記第1クラウドプラットフォームを選択させ、
    前記クラウドサービスコールと前記パラメータの第1セットに基づいて、第1プラットフォーム固有サービスコールを自動的に生成させる、
    コンピュータプログラム。
  14. 前記コンピューティングシステムに、前記クラウドサービスコールを前記第1プラットフォーム固有サービスコールにマップさせる、
    請求項13に記載のコンピュータプログラム。
  15. 前記コンピューティングシステムに更に、
    前記1つ以上の性能制約と、第2クラウドプラットフォームに関連付けられるパラメータの第2セットに基づいて、前記第2クラウドプラットフォームを選択させ、
    前記クラウドサービスコールと前記パラメータの第2セットに基づいて、第2プラットフォーム固有サービスコールを自動的に生成させ、
    前記クラウドサービスコールを前記第2プラットフォーム固有サービスコールにマップさせる、
    請求項13又は14に記載のコンピュータプログラム。
  16. 前記コンピューティングシステムに更に、前記第1クラウドプラットフォームから前記第2クラウドプラットフォームへの状態データの転送を実施させる、
    請求項15に記載のコンピュータプログラム。
  17. 前記コンピューティングシステムに更に、ビットマップを介して前記転送を追跡させる、
    請求項16に記載のコンピュータプログラム。
  18. 前記コンピューティングシステムに更に、
    前記クラウドサービスコールのランタイムインスタンスを検出させ、
    前記ランタイムインスタンスに応答して、前記転送のステータスに基づいて、前記第1プラットフォーム固有サービスコール又は前記第2プラットフォーム固有サービスコールのうちの1つ以上を選択的に発行させる、
    請求項16に記載のコンピュータプログラム。
  19. アプリケーション内のクラウドサービスコールを検出するステップであって、プラットフォーム固有パラメータは、前記クラウドサービスコール内では指定されない、ステップと、
    前記クラウドサービスコールに関連付けられる1つ以上の性能制約と、第1クラウドプラットフォームに関連付けられるパラメータの第1セットに基づいて、前記第1クラウドプラットフォームを選択するステップと、
    前記クラウドサービスコールと前記パラメータの第1セットに基づいて、第1プラットフォーム固有サービスコールを自動的に生成するステップと、
    を含む、方法。
  20. 前記クラウドサービスコールを前記第1プラットフォーム固有サービスコールにマップするステップ、
    を更に含む、請求項19に記載の方法。
  21. 前記1つ以上の性能制約と、第2クラウドプラットフォームに関連付けられるパラメータの第2セットに基づいて、前記第2クラウドプラットフォームを選択するステップと、
    前記クラウドサービスコールと前記パラメータの第2セットに基づいて、第2プラットフォーム固有サービスコールを自動的に生成するステップと、
    前記クラウドサービスコールを前記第2プラットフォーム固有サービスコールにマップするステップと、
    を更に含む、請求項19又は20に記載の方法。
  22. 前記第1クラウドプラットフォームから前記第2クラウドプラットフォームへの状態データの転送を実施するステップ、
    を更に含む、請求項21に記載の方法。
  23. ビットマップを介して前記転送を追跡するステップ、
    を更に含む、請求項22に記載の方法。
  24. 前記クラウドサービスコールのランタイムインスタンスを検出するステップと、
    前記ランタイムインスタンスに応答して、前記転送のステータスに基づいて、前記第1プラットフォーム固有サービスコール又は前記第2プラットフォーム固有サービスコールのうちの1つ以上を選択的に発行するステップと、
    を更に含む、請求項22に記載の方法。
  25. 半導体装置であって、
    アプリケーション内のクラウドサービスコールを検出するための手段であって、プラットフォーム固有パラメータは、前記クラウドサービスコール内では指定されない、手段と、
    前記クラウドサービスコールに関連付けられる1つ以上の性能制約と、第1クラウドプラットフォームに関連付けられるパラメータの第1セットに基づいて、前記第1クラウドプラットフォームを選択するための手段と、
    前記クラウドサービスコールと前記パラメータの第1セットに基づいて、第1プラットフォーム固有サービスコールを自動的に生成するための手段と、
    を含む、半導体装置。
  26. 前記クラウドサービスコールを前記第1プラットフォーム固有サービスコールにマップするための手段、
    を更に含む、請求項25に記載の半導体装置。
  27. 前記1つ以上の性能制約と、第2クラウドプラットフォームに関連付けられるパラメータの第2セットに基づいて、前記第2クラウドプラットフォームを選択するための手段と、
    前記クラウドサービスコールと前記パラメータの第2セットに基づいて、第2プラットフォーム固有サービスコールを自動的に生成するための手段と、
    前記クラウドサービスコールを前記第2プラットフォーム固有サービスコールにマップするための手段と、
    を更に含む、請求項25又は26に記載の半導体装置。
  28. 前記第1クラウドプラットフォームから前記第2クラウドプラットフォームへの状態データの転送を実施するための手段、
    を更に含む、請求項27に記載の半導体装置。
  29. ビットマップを介して前記転送を追跡するための手段、
    を更に含む、請求項28に記載の半導体装置。
  30. 前記クラウドサービスコールのランタイムインスタンスを検出するための手段と、
    前記ランタイムインスタンスに応答して、前記転送のステータスに基づいて、前記第1プラットフォーム固有サービスコール又は前記第2プラットフォーム固有サービスコールのうちの1つ以上を選択的に発行するための手段と、
    を更に含む、請求項28に記載の半導体装置。
  31. 請求項13乃至18のいずれか一項に記載のコンピュータプログラムを記憶する少なくとも1つのコンピュータ読取可能記憶媒体。
JP2020153484A 2019-12-20 2020-09-14 ファンクション・アズ・ア・サービスコンピューティングのための統一プログラミングモデル Pending JP2021099782A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/722,811 2019-12-20
US16/722,811 US12045677B2 (en) 2019-12-20 2019-12-20 Unified programming model for function as a service computing

Publications (1)

Publication Number Publication Date
JP2021099782A true JP2021099782A (ja) 2021-07-01

Family

ID=70325908

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020153484A Pending JP2021099782A (ja) 2019-12-20 2020-09-14 ファンクション・アズ・ア・サービスコンピューティングのための統一プログラミングモデル

Country Status (5)

Country Link
US (1) US12045677B2 (ja)
JP (1) JP2021099782A (ja)
KR (1) KR20210080172A (ja)
CN (1) CN113010235A (ja)
DE (1) DE102020129195A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022210867A1 (ja) 2021-03-31 2022-10-06 日本製鉄株式会社 無方向性電磁鋼板、無方向性電磁鋼板の打ち抜き方法および無方向性電磁鋼板の打ち抜き用金型

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4073988A1 (en) 2019-12-13 2022-10-19 Liveperson, Inc. Function-as-a-service cloud chatbot for two-way communication systems
US20210004276A1 (en) * 2020-09-16 2021-01-07 Intel Corporation Application negotiable resource director technology for efficient platform resource management
US11770455B2 (en) * 2021-12-14 2023-09-26 Cognizant Technology Solutions India Pvt. Ltd. System and method for application migration between cloud platforms
CN117112074B (zh) * 2023-06-19 2024-03-12 领悦数字信息技术有限公司 将http应用自动转换成无服务器函数的方法、***和介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190675B2 (en) * 2010-02-11 2012-05-29 Inditto, Llc Method and system for providing access to remotely hosted services through a normalized application programming interface

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022210867A1 (ja) 2021-03-31 2022-10-06 日本製鉄株式会社 無方向性電磁鋼板、無方向性電磁鋼板の打ち抜き方法および無方向性電磁鋼板の打ち抜き用金型

Also Published As

Publication number Publication date
CN113010235A (zh) 2021-06-22
US12045677B2 (en) 2024-07-23
US20200137163A1 (en) 2020-04-30
KR20210080172A (ko) 2021-06-30
DE102020129195A1 (de) 2021-06-24

Similar Documents

Publication Publication Date Title
JP2021099782A (ja) ファンクション・アズ・ア・サービスコンピューティングのための統一プログラミングモデル
US11422896B2 (en) Technology to enable secure and resilient recovery of firmware data
EP3866003A1 (en) Deployment of bios to operating system data exchange
US20210365804A1 (en) Dynamic ai model transfer reconfiguration to minimize performance, accuracy and latency disruptions
US11520501B2 (en) Automated learning technology to partition computer applications for heterogeneous systems
US10896142B2 (en) Non-volatile memory out-of-band management interface for all host processor power states
US11798118B2 (en) Asset caching in cloud rendering computing architectures
US11297163B2 (en) Scenario profile based partitioning and management of application code
WO2021232396A1 (en) Accelerating system boot times via host-managed device memory
US11249910B2 (en) Initialization and management of class of service attributes in runtime to optimize deep learning training in distributed environments
US11544129B2 (en) Cross-component health monitoring and improved repair for self-healing platforms
US20230041115A1 (en) Implementing external memory training at runtime
TW202143037A (zh) 跨計算平台硬體式抽象共享硬體裝置
WO2021196065A1 (en) Technology to automatically conduct speed switching in processor links without warm resets
TWI845762B (zh) 用於分割異質系統的電腦應用的自動學習科技的系統、半導體設備、方法及儲存媒體
US10761586B2 (en) Computer performance and power consumption optimization
US20230027351A1 (en) Temporal graph analytics on persistent memory
US12008383B2 (en) Hardware directed core parking based on performance and energy efficiency capabilities of processing units and runtime system characteristics
US20220171704A1 (en) Avoidance of garbage collection in high performance memory management systems
CN114064198A (zh) 经由os接口表的单numa域内的多虚拟numa域
CN115039072A (zh) 用于跨服务器阵列分布的功能即服务实现方式的编译

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230912