JP5808424B2 - ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックス - Google Patents

ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックス Download PDF

Info

Publication number
JP5808424B2
JP5808424B2 JP2013543589A JP2013543589A JP5808424B2 JP 5808424 B2 JP5808424 B2 JP 5808424B2 JP 2013543589 A JP2013543589 A JP 2013543589A JP 2013543589 A JP2013543589 A JP 2013543589A JP 5808424 B2 JP5808424 B2 JP 5808424B2
Authority
JP
Japan
Prior art keywords
graphics rendering
graphics
remote client
resource
host
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.)
Expired - Fee Related
Application number
JP2013543589A
Other languages
English (en)
Other versions
JP2014504409A (ja
Inventor
ハミル、ジョン
ボーハン、ロナン
パセット、ダビデ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2014504409A publication Critical patent/JP2014504409A/ja
Application granted granted Critical
Publication of JP5808424B2 publication Critical patent/JP5808424B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/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/5044Allocation 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 hardware capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Image Generation (AREA)

Description

本発明は、ハードウェア・アクセラレーテッド・グラフィックスに関する。特に、本発明は、ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックスに関する。
「クラウド・コンピューティング」は、従来はワークステーション・ベースであったアプリケーション作業負荷を、データ・センタなどの遠隔場所において統合することである。クラウド・コンピューティングは、共有リソース、ソフトウェア及び情報が要求に応じてコンピュータ及び他のデバイスに提供される、ネットワーク・ベースのコンピューティングである。クラウドは、仮想マシン(VM)のオペレーティング・システム上で動作するアプリケーションを含むか、又は、Microsoft Terminal Services(TS)などの同様の環境で動作するアプリケーションからなるものとすることができる(Microsoftは、米国、他の国々又はその両方におけるMicrosoft Corporationの商標である)。クラウド・コンピューティングの利点は、クラウド・コンピューティングが、ハードウェア及びソフトウェアの集中的な制御及び設定を提供するものであると同時に、リソース及びライセンスの使用の更新及び最大化を容易なものにすることができる点である。
3Dグラフィックスは、複雑なデータを視覚的に表現できるようにする能力を提供する。科学コンピューティング、医療イメージング、コンピュータ支援設計(CAD)、製品ライフサイクル管理(PLM)並びに石油及びガスの探査といった多くの分野において、3Dグラフィックスが広く利用されている。CPU(中央演算処理ユニット)を膨大に使用することなく複雑なシーン及びモデルをレンダリングすることを可能にする3Dグラフィックス・ハードウェアには、特にOpenGL(Open Graphics Library)標準(OpenGLは、Khronos Groupの商標である)及びMicrosoftのDirectX(DirectXは、Microsoft Corporationの商標である)などの標準化された3Dアプリケーション・プログラミング・インターフェース(API)を通じて、アクセスすることができる。
歴史的には、仮想マシンは、3Dグラフィックス・レンダリングのサポートが限定的であった。複雑な3Dのソフトウェア・レンダリングは、CPUに大きな負荷をかけるものであり、仮想化ホストを忙殺させる可能性がある。実際に存在する技術は、ホスト上のローカル・ハードウェアにアクセスすることに限定されており、従って、拡張性が極めて限られたものとなっている。こうしたことから、上述された3Dアプリケーションのカテゴリは、典型的には、このような環境における動作から除外されてきた。
本発明の第1の態様によれば、ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックスを提供する方法であって、ホスト上で提供されていないハードウェア・アクセラレーテッド・グラフィックスを必要とするネットワーク対応アプリケーションを、ホスト上で提供することと、ホストにおいて、3Dグラフィックス・レンダリング・リソースをブローカに接続するための3Dライブラリ・ラッパーを提供することと、ブローカにおいて、3Dグラフィックス・レンダリング・リソースについての要求を受信することと、最終的な2Dレンダリング済み画像を遠隔クライアントに戻すために、ブローカが、利用可能な3Dグラフィックス・レンダリング・リソースを評価し、1つの3Dグラフィックス・レンダリング・リソースを3Dライブラリ・ラッパーに割り当てることと、を含む方法が提供される。
好ましくは、本発明は、ネットワーク対応アプリケーションが、ホスト上の仮想マシンで実行され、遠隔クライアントによってアクセスされる方法を提供する。
好ましくは、本発明は、ネットワーク対応アプリケーションが、ホスト上の端末サービス・セッションで実行され、遠隔クライアントによってアクセスされる方法を提供する。
好ましくは、本発明は、3Dライブラリ・ラッパー及び選択された3Dグラフィックス・レンダリング・リソースが接続してグラフィカル呼び出しを送信することを含む方法を提供する。
好ましくは、本発明は、遠隔クライアントに転送するために、最終的なレンダリング済み画像を、選択された3Dグラフィックス・レンダリング・リソースから3Dライブラリ・ラッパーに送信することを含む方法を提供する。
好ましくは、本発明は、3Dライブラリ・ラッパーが、3Dグラフィックス・レンダリング・リソースに直接接続情報を提供することと、選択された3Dグラフィックス・レンダリング・リソースが、最終的なレンダリング済み画像を遠隔クライアントに直接送信することと、を含む方法を提供する。
好ましくは、本発明は、複数の3Dグラフィックス・レンダリング・リソースが、1つ又は複数のホスト上の複数の仮想マシン又は端末サービス・セッションが利用可能なネットワーク・コンピューティング・アーキテクチャ内に設けられた仮想化グラフィックス・サーバとして提供される方法を提供する。
好ましくは、本発明は、ブローカが、3Dグラフィックス・レンダリング・リソースを監視し、リソース優先順位キューを更新することを含む方法を提供する。
好ましくは、本発明は、ブローカが、遠隔クライアントについての直接接続情報が提供されているかどうかを判定することと、遠隔クライアントについての直接接続情報が存在する場合には、選択された3Dグラフィックス・レンダリング・リソースに、遠隔クライアントとの直接接続を行うように命令することと、を含む方法を提供する。
好ましくは、本発明は、ブローカが、選択された3Dグラフィックス・レンダリング・リソースと遠隔クライアントとの間の直接通信と、3Dライブラリ・ラッパーを介した通信との間のモード変更要求を監視することと、必要に応じてモードを変更することと、を含む方法を提供する。
好ましくは、本発明は、3Dグラフィックス呼び出しを、3Dライブラリ・ラッパーと選択された3Dグラフィックス・レンダリング・リソースとの間の中立形式に修正することを含む方法を提供する。
好ましくは、本発明は、グラフィックス・レンダリングをホストから分離することによって、プラットフォームに依存しないグラフィックス・リソースの拡張性を可能にする、請求項1に記載の方法を提供する。
本発明の第2の態様によれば、ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックスを提供するコンピュータ・ソフトウェア製品であって、コンピュータ可読プログラム・コードが具体化されたコンピュータ可読ストレージ媒体を含み、コンピュータ可読プログラム・コードは、ホスト上で提供されていないハードウェア・アクセラレーテッド・グラフィックスを必要とするネットワーク対応アプリケーションを、ホスト上で提供し、ホストにおいて、3Dグラフィックス・レンダリング・リソースをブローカに接続するための3Dライブラリ・ラッパーを提供し、ブローカにおいて、3Dグラフィックス・レンダリング・リソースについての要求を受信し、最終的な2Dレンダリング済み画像を遠隔クライアントに戻すために、利用可能な3Dグラフィックス・レンダリング・リソースを評価して、選択された3Dグラフィックス・レンダリング・リソースを3Dライブラリ・ラッパーに割り当てるように構成された、コンピュータ・ソフトウェア製品が提供される。
好ましくは、本発明は、3Dライブラリ・ラッパーが、ライブラリ呼び出しをブローカに向けるプロキシ・ライブラリ・ラッパーであるシステムを提供する。
好ましくは、本発明は、アプリケーションが、ホスト上の仮想マシン上で実行され、遠隔クライアントによってアクセスされるシステムを提供する。
好ましくは、本発明は、アプリケーションが、ホスト上の端末サービス・セッション上で実行され、遠隔クライアントによってアクセスされるシステムを提供する。
好ましくは、本発明は、ブローカが、仮想化された3Dグラフィックス・レンダリング・リソースを評価し、これをネットワーク対応環境内の複数のホストに割り当てるシステムを提供する。
好ましくは、本発明は、3Dライブラリ・ラッパーと選択された3Dグラフィックス・レンダリング・リソースとの間に、中立のグラフィカル呼び出しを送信する通信機構を含むシステムを提供する。
好ましくは、本発明は、選択された3Dグラフィックス・レンダリング・リソースから遠隔クライアントへの直接通信機構を含むシステムを提供する。
好ましくは、本発明は、ブローカが、3Dグラフィックス・レンダリング・リソースを監視し、リソース優先順位キューを更新するシステムを提供する。
好ましくは、本発明は、ブローカが、遠隔クライアントについての直接接続情報が提供されているかどうかを判定し、遠隔クライアントについての直接接続情報が存在する場合には、選択された3Dグラフィックス・レンダリング・リソースに、遠隔クライアントとの直接接続を行うように命令するシステムを提供する。
好ましくは、本発明は、ブローカが、選択された3Dグラフィックス・レンダリング・リソースと遠隔クライアントと間の直接通信と、3Dライブラリ・ラッパーを介した通信との間のモード変更要求を監視し、必要に応じてモードを変更するシステムを提供する。
好ましくは、本発明は、グラフィックス・レンダリングをホストから分離することによって、プラットフォームに依存しないグラフィックス・リソースの拡張性を可能にするシステムを提供する。
好ましくは、本発明は、遠隔クライアントがシンクライアントであり、システムが複数の接続プロトコルをサポートするシステムを提供する。
好ましくは、本発明は、遠隔クライアントが、選択された3Dグラフィックス・レンダリング・リソースからレンダリング済み画像を直接受信し、その画像をクライアントにおいて合成するシステムを提供する。
好ましくは、本発明は、ホストが、複数の仮想マシンをホストし、レンダリング済み画像をローカルに表示するシステムを提供する。
本発明の第3の態様によれば、ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックスを提供するサービスを、ネットワーク上で顧客に提供する方法であって、ホスト上で提供されていないハードウェア・アクセラレーテッド・グラフィックスを必要とするネットワーク対応アプリケーションを、ホスト上で提供することと、ホストにおいて、3Dグラフィックス・レンダリング・リソースをブローカに接続するための3Dライブラリ・ラッパーを提供することと、ブローカにおいて、3Dグラフィックス・レンダリング・リソースについての要求を受信することと、最終的な2Dレンダリング済み画像を遠隔クライアントに戻すために、ブローカが、利用可能な3Dグラフィックス・レンダリング・リソースを評価し、1つの3Dグラフィックス・レンダリング・リソースを3Dライブラリ・ラッパーに割り当てることと、を含む方法が提供される。
本発明の第4の態様によれば、ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックスを提供するシステムであって、ホスト上で提供されていないハードウェア・アクセラレーテッド・グラフィックスを必要とするアプリケーションと該アプリケーションのための3Dライブラリ・ラッパーとを有するホストと、ホストとは独立に提供される1つ又は複数の3Dグラフィックス・レンダリング・リソースと、最終的な2Dレンダリング済み画像を遠隔クライアントに戻すために、選択された3Dグラフィックス・レンダリング・リソースを評価し、これをアプリケーションのための3Dライブラリ・ラッパーに割り当てるブローカと、を含むシステムが提供される。
第5の態様から見ると、本発明は、コンピュータ・システム内にロードされて実行されたときに、上述の方法のステップの全てを行うためのコンピュータ・プログラム・コードを含むコンピュータ・プログラムが提供される。
発明として見なされる主題は、本明細書の結論部分において具体的に指摘され、明確に請求される。本発明は、その目的、特徴、及び利点と共に、操作の機構及び方法の両方について、添付の図面と併せて読むときに以下の詳細な説明を参照することによって最も良く理解される。
本発明の好ましい一実施形態によるシステムのブロック図である。 本発明の好ましい一実施形態による図1のシステムの更なる詳細を示すブロック図である。 本発明の好ましい一実施形態による方法を示すフロー図である。 本発明の好ましい一実施形態による方法を示すフロー付きシステム図である。 本発明の好ましい実施形態による方法のフロー図である。 本発明の好ましい実施形態による方法のフロー図である。 本発明の更なる一態様による方法のフロー図である。 本発明を実装することができるコンピュータ・システムのブロック図である。 本発明を実装することができるクラウド・コンピューティング環境の概略図である。 本発明を実装することができるクラウド・コンピューティング環境の層の概略図である。
ここで、本発明の好ましい一実施形態が、添付の図面を参照して、一例として説明される。
図面内に示される要素は、説明を簡単かつ明確にするために、必ずしも縮尺通りに描かれているわけではないことが認識されるであろう。例えば、図面内の幾つかの要素は、明確にするために、他の要素と比べて誇張されている場合がある。さらに、適切であると考えられる場合には、対応する特徴又は類似する特徴を示すために、図面間で参照符号が繰り返されることがある。
以下の詳細な説明においては、本発明が完全に理解されるように、多くの特定の詳細が示される。しかしながら、当業者であれば、本発明はこれらの特定の詳細がなくても実施できることが分かるであろう。他の例においては、本発明を不明瞭にしないように、周知の方法、手順、及び構成要素は詳細に説明されない。
説明される方法及びシステムによって、ハードウェアとソフトウェアとの統合のクラウドによる利益を3Dアプリケーション空間において活用することができるようになる。
クラウドは、典型的には、複数の仮想マシン(VM)をホストする、単一の場所又は(高速ネットワークによってリンクされた)複数の場所に配置された、物理サーバの集合体である。これらの仮想マシンは、ユーザの視点からはサービスのいかなる中断もなしに、1つの物理ホストから別のホストに移行される場合もある(例えばハードウェア故障の場合)。仮想マシンを用いることによって、複数の作業負荷を同時に処理することができるようになり、CPU(中央演算処理ユニット)又はメモリなどのシステム・リソースをより良好に用いて、依然として作業負荷間の物理的な分離がもたらされる。
同様に、端末サービス(TS)サーバは、単一のシステム上で複数のユーザ・セッションをホストする。遠隔アクセスが、複数の仮想マシンをホストするシステムの場合に類似した方式で行われる。ユーザは、個々の遠隔VMに接続する代わりに、単一のサーバ・マシン上で動作する遠隔TSセッションに接続する。
本明細書の目的上、「クラウド」という用語は、複数の仮想マシンをホストする遠隔システムと、複数の端末サービス・セッションをホストするシステムとの両方を指すものとすることができる。
説明される方法及びシステムは、クラウド・ベースのシステムに拡張可能なGPU(グラフィックス処理ユニット)アクセラレーションを提供することと、3D画像への遠隔アクセスとを組み合わせることを可能にする。クラウド・ベースの3Dアプリケーションが、必要に応じて、任意の大量のグラフィックス・リソースを利用可能にすることができ、結果として得られる3D画像の圧縮及び遠隔ストリーミングを用いることによって、ローカルアプリケーションのユーザ体験がシミュレートされる。
説明される方法及びシステムは、ネットワーク対応アプリケーションとも呼ばれる、クラウド・タイプの遠隔システムにおいて動作するアプリケーションに、ハードウェア・アクセラレーテッド3Dグラフィックスを提供する。このことによって、3Dアプリケーション負荷のための従来の専用ワークステーションの利点と、クラウド展開戦略が提供する拡張性及び融通性とを組み合わせることが可能になる。
図1を参照すると、ブロック図が、説明されるシステム100を示す。クラウド・タイプの遠隔環境110が設けられている。クラウド環境110は、典型的には、複数の仮想マシン又は端末サーバ・セッションをホストする、単一の場所又は高速ネットワークによってリンクされた複数の場所に配置された、物理サーバの集合体である。図1は、複数の仮想マシン(VM)又は端末サービス(TS)セッション121−125を含む物理ホスト120を示す。
遠隔クライアント131、132は、シンクライアントである遠隔アクセス・デバイス及び遠隔アクセス・ソフトウェアを含む遠隔クライアントの実施形態である。例えば、遠隔クライアント131、132は、ラップトップ又はスマートフォン上で動作する、VNC(仮想ネットワーク・コンピューティング)クライアント又はMicrosoft Remote Desktop Protocol(RDP)クライアントとすることができる。これらは、遠隔クライアントの視点から見ると、遠隔マシン上でホストされる遠隔デスクトップ全体に、又は単に遠隔マシンによってエクスポートされる単一のアプリケーションに、アクセスすることができる。ユーザは、専用の遠隔クライアント又はウェブページ・ベースのポータルといった幾つかの方法を通じて、遠隔的にクラウドにアクセスすることができる。この遠隔クライアントのアクセスは、典型的には軽いものであり、遠隔クライアントに代わる実質的なCPUパワー又はメモリを必要とせず、遠隔クライアント側に3Dグラフィックス・ハードウェアを必要とすることもない。
説明されるシステム100は、クラウド環境110内に、3Dグラフィックス・レンダリング・リソース又はグラフィックス・サーバとも呼ばれる(図4においても「レンダリング・リソース」141−144として示されている)、図1に示される1つ又は複数のグラフィック処理ユニット(GPU)プロバイダ141−143を含み、これらは、実際の3Dグラフィックス・ハードウェアを提供して、グラフィックス処理タスクを扱う。
説明されるシステム100はまた、VM又はTMセッション121−125とGPUプロバイダ141−143との間で適切なリソース割り当てを行う、クラウド環境110内に設けられたブローカ150を含む。
クラウド環境110の構成要素は、データ・センタ内で互いに接近して配置することも、高速ネットワークによって接続された別々の場所に配置することもできる。幾つかの構成要素はまた、必要に応じて、他の構成要素と同じ物理ハードウェア内に配置することができる。
GPUプロバイダ141−143の形を取る仮想化されたグラフィックス・ハードウェアが、クラウド環境110内に提供され、VM又はTSセッション121−125からクラウド内で3Dアプリケーションを動作させることが可能になる。
GPUプロバイダ141−143におけるアクセラレーテッド3Dレンダリングをクラウドのホスト120から分離することによって、ホスト・マシンに直接取り付けることができるリソースに限定される他のシステムとは異なり、無制限の拡張性が可能になる。
図2を参照すると、ブロック図が、図1のシステム100の詳細を示す。VM/TSセッション121が、クラウド環境110のホスト120上に示される。VM/TSセッション121は、ネットワーク対応アプリケーションの形態の3Dアプリケーション221と、プロキシ・グラフィックス・ライブラリを提供する3D APIラッパー・ライブラリ(VMライブラリとも呼ばれる)222とを含む。遠隔クライアント131は、3Dアプリケーション221にアクセスすることができる。3D APIラッパー・ライブラリ222は、ブローカ150を呼び出して選択されたGPUプロバイダ141にアクセスするプロキシ・グラフィックス・ライブラリである。
クラウド環境110内の選択されたGPUプロバイダ141は、3D APIホスト241と3Dハードウェア242とを含む。ブローカ150は、VM/TSセッション121と選択されたGPUプロバイダ141との間のリソース割り当てを提供する。
選択されたGPUプロバイダ141の仮想化された3Dハードウェア242は、VM/TSセッション121における3D APIラッパー・ライブラリ222の形態のプロキシ・グラフィックス・ライブラリを介してアクセスされる。
遠隔クライアント131による3Dコンテンツへの遠隔アクセスは、予めレンダリング済みの2D画像を圧縮して、遠隔クライアント131の実施形態であるシンクライアント131にストリーミングすることによって、提供される。これらのコンポーネントの組み合わせは、クラウド環境内でホストされる3Dアプリケーションへの拡張可能な遠隔アクセスの問題を解決する。
3Dグラフィックス・ハードウェアは、表示するために3Dスクリーン記述を2D画像に変換する。この特徴を用いて、3Dシーンの2D画像を選択されたGPUプロバイダ上に生成し、2D画像の圧縮されたストリームが遠隔クライアントに送信される。
説明されるシステムは、ブローカ・システムによって案内されるときに、最終的な画像データをGPUプロバイダから遠隔クライアントに直接経路指定する能力を提供する。これによって、遠隔クライアントに送信されるようにGPUプロバイダから戻される大量のレンダリング済み画像(その各々は、例えば1024×768ピクセルの非圧縮画像の場合には1フレームにつき3MBであり、典型的には毎秒30−60フレーム(fps)で流れる、大規模なデータ・ブロックである)に起因する、仮想マシンのホスト・ステージにおいて形成されるネットワーク・ボトルネックという重大な問題が克服される。ブローカを用いて通信を方向付けして案内することによって、このボトルネックを回避することができるようになり、大規模な拡張性が実用的なものとなる。
説明されるシステムは、通常は3Dハードウェア・アクセラレーションにアクセスできない仮想マシン又は端末サービス・セッションへの3Dハードウェア・リソースの提供と、その3Dハードウェアによって生成される画像への双方向遠隔アクセスとの両方をカバーする。
説明される方法及びシステムは、全てのオペレーティング・システム及び全ての3Dアクセラレーテッド・グラフィックスAPI(OpenGL及びDirect3Dなど(Direct3DはMicrosoft Corporationの商標である))に適用可能である。Microsoft Windows VM(WindowsはMicrosoft Corporationの商標である)がレンダリングのためにLinux(LinuxはLinus Torvaldsの商標である)ベースのGPUプロバイダを使用し、その全てがいずれかの形態のシンクライアント上の遠隔セッションからアクセスされるといった異種環境において、運用することも可能である。さらに、説明される方法及びシステムは、GPUベースのアクセラレーションAPI(例えばCUDA(Compute Unified Device Architecture)(CUDAは、NVIDIA Corporationの商標である)/OpenCL(OpenCLは、Khronos Groupの商標である)/DirectX11 Computeなど)、並びに純粋な3DグラフィックスAPIに、適用可能である。
説明される方法及びシステムによって、プラットフォーム非依存性も提供される。ラッパー・ライブラリ及びGPUプロバイダによって3DグラフィックスAPI呼び出しを中立形式に修正できるようにすることで、オペレーティング・システムの異種構成も可能になる。これによって、どんなオペレーティング・システムも、他のいずれかのオペレーティング・システムを自分のグラフィックス・プロバイダとして用いて、レンダリングすることができるようになる。
説明される方法及びシステムはまた、Type 1及びType 2のハイパーバイザであっても、Microsoft Terminal Services Sessionsであっても、いずれかの現行の仮想化技術に適用可能である。説明される方法及びシステムは、仮想マシンのセッションが関与する場合であろうと、端末サービス・セッションが関与する場合であろうと、同一の方式で運用される。
複数の遠隔クライアント接続プロトコル、例えばVirtual Network Computing(VNC)及びRemote Desktop Protocol(RDP)が、サポートされる。3Dシーンの最終的な2D画像は、別個のネットワーク・チャネルを介して戻され、遠隔クライアントの側で最終的に合成される。遠隔アクセスのために用いられる方法の特徴に関して、特定の依存性は存在しない。
最も重要なことは、説明される方法及びシステムを使用するアプリケーションを変更する必要がないことである。説明されるプロキシ・ラッパー・ライブラリは、プロセス全体がアプリケーションに対して完全に透明であることを保証する。
遠隔クライアント131は、クラウド環境110内でホストされる遠隔システム120に接続する。遠隔クライアント131は、遠隔的に動作している3Dアプリケーションと対話を行う。これは、クライアントの視点からは、事実上、ローカル・アプリケーションのように見える。
VM/TSセッション121上でホストされる3Dアプリケーション221は、スタンドアロンのシステム上で動作しているかのように実行される。3Dグラフィックス呼び出しが行われるときに、3Dアプリケーション221は、3Dライブラリ(例えば、Microsoft Windows上のOpenGL32.DLL、又は、Linux上のlibGL.so)をロードしてグラフィックス機能呼び出しを行うことを試みる。これらの呼び出しは、通常は、ドライバを介して、ディスプレイ上でレンダリングするための適切な3Dハードウェアに経路指定される。その代わりに、説明されるシステム100は、全ての潜在的なレンダリング呼び出しをインターセプトし、それらをプラットフォーム中立形式に変換し、適切な場所でそれらを実行するのに用いられる、ラッパー・ライブラリ222を含む。
ラッパー・ライブラリ222は、ネットワーク接続上でブローカ150と連絡を取る。ブローカ150は、GPUプロバイダ141−143(図1)の集合体に、適切なリソースについて問い合わせを行う。ブローカ150には、特定の要件、具体的には、遠隔クライアント131のIPアドレス又は予測されるGPUメモリの要件などの情報を与えることができる。
ブローカ150は、この情報を、「ラウンドロビン」などの割り当て戦略又はリソース割り当て及び性能評価指標(例えば、GPUメモリ使用率、GPU計算負荷、現在のGPUコア温度など)に基づくより複雑な戦略とともに用いて、適切なGPUプロバイダ141(図4におけるレンダリング・リソース141)を割り当てる(選択する)ことができる。適切なGPUプロバイダが見つけ出されると、ライブラリ・ラッパー222は、適切な個々の選択されたGPUプロバイダ141に接続するように命令される。
ブローカ150は、選択されたGPUプロバイダ141に、遠隔クライアント131への直接接続を確立して完成画像を転送するように指示することができ、このようにして、VM/TSセッション121をバイパスし、ホスト120においてネットワーク・ボトルネックが発生することを防止する。
この従来からのボトルネック(それによって、大量のデータがホストを通して経路指定されなければならない)を回避することによって、説明されるシステムをクラウド・スケールまで成長させることができる。これはまた、フレームの高速配信によって遅延を劇的に改善し、それによって、より双方向的で応答性の高いユーザ経験がもたらされる。
この接続が行われると、3Dアプリケーションは、通常通りレンダリング呼び出しを行う。これらの呼び出しは、ネットワーク上で、関連する選択されたGPUプロバイダ141に転送される。高速ネットワーク・リンクによって、各々のレンダリング呼び出しを低遅延で遠隔的に行うことができるようになる。呼び出しをプラットフォーム中立形式に変換して、LinuxベースのGPUプロバイダを使用するMicrosoft Windows XP Virtual Machineといった、システム内におけるオペレーティング・システムの異種構成を可能にすることができる。
選択されたGPUプロバイダ141によって呼び出しが受信されると、これらの呼び出しは、選択されたGPUプロバイダ141上で動作しているアプリケーションから発信されたかのように、ローカルの3Dハードウェアに送信される。その時点での3D画像フレームが完成すると、その完成した画像は、選択されたGPUプロバイダ141から遠隔クライアント131に直接送信されるか、又はローカル表示のためにネットワークを介してVM/TSセッション121のラッパー・ライブラリ222に戻される。この通信は、VMホスト120が、単に遠隔クライアント131に渡されるだけの大量の戻り画像データで忙殺されないように、ブローカ150によって管理される。
レンダリング済み3D画像は、帯域幅を節約するために必要に応じて圧縮され、ネットワーク・チャネル上で遠隔クライアント131に送信され、そこで復号されてローカルに表示される。既存の遠隔アクセス・ソフトウェア(例えば、VNC又はRDP)を用いてメニュー及びウィンドウ・フレームといった2Dデータを処理し、説明されるコンポーネントが全ての3Dコンテンツを処理することができる。最終的な3D画像は、通常通りに表示される2Dコンテンツとシームレスに統合される。
ユーザは、マウス及びキーボード・イベントを遠隔クライアント131から遠隔3Dアプリケーション221に送信し、それらのイベントは、そこで適切に実行される。ユーザの入力に応答して、さらに画像が生成され、戻される。画像圧縮(インターネット・ビデオ・ストリーミングと同様のもの)及び適度なネットワーク帯域幅を用いて、クラウド・コンピューティングの利点を維持したまま、3Dアプリケーションとの完全な双方向アクセスを達成することができる。
遠隔クライアント131が切断されるか、3Dアプリケーション221が終了すると、選択されたGPUプロバイダ141のリソースが解放され、ブローカ150には、これらのリソースが完全に利用可能になったことを示す信号が送られる。
例えば管理目的などで、ローカル・コンソール・アクセス(即ち、VMホスト・マシンからの物理アクセス)が仮想マシンに求められる場合には、最終的な画像は、ローカル・コンソール上に表示することができるように、VMを通って経路指定されなければならない。典型的なクラウド展開においては、殆どのユーザは遠隔ユーザであり、従って、ボトルネックの発生が回避されるため、選択されたGPUプロバイダ141から直接接続するシステムが好ましいが、これはローカル・アクセスを容易にするものではない。ブローカ150は、クラウド・システム内にシームレスに存在する選択肢と、遠隔クライアント131へのVM121を通る経路指定と選択されたGPUプロバイダ141からの直接接続との間で交互に特定の画像ストリーム・インスタンスを必要に応じて切り替える選択肢との両方を可能にする。
仮想マシン121と選択されたGPUプロバイダ141との間の接続は、VM121が異なるホスト120に移動する場合であってもブローカ150によって維持されるため、動作中の仮想マシンのライブ・マイグレーションもまた、ブローカ150によって容易になる。これは、説明されるコンピュータとグラフィックス・リソースとの分離がなければ不可能であろう。
図3及び図4を参照すると、説明される方法における接続のフロー300が示される。図3は、接続ステップを伴うフロー図を示す。図4は、図1及び図2において導入されたコンポーネントの間の接続ステップを示す。
フロー300は、遠隔クライアント131が、VM121に接続する301ことと、仮想化された3Dライブラリ222(VMライブラリと呼ばれる)を用いる3Dアプリケーション221を起動する302こととを含む。VMライブラリ222は、ブローカ150に接続する303。ブローカ150は、利用可能な3Dグラフィックス・レンダリング・リソース141−144を評価し304、その1つ141をVMライブラリ222に割り当てる305。VMライブラリ222と選択された3Dグラフィックス・レンダリング・リソース141とは、グラフィカル呼び出しを送信するために、互いに接続される306。1つの選択肢においては、最終的なレンダリング済み画像は、遠隔クライアント131に送信されるために、VMライブラリ222に戻される307。別の選択肢においては、選択された3Dグラフィックス・レンダリング・リソース141は、遠隔クライアント131に直接接続し、最終的なレンダリング済み画像は、この接続上で送信される308。ブローカは、VMライブラリからの要求に応じて(典型的には、遠隔クライアントの要求に応答して)、接続トポロジーを変更することができる。
図5及び図6を参照すると、フロー図400、450は、図5においてはリソースの監視及びセットアップ中の、図6においてはランタイムの間の、ブローカの操作を示す。
図5を参照すると、フロー図400は、ブローカの接続監視スレッド401を示す。ホスト・ベースの3Dライブラリからの接続を待つ402。接続ハンドラ・スレッドが、入ってくるスレッドごとに起動される403。監視スレッドは、ループする404。
ブローカのリソース監視スレッド405が開始される。潜在的な3Dグラフィックス・レンダリング・リソースを問い合わせる406。リソースが利用可能であるかどうかが判定される407。利用可能ではない場合には、方法は、潜在的な3Dグラフィックス・レンダリング・リソースの問い合わせ406にループして戻る。リソースが利用可能である場合には、利用可能性のレベルに基づいて、リソース優先順位キュー409を更新する408。方法は、引き続き、潜在的な3Dグラフィックス・レンダリング・リソースを問い合わせる406。
接続ハンドリング・スレッド410が示される。リソース優先順位キュー409から、選択される3Dグラフィックス・レンダリング・リソースが選ばれる411。遠隔クライアントについて追加の接続情報が提供されているかどうかが判定される412。提供されている場合には、選択された3Dグラフィックス・レンダリング・リソースは、遠隔クライアントに独立した接続を行って画像を戻すように命令される413。
遠隔クライアントについて追加の接続情報が提供されていない場合には、ホスト・ベースの3Dライブラリは、選択された3Dグラフィックス・レンダリング・リソースに接続してレンダリングを開始するように命令される414。次いで、図6において説明されるランタイム操作が実行される。
図6を参照すると、ブローカによるランタイム操作451が示される。ブローカは、ホスト・ベースの3Dライブラリ及び選択された3Dグラフィックス・レンダリング・リソースへの接続を維持する452。レンダリング・モード変更又はいずれかの当事者(遠隔クライアント、VM、レンダリング・リソース)の切断について、監視が行われる453。モード変更があるかどうかが判定される454。切断が要求されている455には、全ての接続が終了され、3Dグラフィックス・レンダリング・リソースは除去される(即ち、当事者がクラッシュした場合)456。
モード変更が要求されている場合457には、現時点で画像を遠隔クライアントに直接送信しているかどうかが判定される458。送信している場合には、選択された3Dグラフィックス・レンダリング・リソースは、確立された接続上で画像をホスト・ベースの3Dライブラリに送信するように命令される459。ホスト・ベースの3Dライブラリは、フレームを受信して、それらのフレームを新たな接続上で遠隔クライアントに送信するように命令される。次いで、方法は、ループして460、監視を続ける453。
その時点で画像を遠隔クライアントに直接送信していないと判定された458場合には、選択された3Dグラフィックス・レンダリング・リソースは、遠隔クライアントに直接接続してメッセージの送信を開始するように命令される461。ホスト・ベースの3Dライブラリは、3Dグラフィックス・レンダリング・リソースからそれ以上のフレームを求めない。次いで、方法は、ループして462、監視を続ける453。
図7を参照すると、フロー図500は、ホストにおけるVM又はTSセッションで行われる方法を示す。VM又はTSセッションにおいて、3Dアプリケーションへの遠隔クライアントの接続要求が受信される501。VM/TSセッションにおいて、アプリケーションについてライブラリ・ラッパーが起動される502。ライブラリ・ラッパーがブローカに接続する503。ライブラリ・ラッパーは、ブローカから3Dグラフィックス・レンダリング・リソースの割り当てを受信する504。ライブラリ・ラッパーは、割り当て済みの選択された3Dグラフィックス・レンダリング・リソースに接続する505。1つの可能なステップにおいては、ライブラリ・ラッパーは、画像を受信し506、それらの画像を遠隔クライアントに転送する。代替的なステップにおいては、ライブラリ・ラッパーは、直接通信のためのクライアントの詳細を、選択された3Dグラフィックス・レンダリング・リソースに提供する507。
GPUの計算能力をクラウド内で効果的に仮想化する能力は、各々のGPUが、標準的なCPUの何百倍も計算能力が高い場合が多く、わずかな電力しか消費せず、費用も僅かであるため、極めて有益である。3Dグラフィックス・アクセラレーションの特定の場合においては、この仮想化によって、写真のようにリアルな描写のゲーム、映画、CADなどに至るまであらゆるものを実質的に可能とする最も高価な専用グラフィックス端末に匹敵する、いずれかのデバイス(例えば電話)上のグラフィック機能を、以前は不可能であった場合でも動作させることができるようになる。
クラウド・データ・センタは、仮想システム画像を動作させる汎用サーバ・マシンの組と、汎用サーバに代わって3Dレンダリングのみを行うグラフィックス・サーバの組と、を含む。
3Dグラフィックス・アクセラレーションの作業負荷のためのGPU仮想化に伴って新たな種類の問題が導入され、特定のパラメトリック負荷分散及び経路指定などといった特定の問題が生じる。
説明されるこのシステムはまた、データ交換の重複をなくすことによってどのようにアプリケーションを効果的で遠隔的に視覚化して用いるかという点と、ブローカを用いてグラフィック・ハードウェア・リソースの使用をどのように選択して分散させるかという点に、焦点を合わせている。説明されるシステムは、複数のシステム/アプリケーション間で3Dグラフィックス・レンダリング・リソースの共有を可能にする。
説明されるシステムはまた、3D呼び出しをエンコードしてストリームにすることと、高速ネットワーク・インターフェースを介してそのストリームを異なるマシンに転送することとを含む。
本発明は、VMにおいて、画像ストリームの多数のインスタンスを経路指定しながら、必要なときには依然としてローカル・アクセスができるようにすることから発生するボトルネックの問題を解決する。
説明されるシステムの利点は、クラウド・コンピューティング環境内で動作しているアプリケーションにアクセラレーテッド3Dグラフィックスを提供することである。この環境は、従来、2Dアプリケーション又はソフトウェアのみの低速な3Dレンダリングに限定されていた。説明されるシステムを用いることによって、通常は3Dハードウェアにアクセアスできない仮想マシン及び端末サービス・セッションのインフラストラクチャの限界が克服される。説明されるシステムは、適切なグラフィックスAPIの代わりにプロキシ・ラッパー・ライブラリを用いることによって、アプリケーションの修正も、自らがクラウド環境で動作しているというアプリケーション側の認識も、全く必要としない。3D画像を圧縮して遠隔クライアントに送信することによって、クラウド対応アプリケーションとの遠隔的な対話ができるようになる。
3Dアプリケーションへの遠隔アクセスは、遠隔クライアント・デバイスのために提供され、遠隔クライアント・デバイス自体にはいかなる3Dハードウェアも必要としない。これにより、3Dアプリケーションを動作させるクラウドによる手法が実用的なものとなり、ハードウェアが集中化され、これらのリソースの最大の使用効率が保証される。遠隔クライアントは、自らのアクセス・デバイスの能力を遥かに超えて、アプリケーション及びデータと対話して連動することができる。集中化されたアプリケーションによって、クラウドの利点である構成及びライセンス共有を活用することが可能になる。
本手法の別の利点は、拡張性である。GPUプロバイダのホストは、仮想マシン/端末サービス・セッションをホストしているハードウェアに、必ずしも結合されなくてもよい。
従って、多数のVM又はセッションを単一の物理ホスト上でホストすることができ、それらのうちハードウェア・アクセラレーテッド3Dグラフィックスを必要とするもののみが、そうしたリソースを用いることになる。単一の大型ホスト・マシンは、典型的には、何十何百というVM/セッションをホストすることができるが、最大で1つ又は2つのグラフィックス・アダプタしか保持できない場合がある。このリソースのボトルネックは、数多くのVMがグラフィックス・ハードウェアの使用を試みている場合には、システムの性能を急速に低下させることになる。
説明されるシステムにおいては、グラフィックス・ハードウェアはホスト・マシンから完全に切り離され、ブローカを用いて、任意の多くのGPUプロバイダを利用可能にしてプリケーションの3Dグラフィックス要件を満たすことができる。GPUプロバイダは、ブローカを用いて、負荷分散ベースで割り当てることができる。さらに、グラフィックス・ハードウェアは、仮想マシン/端末サービス・セッションをホストしているハードウェアから完全に分離することができるので、既存のインフラストラクチャを再構成又は代替することなく追加容量を付加することができる。
最後に、遠隔セッション内で動作しているラッパー・ライブラリはまた、必要に応じて、VM/TSセッションのローカルのデスクトップに3D画像を直接書き込むことができる。これは、例えば、遠隔アクセスの有無に関わらず、ローカル・コンソール・アクセスが行われている場合に有用である。説明されるシステムのこの部分を用いて、3D遠隔アクセスの使用に関わりなく、単純に、GPUアクセラレーションを仮想マシンに提供することができる。これは、幾つかの仮想マシンをローカルにホストすることができ、これらのVMを3Dハードウェアにアクセスさせることを望むワークステーションにとって、有用である。この構成においては、全てのコンポーネントを単一の物理マシン内に配置することができる。このような場合には、「遠隔クライアント」は、3Dハードウェアから独立しているが単一の物理マシン内にある仮想マシン上に設けることができる。
説明されるシステムは、ブローカ機構を用いて画像ストリームの経路指定を動的に制御することによって、以下の事項をもたらす。
・遠隔クライアントの要件とその時点で利用可能なハードウェア能力及び性能との組み合わせによる、リソース割り当て及びスケジューリングの改善
・VM/TSセッションのホストにおける従来のボトルネックである、大容量の画像データを単一の点を通して経路指定しなければならないことに対する解決策と、それによりクラウド・レベルの拡張性が可能となること
・グラフィカル・アプリケーションを動作させることが可能な間に、VMホストを通して行われる、又はホスト間の仮想マシンの直接接続ライブ・マイグレーションを通して行われる、個々のVM/TSセッション及びアプリケーションによる画像ストリームの動的スイッチングの遅延特性の改善
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書において挙げられる教示の実装はクラウド・コンピューティング環境に限定されないことが、前もって理解される。それどころか、本発明の実施形態は、現在既知の又は後に開発される他のいずれかのタイプのコンピューティング環境とともに実装することが可能である。
クラウド・コンピューティングは、最小限の管理努力又はサービス・プロバイダとの対話で迅速に供給及び解放することができる構成変更可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールに対するオンデマンドの便利なネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、及び少なくとも4つの展開モデルを含むことができる。
特徴は、以下の通りである。
・オンデマンドのセルフサービス:クラウド・コンシューマは、サーバ時間及びネットワーク・ストレージといったコンピューティング能力を、必要に応じて、人間がサービスのプロバイダとやりとりする必要なく自動的に、一方的に供給することができる。
・広範なネットワーク・アクセス:能力は、ネットワーク上で利用可能であり、異種のシン又はシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的な機構を通じてアクセスされる。
・リソースのプール化:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて、複数のコンシューマにサービスを提供するようにプールされ、異なる物理及び仮想リソースは、要求に応じて動的に割り当て及び再割り当てされる。コンシューマは、一般に、提供されるリソースの正確な場所に関する制御又は知識を有していないが、高いレベルの抽象概念(例えば、国、州、又はデータセンタ)で場所を指定できる場合があるという点で、場所独立ということができる。
・迅速な弾力性:能力は、迅速且つ弾力的に、場合によっては自動的に供給して素早くスケール・アウトし、迅速に解放して素早くスケール・インすることができる。コンシューマにとっては、供給するために利用可能な能力は、無制限に見えることが多く、いつでもどんな量でも購入することができる。
・計測されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザ・アカウント)に適した何らかの抽象化のレベルで計量能力を活用することによって、リソース使用を自動的に制御及び最適化する。リソース使用は、利用されるサービスのプロバイダとコンシューマの両方にとって透明性をもたらすように、監視し、制御し、報告することができる。
サービス・モデルは以下の通りである。
・サービスとしてのソフトウェア(SaaS):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース(例えば、ウェブ・ベースの電子メール)を通じて、種々のクライアント・デバイスからアクセス可能である。限定されたユーザ特有のアプリケーション構成設定を可能な例外として、コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージ、又は個々のアプリケーション能力をも含む基盤となるクラウド・インフラストラクチャを管理又は制御しない。
・サービスとしてのプラットフォーム(PaaS):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語及びツールを用いて作成される、コンシューマが作成又は獲得したアプリケーションを、クラウド・インフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、又はストレージを含む基盤となるクラウド・インフラストラクチャを管理又は制御しないが、展開されたアプリケーション、及び場合によってはアプリケーション・ホスティング環境構成を、制御する。
・サービスとしてのインフラストラクチャ(IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティング・リソースを供給することであり、ここで、コンシューマは、オペレーティング・システム及びアプリケーションを含むことができる任意のソフトウェアを展開して動作させることができる。コンシューマは、基盤となるクラウド・インフラストラクチャを管理及び制御しないが、オペレーティング・システム、ストレージ、展開されたアプリケーション、及び場合によっては選択されたネットワーク・コンポーネント(例えば、ホストのファイアウォール)の限定的な制御を、制御する。
展開モデルは以下の通りである。
・プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに操作される。クラウド・インフラストラクチャは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスで存在することができる。
・コミュニティ・クラウド:クラウド・インフラストラクチャは、幾つかの組織によって共有され、関心事項(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアン上の考慮事項)を共有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、それらの組織又は第三者によって管理することができ、オンプレミス又はオフプレミスで存在することができる。
・パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆又は大規模な業界グループが利用できるようにされており、クラウド・サービスを販売する組織によって所有される。
・ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティを残しているが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散のためのクラウド・バースティング)によって結び付けられている2つ又はそれより多いクラウド(プライベート、コミュニティ、又はパブリック)の組み合わせである。
クラウド・コンピューティング環境は、サービス提供を中心としており、無国籍性、低い結合度、モジュール性、及び意味的相互運用性に焦点を合わせている。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで図8を参照すると、クラウド・コンピューティング・ノードの例の概略図が示される。クラウド・コンピューティング・ノード600は、好適なクラウド・コンピューティング・ノードの単なる一例であり、本明細書において説明される本発明の実施形態の使用又は機能の範囲に関していずれかの限定を示唆することを意図するものではない。いずれにせよ、クラウド・コンピューティング・ノード600は、上述された機能のいずれかを実装及び/又は実施することができる。
クラウド・コンピューティング・ノード600内には、他の多数の汎用又は専用コンピューティング・システム環境又は構成で動作可能なコンピュータ・システム/サーバ610が存在する。コンピュータ・システム/サーバ610とともに用いるのに適したものとすることができる周知のコンピューティング・システム、環境、及び/又は構成の例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シンクライアント、シッククライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能コンシューマ・エレクトロニクス、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、及び、上記のシステム又はデバイスなどのいずれかを含む分散型クラウド・コンピューティング環境を含むが、これらに限定されるものではない。
コンピュータ・システム/サーバ610は、コンピュータ・システムによって実行されているプログラム・モジュールなどのコンピュータ・システム実行可能命令を一般的な背景として、説明することができる。一般に、プログラム・モジュールは、特定のタスクを実施する、又は特定の抽象データ・タイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム/サーバ610は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが行われる分散型クラウド・コンピューティング環境内で実施することができる。分散型クラウド・コンピューティング環境においては、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル及び遠隔の両方のコンピュータ・システム・ストレージ媒体内に配置することができる。
図8に示されるように、クラウド・コンピューティング・ノード600内のコンピュータ・システム/サーバ610は、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム/サーバ610のコンポーネントは、1つ又は複数のプロセッサ又は処理ユニット611、システム・メモリ612、及び、システム・メモリ612を含む種々のシステム・コンポーネントをプロセッサ611に結合するバス613を含むことができるが、これらに限定されるものではない。
バス613は、メモリ・バス又はメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及び、種々のバス・アーキテクチャのいずれかを用いるプロセッサ又はローカル・バスを含む、幾つかのタイプのバス構造のうちのいずれかの1つ又は複数を表す。限定ではなく例として、このようなアーキテクチャは、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、及びPeripheral Component Interconnects(PCI)バスを含む。
コンピュータ・システム/サーバ610は、典型的には、種々のコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ610がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不可能媒体の両方とを含む。
システム・メモリ612は、ランダム・アクセス・メモリ(RAM)614及び/又はキャッシュ・メモリ615といった、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ610は、他の取り外し可能/取り外し不可能、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、取り外し不可能の不揮発性磁気媒体(図示されておらず、典型的には「ハード・ドライブ」と呼ばれる)との間の読み出し及び書き込みのために、ストレージ・システム616を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピィ・ディスク」)との間の読み出し及び書き込みのための磁気ディスク・ドライブと、CD−ROM、DVD−ROM又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスク・ドライブとを設けることができる。このような例においては、各々は、1つ又は複数のデータ媒体インターフェースによってバス613に接続することができる。以下でさらに示され、説明されるように、メモリ612は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールの組(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
限定ではなく例として、メモリ612内に、プログラム・モジュール618の組(少なくとも1つ)を有するプログラム/ユーティリティ617、並びにオペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを、格納することができる。オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらのいくつかの組み合わせの各々は、ネットワーキング環境の実装形態を含むことができる。プログラム・モジュール618は、一般に、本明細書において説明される本発明の実施形態の機能及び/又は方法を実行する。
コンピュータ・システム/サーバ610はまた、キーボード、ポインティング・デバイス、ディスプレイ620などといった1つ又は複数の外部デバイス619、ユーザがコンピュータ・システム/サーバ610と対話することを可能にする1つ又は複数のデバイス、及び/又は、コンピュータ・システム/サーバ610が1つ又は複数の他のコンピューティング・デバイスと通信することを可能にするいずれかのデバイス(例えば、ネットワーク・カード、モデムなど)と通信することができる。このような通信は、入力/出力(I/O)インターフェース621を経由して行うことができる。さらにまた、コンピュータ・システム/サーバ610は、ローカル・エリア・ネットワーク(LAN)、汎用広域ネットワーク(WAN)、及び/又はパブリック・ネットワーク(例えば、インターネット)などの1つ又は複数のネットワークと、ネットワーク・アダプタ622を介して通信することができる。示されるように、ネットワーク・アダプタ622は、コンピュータ・システム/サーバ610の他のコンポーネントと、バス613を介して通信する。図示されないが、コンピュータ・システム/サーバ610とともに他のハードウェア及び/又はソフトウェア・コンポーネントを使用できることを理解されたい。例として、限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部のディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システムなどが挙げられる。
ここで図9を参照すると、例示的なクラウド・コンピューティング環境700が示される。示されるように、クラウド・コンピューティング環境700は、例えば携帯情報端末(PDA)又は携帯電話721、デスクトップ・コンピュータ722、ラップトップ・コンピュータ723、及び/又は自動車コンピュータ・システム724などといった、クラウド・コンシューマによって用いられるローカル・コンピューティング・デバイスが通信することができる、1つ又は複数のクラウド・コンピューティング・ノード710を含む。ノード710は、互いに通信することができる。これらは、プライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、若しくは上述のハイブリッド・クラウド、又はこれらの組み合わせなどの1つ又は複数のネットワーク内で、物理的又は仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境700は、インフラストラクチャ、プラットフォーム、及び/又はソフトウェアを、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして、提供できるようになる。コンピューティング・デバイス721−724のタイプは単なる例示であるように意図されており、コンピューティング・ノード710及びクラウド・コンピューティング環境700は、あらゆるタイプのコンピュータ化された装置、及び、あらゆるタイプのネットワーク及び/又はネットワーク・アドレス指定可能な接続(例えば、ウェブ・ブラウザを用いて)と通信できることが理解される。
ここで図10を参照すると、クラウド・コンピューティング環境800によって提供される機能抽象化層の組が示される。図10に示されるコンポーネント、層、及び機能は単なる例示であるように意図されており、本発明の実施形態はそれらに限定されないことを予め理解されたい。示されるように、以下の層及び対応する機能が提供される。
ハードウェア及びソフトウェア層810は、ハードウェア及びソフトウェアのコンポーネントを含む。ハードウェア・コンポーネントの例として、IBM(登録商標)zSeries(登録商標)システムを一例とするメインフレームと、IBM pSeries(登録商標)システムを一例とするRISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバと、IBM xSeries(登録商標)システムと、IBM BladeCenter(登録商標)システムと、ストレージ・デバイスと、ネットワーク及びネットワーク・コンポーネントと、が挙げられる。ソフトウェア・コンポーネントの例として、IBM WebSphere(登録商標)アプリケーション・サーバ・ソフトウェアを一例とするネットワーク・アプリケーション・サーバ・ソフトウェアと、IBM DB2(登録商標)データベース・ソフトウェアを一例とするデータベース・ソフトウェアとが挙げられる。(IBM、zSeries、xSeries、BladeCenter、WebSphere、及びDB2は、世界中の多数の管轄区域において登録されているInternational Business Machines Corporationの商標である。)
ハードウェア及びソフトウェア層810は、VM/TSセッションをホストする一般的なサーバとグラフィックス・サーバ又はGPUプロバイダとが配置される場所である。
仮想化層820は、仮想エンティティの以下の例、即ち、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーション及びオペレーティング・システム、並びに仮想クライアントを提供することができる、抽象化層を提供する。
一例においては、管理層830は、以下で説明される機能を提供することができる。リソース供給は、クラウド・コンピューティング環境内でタスクを行うのに利用されるコンピューティング・リソース及び他のリソースの動的な調達を提供する。計量及び価格設定は、クラウド・コンピューティング環境内でリソースが用いられる際のコスト追跡と、これらのリソースの消費にかかる課金又は請求とを提供する。1つの例においては、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド・コンシューマ及びタスクについての識別情報の検証と、データ及び他のリソースの保護とを提供する。ユーザ・ポータルは、コンシューマ及びシステム管理者のために、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理は、必要なサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(SLA)プランニング及びフルフィルメントは、SLAによって将来の必要性が予測されるクラウド・コンピューティング・リソースの事前配置及び調達を提供する。
管理層830は、説明されるシステム内でグラフィック・リソースを割り当てるためのブローカ機能を提供することができる。
本発明は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態、又は、ソフトウェア要素とハードウェア要素の両方を含む実施形態の形態を取ることができる。好ましい一実施形態においては、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアとして実装される。
本発明は、コンピュータ若しくはいずれかの命令実行システムによって用いられるか又はこれらと関連して用いられるプログラム・コードを提供するコンピュータ使用可能媒体又はコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形態を取ることができる。この説明の目的に関して、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置、若しくはデバイスによって用いられるか又はこれらと関連して用いられるプログラムを収容し、格納し、通信し、伝搬し、又は搬送することができるいずれかの装置とすることができる。
媒体は、電子、磁気、光学、電磁気、赤外線若しくは半導体のシステム(又は装置若しくはデバイス)、又は伝搬媒体とすることができる。コンピュータ可読媒体の例として、半導体又は固体メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、剛性磁気ディスク及び光ディスクが挙げられる。現在の光ディスクの例として、コンパクトディスク−読み出し専用メモリ(CD−ROM)、コンパクトディスク−読み出し/書き込み(CD−R/W)及びDVDが挙げられる。
本発明の範囲から逸脱することなく、上記に改善及び修正を行うことができる。

Claims (20)

  1. ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックスを提供する方法であって、
    ホスト(120)上で提供されていないハードウェア・アクセラレーテッド・グラフィックスを必要とするネットワーク対応アプリケーション(221)を、前記ホスト(120)上で提供することと、
    前記ホスト(120)において、3Dグラフィックス・レンダリング・リソース(141−144)をブローカ(150)に接続するための3Dライブラリ・ラッパー(222)を提供することと、
    前記ブローカ(150)において、前記3Dグラフィックス・レンダリング・リソース(141−144)についての要求を受信することと、
    最終的な2Dレンダリング済み画像を遠隔クライアント(131)に戻すために、前記ブローカ(150)が、利用可能な前記3Dグラフィックス・レンダリング・リソース(141−144)を評価し(304)、前記3Dグラフィックス・レンダリング・リソース(141−144)から選択された3Dグラフィックス・レンダリング・リソース(141)を前記3Dライブラリ・ラッパー(222)に割り当てる(305)ことと、
    前記ブローカ(150)が、前記遠隔クライアント(131)についての直接接続情報が提供されているかどうかを判定する(412)ことと、
    前記遠隔クライアントについての直接接続情報が存在する場合には、前記選択された3Dグラフィックス・レンダリング・リソース(141)に、前記遠隔クライアント(131)との直接接続を行うように命令する(413)ことと、
    前記ブローカ(150)が、前記選択された3Dグラフィックス・レンダリング・リソース(141)と前記遠隔クライアント(131)と間の直接通信と、前記3Dライブラリ・ラッパー(222)を介した通信との間のモード変更要求を監視する(454)ことと、
    モード変更が要求されている(457)ことに応じて、前記直接通信が行われている場合は、前記2Dレンダリング済み画像を前記3Dライブラリ・ラッパー(222)に戻すように前記3Dグラフィック・レンダリング・リソース(141)に命令し(459)、前記直接通信が行われていない場合は、前記2Dレンダリング済み画像を前記遠隔クライアント(131)に直接送信するように前記3Dグラフィック・レンダリング・リソース(141)に命令する(461)ことと、
    を含む方法。
  2. 前記ネットワーク対応アプリケーション(221)は、前記ホスト(120)上の仮想マシン(121)で実行され、前記遠隔クライアント(131)によってアクセスされる、請求項1に記載の方法。
  3. 前記ネットワーク対応アプリケーション(221)は、前記ホスト(120)上の端末サービス・セッションで実行され、前記遠隔クライアント(131)によってアクセスされる、請求項1に記載の方法。
  4. 前記3Dライブラリ・ラッパー(222)及び前記選択された3Dグラフィックス・レンダリング・リソース(141)は、接続してグラフィカル呼び出しを送信することを含む、請求項1に記載の方法。
  5. 前記遠隔クライアント(131)に転送するために、最終的なレンダリング済み画像を、前記選択された3Dグラフィックス・レンダリング・リソース(141)から前記3Dライブラリ・ラッパー(222)に送信する(307)ことを含む、請求項1に記載の方法。
  6. 前記3Dライブラリ・ラッパー(222)が、前記3Dグラフィックス・レンダリング・リソース(141−144)に直接接続情報を提供することと、
    前記選択された3Dグラフィックス・レンダリング・リソース(141)が、最終的なレンダリング済み画像を前記遠隔クライアント(131)に直接送信する(308)ことと、
    を含む、請求項1に記載の方法。
  7. 複数の前記3Dグラフィックス・レンダリング・リソース(141−144)は、1つ又は複数のホスト(120)上の複数の仮想マシン又は端末サービス・セッション(121−125)が利用可能なネットワーク・コンピューティング・アーキテクチャ内に設けられた仮想化グラフィックス・サーバとして提供される、請求項1に記載の方法。
  8. 前記ブローカ(150)が、前記3Dグラフィックス・レンダリング・リソース(141−144)を監視し(405)、リソース優先順位キュー(409)を更新する(40)ことを含む、請求項1に記載の方法。
  9. 3Dグラフィックス呼び出しを、前記3Dライブラリ・ラッパー(222)と前記選択された3Dグラフィックス・レンダリング・リソース(141)との間の中立形式に修正することを含む、請求項1に記載の方法。
  10. グラフィックス・レンダリングを前記ホスト(120)から分離することによって、プラットフォームに依存しないグラフィックス・リソースの拡張性を可能にする、請求項1に記載の方法。
  11. ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックスを提供するシステムであって、
    ホスト(120)上で提供されていないハードウェア・アクセラレーテッド・グラフィックスを必要とするネットワーク対応アプリケーション(221)と、前記アプリケーション(221)のための3Dライブラリ・ラッパー(222)とを有するホスト(120)と、
    前記ホスト(120)とは独立に提供される1つ又は複数の3Dグラフィックス・レンダリング・リソース(141−144)と、
    最終的な2Dレンダリング済み画像を遠隔クライアント(131)に戻すために、前記1つ又は複数の3Dグラフィックス・レンダリング・リソース(141−144)から選択された3Dグラフィックス・レンダリング・リソース(141)を評価し(304)、これを前記アプリケーション(221)のための前記3Dライブラリ・ラッパー(222)に割り当てる(305)ブローカ(150)と、
    を含み、
    前記ブローカ(150)は、前記遠隔クライアント(131)についての直接接続情報が提供されているかどうかを判定し(412)、前記遠隔クライアント(131)についての直接接続情報が存在する場合には、前記選択された3Dグラフィックス・レンダリング・リソース(141)に、前記遠隔クライアント(131)との直接接続を行うように命令し(413)、
    前記ブローカ(150)は、前記選択された3Dグラフィックス・レンダリング・リソース(141)と前記遠隔クライアント(131)との間の直接通信と、前記3Dライブラリ・ラッパー(222)を介した通信との間のモード変更要求を監視し(454)、
    モード変更が要求されている(457)ことに応じて、前記直接通信が行われている場合は、前記2Dレンダリング済み画像を前記3Dライブラリ・ラッパー(222)に戻すように前記3Dグラフィック・レンダリング・リソース(141)に命令し(459)、前記直接通信が行われていない場合は、前記2Dレンダリング済み画像を前記遠隔クライアント(131)に直接送信するように前記3Dグラフィック・レンダリング・リソース(141)に命令する(461)、
    システム。
  12. 前記3Dライブラリ・ラッパー(222)は、ライブラリ呼び出しを前記ブローカ(150)に向けるプロキシ・ライブラリ・ラッパーである、請求項11に記載のシステム。
  13. 前記アプリケーション(221)は、前記ホスト(120)上の仮想マシン(121)で実行され、前記遠隔クライアント(131)によってアクセスされる、請求項11に記載のシステム。
  14. 前記アプリケーション(221)は、前記ホスト上の端末サービス・セッションで実行され、前記遠隔クライアント(131)によってアクセスされる、請求項11に記載のシステム。
  15. 前記ブローカ(150)は、仮想化された3Dグラフィックス・レンダリング・リソースを評価し(304)、これをネットワーク対応環境内の複数のホスト(120)に割り当てる(305)、請求項11に記載のシステム。
  16. 前記3Dライブラリ・ラッパー(222)と前記選択された3Dグラフィックス・レンダリング・リソース(141)との間に、中立のグラフィカル呼び出しを送信する通信機構を含む、請求項11に記載のシステム。
  17. 前記選択された3Dグラフィックス・レンダリング・リソース(141)から前記遠隔クライアント(131)への直接通信機構を含む、請求項11に記載のシステム。
  18. 前記ブローカ(150)は、前記3Dグラフィックス・レンダリング・リソース(141−144)を監視し(405)、リソース優先順位キュー(409)を更新する(408)、請求項11に記載のシステム。
  19. グラフィックス・レンダリングを前記ホスト(120)から分離することによって、プラットフォームに依存しないグラフィックス・リソースの拡張性を可能にする、請求項11に記載のシステム。
  20. コンピュータ・システム内にロードされて実行されたときに、請求項1から請求項10までのいずれか1項に記載の方法のステップをコンピュータに実行させるためのコンピュータ・プログラム。
JP2013543589A 2010-12-15 2011-10-27 ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックス Expired - Fee Related JP5808424B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10195227 2010-12-15
EP10195227.3 2010-12-15
PCT/EP2011/068869 WO2012079825A1 (en) 2010-12-15 2011-10-27 Hardware accelerated graphics for network enabled applications

Publications (2)

Publication Number Publication Date
JP2014504409A JP2014504409A (ja) 2014-02-20
JP5808424B2 true JP5808424B2 (ja) 2015-11-10

Family

ID=44872355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013543589A Expired - Fee Related JP5808424B2 (ja) 2010-12-15 2011-10-27 ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックス

Country Status (4)

Country Link
US (1) US8803876B2 (ja)
JP (1) JP5808424B2 (ja)
CN (1) CN103270492B (ja)
WO (1) WO2012079825A1 (ja)

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745173B1 (en) * 2011-12-30 2014-06-03 hopTo Inc. Client computing system for and method of receiving cross-platform remote access to 3D graphics applications
WO2010121945A2 (en) * 2009-04-21 2010-10-28 International Business Machines Corporation Method and system for interaction with unmodified 3d graphics applications
US8769052B1 (en) 2011-12-30 2014-07-01 hopTo Inc. Cloud-based server computing system for and method of providing cross-platform remote access to 3D graphics applications
US8766990B1 (en) 2011-12-30 2014-07-01 hopTo Inc. Server computing system for and method of providing cross-platform remote access to 3D graphics applications
US8838749B1 (en) * 2011-12-30 2014-09-16 hopTo Inc. Cloud based client computing system for and method of receiving cross-platform remote access to 3D graphics applications
US20130210522A1 (en) * 2012-01-12 2013-08-15 Ciinow, Inc. Data center architecture for remote graphics rendering
CN102664937B (zh) * 2012-04-09 2016-02-03 威盛电子股份有限公司 云端运算图形服务器及云端运算图形服务方法
US9805439B2 (en) * 2012-05-02 2017-10-31 Nvidia Corporation Memory space mapping techniques for server based graphics processing
US9542715B2 (en) * 2012-05-02 2017-01-10 Nvidia Corporation Memory space mapping techniques for server based graphics processing
US9311169B2 (en) 2012-05-02 2016-04-12 Nvidia Corporation Server based graphics processing techniques
US9613390B2 (en) 2012-05-02 2017-04-04 Nvidia Corporation Host context techniques for server based graphics processing
EP2859441B1 (en) 2012-06-08 2019-09-04 Hewlett-Packard Enterprise Development LP Cloud application deployment portability
CN103631634B (zh) * 2012-08-24 2017-07-25 中国电信股份有限公司 实现图形处理器虚拟化的方法与装置
US10175750B1 (en) * 2012-09-21 2019-01-08 Amazon Technologies, Inc. Projected workspace
US10270709B2 (en) 2015-06-26 2019-04-23 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
US10110412B2 (en) * 2012-10-17 2018-10-23 Disney Enterprises, Inc. Dynamically allocated computing method and system for distributed node-based interactive workflows
EP2936426B1 (en) * 2012-12-21 2021-10-13 Jason Spencer System and method for graphical processing of medical data
US20140351811A1 (en) * 2013-05-24 2014-11-27 Empire Technology Development Llc Datacenter application packages with hardware accelerators
US9430251B2 (en) * 2013-09-30 2016-08-30 Unity Technologies Finland Oy Software development kit for capturing graphical image data
US9582849B2 (en) 2013-10-28 2017-02-28 Vmware, Inc. Method and system to virtualize graphic processing services
US9805479B2 (en) * 2013-11-11 2017-10-31 Amazon Technologies, Inc. Session idle optimization for streaming server
US9596280B2 (en) 2013-11-11 2017-03-14 Amazon Technologies, Inc. Multiple stream content presentation
US9604139B2 (en) 2013-11-11 2017-03-28 Amazon Technologies, Inc. Service for generating graphics object data
US9582904B2 (en) 2013-11-11 2017-02-28 Amazon Technologies, Inc. Image composition based on remote object data
US9634942B2 (en) 2013-11-11 2017-04-25 Amazon Technologies, Inc. Adaptive scene complexity based on service quality
US9641592B2 (en) 2013-11-11 2017-05-02 Amazon Technologies, Inc. Location of actor resources
US9817922B2 (en) * 2014-03-01 2017-11-14 Anguleris Technologies, Llc Method and system for creating 3D models from 2D data for building information modeling (BIM)
CN104951353B (zh) 2014-03-28 2018-09-21 华为技术有限公司 一种对vnf实现加速处理的方法及装置
EP2930621B1 (en) * 2014-04-10 2018-12-05 Crytek GmbH Network-based Render Services and Local Rendering for Collaborative Environments
US10637819B2 (en) * 2014-06-26 2020-04-28 Orange Context based multi-model communication in customer service
KR102063093B1 (ko) * 2014-08-04 2020-01-07 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 메모리 병목 현상을 방지하기 위한 데이터 압축 방법 및 이를 위한 장치
KR102199276B1 (ko) * 2014-08-20 2021-01-06 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 유형에 따른 서비스 처리 방법 및 이를 위한 장치
JP6467503B2 (ja) 2014-07-14 2019-02-13 エスケー テックス カンパニー、リミテッド クラウドストリーミングサービスシステム、メモリボトルネックを防止するためのデータ圧縮方法及びそのための装置
KR102199296B1 (ko) * 2014-07-14 2021-01-06 에스케이플래닛 주식회사 클라우드 스트리밍 서버 테스트 방법, 이를 위한 장치 및 시스템
US9438673B2 (en) * 2014-07-16 2016-09-06 Microsoft Technology Licensing, Llc Dynamic update streams for real time provisioning
WO2016074166A1 (en) * 2014-11-12 2016-05-19 Intel Corporation Live migration of virtual machines from/to host computers with graphics virtualization
CN104731653B (zh) * 2015-03-31 2018-09-25 上海盈方微电子有限公司 一种Android显示系统的软件绘制和硬件绘制动态切换方法
US10511478B2 (en) 2015-04-17 2019-12-17 Microsoft Technology Licensing, Llc Changing between different roles at acceleration components
US10198294B2 (en) 2015-04-17 2019-02-05 Microsoft Licensing Technology, LLC Handling tenant requests in a system that uses hardware acceleration components
US10296392B2 (en) 2015-04-17 2019-05-21 Microsoft Technology Licensing, Llc Implementing a multi-component service using plural hardware acceleration components
US9792154B2 (en) 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US10216555B2 (en) 2015-06-26 2019-02-26 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
US10298561B2 (en) * 2015-06-30 2019-05-21 Vmware, Inc. Providing a single session experience across multiple applications
US10062181B1 (en) 2015-07-30 2018-08-28 Teradici Corporation Method and apparatus for rasterizing and encoding vector graphics
US11145271B2 (en) * 2015-08-10 2021-10-12 Amazon Technologies, Inc. Virtualizing graphics processing in a provider network
US10949805B2 (en) 2015-11-06 2021-03-16 Anguleris Technologies, Llc Method and system for native object collaboration, revision and analytics for BIM and other design platforms
US10867282B2 (en) 2015-11-06 2020-12-15 Anguleris Technologies, Llc Method and system for GPS enabled model and site interaction and collaboration for BIM and other design platforms
US9904973B2 (en) 2015-11-11 2018-02-27 Amazon Technologies, Inc. Application-specific virtualized graphics processing
US9904974B2 (en) 2015-11-11 2018-02-27 Amazon Technologies, Inc. Placement optimization for virtualized graphics processing
US9904975B2 (en) 2015-11-11 2018-02-27 Amazon Technologies, Inc. Scaling for virtualized graphics processing
US20170140570A1 (en) * 2015-11-13 2017-05-18 Intel Corporation Facilitating efficeint centralized rendering of viewpoint-agnostic graphics workloads at computing devices
CN105786589A (zh) * 2016-02-26 2016-07-20 成都赫尔墨斯科技有限公司 一种云渲染系统、服务器及方法
JP6563363B2 (ja) * 2016-05-13 2019-08-21 日本電信電話株式会社 設定サーバ、設定方法および設定プログラム
US10181172B1 (en) 2016-06-08 2019-01-15 Amazon Technologies, Inc. Disaggregated graphics asset delivery for virtualized graphics
US10181173B1 (en) 2016-06-08 2019-01-15 Amazon Technologies, Inc. Disaggregated graphics asset management for virtualized graphics
US10423463B1 (en) 2016-06-09 2019-09-24 Amazon Technologies, Inc. Computational task offloading for virtualized graphics
CN106354455B (zh) * 2016-08-17 2019-09-13 青岛海信电器股份有限公司 人机界面显示处理装置及其方法
US10102605B1 (en) * 2016-08-26 2018-10-16 Amazon Technologies, Inc. Graphics library virtualization for virtualized graphics processing
US10200249B1 (en) 2016-12-09 2019-02-05 Amazon Technologies, Inc. Network traffic management for virtualized graphics devices
US10373284B2 (en) 2016-12-12 2019-08-06 Amazon Technologies, Inc. Capacity reservation for virtualized graphics processing
US10430911B1 (en) 2016-12-16 2019-10-01 Amazon Technologies, Inc. Graphics overlays with virtualized graphics processing
US10482561B1 (en) 2017-01-11 2019-11-19 Amazon Technologies, Inc. Interaction monitoring for virtualized graphics processing
US10255652B2 (en) * 2017-01-18 2019-04-09 Amazon Technologies, Inc. Dynamic and application-specific virtualized graphics processing
US10692168B1 (en) 2017-01-26 2020-06-23 Amazon Technologies, Inc. Availability modes for virtualized graphics processing
US10204392B2 (en) 2017-02-02 2019-02-12 Microsoft Technology Licensing, Llc Graphics processing unit partitioning for virtualization
US10593009B1 (en) 2017-02-22 2020-03-17 Amazon Technologies, Inc. Session coordination for auto-scaled virtualized graphics processing
US10169841B1 (en) 2017-03-27 2019-01-01 Amazon Technologies, Inc. Dynamic interface synchronization for virtualized graphics processing
US10074206B1 (en) 2017-05-23 2018-09-11 Amazon Technologies, Inc. Network-optimized graphics library for virtualized graphics processing
US10338847B1 (en) 2017-08-28 2019-07-02 Amazon Technologies, Inc. Coherent buffer mapping for virtualized graphics processing
WO2019095154A1 (zh) 2017-11-15 2019-05-23 华为技术有限公司 一种调度加速资源的方法、装置及加速系统
US10908940B1 (en) 2018-02-26 2021-02-02 Amazon Technologies, Inc. Dynamically managed virtual server system
US10459706B1 (en) * 2018-03-12 2019-10-29 State Farm Mutual Automobile Insurance Company System and methods for simplifying three-dimensional models
CN108667909A (zh) * 2018-04-16 2018-10-16 南京维拓科技股份有限公司 混合云模式下的创客平台系统
US11150920B2 (en) * 2018-05-25 2021-10-19 Vmware, Inc. 3D API redirection for virtual desktop infrastructure
US11075972B2 (en) 2018-09-10 2021-07-27 Aveva Software, Llc Visualization and interaction of 3D models via remotely rendered video stream system and method
US10936370B2 (en) * 2018-10-31 2021-03-02 International Business Machines Corporation Apparatus that generates optimal launch configurations
CN109615709B (zh) * 2018-12-10 2022-09-06 长春理工大学 基于云计算的多人协作三维场景建模与绘制方法
CN109671140B (zh) * 2018-12-26 2024-02-02 上海赞奇文化科技有限公司 一种采用微服务的云渲染服务处理方法
CN111381914B (zh) * 2018-12-29 2021-07-30 中兴通讯股份有限公司 一种云桌面虚机实现3d能力的方法和系统
CN110443876A (zh) * 2019-07-31 2019-11-12 新华三大数据技术有限公司 3d图像渲染方法及装置
CN111494936A (zh) * 2020-02-12 2020-08-07 阿里巴巴集团控股有限公司 画面渲染方法、设备、系统及存储介质
US12039655B2 (en) * 2020-02-28 2024-07-16 Nippon Telegraph And Telephone Corporation Resource estimation apparatus, resource estimation method and program
CN111552554A (zh) * 2020-05-09 2020-08-18 中瓴智行(成都)科技有限公司 基于图形库api代理的gpu虚拟化方法、系统及介质
US20230229660A1 (en) * 2022-01-18 2023-07-20 Sap Se Efficient database structured query language execution from application layer

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704023B1 (en) * 1998-12-04 2004-03-09 Silicon Motion, Inc. 3-D graphics chip with embedded DRAMbuffers
US6909432B2 (en) * 2002-02-27 2005-06-21 Hewlett-Packard Development Company, L.P. Centralized scalable resource architecture and system
JP4409956B2 (ja) * 2002-03-01 2010-02-03 ティーファイヴ ラブズ リミテッド 集中型対話グラフィカルアプリケーションサーバ
JP2005284694A (ja) * 2004-03-30 2005-10-13 Fujitsu Ltd 3次元モデルデータ提供プログラム、3次元モデルデータ提供サーバ、及び3次元モデルデータ転送方法
US7978205B1 (en) * 2004-05-03 2011-07-12 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US8274518B2 (en) * 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US9041713B2 (en) * 2006-11-28 2015-05-26 International Business Machines Corporation Dynamic spatial index remapping for optimal aggregate performance
CA2693426A1 (en) * 2007-10-20 2009-04-23 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphical data
WO2010121945A2 (en) * 2009-04-21 2010-10-28 International Business Machines Corporation Method and system for interaction with unmodified 3d graphics applications

Also Published As

Publication number Publication date
US8803876B2 (en) 2014-08-12
CN103270492B (zh) 2016-08-17
CN103270492A (zh) 2013-08-28
JP2014504409A (ja) 2014-02-20
WO2012079825A1 (en) 2012-06-21
US20120154389A1 (en) 2012-06-21

Similar Documents

Publication Publication Date Title
JP5808424B2 (ja) ネットワーク対応アプリケーションのためのハードウェア・アクセラレーテッド・グラフィックス
US11204793B2 (en) Determining an optimal computing environment for running an image
US11429463B2 (en) Functional tuning for cloud based applications and connected clients
CN102946409B (zh) 从多个服务器向客户机递送单个终端用户体验
US9244817B2 (en) Remote debugging in a cloud computing environment
JP6200497B2 (ja) 仮想マシンのフローの物理的なキューへのオフロード
US10282222B2 (en) Cloud virtual machine defragmentation for hybrid cloud infrastructure
US8463980B2 (en) Shared memory between child and parent partitions
US10469390B2 (en) Load balancing with software defined network controllers
JP2024535764A (ja) Kubernetesにおけるリモート・ポッドの使用
KR102174221B1 (ko) 제공자 네트워크에서의 그래픽 처리 가상화
US8849905B2 (en) Centralized computing
JP2022075546A (ja) 共用企業クラウド・システム、方法、コンピューティング・デバイス
US9736231B1 (en) Representational state transfer request routing
US9338229B2 (en) Relocating an application from a device to a server
AU2020385682B2 (en) Communication with an application flow in an integration system
Repplinger et al. Stream processing on GPUs using distributed multimedia middleware
CN114868362A (zh) 扩展第3代合作伙伴计划(3gpp)实时上行链路流式传输框架(flus)信宿能力描述

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150414

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150714

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150908

R150 Certificate of patent or registration of utility model

Ref document number: 5808424

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees