JP2011138506A - コンピュータクラウドへのインタフェースとしての仮想OpenCL装置を利用することによるOpenCLアプリケーションの高速化 - Google Patents

コンピュータクラウドへのインタフェースとしての仮想OpenCL装置を利用することによるOpenCLアプリケーションの高速化 Download PDF

Info

Publication number
JP2011138506A
JP2011138506A JP2010285931A JP2010285931A JP2011138506A JP 2011138506 A JP2011138506 A JP 2011138506A JP 2010285931 A JP2010285931 A JP 2010285931A JP 2010285931 A JP2010285931 A JP 2010285931A JP 2011138506 A JP2011138506 A JP 2011138506A
Authority
JP
Japan
Prior art keywords
opencl
virtual device
processor
cloud
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010285931A
Other languages
English (en)
Inventor
Ralf Ratering
ラテリンク ラルフ
Hans-Christian Hoppe
ホッペ ハンス−クリスティアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2011138506A publication Critical patent/JP2011138506A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】コンピュータクラウドへのインタフェースとしての仮想OpenCL装置を利用することによるOpenCLアプリケーションを高速化する。
【解決手段】仮想OpenCL装置を含むコンピュータシステム100において、1つ以上のクライアント102のOpenCLクライアントアプリケーション104からの要求を、仮想OpenCL装置110を介して、リソースブローカ122により装置の特性と比較して、クラウド130において利用可能なサーバ126−1〜126−Zのうちどれが計算負荷を軽減するサービスをクライアント102に提供し得るかを決定し、計算動作をローカルのプロセッサからクラウドの利用可能なリソースを表す仮想装置に負荷軽減する。
【選択図】図1

Description

この開示は、概してコンピュータ分野に関する。より具体的には、本発明の実施例は、概してコンピュータクラウド(compute cloud)へのインタフェースとして仮想OpenCL装置を利用することにより、OpenCLアプリケーションを高速化(accelerate)する技術に関する。
OpenCL(Open Computing Language)は、異種のシステムの汎用の並列プログラミングの最初のオープンな使用料のない標準である。OpenCLは、ソフトウェア開発者がマルチコアCPU(Central Processing Unit)、GPU(Graphical Processing Unit)、セル型アーキテクチャ、及び他の並列プロセッサ(DSP(Digital Signal Processor)等)の様々な組み合わせを使用して、高性能コンピュータサーバ、デスクトップコンピュータシステム及びハンドヘルド装置のための効率的でポータブルなコードを記述する均一のプログラミング環境を提供する。この標準は、Khronos Groupにより開発された。
本発明は、コンピュータクラウドへのインタフェースとしての仮想OpenCL装置を利用することによるOpenCLアプリケーションの高速化を目的とする。
コンピュータクラウドへのインタフェースとして仮想OpenCL装置を利用することにより、OpenCLアプリケーションを高速化する方法及び装置が記載される。一実施例では、1つ以上の計算動作は、ローカルのプロセッサからクラウドの利用可能なリソースを表す仮想装置に負荷軽減される。他の実施例も記載される。
本発明の実施例によれば、コンピュータクラウドへのインタフェースとしての仮想OpenCL装置を利用することによるOpenCLアプリケーションの高速化が可能になる。
ここで説明する或る実施例を実装するために利用され得るコンピュータシステムの実施例のブロック図 本発明の実施例によるフローチャート ここで説明する或る実施例を実装するために利用され得るコンピュータシステムの実施例のブロック図 ここで説明する或る実施例を実装するために利用され得るコンピュータシステムの実施例のブロック図
添付図面を参照して詳細な説明が提供される。図面において、参照符号の最も左の数字は、参照番号が最初に現れる図面を特定する。異なる図面における同じ参照符号の使用は、類似又は同一の項目を示す。
以下の説明では、様々な実施例の完全な理解を提供するため、複数の特定の詳細が示されている。しかし、本発明の様々な実施例は、特定の詳細なしに実施され得る。他にも、周知の方法、手順、構成要素及び回路は、本発明の特定の実施例をあいまいにしないように詳細に記載されていない。更に、本発明の実施例の様々な態様は、集積半導体回路(“ハードウェア”、“HW”とも呼ばれる)、1つ以上のプログラムに構成されたコンピュータ可読命令(“ソフトウェア”、“SW”とも呼ばれる)、又はハードウェアとソフトウェアとの何らかの組み合わせのような、様々な手段を使用して実行されてもよい。この開示の目的で、“ロジック(logic)”への言及は、ハードウェア、ソフトウェア(例えば、プロセッサの動作を制御するマイクロコードを含む)、又はこれらの何らかの組み合わせを意味するものとする。
明細書における“一実施例”又は“実施例”への言及は、実施例に関して記載した特定の機能、構造又は特徴が少なくとも1つの実装に含まれ得ることを意味する。明細書における様々な場所に“一実施例”という用語が現れることは、全て同じ実施例を示してもよく、示さなくてもよい。
また、詳細な説明及び特許請求の範囲において、“結合”及び“接続”並びにその派生語が使用されることがある。本発明の或る実施例では、“接続”は、2つ以上の要素が相互に直接的に物理的又は電気的な接触状態にあることを示すために使用されてもよい。“結合”は、2つ以上の要素が直接的に物理的又は電気的な接触状態にあることを意味してもよい。しかし、“結合”はまた、2つ以上の要素が相互に直接的な接触状態になくてもよいが、依然として相互に協働又は相互作用することを意味してもよい。
OpenCLでは、並列コンピュータカーネルは、ホスト(通常はCPU)から同じシステムのアクセラレータ装置(例えば、GPU、CPU又はFPGA(Field-Programmable Gate Array))に負荷軽減されてもよい。更に、OpenCLは、ポータブルの計算集約的なアプリケーションの開発を容易にするために、移動及び組み込み装置を明示的にカバーする。しかし、予見できる将来における移動装置の並列計算能力は、むしろ制限され得る。これは、小さい待ち時間の少ないグラフィック負荷にとって十分である可能性があるが、計算集約的なOpenCLアプリケーション(科学、工学及びビジネスコンピューティングにおけるシミュレーション、複雑なデータ分析等)の実行を試みることは、期待外れのユーザ経験をもたらす。また、OpenCL可能な装置を全く含まず、非常に限られた性能を備えたCPUを有する非常に軽量なプラットフォーム又は組み込みプラットフォームが存在する可能性がある。複雑なOpenCLアプリケーションは、簡単にはこれらのシステムで実行しない。
標準的なデスクトップ及びワークステーションであっても、計算集約的なOpenCLアプリケーションは、コンピュータクラウドのサーバ施設(server farm)にOpenCLの負荷を軽減することにより、高速化され得る。しかし、クラウドで負荷を実行することができる既存のインタフェースは、アプリケーション自体のかなりの変更を必要とすることがある。これらの変更はまた、特定のクラウドコンピューティングシステムに関連付けられることがあり、このことは、業界におけるクラウドコンピューティングの採用を更に妨げる。
このため、ここで説明する実施例のいくつかは、コンピュータクラウドへのインタフェースとして仮想OpenCL装置を利用することにより、OpenCLアプリケーションを高速化する技術を提供する。実施例では、計算集約的なOpenCLアプリケーションは、ローカルネットワーク(インターネット又はイントラネット)上のコンピュータクラウドにアプリケーションの1つ以上のコンピュータカーネルの負荷を軽減することにより高速化される。一実施例では、負荷の軽減は、アプリケーションにトランスペアレントであるように実行されてもよい。従って、アプリケーションコードを変更する必要はない。このことは、OpenCLアプリケーションが軽量のシステムで実行し、バックエンドのクラウドの大規模なサーバの性能の潜在能力に入り込むことを可能にする。
図1は、実施例による仮想OpenCL装置を含むコンピュータシステム100を示している。図示のように、1つ以上のクライアント102は、OpenCLに準拠したアプリケーションプログラムでもよいOpenCLクライアントアプリケーション104と、OpenCL API(Application Programming Interface)106と、OpenCLドライバ108と、仮想OpenCL装置110と、クライアントネットワークサービス112とを含んでもよい。
ネットワークサービス112は、(例えば、SOAP(Simple Object Access Protocol)に従って動作する)リンクを介してネットワーク120に結合される。一実施例では、ネットワーク120は、様々なエージェント(コンピュータ装置等)がデータを通信することを可能にするコンピュータネットワーク(例えば、インターネット、イントラネット又はこれらの組み合わせ)を含んでもよい。実施例では、ネットワーク120は、直列(例えば、ポイント・ツー・ポイント)リンク及び/又は共有通信リンクを介して通信する1つ以上の相互接続(又は相互接続ネットワーク)を含んでもよい。
一実施例では、システム100は、階層化プロトコル方式をサポートしてもよい。階層化プロトコル方式は、物理レイヤ、リンクレイヤ、ルーティングレイヤ、トランスポートレイヤ及び/又はプロトコルレイヤを含んでもよい。更に、ネットワーク120は、ポイント・ツー・ポイント又は共有ネットワークについて1つのプロトコル(例えば、キャッシュプロセッサ(caching processor)又はキャッシュ認識メモリコントローラ(caching aware memory controller))から他のプロトコルへのデータ(例えば、パケットの形式)の送信を容易にしてもよい。また、或る実施例では、ネットワーク120は、1つ以上のキャッシュ・コヒーレント・プロトコル(cache coherent protocol)に従った通信を提供してもよい。
更に、ネットワーク120は、Ethernet(登録商標)、Fast Ethernet(登録商標)、Gigabit Ethernet(登録商標)、広域ネットワーク(WAN)、FDDI(fiber distributed data interface)、トークンリング、専用回線、アナログモデム、デジタル加入者線(DSL及びその種類(HDSL(high bit-rate DSL、IDSL(integrated services digital network DSL)等)、非同期転送モード(ATM)、ケーブルモデム、及び/又はFireWireのような如何なる種類の通信プロトコルを利用してもよい。
ネットワーク120を通じた無線通信は、無線ローカルエリアネットワーク(WLAN)、無線広域ネットワーク(WWAN)、符号分割多重アクセス(CDMA)セルラ無線電話通信システム、GSM(global system for mobile communications)セルラ無線電話システム、NADC(North American Digital Cellular)セルラ無線電話システム、時分割多重アクセス(TDMA)システム、E-TDMA(extended TDMA)セルラ無線電話システム、広帯域CDMA(WCDMA)のような3GPP(third generation partnership project)システム等のうち1つ以上に従ってもよい。更に、ネットワーク通信は、内部ネットワークインタフェース装置(例えば、コンピュータシステムと同じ物理筐体内に存在する)により確立されてもよく、ネットワークインタフェースカード又はコントローラ(NIC)のような外部ネットワークインタフェース装置(例えば、結合されたコンピュータシステムと異なる物理筐体及び/又は電源を有する)により確立されてもよい。
図1に示すように、ネットワーク120は、クラウド130において1つ以上の利用可能なサーバ(又はコンピュータリソース)126-1〜126-Zのうちどれが計算負荷を軽減するサービスをクライアント102に提供し得るかを決定するリソースブローカ(resource broker)ロジック122に結合されてもよい。(例えば、SOAPに従って動作する)リンク131-1〜131-Zは、サーバ126-1〜126-Zをリソースブローカ122に結合してもよい。各サーバ126-1〜126-Zは、ネットワークサービス(132-1〜132-Z)と、OpenCL API(134-1〜134-Z)と、OpenCLドライバ(136-1〜136-Z)とを含んでもよい。
実施例では、仮想OpenCL装置110は、OpenCLフレームワークでコンピュータクラウドに統合されてもよい。この仮想装置110は、クラウド130のインフラストラクチャとの通信を扱うOpenCLドライバ108内に実装されてもよい。OpenCLドライバ108は、クライアントシステムに別々にインストールされてもよく、既存のOpenCLドライバへの拡張として利用可能になってもよい。実施例では、ドライバ108は、アプリケーション104への標準的なOpenCLドライバとして見えてもよく、クラウド130のインフラストラクチャとの全ての通信をトランスペアレントに扱ってもよい。ユーザは、ドライバシステムパネルにおいて、クラウドのサポートをオン及びオフに切り替えることが可能でもよい。更に、例えば、クラウドのサポートが可能な場合に利用可能な装置のリストに新たな装置が現れることを除いて、アプリケーション自体は全く違いに気付かなくてもよい。
実施例では、仮想OpenCL装置110は、クラウド130の利用可能なリソースをクライアント102に示してもよい。例えば、アプリケーション104が最高の性能を備えた装置を探している場合、リストから仮想装置110を選択し、ローカル装置と同じOpenCL関数を通じて仮想装置110を使用してもよい。実施例では、仮想装置の1つの特別な特性は、OpenCL関数をローカルで実行しなくてもよく、その代わりに、OpenCL関数をネットワーク上でコンピュータクラウド130に転送してもよい点である。ホスト/クライアントプラットフォーム102のOpenCLドライバ108は、クラウド(例えば、サービス132-1〜132-Z)により提供されるネットワークサービスインタフェースと通信するクライアントとして(例えば、ネットワークサービス112を介して)動作してもよい。
カーネルの負荷軽減と、クライアント102及びクラウド130の間でのデータの転送及び返送をトランスペアレントに扱うために、OpenCLランタイムに規定されたAPIコールがウェブ/ネットワークサービスとして実装されてもよい。例えば、API関数がアプリケーション104により実行される毎に、仮想装置110はこれを検出し、クラウド130の対応するウェブ/ネットワークサービスを起動してもよい。或る実施例では、クラウド130は、コンピュータシステムの異種の集合から構成されてもよい。唯一の要件は、コンピュータシステムがOpenCLをサポートする点でもよい。各システムは、OpenCLランタイムコールに対応するネットワークサービスを実行してもよい。次に、ネットワークサービスは、サーバでローカルに利用可能な(例えば、1つ以上のサーバ126-1〜126-Zでローカルに利用可能な)OpenCL装置のOpenCL関数を実行してもよい。
図2は、実施例に従って仮想装置を介してOpenCLアプリケーションを高速化する方法200を示している。或る実施例では、ここで(例えば図1又は3〜4を参照して)説明する1つ以上の構成要素は、方法200の1つ以上の動作を実行するために使用されてもよい。
図1〜2を参照すると、動作202において、アプリケーション(例えば、アプリケーション104)が、(例えば、APIコールclGetDeviceIds()を介して)その利用可能な装置のプラットフォームを要求したか否かが決定される。動作204において、プラットフォーム(例えば、図3又は4を参照して説明するようなプロセッサ)は、(例えば、コールclGetDeviceInfo()を介して)特性(property)について利用可能な装置に問い合わせてもよい。動作206において、アプリケーションは、装置の特性とアプリケーションの要件との間の比較を実行してもよい。動作208において、比較結果に基づいて、アプリケーションは装置を選択してもよい。動作210において、アプリケーションは、(例えば、コールclCreateContext()を介して)装置にコンテキストを生成してもよい。動作212において、このコンテキストは、装置との更なる相互作用に使用されてもよい。実施例では、このクラウド拡張ドライバ108は、(例えば、コールclGetDeviceIds()に応じて)返信される利用可能な装置のリストに仮想装置110を追加する。仮想装置は、クラウドにおける利用可能なリソースを表し、その特性は、対応するシステムのハードウェア機能を記述する。
或る実施例では、クラウド130は、強力な及び/又はマルチコアのCPUを備えたサーバ施設から構成されるため、仮想装置の特性CL_DEVICE_TYPEは、CL_DEVICE_TYPE_CPUに設定される。しかし、クラウドシステムは、GPU(Graphics Processing Unit)、アクセラレータ等を含んでもよく、この場合、装置形式は、それぞれCL_DEVICE_TYPE_GPU又はCL_DEVICE_TYPE_ACCELERATORになる。このことは、各仮想装置が、クラウドで同じ形式且つ同じ特性を備えた一式の異種の物理システムを表し得ることを意味する。或る実施例では、クラウドは、異種の物理システムに同一の仮想機械を配置することにより、形式CL_DEVICE_TYPE_CPUの仮想装置を実装してもよい。このように、仮想装置の特性は、クラウドにおいて物理システムに配置される仮想機械の構成を実際に反映する。仮想装置を使用するために、アプリケーションは、リストから装置を選択し、ローカル装置と同じOpenCL関数を通じてそれを使用する。従って、アプリケーションは、例えば特性を問い合わせることにより、クラウドシステム上で所与のOpenCLカーネルを実行するのが合理的であるか、ローカルで実行するのが合理的であるかを決定してもよい。或る実施例では、アプリケーションコードは、クラウドを利用するために変更される必要はない。その代わりに、クラウドは、シームレスにOpenCLフレームワークに統合され、専らそのOpenCL特性に基づいてアプリケーションにより選択されてもよい。
従って、或る実施例は、ローカルの計算負荷の軽減と、クラウドコンピューティングとの双方を利用する。例えば、クラウドコンピューティングにより提供されるリソース抽象化(abstraction)/管理及びデータ転送機能並びにプロトコル(ウェブ/ネットワークサービス等)は、仮想OpenCL装置110を介して利用され、OpenCLフレームワークに統合されてもよい。従って、クラウドの潜在能力はOpenCLアプリケーション104に利用可能になり、一般的なクラウド又は特定のクラウドの実装を使用するためにアプリケーションを適合させる必要はほとんどない又は全くない。更に、クラウドのインタフェースとの相互作用は、仮想OpenCL装置110にカプセル化され、OpenCLドライバ108により扱われてもよい。更に、“クラウド可能な(cloud-enabled)”OpenCLフレームワークは、OpenCLアプリケーションがサーバプラットフォームで利用可能な計算能力を利用することを可能にし、広範囲のクライアント・フォームファクタ(form factor)を通じた優れた機能及び/又はユーザ経験をもたらす。例えば、シン装置(thin device)の計算能力は、サーバ施設により通常に提供される機能を含むように拡張されてもよい。更に、OpenCLクラウドサービスは、新たなビジネスサービスとして提供されてもよい。例えば、OpenCLドライバは、使用毎の課金で無料で提供されてもよい。
図3は、コンピュータシステム300のブロック図を示している。様々な実施例では、システム300の1つ以上の構成要素は、本発明の或る実施例を参照してここで説明した1つ以上の動作を実行可能な様々な電子装置内に提供されてもよい。例えば、システム300の1つ以上の構成要素は、図1〜2を参照して説明した動作(例えば、コンピュータクラウドへのインタフェースとしての仮想OpenCL装置を利用することによるOpenCLアプリケーションの高速化)を実行するために使用されてもよい。また、ここで(例えば、図3及び/又は4を参照して)説明する様々な記憶装置は、データ、動作結果等を格納するために使用されてもよい。一実施例では、図3の方法300の動作に関連してプロセッサ302により実行される一連の命令を含むデータは、メモリ装置(図3のプロセッサ302又は図4の402/404に存在するメモリ312又は1つ以上のキャッシュ(例えば、実施例ではL1キャッシュ)等)に格納されてもよい。
更に、コンピュータシステム300は、相互接続ネットワーク(又はバス)302を介して通信する1つ以上の中央処理装置(CPU)302又はプロセッサを含んでもよい。プロセッサ302は、汎用プロセッサ、ネットワークプロセッサ(コンピュータネットワーク120上で通信されるデータを処理する)、又は他の形式のプロセッサ(RISC(reduced instruction set computer)プロセッサ又はCISC(complex instruction set computer)を含む)を含んでもよい。更に、プロセッサ302は、単一又は複数コアの設計を有してもよい。複数コアの設計を備えたプロセッサ302は、異なる形式のプロセッサのコアを同じ集積回路(IC)のダイに統合してもよい。また、複数コアの設計を備えたプロセッサ302は、対称型又は非対称型マルチプロセッサとして実装されてもよい。更に、プロセッサ302は、SIMD(Single-Instruction, Multiple-Data)アーキテクチャを利用してもよい。
チップセット306はまた、相互接続ネットワーク304と通信してもよい。チップセット306は、メモリコントロールハブ(MCH:memory control hub)308を含んでもよい。MCH308は、メモリ312(システム300がクライアントである場合、図1の1つ以上の項目104-112を格納してもよく、システム300がクラウドリソース/サーバである場合、図1の1つ以上の項目132-136を格納してもよい)と通信するメモリコントローラ310を含んでもよい。メモリ312は、プロセッサ又はコンピュータシステム300に含まれる他の装置により実行される一連の命令を含み、データを格納してもよい。本発明の一実施例では、メモリ312は、1つ以上の揮発性記憶(又はメモリ)装置(ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、又は他の種類の記憶装置等)を含んでもよい。ハードディスクのような不揮発性メモリも利用されてもよい。複数のCPU及び/又は複数のシステムメモリのように、更なる装置は、相互接続ネットワーク304を介して通信してもよい。
MCH308はまた、ディスプレイ316と通信するグラフィックインタフェース314を含んでもよい。ディスプレイ316は、ここで説明した動作結果をユーザに示すために使用されてもよい。本発明の実施例では、ディスプレイ316は、例えば、ビデオメモリ又はシステムメモリのような記憶装置に格納された画像のデジタル表現を、ディスプレイ316により解釈されて表示されるディスプレイ信号に変換する信号変換器を通じて、グラフィックインタフェース314と通信するフラットパネルディスプレイでもよい。インタフェース314により生成されるディスプレイ信号は、ディスプレイ316により解釈されて次に表示される前に、様々な制御装置を通過してもよい。
ハブインタフェース318は、MCH308及び入出力制御ハブ(ICH:input/output control hub)320が通信することを可能にしてもよい。ICH320は、コンピュータシステム300と通信するI/O装置へのインタフェースを提供してもよい。ICH320は、PCI(peripheral component interconnect)ブリッジ、USB(universal serial bus)コントローラ、又は他の種類の周辺機器ブリッジ若しくはコントローラのような、周辺機器ブリッジ(又はコントローラ)324を通じてバス322と通信してもよい。ブリッジ324は、CPU302と周辺機器装置との間のデータ経路を提供してもよい。他の種類のトポロジが利用されてもよい。また、複数のバスは、例えば複数のブリッジ又はコントローラを通じて、ICH320と通信してもよい。更に、本発明の様々な実施例では、ICH320と通信する他の周辺機器は、IDE(integrated drive electronics)若しくはSCSI(small computer system interface)ハードドライブ、USBポート、キーボード、マウス、パラレルポート、シリアルポート、フロッピー(登録商標)ディスクドライブ、デジタル出力サポート(例えば、デジタルビデオインタフェース(DVI:digital video interface))又は他の装置を含んでもよい。
バス322は、オーディオ装置326と、1つ以上のディスクドライブ328と、ネットワークインタフェース装置330と通信してもよい。ネットワークインタフェース装置330は、コンピュータネットワーク120と通信してもよい。実施例では、装置330は、無線通信可能なNICでもよい。他の装置は、バス322を介して通信してもよい。また、本発明の或る実施例では、様々な構成要素(ネットワークインタフェース装置330等)は、MCH308と通信してもよい。更に、プロセッサ302及びMCH308は、単一のチップを形成するように組み合わされてもよい。更に、本発明の他の実施例では、グラフィックインタフェース314は、MCH308内に含まれてもよい。
更に、コンピュータシステム300は、揮発性及び/又は不揮発性メモリ(又は記憶装置)を含んでもよい。例えば、不揮発性メモリは、読み取り専用メモリ(ROM)、プログラム可能ROM(PROM)、消去可能PROM(EPROM)、電気的EPROM(EEPROM)、ディスクドライブ(例えば328)、フロッピー(登録商標)ディスク、コンパクトディスクROM(CD-ROM)、DVD(digital versatile disk)、フラッシュメモリ、磁気光ディスク、又は電子データ(例えば命令を含む)を格納可能な他の種類の不揮発性機械可読媒体のうち1つ以上を含んでもよい。実施例では、システム300の構成要素は、図4を参照して説明したように、ポイント・ツー・ポイント(PtP)構成で構成されてもよい。例えば、プロセッサ、メモリ、及び/又は入出力装置は、複数のポイント・ツー・ポイント・インタフェースにより相互接続されてもよい。
図4は、本発明の実施例に従ってポイント・ツー・ポイント(PtP)構成で構成されたコンピュータシステム400を示している。特に、図4は、プロセッサ、メモリ及び入出力装置が複数のポイント・ツー・ポイント・インタフェースにより相互接続されているシステムを示している。図1〜3を参照して説明した動作は、システム400の1つ以上の構成要素により実行されてもよい。
図4に示すように、システム400は、複数のプロセッサを含んでもよく、このうち2つのみ(プロセッサ402及び404)が明瞭にするために図示されている。プロセッサ402及び404のそれぞれは、メモリ410及び412と結合するためのローカルのメモリコントローラハブ(MCH:memory controller hub)406及び408を含んでもよい。メモリ410及び/又は412は、図3のメモリ312を参照して説明したような様々なデータを格納してもよい(システム400がクライアントである場合、図1の1つ以上の項目104-112を格納してもよく、システム400がクラウドリソース/サーバである場合、図1の1つ以上の項目132-136を格納してもよい)。
プロセッサ402及び404は、図3のプロセッサ302を参照して説明したもののような如何なる適切なプロセッサでもよい。プロセッサ402及び404は、それぞれPtPインタフェース回路416及び418を使用して、ポイント・ツー・ポイント(PtP)インタフェース414を介してデータを交換してもよい。プロセッサ402及び404のそれぞれは、ポイント・ツー・ポイント・インタフェース回路426、428、430及び432を使用して、個々のPtPインタフェース422及び424を介してチップセット420とデータを交換してもよい。チップセット420はまた、PtPインタフェース回路437を使用して、高性能グラフィックインタフェース436を介して高性能グラフィック回路434とデータを交換してもよい。
本発明の少なくとも1つの実施例は、プロセッサ402及び404を利用することにより提供されてもよい。例えば、プロセッサ402及び/又は404は、図1〜3の1つ以上の動作を実行してもよい。しかし、本発明の他の実施例は、図4のシステム400内の他の回路、ロジックユニット又は装置に存在してもよい。更に、本発明の他の実施例は、図4に示す複数の回路、ロジックユニット又は装置を通じて分散されてもよい。
チップセット420は、PtPインタフェース回路441を使用してバス440に結合されてもよい。バス440は、バスブリッジ442及びI/O装置443のように、それに結合された1つ以上の装置を有してもよい。バス444を介して、バスブリッジ442は、他の装置(キーボード/マウス445、図4を参照して説明したネットワークインタフェース装置430(コンピュータネットワーク120に結合され得るモデム、ネットワークインタフェースカード(NIC)等)、オーディオI/O装置、及び/又はデータ記憶装置448等)に結合されてもよい。データ記憶装置448は、プロセッサ402及び/又は404により実行され得るコード449を格納してもよい。
本発明の様々な実施例では、ここで(例えば、図1〜4を参照して)説明した動作は、ハードウェア(例えば、論理回路)、ソフトウェア(例えば、図1〜4を参照して説明したプロセッサのようなプロセッサの動作を制御するマイクロコードを含む)、ファームウェア、又はこれらの組み合わせとして実装されてもよく、これは、コンピュータプログラムプロダクト(例えば、ここで説明した動作を実行するようにコンピュータ(例えば、コンピュータ装置のプロセッサ又は他のロジック)をプログラムするために使用される命令(又はソフトウェアの手順)を格納した有形の機械可読又はコンピュータ可読媒体を含む)として提供されてもよい。機械可読媒体は、ここで説明したもののような記憶装置を含んでもよい。
更に、このような有形のコンピュータ可読媒体は、コンピュータプログラムプロダクトとしてダウンロードされてもよい。プログラムは、通信リンク(例えば、バス、モデム又はネットワーク接続)を介して有形の伝送媒体に具現されたデータ信号を用いて、遠隔コンピュータ(例えば、サーバ)から要求側コンピュータ(例えば、クライアント)に転送されてもよい。
本発明の実施例について、構造的特徴及び/又は方法的動作に特有の言語で説明したが、特許請求の範囲は、記載した特定の特徴又は動作に限定され得ないことがわかる。むしろ、特定の特徴及び動作は、特許請求の範囲を実現するサンプル形式として開示される。
100 コンピュータシステム
102 クライアント
104 OpenCLクライアントアプリケーション
106 OpenCL API
108 OpenCLドライバ
110 仮想OpenCL装置
112 クライアントネットワークサービス
120 ネットワーク
122 リソースブローカロジック
126 サーバ
130 クラウド
132 ネットワークサービス
134 OpenCL API
136 OpenCLドライバ

Claims (20)

  1. アプリケーションに利用可能な複数の装置のうち仮想装置の選択に応じて、仮想装置に1つ以上の計算動作の負荷を軽減することを有し、
    前記仮想装置の選択は、前記仮想装置の1つ以上の特性と、前記アプリケーションにより決定される1つ以上の要求とに基づき、
    前記仮想装置の前記1つ以上の特性は、クラウドの利用可能なリソースを表す方法。
  2. 前記複数の装置は、プロセッサを有する、請求項1に記載の方法。
  3. 前記プロセッサが、前記プロセッサから前記仮想装置に前記1つ以上の計算動作の負荷を軽減するか否かを決定することを更に有する、請求項2に記載の方法。
  4. 前記プロセッサが前記アプリケーションを実行することを更に有する、請求項2に記載の方法。
  5. 前記負荷の軽減は、OpenCL(Open Computing Language)に従って実行される、請求項1に記載の方法。
  6. 前記複数の装置のうち前記仮想装置の選択に応じて、前記仮想装置の装置コンテキストを生成することを更に有する、請求項1に記載の方法。
  7. 前記生成された装置コンテキストに基づいて前記仮想装置と相互作用することを更に有する、請求項6に記載の方法。
  8. 前記アプリケーションによる要求に応じて前記複数の装置の1つ以上の特性を受信することを更に有する、請求項1に記載の方法。
  9. クラウドの利用可能なリソースを表す仮想装置に対応するデータを格納するメモリと、
    プロセッサから前記仮想装置に1つ以上の計算動作の負荷を軽減するか否かを決定するプロセッサと
    を有する装置。
  10. 前記メモリは、OpenCLクライアントアプリケーションと、OpenCL API(Application Programming Interface)と、OpenCLドライバとのうち1つ以上を格納する、請求項9に記載の装置。
  11. 前記OpenCLドライバは、前記仮想装置を有する、請求項10に記載の装置。
  12. 前記仮想装置のネットワークサービスを前記クラウドの利用可能なリソースのネットワークサービスに結合する1つ以上のリンクを更に有する、請求項9に記載の装置。
  13. 前記クラウドは、ネットワークを介して前記プロセッサに結合される、請求項9に記載の装置。
  14. 前記ネットワークは、イントラネット又はインターネットを有するグループから選択される、請求項13に記載の装置。
  15. 前記プロセッサは、1つ以上のプロセッサコアを有する、請求項9に記載の装置。
  16. 前記クラウドでの前記利用可能なリソースのうちどれが前記1つ以上の計算動作の負荷軽減をサービス提供するかを決定するリソースブローカを更に有する、請求項9に記載の装置。
  17. プロセッサ上で実行されたときに、前記プロセッサに対して、
    アプリケーションに利用可能な複数の装置のうち仮想装置の選択に応じて、仮想装置に1つ以上の計算動作の負荷を軽減する1つ以上の動作を実行させる1つ以上の命令を有し、
    前記仮想装置の選択は、前記仮想装置の1つ以上の特性と、前記アプリケーションにより決定される1つ以上の要求とに基づき、
    前記仮想装置の前記1つ以上の特性は、クラウドの利用可能なリソースを表すコンピュータ可読媒体。
  18. プロセッサ上で実行されたときに、前記プロセッサに対して、
    前記複数の装置のうち前記仮想装置の選択に応じて、前記仮想装置の装置コンテキストを生成させる1つ以上の命令を更に有する、請求項17に記載のコンピュータ可読媒体。
  19. プロセッサ上で実行されたときに、前記プロセッサに対して、
    生成された装置コンテキストに基づいて前記仮想装置と相互作用させる1つ以上の命令を更に有する、請求項17に記載のコンピュータ可読媒体。
  20. プロセッサ上で実行されたときに、前記プロセッサに対して、
    前記アプリケーションによる要求に応じて、前記複数の装置の1つ以上の特性を受信させる1つ以上の命令を更に有する、請求項17に記載のコンピュータ可読媒体。
JP2010285931A 2009-12-26 2010-12-22 コンピュータクラウドへのインタフェースとしての仮想OpenCL装置を利用することによるOpenCLアプリケーションの高速化 Pending JP2011138506A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US29019409P 2009-12-26 2009-12-26
US61/290,194 2009-12-26
US12/952,405 2010-11-23
US12/952,405 US20110161495A1 (en) 2009-12-26 2010-11-23 Accelerating opencl applications by utilizing a virtual opencl device as interface to compute clouds

Publications (1)

Publication Number Publication Date
JP2011138506A true JP2011138506A (ja) 2011-07-14

Family

ID=43837304

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010285931A Pending JP2011138506A (ja) 2009-12-26 2010-12-22 コンピュータクラウドへのインタフェースとしての仮想OpenCL装置を利用することによるOpenCLアプリケーションの高速化

Country Status (4)

Country Link
US (1) US20110161495A1 (ja)
EP (1) EP2339468A3 (ja)
JP (1) JP2011138506A (ja)
CN (1) CN102109997A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013140530A (ja) * 2012-01-06 2013-07-18 Internatl Business Mach Corp <Ibm> 分散計算方法、プログラム、ホストコンピュータおよび分散計算システム(アクセラレータ装置を用いた分散並列計算)
KR20150088045A (ko) * 2014-01-23 2015-07-31 서울대학교산학협력단 매니코어 클러스터 시스템 상에서 병렬 프로그래밍을 수행하는 방법 및 매니코어 클러스터 시스템
KR20160031360A (ko) * 2014-09-12 2016-03-22 삼성전자주식회사 오픈 컴퓨팅 언어 기반의 애플리케이션 실행 방법 및 장치
KR20160042848A (ko) * 2013-01-18 2016-04-20 서울대학교산학협력단 클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템
JP2017204213A (ja) * 2016-05-13 2017-11-16 日本電信電話株式会社 設定サーバ、設定方法および設定プログラム

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101332840B1 (ko) * 2012-01-05 2013-11-27 서울대학교산학협력단 병렬 컴퓨팅 프레임워크 기반의 클러스터 시스템, 호스트 노드, 계산 노드 및 어플리케이션 실행 방법
CN103036916A (zh) * 2011-09-29 2013-04-10 中国移动通信集团公司 远程硬件资源的调用方法及其装置、系统
US9069549B2 (en) 2011-10-12 2015-06-30 Google Technology Holdings LLC Machine processor
US9348676B2 (en) * 2012-01-05 2016-05-24 Google Technology Holdings LLC System and method of processing buffers in an OpenCL environment
US9424089B2 (en) * 2012-01-24 2016-08-23 Samsung Electronics Co., Ltd. Hardware acceleration of web applications
US9448823B2 (en) * 2012-01-25 2016-09-20 Google Technology Holdings LLC Provision of a download script
US20130198325A1 (en) * 2012-01-26 2013-08-01 Motorola Mobility Llc Provision and running a download script
US9047134B2 (en) 2012-03-27 2015-06-02 Infosys Limited System and method for increasing the capabilities of a mobile device
CN104521249B (zh) * 2012-05-02 2019-06-18 诺基亚通信公司 方法和设备
CN103425470A (zh) * 2012-05-22 2013-12-04 Tcl美国研究所 一种加速开放运算语言应用的方法及系统
US9582332B2 (en) * 2012-08-31 2017-02-28 Intel Corporation Enabling a cloud to effectively assign workloads to servers
US10270709B2 (en) 2015-06-26 2019-04-23 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
KR20140054948A (ko) 2012-10-30 2014-05-09 한국전자통신연구원 임베디드 시스템을 위한 오픈씨엘 응용 소프트웨어 개발 지원 도구 구성 및 방법
CN103020002B (zh) * 2012-11-27 2015-11-18 中国人民解放军信息工程大学 可重构多处理器系统
US20140351811A1 (en) * 2013-05-24 2014-11-27 Empire Technology Development Llc Datacenter application packages with hardware accelerators
US20150007196A1 (en) * 2013-06-28 2015-01-01 Intel Corporation Processors having heterogeneous cores with different instructions and/or architecural features that are presented to software as homogeneous virtual cores
CN104423987B (zh) * 2013-09-02 2018-07-06 联想(北京)有限公司 信息处理方法、装置及处理器
CN105793839B (zh) * 2013-12-20 2019-08-06 英特尔公司 执行卸载
JP6395540B2 (ja) * 2014-09-25 2018-09-26 株式会社東芝 連携システム、プログラム
US9792154B2 (en) 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
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
US10719303B2 (en) * 2015-06-07 2020-07-21 Apple Inc. Graphics engine and environment for encapsulating graphics libraries and hardware
US10216555B2 (en) 2015-06-26 2019-02-26 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
US9697034B2 (en) * 2015-08-07 2017-07-04 Futurewei Technologies, Inc. Offloading probabilistic computations in data analytics applications
CN105893083B (zh) * 2016-03-29 2019-06-11 华中科技大学 云环境下基于容器的移动代码卸载支撑系统及其卸载方法
US20170353397A1 (en) * 2016-06-06 2017-12-07 Advanced Micro Devices, Inc. Offloading Execution of an Application by a Network Connected Device
US10303522B2 (en) * 2017-07-01 2019-05-28 TuSimple System and method for distributed graphics processing unit (GPU) computation
CN107295109A (zh) * 2017-08-16 2017-10-24 重庆邮电大学 自组织网络云计算中的任务卸载与功率分配联合决策方法
CN111490946B (zh) * 2019-01-28 2023-08-11 阿里巴巴集团控股有限公司 基于OpenCL框架的FPGA连接实现方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001067237A (ja) * 1999-08-25 2001-03-16 Nec Corp 計算機システム及びその処理方法
JP2005338985A (ja) * 2004-05-25 2005-12-08 Hitachi Ltd 記憶領域管理方法及びシステム
JP2008097358A (ja) * 2006-10-12 2008-04-24 Toyota Infotechnology Center Co Ltd 分散処理システム
JP2008527514A (ja) * 2005-01-06 2008-07-24 インターナショナル・ビジネス・マシーンズ・コーポレーション グリッド・アクティビティのモニタリングおよび振り分けによる総合的グリッド環境管理を促進する方法、システム、およびコンピュータ・プログラム
JP2008234191A (ja) * 2007-03-19 2008-10-02 Toshiba Corp ハードウエアモニタ管理装置及びハードウエアモニタ機能の実行方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050198303A1 (en) * 2004-01-02 2005-09-08 Robert Knauerhase Dynamic virtual machine service provider allocation
US7788665B2 (en) * 2006-02-28 2010-08-31 Microsoft Corporation Migrating a virtual machine that owns a resource such as a hardware device
JP2010500667A (ja) * 2006-08-07 2010-01-07 ベア・システムズ・インコーポレイテッド 仮想マシン環境におけるハードウェア仮想化を提供するためのシステムおよび方法
US8225134B2 (en) * 2007-04-06 2012-07-17 Cisco Technology, Inc. Logical partitioning of a physical device
US8341625B2 (en) * 2008-05-29 2012-12-25 Red Hat, Inc. Systems and methods for identification and management of cloud-based virtual machines
US8286198B2 (en) * 2008-06-06 2012-10-09 Apple Inc. Application programming interfaces for data parallel computing on multiple processors
US8225325B2 (en) * 2008-06-06 2012-07-17 Apple Inc. Multi-dimensional thread grouping for multiple processors
US20090327495A1 (en) * 2008-06-27 2009-12-31 Oqo, Inc. Computing with local and remote resources using automated optimization
US8929877B2 (en) * 2008-09-12 2015-01-06 Digimarc Corporation Methods and systems for content processing
US9189284B2 (en) * 2008-12-31 2015-11-17 Dell Products L.P. Systems and methods for managing computing resources within a network
US20100228819A1 (en) * 2009-03-05 2010-09-09 Yottaa Inc System and method for performance acceleration, data protection, disaster recovery and on-demand scaling of computer applications
US9026987B2 (en) * 2009-05-18 2015-05-05 National Instruments Corporation Client side web hosted program development environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001067237A (ja) * 1999-08-25 2001-03-16 Nec Corp 計算機システム及びその処理方法
JP2005338985A (ja) * 2004-05-25 2005-12-08 Hitachi Ltd 記憶領域管理方法及びシステム
JP2008527514A (ja) * 2005-01-06 2008-07-24 インターナショナル・ビジネス・マシーンズ・コーポレーション グリッド・アクティビティのモニタリングおよび振り分けによる総合的グリッド環境管理を促進する方法、システム、およびコンピュータ・プログラム
JP2008097358A (ja) * 2006-10-12 2008-04-24 Toyota Infotechnology Center Co Ltd 分散処理システム
JP2008234191A (ja) * 2007-03-19 2008-10-02 Toshiba Corp ハードウエアモニタ管理装置及びハードウエアモニタ機能の実行方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6012056425; Khronos OpenCL Working Group: The OpenCL Specification Version 1.0 Document Revision 48, 20090610, page11-27 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013140530A (ja) * 2012-01-06 2013-07-18 Internatl Business Mach Corp <Ibm> 分散計算方法、プログラム、ホストコンピュータおよび分散計算システム(アクセラレータ装置を用いた分散並列計算)
KR20160042848A (ko) * 2013-01-18 2016-04-20 서울대학교산학협력단 클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템
KR101682113B1 (ko) * 2013-01-18 2016-12-02 서울대학교산학협력단 클러스터 시스템의 계산 디바이스 가상화 방법 및 그 시스템
KR20150088045A (ko) * 2014-01-23 2015-07-31 서울대학교산학협력단 매니코어 클러스터 시스템 상에서 병렬 프로그래밍을 수행하는 방법 및 매니코어 클러스터 시스템
KR101594915B1 (ko) 2014-01-23 2016-02-17 서울대학교산학협력단 매니코어 클러스터 시스템 상에서 병렬 프로그래밍을 수행하는 방법 및 매니코어 클러스터 시스템
US9396033B2 (en) 2014-01-23 2016-07-19 Snu R&Db Foundation Method of executing parallel application on manycore cluster system and the manycore cluster system
KR20160031360A (ko) * 2014-09-12 2016-03-22 삼성전자주식회사 오픈 컴퓨팅 언어 기반의 애플리케이션 실행 방법 및 장치
KR102269271B1 (ko) * 2014-09-12 2021-06-28 삼성전자주식회사 오픈 컴퓨팅 언어 기반의 애플리케이션 실행 방법 및 장치
JP2017204213A (ja) * 2016-05-13 2017-11-16 日本電信電話株式会社 設定サーバ、設定方法および設定プログラム

Also Published As

Publication number Publication date
US20110161495A1 (en) 2011-06-30
EP2339468A3 (en) 2013-05-22
CN102109997A (zh) 2011-06-29
EP2339468A2 (en) 2011-06-29

Similar Documents

Publication Publication Date Title
JP2011138506A (ja) コンピュータクラウドへのインタフェースとしての仮想OpenCL装置を利用することによるOpenCLアプリケーションの高速化
US11734179B2 (en) Efficient work unit processing in a multicore system
US9582463B2 (en) Heterogeneous input/output (I/O) using remote direct memory access (RDMA) and active message
CN117544581A (zh) 用于智能网络接口卡的共享存储器
KR101900436B1 (ko) 결합된 cpu/gpu 아키텍처 시스템에서의 디바이스의 발견 및 토폴로지 보고
JP2013546105A (ja) システムコール要求の通信の最適化
KR102047037B1 (ko) 로컬 캐시들을 갖는 메모리 캐시형 시스템들
US10558574B2 (en) Reducing cache line collisions
CN104615480A (zh) 基于numa高性能网络处理器负载的虚拟处理器调度方法
US10873630B2 (en) Server architecture having dedicated compute resources for processing infrastructure-related workloads
Agostini et al. GPUDirect Async: Exploring GPU synchronous communication techniques for InfiniBand clusters
Shafie Khorassani et al. Designing a ROCm-aware MPI library for AMD GPUs: early experiences
JP2014503898A (ja) 処理装置の同期動作のための方法およびシステム
US11929926B2 (en) Traffic service threads for large pools of network addresses
US20230376287A1 (en) Code generation technique
CN116257320A (zh) 一种基于dpu虚拟化配置管理方法、装置、设备及介质
Venkatesh et al. Offloaded gpu collectives using core-direct and cuda capabilities on infiniband clusters
Gerangelos et al. vphi: Enabling xeon phi capabilities in virtual machines
EP4324181A1 (en) Network interface card for caching file-system internal structures
US10078601B2 (en) Approach for interfacing a pipeline with two or more interfaces in a processor
US11902372B1 (en) Session sharing with remote direct memory access connections
US20240193016A1 (en) Multiple processes sharing gpu memory objects
Gerangelos et al. Efficient accelerator sharing in virtualized environments: A Xeon Phi use-case
US20240098139A1 (en) Multicast-reduction assisted by network devices
US20230168898A1 (en) Methods and apparatus to schedule parallel instructions using hybrid cores

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121030

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130125

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130228

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130702