JP5842601B2 - プログラム、情報処理方法及び情報処理装置 - Google Patents

プログラム、情報処理方法及び情報処理装置 Download PDF

Info

Publication number
JP5842601B2
JP5842601B2 JP2011282990A JP2011282990A JP5842601B2 JP 5842601 B2 JP5842601 B2 JP 5842601B2 JP 2011282990 A JP2011282990 A JP 2011282990A JP 2011282990 A JP2011282990 A JP 2011282990A JP 5842601 B2 JP5842601 B2 JP 5842601B2
Authority
JP
Japan
Prior art keywords
processor
processing
usage rate
executed
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011282990A
Other languages
English (en)
Other versions
JP2013134537A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011282990A priority Critical patent/JP5842601B2/ja
Priority to US13/671,154 priority patent/US20130166632A1/en
Publication of JP2013134537A publication Critical patent/JP2013134537A/ja
Application granted granted Critical
Publication of JP5842601B2 publication Critical patent/JP5842601B2/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/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/505Allocation 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 the load

Landscapes

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

Description

本技術は、複数のプロセッサによる処理の分担技術に関する。
システムを運用及び管理するコストを削減したり、情報漏洩への対策を講じるという観点から、シンクライアントシステムが注目されている。それに伴い、クラウド上のサーバにユーザのデスクトップ環境を構築し、ネットワークを介してユーザに提供するDaaS(Desktop as a Service)というサービスが行われるようになっている。このようなサービスは、資料を作成したり、メールを閲覧したり、ウェブサイトを閲覧すること等に利用されることが多かったが、近年では、動画を閲覧したり、CAD(Computer Aided Design)を使用することにも利用されつつある。
上で述べたようなシステムにおけるクライアント端末とサーバとの間の通信の方法には、以下の2つの方法がよく知られている。1つ目は、例えばRDP(Remote Desktop Protocol)のようなプロトコルを利用し、サーバのデスクトップ画面に対する描画コマンドをクライアント端末に送信し、クライアント端末において描画コマンドを実行することで画面を描画する方法である。2つ目は、例えばRFB(Remote FrameBuffer)プロトコルのようなプロトコルを利用し、サーバのデスクトップ画面の内容を画像データとしてクライアント端末に送信し、クライアント端末の画面に表示する方法である。
しかし、動画を閲覧したり、CADを使用するような場合、前者の方法を利用すると、描画コマンドの数が増大し、レスポンスの遅延が大きくなりやすい。そこで、後者の方法を利用して、クライアント端末の操作者が快適に動画を閲覧したり、CADを使用できるようにすることが検討されている。
従来より、CPU(Central Processing Unit)が実行する処理の一部をGPU(Graphics Processing Unit)に実行させ、CPUの負担を減らす技術(GPGPU(General-Purpose computing on Graphics Processing Units))が存在する。しかし、上記のシステムにこの技術を単純に適用すると、画像データを送信する処理等に割り当てるGPUのコア数を適切に制限することができない。そのため、GPUを利用するアプリケーションプログラム(例えばCADなど)の処理が遅延し、ユーザ端末での操作に対するレスポンスが遅くなる可能性がある。
また、画像処理に関して、以下のような技術も存在する。具体的には、イメージデータを所定のグラフィックメモリにローディングするプロセッサ手段が、セルに対するレンダリングイベントが発生する場合に、所定の基本記録空間からセルと連関したソースデータを識別する。また、プロセッサ手段が、識別されたソースデータを構成する単位ソースデータを、所定周期間隔で、グラフィックメモリに順次ローディングさせる。一方、ビデオプロセッサ手段が、グラフィックメモリにローディングされた単位ソースデータをレンダリングしてイメージを生成し、ディスプレイ部にディスプレイする。しかし、上で述べたようなシステムにおいてレスポンスを改善することについては考慮されていない。
特表2008−503829号公報 特開2011−238014号公報
従って、本技術の目的は、一側面では、サーバにおいて実行された画像処理の結果をユーザ端末にレスポンス良く表示させるための技術を提供することである。
本技術の一側面に係る情報処理方法は、画像処理のためのプロセッサである第1のプロセッサと当該第1のプロセッサによって実行された画像処理の結果を含む画面のデータをユーザ端末に表示させるための処理を実行する第2のプロセッサとを有するコンピュータにおける第2のプロセッサに実行される。そして、本情報処理方法は、(A)第1のプロセッサによって画像処理が実行されている場合に、2以上の時点において第1のプロセッサの使用率を取得する取得処理と、(B)取得された第1のプロセッサの使用率を用いて、第1のプロセッサの使用率に所定の変化が生じたか判断する判断処理と、(C)第1のプロセッサの使用率に所定の変化が生じたと判断された場合に、取得された第1のプロセッサの使用率に応じて、画面のデータをユーザ端末に表示させるために実行すべき複数の処理のうちいずれの処理を第1のプロセッサに実行させるかを決定する決定処理と、(D)決定処理の結果に従って複数の処理が実行されるように設定を行う設定処理とを含む。
サーバにおいて実行された画像処理の結果をユーザ端末にレスポンス良く表示することができるようになる。
図1は、第1の実施の形態におけるシステム概要を示す図である。 図2は、サーバの機能ブロック図である。 図3は、各動作モードにおけるGPU及びCPUの処理分担を示す図である。 図4は、動作モード格納部に格納されているデータの一例を示す図である。 図5は、決定データ格納部に格納されているデータの一例を示す図である。 図6は、サーバが行う処理の処理フローを示す図である。 図7は、サーバが行う処理の処理フローを示す図である。 図8は、パターン格納部に格納されているデータの一例を示す図である。 図9は、動作モード決定処理の処理フローを示す図である。 図10は、サーバが行う処理の処理フローを示す図である。 図11は、起動監視部が行う処理の処理フローを示す図である。 図12は、API監視部が行う処理の処理フローを示す図である。 図13は、取得部が行う処理の処理フローを示す図である。 図14は、判定部が行う処理の処理フローを示す図である。 図15は、判定部が行う処理の処理フローを示す図である。 図16は、判定部が行う処理の処理フローを示す図である。 図17は、判定部が行う処理の処理フローを示す図である。 図18は、判定部が行う処理の処理フローを示す図である。 図19は、通知部が行う処理の処理フローを示す図である。 図20は、比較部が行う処理の処理フローを示す図である。 図21は、変更部が行う処理の処理フローを示す図である。 図22は、計測部が行う処理の処理フローを示す図である。 図23Aは、決定データ格納部に格納されているデータの一例を示す図である。 図23Bは、動作モード決定処理の処理フローを示す図である。 図24は、描画命令毎の閾値の設定例を示す図である。 図25は、通知部が行う処理の処理フローを示す図である。 図26は、判定部が行う処理の処理フローを示す図である。 図27は、判定部が行う処理の処理フローを示す図である。 図28は、パターン格納部に格納されているデータの一例を示す図である。 図29は、コンピュータの機能ブロック図である。
[実施の形態1]
図1に、第1の実施の形態におけるシステム概要を示す。図1に示したシステムは、例えばDaaSを提供するためのシステムであり、サーバ1とクライアント端末5とが、インターネット等のネットワーク3を介して接続されている。図1に示したシステムはシンクライアントシステムであり、クライアント端末5は最低限の機能しか有していないため、クライアント端末5のユーザはサーバ1が有する機能をネットワーク3を介して利用する。
図2に、サーバ1の構成を示す。サーバ1は、GPUアプリ10と、管理部11と、画面制御部12と、処理ライブラリ13と、GPUドライバ14と、OS(Operating System)15と、GPU16と、CPU17とを有する。また、管理部11は、起動監視部110と、取得部111と、API(Application Programming Interface)監視部112と、パターン格納部113と、判定部114と、比較部115と、通知部116と、動作モード格納部117と、決定データ格納部118とを含む。また、画面制御部12は、画像メモリ120と、第1送信部121と、頻度特定部122と、送信停止部123と、領域識別部124と、計測部125と、第2送信部126と、変更部127とを含む。
GPUアプリ10は、例えばCADなどGPU16を利用するアプリケーションプログラムである。GPUアプリ10は、処理ライブラリ13及びGPUドライバ14を介してGPU16を使用する。起動監視部110は、OS15を介してGPUアプリ10が起動したかを監視し、起動した場合には動作開始要求を取得部111、API監視部112及び判定部114に送信する。取得部111は、GPUドライバ14を介してGPU16の使用率を取得する。API監視部112は、GPUアプリ10からGPU16に出力される描画命令を受信する。判定部114は、パターン格納部113、動作モード格納部117及び決定データ格納部118に格納されているデータを用いて、適用する動作モードを決定する処理等を実施する。比較部115は、動作モードの変更後にGPUアプリ10による処理に遅延が発生していていないか判断したり、フレームレートが低下していないか判断する。通知部116は、判定部114により決定された動作モードの識別子を含む変更要求を変更部127に送信する。
変更部127は、通知部116から通知された動作モードに従い、第1送信部121、頻度特定部122及び第2送信部126等に対してGPU16又はCPU17のいずれで処理を実行するかを設定する。画像メモリ120には、処理ライブラリ13及びGPUドライバ14を介して取得された画面データが格納される。頻度特定部122は、画像メモリ120に格納されている画面データに係る画面を複数の領域に分割し、領域毎にフレーム間の変更の頻度を特定し、領域識別部124に送信する。領域識別部124は、変更の頻度が所定の閾値を超えた領域(高頻度領域)を第2送信部126に通知する。第2送信部126は、動画のデータを送信する処理部であり、高頻度領域の画面データを第1送信部121よりも高い圧縮率でクライアント端末5に送信する。送信停止部123は、高頻度領域の画面データの送信を停止するように第1送信部121を設定する。第1送信部121は、静止画のデータを送信する処理部であり、変更がある領域の画面データをクライアント端末5に送信する。計測部125は、フレームレート(単位はFPS(Frames Per Second))を計測し、計測した結果を比較部115に送信する。なお、画像メモリ120、第1送信部121、頻度特定部122、送信停止部123、領域識別部124及び第2送信部126については、特開2011−238014号公報に詳細に記載されており、また本実施の形態における主要な部分ではない。よって詳細な説明は省略する。
なお、本実施の形態においては、図2に示した処理部のうち、第1送信部121、頻度特定部122及び第2送信部126の処理をGPU16に実行させることが可能になっている。
図3に、各動作モードにおけるGPU16及びCPU17の処理分担を示す。図3に示されている処理は並列で実行することが可能な処理であり、丸印はGPU16が担当することを表しており、バツ印はCPU17が担当することを表している。このように、GPU16が担当する処理の組合せが動作モード毎に予め定められている。例えばレベル2の動作モードにおいては、画面データを取得する処理及び頻度特定部122の処理はGPU16が担当し、第1送信部121及び第2送信部126の処理はCPU17が担当する。図3に示すように、レベルが上がるほどGPU16が担当する処理が増えることになる。
図4に、動作モード格納部117に格納されているデータの一例を示す。図4の例では、GPUアプリ10の起動前の動作モードの識別子と、動作モードを変更する前の動作モードの識別子と、現在の動作モードの識別子とが格納されている。
図5に、決定データ格納部118に格納されているデータの一例を示す。図5の例では、レベル1乃至レベル5の動作モードの各々について、レベル0の動作モード(すなわち、画面制御部12における処理をGPU16に実行させない動作モード)を適用した場合とのGPU使用率の差異の値が格納されている。
次に、図6乃至図22を用いて、図2に示したサーバ1の動作について説明する。はじめにサーバ1において行われる処理の流れについて説明した上で、各処理部が行う処理を詳細に説明する。
まず、起動監視部110は、GPUアプリ10が起動したかを監視する(図6:ステップS1)。GPUアプリ10が起動していない場合(ステップS1:Noルート)、ステップS1の処理に戻る。
GPUアプリ10が起動した場合(ステップS1:Yesルート)、起動監視部110は、取得部111、API監視部112及び判定部114に、動作開始要求を送信する。そして、動作開始要求を受信したAPI監視部112は、GPUアプリ10から描画命令を受信したか判断する(ステップS3)。描画命令を受信していない場合には(ステップS3:Noルート)、ステップS3の処理に戻る。
描画命令を受信した場合(ステップS3:Yesルート)、API監視部112は、描画命令と当該描画命令の受信時刻とをメインメモリ等の記憶装置に格納する。そして、API監視部112は、今回受信した描画命令の受信時刻及びその前に受信した描画命令の受信時刻を用いて、描画命令の間隔を算出し、記憶装置に格納する(ステップS5)。ステップS5においては、例えば、今回受信した描画命令の受信時刻とその前に受信した描画命令所定数個の受信時刻とを用いて間隔の平均値を算出する。
一方、動作開始要求を受信した取得部111は、GPUドライバ14を介してGPU使用率を取得し、判定部114に送信する(ステップS7)。なお、取得部111は、定期的にGPU使用率を取得するものとする。
判定部114は、前回取得したGPU使用率と今回取得したGPU使用率との差を求めることにより、GPU使用率の変化量を算出し、記憶装置に格納する(ステップS9)。判定部114は、GPU使用率の変化量が閾値α以上であるか判断する(ステップS11)。閾値αは、サーバ1の管理者等が予め設定しておくものとする。閾値α以上ではない場合(ステップS11:Noルート)、動作モードを変更しなくてもよいので、連続回数を表す変数を0に設定し(ステップS13)、ステップS3の処理に戻る。
一方、GPU使用率の変化量が閾値α以上である場合(ステップS11:Yesルート)、判定部114は、連続回数を表す変数を1増やす(ステップS15)。処理は端子Aを介して図7のステップS17に移行する。
図7の説明に移行し、判定部114は、連続回数を表す変数がn(nは2以上の自然数)であるか判断する(ステップS17)。連続回数を表す変数がnではないと判断された場合(ステップS17:Noルート)、処理は端子Bを介して図6のステップS3に移行する。
一方、連続回数を表す変数が閾値nであると判断された場合(ステップS17:Yesルート)、判定部114は、CPU使用率を取得し、記憶装置に格納する(ステップS19)。また、判定部114は、描画命令の組合せ、GPU使用率及びCPU使用率に対応するパターンがパターン格納部113に登録されているか判断する(ステップS21)。
図8に、パターン格納部113に格納されているデータの一例を示す。図8の例では、パターン番号と、描画命令のパターン(組合せ)と、現在の動作モードの識別子と、GPU使用率と、CPU使用率と、適用する動作モードの識別子とが格納されている。ステップS21においては、例えば、描画命令の組合せが一致し、GPU使用率が類似し(例えば、差が所定値以下である等)且つCPU使用率が類似するパターンが登録されているかを判断する。
描画命令の組合せ、GPU使用率及びCPU使用率に対応するパターンが有る場合(ステップS23:Yesルート)、判定部114は、当該パターンについての「適用する動作モード」の識別子をパターン格納部113から読み出す(ステップS27)。一方、描画命令の組合せ、GPU使用率及びCPU使用率に対応するパターンが無い場合(ステップS23:Noルート)、判定部114は、動作モード決定処理を実施する(ステップS25)。動作モード決定処理については、図9を用いて説明する。
まず、判定部114は、取得部111から受信したGPU使用率のうち最新のGPU使用率を特定する(図9:ステップS231)。また、判定部114は、現在の動作モードの識別子を動作モード格納部117から読み出す(ステップS233)。
判定部114は、各動作モードについて、レベル0の動作モードを適用した場合とのGPU使用率の差異の値(すなわち、GPU使用率の増加値)を決定データ格納部118から読み出す(ステップS235)。そして、判定部114は、現在の動作モードに対応する増加値と他の動作モードの各々に対応する増加値との差を算出する(ステップS236)。例えば図5に示したようなデータが決定データ格納部118に格納されており、現在の動作モードがレベル3である場合、レベル0は「−30」、レベル1は「−25」、レベル2は「−20」、レベル3は「0」、レベル4は「+10」、レベル5は「+30」となる。
判定部114は、各動作モードについて、ステップS236において算出した差の値とステップS231において特定されたGPU使用率との和を算出することにより、各動作モードを適用した場合におけるGPU使用率の予測値を算出する(ステップS237)。例えばステップS231において特定したGPU使用率が「60」である場合、レベル0が「30」、レベル1が「35」、レベル2が「40」、レベル3が「60」、レベル4が「70」、レベル5が「90」となる。
判定部114は、GPU使用率の予測値が予め定められたGPU使用率の目標値に最も近い動作モードの識別子を特定する(ステップS239)。例えば目標値が「100」である場合、特定される動作モードの識別子は「レベル5」となる。そして元の処理に戻る。
以上のような処理を実施することで、GPU使用率が予め定められた目標値に近くなるような動作モードに決定することができるようになる。
図7の説明に戻り、ステップS25において動作モードの識別子が特定又はステップS27において動作モードの識別子が読み出されると、判定部114は、動作モードの識別子を含む変更要求を通知部116に送信する。そして、通知部116は、受信した動作モードの識別子を含む変更要求を変更部127に送信する。
そして、変更部127は、動作モードの変更を実行する(ステップS29)。例えば、動作モードがレベル3からレベル5に変更される場合には、第1送信部121及び第2送信部126に対して、GPU16が処理を実行するように設定を行う。
一方、比較部115は、動作モードの変更前及び変更後における描画命令の間隔をAPI監視部112から取得すると共に、動作モードの変更前及び変更後におけるフレームレートを計測部125から取得する(ステップS31)。
比較部115は、描画命令の間隔が短くなり且つフレームレートが上昇したか判断する(ステップS33)。具体的には、動作モードの変更前の描画命令の間隔Xp、動作モードの変更後の描画命令の間隔Xq、動作モードの変更前のフレームレートをYp、動作モードの変更後のフレームレートをYqとした場合、Xq−Xp<0且つYq−Yp>0であるか判断する。但し、計測に誤差が生じる可能性があるため、描画命令の場合は左辺の値が厳密に0より小さくなくても良く、フレームレートの場合は左辺の値が厳密に0より大きくなくても良い。すなわち、正の閾値βと負の閾値γとを用いて、Xq−Xp<β且つYq−Yp>γであるかを判断するようにしてもよい。
なお、描画命令の間隔が長くなっている場合には、GPUアプリ10及び画面制御部12からの処理要求にGPU16が対応しきれていない可能性がある。一方、フレームレートが低下している場合には、画面キャプチャ、静止画圧縮、動画エンコード及びクライアント端末5への画面データ送信といった一連の処理が遅くなっている可能性がある。
描画命令の間隔が短くなり且つフレームレートが上昇した場合(ステップS33:Yesルート)、処理は端子Dを介して図10のステップS49に移行する。一方、描画命令の間隔が長くなった又はフレームレートが低下した場合(ステップS33:Noルート)、処理は端子Cを介して図10のステップS35に移行する。
図10の説明に移行し、比較部115は、ステップS33の結果を判定部114に通知する。判定部114は、比較部115から通知された結果が、描画命令の間隔が長くなったことを示しているか判断する(ステップS35)。描画命令の間隔が長くなったことを示している場合(ステップS35:Yesルート)、判定部114は、現在の動作モードよりもGPU使用率が下がる動作モードの識別子を特定する(ステップS37)。動作モードを変更したことによって、GPUアプリ10の処理が遅延している可能性があるからである。例えば現在の動作モードの識別子が「レベル3」である場合には、「レベル0」、「レベル1」又は「レベル2」を特定する。
一方、描画命令の間隔が短くなったことを示している場合(ステップS35:Noルート)、GPUアプリ10の処理速度は上がっているが、フレームレートは低下していることになる。そのため、判定部114は、現在の動作モードよりもGPU使用率が上がる動作モードの識別子を特定する(ステップS39)。GPU16に余裕があるため、画面制御部12の処理の一部をGPU16に担当させることで、CPU17の負担を軽減するためである。例えば現在の動作モードの識別子が「レベル3」である場合には、「レベル4」又は「レベル5」を特定する。
判定部114は、変更後の動作モードが現在の動作モードと同じであるか判断する(ステップS41)。変更後の動作モードが現在の動作モードと同じであると判断された場合(ステップS41:Yesルート)、ステップS49の処理に移行する。
一方、変更後の動作モードが現在の動作モードと同じではない場合(ステップS41:Noルート)、判定部114は、変更後の動作モードの識別子を含む変更要求を通知部116に送信する。そして、通知部116は、受信した動作モードの識別子を含む変更要求を変更部127に送信する。そして、変更部127は、動作モードの変更を実行する(ステップS43)。この処理は、ステップS29の処理と同様である。
一方、比較部115は、動作モードの変更前及び変更後における描画命令の間隔をAPI監視部112から取得すると共に、動作モードの変更前及び変更後におけるフレームレートを計測部125から取得する(ステップS45)。
比較部115は、描画命令の間隔が短くなり且つフレームレートが上昇したか判断する(ステップS47)。
描画命令の間隔が長くなった又はフレームレートが低下した場合(ステップS47:Noルート)、処理は端子Cを介してステップS35に戻る。
一方、描画命令の間隔が短くなり且つフレームレートが上昇した場合(ステップS47:Yesルート)、判定部114は、動作モード格納部117に格納されているデータを更新する(ステップS49)。具体的には、動作モード格納部117における現在の動作モードの欄に格納されている動作モードの識別子で、変更前の動作モードの欄を更新する。また、ステップS37又はステップS39において特定された動作モードの識別子で、現在の動作モードの欄を更新する。
そして、判定部114は、パターン格納部113にパターンのデータを追加する(ステップS51)。具体的には、まず新たにパターン番号を割り当てる。また、適用する動作モードの列に現在の動作モードの識別子を格納し、変更前の動作モードの列に変更前の動作モードの識別子を格納する。さらに、描画命令の組合せ、GPU使用率及びCPU使用率の列に、取得したデータをそれぞれ格納する。但し、既に類似するパターンがパターン格納部113に格納されている場合(例えばステップS27の処理を行った場合等)には、ステップS51の処理を行わないようにしてもよい。
以上のような処理を実施することにより、GPUアプリ10による画像処理への影響を抑えつつ、画面制御部12の処理にGPU16を利用することができるようになる。これによって、クライアント端末5での操作に対するレスポンスを改善することができるようになる。
次に、各処理部の処理について説明する。まず、図11を用いて、起動監視部110の処理について説明する。
まず、起動監視部110は、GPUアプリ10が起動したか判断する(図11:ステップS61)。GPUアプリ10が起動していない場合(ステップS61:Noルート)、ステップS61の処理に戻る。
一方、GPUアプリ10が起動した場合(ステップS61:Yesルート)、起動監視部110は、API監視部112、取得部111及び判定部114に動作開始要求を送信する(ステップS63)。
起動監視部110は、GPUアプリ10による処理が終了したか判断する(ステップS65)。GPUアプリ10による処理が終了していないと判断された場合(ステップS65:Noルート)、ステップS65の処理に戻る。
一方、GPUアプリ10による処理が終了したと判断された場合(ステップS65:Yesルート)、起動監視部110は、API監視部112、取得部111及び判定部114に動作停止要求を送信する(ステップS67)。そして処理を終了する。
このような処理を実施することで、GPUアプリ10が起動した際に本実施の形態の処理を開始することができるようになる。
次に、図12を用いて、API監視部112の処理について説明する。まず、API監視部112は、起動監視部110から動作開始要求を受信したか判断する(図12:ステップS71)。動作開始要求を受信していないと判断した場合(ステップS71:Noルート)、ステップS71の処理に戻る。
一方、動作開始要求を受信した場合(ステップS71:Yesルート)、API監視部112は、GPUアプリ10から描画命令を受信したか判断する(ステップS73)。描画命令を受信していない場合(ステップS73:Noルート)、ステップS73の処理に戻る。
一方、描画命令を受信した場合(ステップS73:Yesルート)、API監視部112は、受信した描画命令と当該描画命令の受信時刻とを記憶装置に格納する。そして、API監視部112は、今回受信した描画命令の受信時刻及びその前に受信した描画命令の受信時刻を用いて、描画命令の間隔を算出し、記憶装置に格納する(ステップS75)。ステップS75においては、例えば、今回受信した描画命令の受信時刻とその前に受信した描画命令所定数個の受信時刻とを用いて間隔の平均値を算出する。
API監視部112は、受信した描画命令を判定部114に送信する(ステップS77)。そして、API監視部112は、起動監視部110から動作停止要求を受信したか判断する(ステップS79)。動作停止要求を受信していない場合(ステップS79:Noルート)、ステップS73の処理に戻る。一方、動作停止要求を受信した場合(ステップS79:Yesルート)、処理を終了する。
以上のような処理を実施することで、GPUアプリ10による画像処理が遅延しているか確認することができるようになる。
次に、図13を用いて、取得部111の処理について説明する。まず、取得部111は、起動監視部110から動作開始要求を受信したか判断する(図13:ステップS81)。動作開始要求を受信していないと判断した場合(ステップS81:Noルート)、ステップS81の処理に戻る。
一方、動作開始要求を受信した場合(ステップS81:Yesルート)、取得部111は、GPUドライバ14を介してGPU使用率を取得し(ステップS83)、取得したGPU使用率を判定部114に送信する(ステップS85)。なお、取得部111は、定期的にGPU使用率を取得するものとする。
取得部111は、所定時間スリープする(ステップS87)。そして、取得部111は、起動監視部110から動作停止要求を受信したか判断する(ステップS89)。動作停止要求を受信していない場合(ステップS89:Noルート)、ステップS83の処理に戻る。一方、動作停止要求を受信した場合(ステップS89:Yesルート)、処理を終了する。
以上のような処理を実施することで、GPU16の使用状態の変化を検出することができるようになる。
次に、図14乃至図18を用いて、判定部114の処理について説明する。まず、判定部114は、起動監視部110から動作開始要求を受信したか判断する(図14:ステップS91)。動作開始要求を受信していないと判断した場合(ステップS91:Noルート)、ステップS91の処理に戻る。
一方、動作開始要求を受信した場合(ステップS91:Yesルート)、判定部114は、現在の動作モードの識別子を動作モード格納部117に格納する(ステップS93)。なお、GPUアプリ起動前の動作モードの欄には、既に動作モードの識別子が格納されているものとする。
判定部114は、API監視部112から描画命令を受信したか判断する(ステップS95)。描画命令を受信していない場合(ステップS95:Noルート)、ステップS95の処理に戻る。一方、描画命令を受信した場合(ステップS95:Yesルート)、描画命令を記憶装置に格納する。また、判定部114は、取得部111からGPU使用率を取得し、記憶装置に格納する(ステップS97)。なお、判定部114は、少なくともn回分の描画命令を記憶装置に格納しておくものとする。
判定部114は、前回取得したGPU使用率と今回取得したGPU使用率との差を求めることにより、GPU使用率の変化量を算出する(ステップS99)。そして、判定部114は、GPU使用率の変化量が閾値α以上であるか判断する(ステップS101)。閾値αは、サーバ1の管理者等が予め設定しておくものとする。閾値α以上ではない場合(ステップS101:Noルート)、動作モードを変更しなくてもよいので、連続回数を表す変数を0に設定し(ステップS103)、ステップS95の処理に戻る。
一方、GPU使用率の変化量が閾値α以上である場合(ステップS101:Yesルート)、判定部114は、連続回数を表す変数を1増やす(ステップS105)。処理は端子Eを介して図15のステップS107に移行する。
図15の説明に移行し、判定部114は、連続回数を表す変数がn(nは2以上の自然数)であるか判断する(ステップS107)。連続回数を表す変数がnではないと判断された場合(ステップS107:Noルート)、処理は端子Fを介して図14のステップS95に移行する。
一方、連続回数を表す変数が閾値nであると判断された場合(ステップS107:Yesルート)、判定部114は、CPU使用率を取得し、記憶装置に格納する(ステップS109)。また、判定部114は、描画命令の組合せ、GPU使用率及びCPU使用率に対応するパターンがパターン格納部113に登録されているか判断する(ステップS111)。
描画命令の組合せ、GPU使用率及びCPU使用率に対応するパターンが有る場合(ステップS113:Yesルート)、判定部114は、当該パターンについての「適用する動作モード」の列に格納されている識別子をパターン格納部113から読み出す(ステップS117)。一方、描画命令の組合せ、GPU使用率及びCPU使用率に対応するパターンが無い場合(ステップS113:Noルート)、判定部114は、動作モード決定処理を実施する(ステップS115)。動作モード決定処理については、図9を用いて説明したとおりである。
判定部114は、ステップS115において動作モードの識別子が特定又はステップS117において動作モードの識別子が読み出されると、動作モードの識別子を含む変更要求を通知部116に送信する(ステップS119)。そして処理は端子Gを介して図16のステップS121に移行する。
図16の説明に移行し、判定部114は、通知部116から変更完了通知を受信したか判断する(ステップS121)。変更完了通知を受信していない場合(ステップS121:Noルート)、ステップS121の処理に戻る。
一方、変更完了通知を受信した場合(ステップS121:Yesルート)、判定部114は、動作比較要求を比較部115に送信する(ステップS123)。
判定部114は、比較部115から比較結果を受信したか判断する(ステップS125)。比較結果を受信していない場合(ステップS125:Noルート)、ステップS125の処理に戻る。
一方、比較結果を受信した場合(ステップS125:Yesルート)、判定部114は、比較結果が「OK」を示しているか判断する(ステップS127)。動作モードの変更によって描画命令の間隔が短くなり且つフレームレートが上昇した場合には、比較結果は「OK」を示す。比較結果が「OK」を示している場合には(ステップS127:Yesルート)、処理は端子Hを介して図18のステップS149に移行する。比較結果が「OK」を示しておらず「NG」を示している場合には(ステップS127:Noルート)、処理は端子Iを介して図17のステップS129に移行する。
図17の説明に移行し、判定部114は、動作モード格納部117から現在の動作モードの識別子を読み出す(ステップS129)。そして、判定部114は、比較部115から通知された比較結果が、描画命令の間隔が長くなったことを示しているか判断する(ステップS131)。描画命令の間隔が長くなったことを示している場合(ステップS131:Yesルート)、判定部114は、現在の動作モードよりもGPU使用率が下がる動作モードの識別子を特定する(ステップS133)。動作モードを変更したことによって、GPUアプリ10の処理が遅延している可能性があるからである。例えば現在の動作モードの識別子が「レベル3」である場合には、「レベル0」、「レベル1」又は「レベル2」の動作モードの識別子を特定する。
一方、描画命令の間隔が短くなったことを示している場合(ステップS131:Noルート)、GPUアプリ10の処理速度は上がっているが、フレームレートは低下していることになる。そのため、判定部114は、現在の動作モードよりもGPU使用率が上がる動作モードの識別子を特定する(ステップS135)。GPU16に余裕があるため、画面制御部12の処理の一部をGPU16に担当させることで、CPU17の負担を軽減するためである。例えば現在の動作モードの識別子が「レベル3」である場合には、「レベル4」又は「レベル5」の動作モードの識別子を特定する。
判定部114は、変更後の動作モードが現在の動作モードと同じであるか判断する(ステップS137)。変更後の動作モードが現在の動作モードと同じであると判断された場合(ステップS137:Yesルート)、処理は端子Hを介して図18のS149に移行する。
一方、変更後の動作モードが現在の動作モードと同じではない場合(ステップS137:Noルート)、判定部114は、ステップS133又はS135において特定された動作モードの識別子を含む変更要求を通知部116に送信する(ステップS139)。
判定部114は、通知部116から変更完了通知を受信したか判断する(ステップS141)。変更完了通知を受信していない場合(ステップS141:Noルート)、ステップS141の処理に戻る。
一方、変更完了通知を受信した場合(ステップS141:Yesルート)、判定部114は、動作比較要求を比較部115に送信する(ステップS143)。
判定部114は、比較部115から比較結果を受信したか判断する(ステップS145)。比較結果を受信していない場合(ステップS145:Noルート)、ステップS145の処理に戻る。一方、比較部115から比較結果を受信した場合(ステップS145:Yesルート)、判定部114は、比較結果が「OK」を示しているか判断する(ステップS147)。比較結果が「OK」を示しておらず「NG」を示している場合には(ステップS147:Noルート)、端子Iを介してステップS129の処理に戻る。比較結果が「OK」を示している場合には(ステップS147:Yesルート)、処理は端子Hを介して図18のステップS149に移行する。
図18の説明に移行し、判定部114は、動作モード格納部117に格納されているデータを更新する(ステップ1S49)。具体的には、動作モード格納部117における現在の動作モードの欄に格納されている動作モードの識別子で、変更前の動作モードの欄を更新する。また、ステップS133又はステップS135において特定された動作モードの識別子で、現在の動作モードの欄を更新する。
判定部114は、パターン格納部113にパターンのデータを追加する(ステップS151)。具体的には、まず新たにパターン番号を割り当てる。また、適用する動作モードの列に現在の動作モードの識別子を格納し、変更前の動作モードの列に変更前の動作モードの識別子を格納する。さらに、描画命令の組合せ、GPU使用率及びCPU使用率の列に、取得したデータをそれぞれ格納する。但し、類似するパターンが既にパターン格納部113に格納されている場合(例えばステップS117の処理を行った場合等)には、ステップS151の処理を行わないようにしてもよい。
判定部114は、起動監視部110から動作停止要求を受信したか判断する(ステップ153)。動作停止要求を受信していない場合(ステップS153:Noルート)、処理は端子Fを介して図14のステップS95に戻る。
一方、動作停止要求を受信した場合(ステップS153:Yesルート)、判定部114は、GPUアプリ10の起動前の動作モードの識別子を動作モード格納部117から読み出す(ステップS155)。また、判定部114は、ステップS155において読み出された動作モードの識別子を含む変更要求を通知部116に送信する(ステップS157)。
そして、判定部114は、通知部116から変更完了通知を受信したか判断する(ステップS159)。変更完了通知を受信していない場合(ステップS159:Noルート)、ステップS159の処理に戻る。一方、変更完了通知を受信した場合(ステップS159:Yesルート)、判定部114は動作を停止し(ステップS161)、処理は終了する。
以上のような処理を実施することにより、GPU使用率に応じ、GPUアプリ10による画像処理への悪影響を及ぼさないような動作モードを特定することができるようになる。
次に、図19を用いて、通知部116の処理について説明する。まず、通知部116は、判定部114から変更要求を受信したか判断する(図19:ステップS171)。変更要求を受信していない場合(ステップS171:Noルート)、ステップS171の処理に戻る。
一方、変更要求を受信した場合(ステップS171:Yesルート)、通知部116は、変更部127に変更要求を送信する(ステップS173)。
通知部116は、変更部127から変更完了通知を受信したか判断する(ステップS175)。変更完了通知を受信していない場合(ステップS175:Noルート)、ステップS175の処理に戻る。
一方、変更完了通知を受信した場合(ステップS175:Yesルート)、通知部116は、判定部114に変更完了通知を送信する(ステップS177)。そして処理を終了する。
以上のような処理を実施することにより、画面制御部12と管理部11との間で適切に情報を交換することができるようになる。
次に、図20を用いて、比較部115の処理について説明する。まず、比較部115は、判定部114から動作比較要求を受信したか判断する(図20:ステップS181)。動作比較要求を受信していない場合(ステップS181:Noルート)、ステップS181の処理に戻る。
一方、動作比較要求を受信したと判断された場合(ステップS181:Yesルート)、比較部115は、動作モードの変更前及び変更後における描画命令の間隔を要求する取得要求をAPI監視部112に送信する(ステップS183)。また、比較部115は、動作モードの変更前及び変更後におけるフレームレートを要求する取得要求を計測部125に送信する(ステップS185)。
比較部115は、フレームレート及び描画命令の間隔を受信したか判断する(ステップS187)。フレームレート及び描画命令の間隔を受信していない場合には(ステップS187:Noルート)、ステップS187の処理に戻る。
一方、フレームレート及び描画命令の間隔を受信した場合には(ステップS187:Yesルート)、比較部115は、動作モードの変更後に描画命令の間隔が長くなったか判断する(ステップS189)。動作モードの変更後に描画命令の間隔が長くなった場合(ステップS189:Yesルート)、比較部115は、「NG」であることを示す比較結果を判定部114に送信する(ステップS193)。動作モードを変更したことによって、GPUアプリ10の処理が遅延している可能性があるからである。一方、描画命令の間隔が短くなった場合(ステップS189:Noルート)、比較部115は、フレームレートが低下したか判断する(ステップS191)。
フレームレートが低下したと判断された場合(ステップS191:Yesルート)、比較部115は、「NG」であることを示す比較結果を判定部114に送信する(ステップS193)。フレームレートが低下すると、クライアント端末5において画面が適切に表示されない可能性があるからである。一方、フレームレートが上昇したと判断された場合(ステップS191:Noルート)、比較部115は、「OK」であることを示す比較結果を判定部114に送信する(ステップS195)。そして処理を終了する。
以上のような処理を実施することにより、動作モードの変更後において、GPUアプリ10による画像処理に遅延が生じたり、フレームレートが低下していないかを確認することができるようになる。
次に、図21を用いて、変更部127の処理について説明する。まず、変更部127は、通知部116から変更要求を受信したか判断する(図21:ステップS201)。変更要求を受信していない場合(ステップS201:Noルート)、ステップS201の処理に戻る。一方、変更要求を受信した場合(ステップS201:Yesルート)、変更部127は、動作モードの変更を実行する(ステップS203)。また、計測部125に対して、動作モードを変更することを表す変更通知を送信する。
例えば、動作モードがレベル3からレベル5に変更される場合には、新たに第1送信部121及び第2送信部126に対して、GPU16が処理を実行するように設定を行う。逆に、動作モードがレベル5からレベル3に変更される場合には、第1送信部121及び第2送信部126に対して、CPU17が処理を実行するように設定を行う。
そして、変更部127は、変更完了通知を通知部116に送信する(ステップS205)。そして処理を終了する。
以上のような処理を実施することで、管理部11において決定された動作モードに従って、GPU16による実行とCPU17による実行とを切り替えることができるようになる。
次に、図22を用いて、計測部125の処理について説明する。まず、計測部125は、クライアント端末5に画面データを送信する処理についてフレームレートを計測し、記憶装置に格納する(図22:ステップS211)。そして、計測部125は、所定時間スリープする(ステップS213)。そして、計測部125は、処理を終了するか判断する(ステップS215)。例えば、サーバ1とクライアント端末5との間の接続が切断されている場合には、処理を終了する(ステップS215:Yesルート)。一方、処理を終了しない場合(ステップS215:Noルート)、計測部125は、動作モードを変更することを表す変更通知を変更部127から受信したか判断する(ステップS217)。
変更通知を受信していない場合(ステップS217:Noルート)、ステップS211の処理に戻る。一方、変更通知を受信した場合(ステップS217:Yesルート)、計測部125は、クライアント端末5に画面データを送信する処理についてフレームレートを計測し、記憶装置に格納する(ステップS219)。そして、計測部125は、所定時間スリープする(ステップS221)。
計測部125は、比較部115から取得要求を受信したか判断する(ステップS223)。取得要求を受信していない場合(ステップS223:Noルート)、ステップS219の処理に戻る。一方、取得要求を受信した場合(ステップS223:Yesルート)、計測部125は、動作モードの変更前及び変更後のフレームレートを比較部115に送信する(ステップS225)。そしてステップS211の処理に戻る。
以上のような処理を実施することで、動作モードの変更前と変更後とでフレームレートを比較することができるようになる。
[実施の形態2]
第1の実施の形態における動作モード決定処理(図9)においては、GPU使用率を用いて動作モードを決定した。第2の実施の形態では、GPU使用率及びCPU使用率を用いて動作モードを決定する。
図23Aに、第2の実施の形態における決定データ格納部118に格納されているデータの一例を示す。図23Aの例では、GPU使用率の範囲とCPU使用率の範囲との組合せに対応付けて動作モードの識別子が格納されている。このようなデータを用いて、図23Bに示すような処理を実施する。
判定部114は、ステップS7において取得したGPU使用率が属する範囲とステップS19において取得したCPU使用率が属する範囲との組合せに対応する動作モードの識別子を決定データ格納部118から特定する(図23B:ステップS301)。そして処理を終了する。
このような処理を実施することによって、GPU使用率だけでなくCPU使用率をも考慮したうえで動作モードを決定することができるようになる。
[実施の形態3]
第3の実施の形態においては、GPU使用率の変化量の閾値を描画命令毎に異なる値にする。図24に、描画命令毎の閾値の設定例を示す。なお、描画命令の種類は図24に示したものには限られない。
第3の実施の形態においては、ステップS97の処理において、判定部114は、描画命令毎にGPU使用率を取得する。その前提として、取得部111がGPUドライバ14を介して描画命令毎にGPU使用率を取得し、判定部114に送信する。また、ステップS101の処理において、判定部114は、各描画命令について、GPU使用率の変化量が閾値を超えたか判断する。その際、いずれかの描画命令についてGPU使用率の変化量が閾値を超えた場合にステップS105の処理に進むようにしてもよいし、閾値が最大である描画命令についてGPU使用率がその閾値を超えた場合にステップS105の処理に進むようにしてもよい。
このようにすることで、動作モードを変更する時機をより適切に検出することができるようになる。
[実施の形態4]
第4の実施の形態においては、API監視部112において監視する描画命令を限定する。例えばステップS97の処理において、判定部114は、特定の描画命令のみGPU使用率を取得する。その前提として、取得部111がGPUドライバ14を介して特定の描画命令のみGPU使用率を取得し、判定部114に送信する。また、ステップS101の処理において、判定部114は、特定の描画命令に対して予め設定された閾値とGPU使用率の変化量とを比較し、GPU使用率の変化量が閾値を超えた場合にステップS105の処理に進む。
このようにすることで、API監視部112及び判定部114の処理負荷を削減することができるようになる。
[実施の形態5]
第5の実施の形態においては、画面制御部12において動作モードを変更すべき所定の事由が発生した場合に、動作モードの変更を行えるようにする。所定の事由とは、例えば第2送信部126における動画のデータの送信が開始又は停止したこと、或いはフレームレートの変化量が所定の閾値を超えたこと等が考えられる。
図25を用いて、第5の実施の形態における通知部116の処理について説明する。まず、通知部116は、動作モードの変更可否についての問い合わせを変更部127から受信したか判断する(図25:ステップS241)。変更可否の問い合わせを受信していない場合(ステップS241:Noルート)、ステップS241の処理に戻る。一方、変更可否の問い合わせを受信した場合(ステップS241:Yesルート)、通知部116は、動作モードの変更を要求する処理要求を判定部114に送信する(ステップS243)。そして処理を終了する。
図26を用いて、第5の実施の形態における判定部114の処理について説明する。なお、本処理は、上で述べた判定部114の処理とは別スレッドで行われる。
まず、判定部114は、処理要求を通知部116から受信したか判断する(図26:ステップS251)。処理要求を受信していない場合(ステップS251:Noルート)、ステップS251の処理に戻る。一方、処理要求を受信した場合(ステップS251:Yesルート)、判定部114は、動作モード決定処理を実施中であるか判断する(ステップS253)。動作モード決定処理を実施中である場合(ステップS253:Yesルート)、新たに動作モード決定処理を実施しなくてもよいので、処理を終了する。一方、動作モード決定処理を実施中ではない場合(ステップS253:Noルート)、判定部114は、n個の描画命令を受信したか判断する(ステップS255)。
n個の描画命令を受信していない場合(ステップS255:Noルート)、ステップS255の処理に戻る。一方、n個の描画命令を受信した場合(ステップS255:Yesルート)、GPU使用率を取得部111から取得する(ステップS257)。そして、処理は端子Jを介して図15のステップS109に移行する。
以上のような処理を実施することで、GPUアプリ10が起動した場合だけでなく、画面制御部12において動作モードを変更すべき所定の事由が生じた場合に、動作モードを変更することができるようになる。
[実施の形態6]
本実施の形態においては、画面制御部12の処理においてGPUメモリの獲得に失敗した場合に、GPUメモリを大量に消費する動作モード(本実施の形態では、レベル3乃至レベル5の動作モード)へは変更しないようにする処理について説明する。
本実施の形態においては、取得部111が、ステップS83においてGPU使用率だけでなくGPUメモリの使用量を取得し、ステップS85において判定部114に送信するようになっている。また、通知部116は、第5の実施の形態と同様の処理を実施できるようになっている。
そして、本実施の形態における判定部114は、上で説明した処理とは別スレッドで、図27に示すような処理を実行する。前提として、判定部114は、前回パターン格納部113にレコードを格納した際に、そのレコードのパターン番号を記憶装置に記憶しておくものとする。
まず、判定部114は、通知部116から処理要求を受信したか判断する(図27:ステップS261)。処理要求を受信していない場合(ステップS261:Noルート)、ステップS261の処理に戻る。一方、処理要求を受信した場合(ステップS261:Yesルート)、判定部114は、動作モード決定処理を実施中であるか判断する(ステップS263)。
動作モード決定処理を実施中である場合(ステップS263:Yesルート)、新たに動作モード決定処理を実施しなくてもよいので、処理を終了する。一方、動作モード決定処理を実施中ではない場合(ステップS263:Noルート)、判定部114は、GPUメモリの獲得に失敗したことを示す情報が処理要求に含まれているか判断する(ステップS265)。
GPUメモリの獲得に失敗したことを示す情報が処理要求に含まれていない場合(ステップS265:Noルート)、判定部114は、n個の描画命令を受信したか判断する(ステップS271)。
n個の描画命令を受信していない場合(ステップS271:Noルート)、ステップS271の処理に戻る。一方、n個の描画命令を受信した場合(ステップS271:Yesルート)、GPU使用率を取得部111から取得する(ステップS273)。そして、処理は端子Jを介して図15のステップS109に移行する。
一方、GPUメモリの獲得に失敗したことを示す情報が処理要求に含まれている場合(ステップS265:Yesルート)、判定部114は、パターン格納部113において、記憶装置に記憶しているパターン番号に対応するNG動作モードの列に現在の動作モードの識別子を格納する(ステップS267)。また、適用する動作モードの列に格納されている動作モードの識別子を「レベル2」に変更し、ステップS83において取得したGPUメモリの使用量をGPUメモリ使用量の列に格納する。
図28に、第6の実施の形態におけるパターン格納部113に格納されているデータの一例を示す。図28の例では、パターン番号と、描画命令のパターン(組合せ)と、現在の動作モードの識別子と、GPU使用率と、GPUメモリ使用量と、CPU使用率と、適用する動作モードの識別子と、NG動作モード(適用すべきでない動作モード)の識別子とが格納されている。
そして、判定部114は、動作モードの識別子「レベル2」を含む変更要求を通知部116に送信する(ステップS269)。そして処理は端子Gを介して図16のステップS121に移行する。
このような処理を実施することによって、画面制御部12の処理においてGPUメモリの獲得に失敗した場合に、GPUメモリを大量に消費するような動作モードには変更しないようにすることができるようになる。
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で説明したサーバ1の機能ブロック構成は必ずしも実際のプログラムモジュール構成に対応するものではない。
また、上で説明した各テーブルの構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
なお、第6の実施の形態においては、GPUメモリを大量に使用する動作モードをレベル3乃至5の動作モードとしていたが、このような例に限られるわけではない。また、必ずしもレベル2の動作モードに変更しなくてもよく、例えばレベル0又はレベル1の動作モードに変更するようにしてもよい。
なお、上で述べたサーバ1及びクライアント端末5は、コンピュータ装置であって、図29に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本技術の実施の形態をまとめると、以下のようになる。
本実施の形態に係る情報処理方法は、画像処理のためのプロセッサ(例えばGPU)である第1のプロセッサと当該第1のプロセッサによって実行された画像処理の結果を含む画面のデータをユーザ端末に表示させるための処理を実行する第2のプロセッサ(例えばCPU)とを有するコンピュータにおける第2のプロセッサに実行される。そして、本情報処理方法は、(A)第1のプロセッサによって画像処理が実行されている場合に、2以上の時点において第1のプロセッサの使用率を取得する取得処理と、(B)取得された第1のプロセッサの使用率を用いて、第1のプロセッサの使用率に所定の変化が生じたか判断する判断処理と、(C)第1のプロセッサの使用率に所定の変化が生じたと判断された場合に、取得された第1のプロセッサの使用率に応じて、画面のデータをユーザ端末に表示させるために実行すべき複数の処理のうちいずれの処理を第1のプロセッサに実行させるかを決定する決定処理と、(D)決定処理の結果に従って複数の処理が実行されるように設定を行う設定処理とを含む。
このようにすれば、第1のプロセッサによる画像処理への影響を抑制しつつ、第1のプロセッサを有効に利用することができるようになる。これにより、ユーザ端末での操作に対するレスポンスを改善できるようになる。
また、上で述べた本情報処理方法が、(E)第1のプロセッサに出力される、画像処理のための処理命令を複数取得する処理と、(F)設定処理の前に取得した複数の処理命令の取得時刻を用いて、設定処理の前における処理命令の間隔を算出し、設定処理の後に取得した複数の処理命令の取得時刻を用いて、設定処理の後における処理命令の間隔を算出し、設定処理の後の処理命令の間隔が設定処理の前の処理命令の間隔よりも短いか判断する処理と、(G)設定処理の後の処理命令の間隔が設定処理の前の処理命令の間隔よりも長いと判断された場合、決定処理において第1のプロセッサに実行させると決定された処理のうちいずれかの処理を第2のプロセッサが実行するように設定を行う処理とをさらに含むようにしてもよい。処理命令の間隔が長くなる場合には、画像処理の速度が遅くなっている可能性がある。そこで、第1のプロセッサによる画像処理に影響を及ぼすおそれがある場合には、設定をさらに変更して影響を抑制することができるようになる。
また、上で述べた本情報処理方法が、(H)画面データをユーザ端末に送信する処理についてフレームレートを計測する処理と、(I)設定処理の前のフレームレートと設定処理の後のフレームレートとを比較し、設定処理の後のフレームレートが設定処理の前のフレームレートよりも高いか判断する処理と、(J)設定処理の後の処理命令の間隔が設定処理の前の処理命令の間隔よりも短く且つ設定処理の後のフレームレートが設定処理の前のフレームレートよりも低いと判断された場合に、決定処理において第1のプロセッサに実行させないと決定された処理のうちいずれかの処理を第1のプロセッサが実行するように設定を行う処理とをさらに含むようにしてもよい。フレームレートが低くなっている場合には、ユーザ端末において画面のデータが適切に表示されていない(例えばコマ送りのようになる等)場合がある。そこで、処理命令の間隔が短くなっており第1のプロセッサに余裕がある場合には、第1のプロセッサに実行させる処理を増やすことで、第2のプロセッサの負担を減らすことができるようになる。
また、上で述べた本情報処理方法が、(K)第2のプロセッサの使用率を取得する処理と、(L)設定処理の後の処理命令の間隔が設定処理の前の処理命令の間隔よりも短く且つ設定処理の後のフレームレートが設定処理の前のフレームレートよりも高いと判断された場合に、第1のプロセッサに実行させる処理の組合せの識別子に対応付けて第1のプロセッサの使用率と第2のプロセッサの使用率と処理命令の組合せとを含むレコードを格納する第1データ格納部に、決定処理において第1のプロセッサに実行させると決定された処理の組合せの識別子に対応付けて、設定処理の前に取得された第1のプロセッサの使用率と第2のプロセッサの使用率と処理命令の組合せとを含むレコードを格納する格納処理とをさらに含むようにしてもよい。このように、適切な設定を行うことができた場合にはレコードを残しておくことで、後にレコードを利用して簡便に設定を行うことができるようになる。
また、上で述べた決定処理が、(c1)第1のプロセッサに実行させる処理の組合せの識別子に対応付けて当該組合せに含まれる処理を実行させた場合における第1のプロセッサの使用率の増加値を格納する第2データ格納部から、決定処理の時点において第1のプロセッサに実行させている処理の組合せの識別子に対応する増加値を特定する処理と、(c2)特定された増加値と、第2データ格納部における他の組合せの識別子に対応する増加値の各々との差を算出する処理と、(c3)他の組合せの各々について、算出された差と取得された第1のプロセッサの使用率との和を算出することにより、当該他の組合せに含まれる処理を第1のプロセッサに実行させた場合における第1のプロセッサの使用率を算出する処理と、(c4)他の組合せのうち、算出された第1のプロセッサの使用率が予め定められた目標値に最も近い組合せの識別子を特定する処理とを含むようにしてもよい。このようにすれば、第1のプロセッサの使用率が予め定められた目標値に最も近くなるように設定を行うことができるようになる。
また、上で述べた決定処理が、(c5)第1のプロセッサの使用率の範囲と第2のプロセッサの使用率の範囲との組合せに対応付けて第1のプロセッサに実行させる処理の組合せの識別子を格納する第3データ格納部から、取得された第1のプロセッサの使用率が属する範囲と第2のプロセッサの使用率が属する範囲との組合せに対応する処理の組合せの識別子を特定する処理を含むようにしてもよい。このようにすれば、第1のプロセッサの使用率だけでなく第2のプロセッサの使用率も考慮したうえで第1のプロセッサに実行させる処理の組合せを特定することができるようになる。
また、上で述べた決定処理が、(c6)第1データ格納部から、取得された第1のプロセッサの使用率、第2のプロセッサの使用率及び処理命令の組合せに最も近いレコードに対応する処理の組合せの識別子を特定する処理を含むようにしてもよい。このようにすれば、実績のあるレコードを利用して簡便に設定を行うことができるようになる。
また、上で述べた判断処理が、(b1)第1のプロセッサの使用率の変化量が所定回数連続して所定の閾値以上であるか判断する処理を含むようにしてもよい。例えばユーザの指示に応じて一連の画像処理が行われる際には、第1のプロセッサの使用率の変化量が一時的に大きくなることがある。そこで、上で述べたようにすることで、決定処理を行うべき時機を適切に検出することができるようになる。
また、上で述べた取得処理が、(a1)画像処理に含まれる処理の各々について、第1のプロセッサの使用率を2以上の時点において取得する処理を含むようにしてもよい。そして、上で述べた判断処理が、(b2)画像処理に含まれる処理のうち少なくともいずれかの処理による第1のプロセッサの使用率の変化量が、画像処理に含まれる処理毎に予め定められた閾値を所定回数連続して超えたか判断する処理を含むようにしてもよい。画像処理のための処理命令には、例えば線を描くための命令、色付けのための命令、オブジェクトを移動させるための命令、オブジェクトを回転させる命令など、様々な処理命令があり、それぞれの処理によって使用率の大きさは異なる。そこで、上で述べたような処理を行うことで、決定処理を行うべきタイミングをより適切に検出することができるようになる。
また、上で述べた取得処理が、(a2)画像処理に含まれる処理のうち第1の処理による第1のプロセッサの使用率を2以上の時点において取得する処理を含むようにしてもよい。そして、上で述べた判断処理が、(b3)第1の処理による第1のプロセッサの使用率の変化量が、第1の処理に対して予め定められた閾値を所定回数連続して超えたか判断する処理を含むようにしてもよい。このようにすれば、処理対象とする処理命令を限定することができるので、取得処理の処理負荷を削減することができるようになる。
また、上で述べた本情報処理方法が、(M)画面のデータを前記ユーザ端末に表示させるために実行すべき複数の処理のうちいずれかの処理において第1のプロセッサが使用するメモリの獲得に失敗した場合に、決定処理において第1のプロセッサに実行させると決定された処理の組合せを採用すべきではないことを示す情報を格納処理において格納されたレコードに追加すると共に、決定処理において第1のプロセッサに実行させると決定された処理の組合せの識別子を、第1のプロセッサが使用するメモリの使用量が所定の基準より少ない処理の組合せの識別子に変更する処理をさらに含むようにしてもよい。このようにすれば、第1のプロセッサが使用するメモリを大量に使用するような処理の組合せが採用されることを防止できるようになる。
また、第1のプロセッサによって画像処理が実行されており且つ画面のデータをユーザ端末に表示させるために実行すべき複数の処理のうちいずれかの処理において当該処理を担当するプロセッサを変更すべき所定の事由が生じた場合に、取得処理を実行するようにしてもよい。このようにすれば、例えば動画のデータの送信を開始したためにフレームレートが低下することが予想される場合等において、取得処理を実行することができるようになる。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
画像処理のためのプロセッサである第1のプロセッサと当該第1のプロセッサによって実行された画像処理の結果を含む画面のデータをユーザ端末に表示させるための処理を実行する第2のプロセッサとを有するコンピュータにおける前記第2のプロセッサに実行させるためのプログラムであって、
前記第1のプロセッサによって画像処理が実行されている場合に、2以上の時点において前記第1のプロセッサの使用率を取得する取得処理と、
取得された前記第1のプロセッサの使用率を用いて、前記第1のプロセッサの使用率に所定の変化が生じたか判断する判断処理と、
前記第1のプロセッサの使用率に前記所定の変化が生じたと判断された場合に、取得された前記第1のプロセッサの使用率に応じて、前記画面のデータを前記ユーザ端末に表示させるために実行すべき複数の処理のうちいずれの処理を前記第1のプロセッサに実行させるかを決定する決定処理と、
前記決定処理の結果に従って前記複数の処理が実行されるように設定を行う設定処理と、
を実行させるためのプログラム。
(付記2)
前記第1のプロセッサに出力される、前記画像処理のための処理命令を複数取得する処理と、
前記設定処理の前に取得した複数の前記処理命令の取得時刻を用いて、前記設定処理の前における前記処理命令の間隔を算出し、前記設定処理の後に取得した複数の前記処理命令の取得時刻を用いて、前記設定処理の後における前記処理命令の間隔を算出し、前記設定処理の後の前記処理命令の間隔が前記設定処理の前の前記処理命令の間隔よりも短いか判断する処理と、
前記設定処理の後の前記処理命令の間隔が前記設定処理の前の前記処理命令の間隔よりも長いと判断された場合、前記決定処理において前記第1のプロセッサに実行させると決定された処理のうちいずれかの処理を前記第2のプロセッサが実行するように設定を行う処理と、
をさらに実行させるための付記1記載のプログラム。
(付記3)
前記画面データを前記ユーザ端末に送信する処理についてフレームレートを計測する処理と、
前記設定処理の前のフレームレートと前記設定処理の後のフレームレートとを比較し、前記設定処理の後のフレームレートが前記設定処理の前のフレームレートよりも高いか判断する処理と、
前記設定処理の後の前記処理命令の間隔が前記設定処理の前の前記処理命令の間隔よりも短く且つ前記設定処理の後のフレームレートが前記設定処理の前のフレームレートよりも低いと判断された場合に、前記決定処理において前記第1のプロセッサに実行させないと決定された処理のうちいずれかの処理を前記第1のプロセッサが実行するように設定を行う処理と、
をさらに実行させるための付記2記載のプログラム。
(付記4)
前記第2のプロセッサの使用率を取得する処理と、
前記設定処理の後の前記処理命令の間隔が前記設定処理の前の前記処理命令の間隔よりも短く且つ前記設定処理の後のフレームレートが前記設定処理の前のフレームレートよりも高いと判断された場合に、前記第1のプロセッサに実行させる処理の組合せの識別子に対応付けて前記第1のプロセッサの使用率と前記第2のプロセッサの使用率と前記処理命令の組合せとを含むレコードを格納する第1データ格納部に、前記決定処理において前記第1のプロセッサに実行させると決定された処理の組合せの識別子に対応付けて、前記設定処理の前に取得された前記第1のプロセッサの使用率と前記第2のプロセッサの使用率と前記処理命令の組合せとを含むレコードを格納する格納処理と、
をさらに実行させるための付記3記載のプログラム。
(付記5)
前記決定処理が、
前記第1のプロセッサに実行させる処理の組合せの識別子に対応付けて当該組合せに含まれる処理を実行させた場合における前記第1のプロセッサの使用率の増加値を格納する第2データ格納部から、前記決定処理の時点において前記第1のプロセッサに実行させている処理の組合せの識別子に対応する増加値を特定する処理と、
特定された前記増加値と、前記第2データ格納部における他の組合せの識別子に対応する増加値の各々との差を算出する処理と、
前記他の組合せの各々について、算出された前記差と取得された前記第1のプロセッサの使用率との和を算出することにより、当該他の組合せに含まれる処理を前記第1のプロセッサに実行させた場合における前記第1のプロセッサの使用率を算出する処理と、
前記他の組合せのうち、算出された前記第1のプロセッサの使用率が予め定められた目標値に最も近い組合せの識別子を特定する処理と、
を含む付記1乃至4のいずれか1つ記載のプログラム。
(付記6)
前記決定処理が、
前記第1のプロセッサの使用率の範囲と前記第2のプロセッサの使用率の範囲との組合せに対応付けて前記第1のプロセッサに実行させる処理の組合せの識別子を格納する第3データ格納部から、取得された前記第1のプロセッサの使用率が属する範囲と前記第2のプロセッサの使用率が属する範囲との組合せに対応する処理の組合せの識別子を特定する処理
を含む付記4記載のプログラム。
(付記7)
前記決定処理が、
前記第1データ格納部から、取得された前記第1のプロセッサの使用率、前記第2のプロセッサの使用率及び前記処理命令の組合せに最も近いレコードに対応する処理の組合せの識別子を特定する処理
を含む付記4記載のプログラム。
(付記8)
前記判断処理が、
前記第1のプロセッサの使用率の変化量が所定回数連続して所定の閾値以上であるか判断する処理
を含む付記1乃至7のいずれか1つ記載のプログラム。
(付記9)
前記取得処理が
前記画像処理に含まれる処理の各々について、前記第1のプロセッサの使用率を2以上の時点において取得する処理
を含み、
前記判断処理が、
前記画像処理に含まれる処理のうち少なくともいずれかの処理による前記第1のプロセッサの使用率の変化量が、前記画像処理に含まれる処理毎に予め定められた閾値を所定回数連続して超えたか判断する処理
を含む付記1乃至7のいずれか1つ記載のプログラム。
(付記10)
前記取得処理が、
前記画像処理に含まれる処理のうち第1の処理による前記第1のプロセッサの使用率を2以上の時点において取得する処理
を含み、
前記判断処理が、
前記第1の処理による前記第1のプロセッサの使用率の変化量が、前記第1の処理に対して予め定められた閾値を所定回数連続して超えたか判断する処理
を含む付記1乃至7のいずれか1つ記載のプログラム。
(付記11)
前記画面のデータを前記ユーザ端末に表示させるために実行すべき複数の処理のうちいずれかの処理において前記第1のプロセッサが使用するメモリの獲得に失敗した場合に、前記決定処理において前記第1のプロセッサに実行させると決定された処理の組合せを採用すべきではないことを示す情報を前記格納処理において格納されたレコードに追加すると共に、前記決定処理において前記第1のプロセッサに実行させると決定された処理の組合せの識別子を、前記第1のプロセッサが使用するメモリの使用量が所定の基準より少ない処理の組合せの識別子に変更する処理
をさらに実行させるための付記4乃至10のいずれか1つ記載のプログラム。
(付記12)
前記第1のプロセッサによって画像処理が実行されており、且つ前記画面のデータを前記ユーザ端末に表示させるために実行すべき複数の処理のうちいずれかの処理において当該処理を担当するプロセッサを変更すべき所定の事由が生じた場合に、前記取得処理を実行する
ことを特徴とする付記1乃至11のいずれか1つ記載のプログラム。
(付記13)
画像処理のためのプロセッサである第1のプロセッサと当該第1のプロセッサによって実行された画像処理の結果を含む画面のデータをユーザ端末に表示させるための処理を実行する第2のプロセッサとを有するコンピュータにおける前記第2のプロセッサにより実行される情報処理方法であって、
前記第1のプロセッサによって画像処理が実行されている場合に、2以上の時点において前記第1のプロセッサの使用率を取得する処理と、
取得された前記第1のプロセッサの使用率を用いて、前記第1のプロセッサの使用率に所定の変化が生じたか判断する処理と、
前記第1のプロセッサの使用率に前記所定の変化が生じたと判断された場合に、取得された前記第1のプロセッサの使用率に応じて、前記画面のデータを前記ユーザ端末に表示させるために実行すべき複数の処理のうちいずれの処理を前記第1のプロセッサに実行させるかを決定する決定処理と、
前記決定処理の結果に従って前記複数の処理が実行されるように設定を行う処理と、
を含む情報処理方法。
(付記14)
画像処理のためのプロセッサである第1のプロセッサと、
前記第1のプロセッサによって実行された画像処理の結果を含む画面のデータをユーザ端末に表示させるための処理を実行する第2のプロセッサと、
を有し、
前記第2のプロセッサが、
前記第1のプロセッサによって画像処理が実行されている場合に、2以上の時点において前記第1のプロセッサの使用率を取得し、
取得された前記第1のプロセッサの使用率を用いて、前記第1のプロセッサの使用率に所定の変化が生じたか判断し、
前記第1のプロセッサの使用率に前記所定の変化が生じたと判断された場合に、取得された前記第1のプロセッサの使用率に応じて、前記画面のデータを前記ユーザ端末に表示させるために実行すべき複数の処理のうちいずれの処理を前記第1のプロセッサに実行させるかを決定し、
決定の結果に従って前記複数の処理が実行されるように設定を行う、
情報処理装置。
1 サーバ 3 ネットワーク
5 クライアント端末
10 GPUアプリ 11 管理部
12 画面制御部 13 処理ライブラリ
14 GPUドライバ 15 OS
16 GPU 17 CPU
110 起動監視部 111 取得部
112 API監視部 113 パターン格納部
114 判定部 115 比較部
116 通知部 117 動作モード格納部
118 決定データ格納部 120 画像メモリ
121 第1送信部 122 頻度特定部
123 送信停止部 124 領域識別部
125 計測部 126 第2送信部
127 変更部

Claims (11)

  1. 画像処理のためのプロセッサである第1のプロセッサと当該第1のプロセッサによって実行された画像処理の結果を含む画面のデータをユーザ端末に表示させるための処理を実行する第2のプロセッサとを有するコンピュータにおける前記第2のプロセッサに実行させるためのプログラムであって、
    前記第1のプロセッサに出力される、前記画像処理のための処理命令を複数取得する第1取得処理と、
    前記第1のプロセッサによって画像処理が実行されている場合に、2以上の時点において前記第1のプロセッサの使用率を取得する第2取得処理と、
    取得された前記第1のプロセッサの使用率を用いて、前記第1のプロセッサの使用率に所定の変化が生じたか判断する判断処理と、
    前記第1のプロセッサの使用率に前記所定の変化が生じたと判断された場合に、取得された前記処理命令の組合せ及び前記第1のプロセッサの使用率に応じて、前記画面のデータを前記ユーザ端末に表示させるために実行すべき複数の処理のうちいずれの処理を前記第1のプロセッサに実行させるかを決定する決定処理と、
    前記決定処理の結果に従って前記複数の処理が実行されるように設定を行う設定処理と、
    を実行させるためのプログラム。
  2. 記設定処理の前に取得した複数の前記処理命令の取得時刻を用いて、前記設定処理の前における前記処理命令の間隔を算出し、前記設定処理の後に取得した複数の前記処理命令の取得時刻を用いて、前記設定処理の後における前記処理命令の間隔を算出し、前記設定処理の後の前記処理命令の間隔が前記設定処理の前の前記処理命令の間隔よりも短いか判断する処理と、
    前記設定処理の後の前記処理命令の間隔が前記設定処理の前の前記処理命令の間隔よりも長いと判断された場合、前記決定処理において前記第1のプロセッサに実行させると決定された処理のうちいずれかの処理を前記第2のプロセッサが実行するように設定を行う処理と、
    をさらに実行させるための請求項1記載のプログラム。
  3. 前記画面データを前記ユーザ端末に送信する処理についてフレームレートを計測する処理と、
    前記設定処理の前のフレームレートと前記設定処理の後のフレームレートとを比較し、前記設定処理の後のフレームレートが前記設定処理の前のフレームレートよりも高いか判断する処理と、
    前記設定処理の後の前記処理命令の間隔が前記設定処理の前の前記処理命令の間隔よりも短く且つ前記設定処理の後のフレームレートが前記設定処理の前のフレームレートよりも低いと判断された場合に、前記決定処理において前記第1のプロセッサに実行させないと決定された処理のうちいずれかの処理を前記第1のプロセッサが実行するように設定を行う処理と、
    をさらに実行させるための請求項2記載のプログラム。
  4. 前記第2のプロセッサの使用率を取得する処理と、
    前記設定処理の後の前記処理命令の間隔が前記設定処理の前の前記処理命令の間隔よりも短く且つ前記設定処理の後のフレームレートが前記設定処理の前のフレームレートよりも高いと判断された場合に、前記第1のプロセッサに実行させる処理の組合せの識別子に対応付けて前記第1のプロセッサの使用率と前記第2のプロセッサの使用率と前記処理命令の組合せとを含むレコードを格納する第1データ格納部に、前記決定処理において前記第1のプロセッサに実行させると決定された処理の組合せの識別子に対応付けて、前記設定処理の前に取得された前記第1のプロセッサの使用率と前記第2のプロセッサの使用率と前記処理命令の組合せとを含むレコードを格納する格納処理と、
    をさらに実行させるための請求項3記載のプログラム。
  5. 前記決定処理が、
    前記第1のプロセッサの使用率の範囲と前記第2のプロセッサの使用率の範囲との組合せに対応付けて前記第1のプロセッサに実行させる処理の組合せの識別子を格納する第3データ格納部から、取得された前記第1のプロセッサの使用率が属する範囲と前記第2のプロセッサの使用率が属する範囲との組合せに対応する処理の組合せの識別子を特定する処理
    を含む請求項4記載のプログラム。
  6. 前記決定処理が、
    前記第1データ格納部から、取得された前記第1のプロセッサの使用率、前記第2のプロセッサの使用率及び前記処理命令の組合せに最も近いレコードに対応する処理の組合せの識別子を特定する処理
    を含む請求項4記載のプログラム。
  7. 前記第2取得処理が
    前記画像処理に含まれる処理の各々について、前記第1のプロセッサの使用率を2以上の時点において取得する処理
    を含み、
    前記判断処理が、
    前記画像処理に含まれる処理のうち少なくともいずれかの処理による前記第1のプロセッサの使用率の変化量が、前記画像処理に含まれる処理毎に予め定められた閾値を所定回数連続して超えたか判断する処理
    を含む請求項1乃至のいずれか1つ記載のプログラム。
  8. 前記第2取得処理が、
    前記画像処理に含まれる処理のうち第1の処理による前記第1のプロセッサの使用率を2以上の時点において取得する処理
    を含み、
    前記判断処理が、
    前記第1の処理による前記第1のプロセッサの使用率の変化量が、前記第1の処理に対して予め定められた閾値を所定回数連続して超えたか判断する処理
    を含む請求項1乃至のいずれか1つ記載のプログラム。
  9. 前記画面のデータを前記ユーザ端末に表示させるために実行すべき複数の処理のうちいずれかの処理において前記第1のプロセッサが使用するメモリの獲得に失敗した場合に、前記決定処理において前記第1のプロセッサに実行させると決定された処理の組合せを採用すべきではないことを示す情報を前記格納処理において格納されたレコードに追加すると共に、前記決定処理において前記第1のプロセッサに実行させると決定された処理の組合せの識別子を、前記第1のプロセッサが使用するメモリの使用量が所定の基準より少ない処理の組合せの識別子に変更する処理
    をさらに実行させるための請求項4乃至のいずれか1つ記載のプログラム。
  10. 画像処理のためのプロセッサである第1のプロセッサと当該第1のプロセッサによって実行された画像処理の結果を含む画面のデータをユーザ端末に表示させるための処理を実行する第2のプロセッサとを有するコンピュータにおける前記第2のプロセッサにより実行される情報処理方法であって、
    前記第1のプロセッサに出力される、前記画像処理のための処理命令を複数取得する処理と、
    前記第1のプロセッサによって画像処理が実行されている場合に、2以上の時点において前記第1のプロセッサの使用率を取得する処理と、
    取得された前記第1のプロセッサの使用率を用いて、前記第1のプロセッサの使用率に所定の変化が生じたか判断する処理と、
    前記第1のプロセッサの使用率に前記所定の変化が生じたと判断された場合に、取得された前記処理命令の組合せ及び前記第1のプロセッサの使用率に応じて、前記画面のデータを前記ユーザ端末に表示させるために実行すべき複数の処理のうちいずれの処理を前記第1のプロセッサに実行させるかを決定する決定処理と、
    前記決定処理の結果に従って前記複数の処理が実行されるように設定を行う処理と、
    を含む情報処理方法。
  11. 画像処理のためのプロセッサである第1のプロセッサと、
    前記第1のプロセッサによって実行された画像処理の結果を含む画面のデータをユーザ端末に表示させるための処理を実行する第2のプロセッサと、
    を有し、
    前記第2のプロセッサが、
    前記第1のプロセッサに出力される、前記画像処理のための処理命令を複数取得し、
    前記第1のプロセッサによって画像処理が実行されている場合に、2以上の時点において前記第1のプロセッサの使用率を取得し、
    取得された前記第1のプロセッサの使用率を用いて、前記第1のプロセッサの使用率に所定の変化が生じたか判断し、
    前記第1のプロセッサの使用率に前記所定の変化が生じたと判断された場合に、取得された前記処理命令の組合せ及び前記第1のプロセッサの使用率に応じて、前記画面のデータを前記ユーザ端末に表示させるために実行すべき複数の処理のうちいずれの処理を前記第1のプロセッサに実行させるかを決定し、
    決定の結果に従って前記複数の処理が実行されるように設定を行う、
    情報処理装置。
JP2011282990A 2011-12-26 2011-12-26 プログラム、情報処理方法及び情報処理装置 Expired - Fee Related JP5842601B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011282990A JP5842601B2 (ja) 2011-12-26 2011-12-26 プログラム、情報処理方法及び情報処理装置
US13/671,154 US20130166632A1 (en) 2011-12-26 2012-11-07 Information processing method and apparatus for allotting processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011282990A JP5842601B2 (ja) 2011-12-26 2011-12-26 プログラム、情報処理方法及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2013134537A JP2013134537A (ja) 2013-07-08
JP5842601B2 true JP5842601B2 (ja) 2016-01-13

Family

ID=48655615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011282990A Expired - Fee Related JP5842601B2 (ja) 2011-12-26 2011-12-26 プログラム、情報処理方法及び情報処理装置

Country Status (2)

Country Link
US (1) US20130166632A1 (ja)
JP (1) JP5842601B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9128721B2 (en) * 2012-12-11 2015-09-08 Apple Inc. Closed loop CPU performance control
KR102657587B1 (ko) * 2016-11-21 2024-04-15 삼성전자주식회사 커브 렌더링을 수행하는 방법 및 장치.

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09167141A (ja) * 1995-12-18 1997-06-24 Hitachi Ltd 負荷分散制御方法
JP3224782B2 (ja) * 1998-08-03 2001-11-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 処理分担動的変更方法及びコンピュータ
JP2002328818A (ja) * 2001-02-27 2002-11-15 Sony Computer Entertainment Inc 情報処理装置、統合型情報処理装置、実行負荷計測方法、コンピュータプログラム
US8725844B2 (en) * 2003-11-05 2014-05-13 Hewlett-Packard Development Company, L.P. Method and system for adjusting the relative value of system configuration recommendations
JP2006133839A (ja) * 2004-11-02 2006-05-25 Seiko Epson Corp 画像処理装置、印刷装置および画像処理方法
JP4058038B2 (ja) * 2004-12-22 2008-03-05 株式会社日立製作所 負荷監視装置および負荷監視方法
JP4367856B2 (ja) * 2005-07-07 2009-11-18 レノボ シンガポール プライヴェート リミテッド プロセス制御システム及びその制御方法
JP2007207173A (ja) * 2006-02-06 2007-08-16 Fujitsu Ltd 性能分析プログラム、性能分析方法、および性能分析装置
US8199158B2 (en) * 2008-06-11 2012-06-12 Intel Corporation Performance allocation method and apparatus
US8526460B2 (en) * 2008-10-01 2013-09-03 Harris Corporation Systems and methods for scheduling asynchronous tasks to residual channel space
KR101545510B1 (ko) * 2008-12-24 2015-08-20 삼성전자주식회사 프레임 속도 조절이 가능한 2차원 영상 또는 3차원 영상 디스플레이 방법 및 장치
US8255345B2 (en) * 2009-05-15 2012-08-28 The Aerospace Corporation Systems and methods for parallel processing with infeasibility checking mechanism

Also Published As

Publication number Publication date
JP2013134537A (ja) 2013-07-08
US20130166632A1 (en) 2013-06-27

Similar Documents

Publication Publication Date Title
US9270521B2 (en) Provisioning and managing a cluster deployed on a cloud
CN111078147B (zh) 一种缓存数据的处理方法、装置、设备及存储介质
CA2848747C (en) Remote process execution management
WO2019091017A1 (zh) 动态页面中的埋点处理方法、装置和计算机设备
JP6309546B2 (ja) 操作のための残り時間の推定
US20130073601A1 (en) Remote process execution management
CN114972594B (zh) 一种用于元宇宙的数据处理方法、装置、设备及介质
CN110688174A (zh) 容器启动方法、存储介质和电子设备
CN108881379B (zh) 一种服务器集群间数据同步的方法和装置
CN112843680A (zh) 画面显示方法、装置、终端设备及存储介质
JP5842601B2 (ja) プログラム、情報処理方法及び情報処理装置
CN110083417B (zh) 用户界面响应方法和装置
JP2010108114A (ja) ストレージシステムの性能向上又は管理方法、システム、装置及びプログラム
CN110168513A (zh) 在不同存储系统中对大文件的部分存储
US8433877B2 (en) Storage scalability management
CN110798748A (zh) 一种音视频预加载方法和装置及电子设备
CN112817687A (zh) 一种数据同步方法和装置
CN109284275A (zh) 一种云平台虚拟机文件系统监控方法和装置
US11630752B2 (en) Ingesting data to a processing platform
CN112711572B (zh) 适用于分库分表的在线扩容方法和装置
CN114625474A (zh) 容器迁移方法、装置、电子设备及存储介质
CN114640890B (zh) 一种视频数据动态加载方法、装置、电子设备及存储介质
CA2785062C (en) A method and system for communicating between computing devices
US11593178B2 (en) ML-to-ML orchestration system and method for system wide information handling system (IHS) optimization
US20230344773A1 (en) System and method of dynamically filtering data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150715

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151102

R150 Certificate of patent or registration of utility model

Ref document number: 5842601

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees