私の知る限り、答えはノーです。OpenCLはマルチコアシステム用に設計されています。
しかし、マルチコンピューターでOpenCLを使用する方法はありますか(各コンピューターはマルチコアシステムです)?そうでない場合は、追加のツール、フレームワーク...が必要ですか?
分散コンピューティング、クラスターコンピューティング、グリッドコンピューティングに関する記事をいくつか読みましたが、満足のいく答えが見つかりません。
任意のアイデアをいただければ幸いです
ありがとうございました :)
私の知る限り、答えはノーです。OpenCLはマルチコアシステム用に設計されています。
しかし、マルチコンピューターでOpenCLを使用する方法はありますか(各コンピューターはマルチコアシステムです)?そうでない場合は、追加のツール、フレームワーク...が必要ですか?
分散コンピューティング、クラスターコンピューティング、グリッドコンピューティングに関する記事をいくつか読みましたが、満足のいく答えが見つかりません。
任意のアイデアをいただければ幸いです
ありがとうございました :)
SnuCLは、MPIとOpenCLを使用して、OpenCLAPIを介してクラスターを透過的に使用します。また、メモリオブジェクトを効果的に処理するためにいくつかのOpenCL拡張機能を追加します。
オープンソースです。http://aces.snu.ac.kr/Center_for_Manycore_Programming/SnuCL.html およびhttp://tbex.twbbs.org/~tbex/pad/SunCL.pdfを参照してください
上記に記載されていないもう1つの解決策があります:dOpenCL。
「dOpenCL(分散OpenCL)は、アクセラレータを使用して分散異種システムをプログラミングするための斬新で統一されたアプローチです。分散システムのノードを単一のOpenCLプラットフォームに透過的に統合します。したがって、dOpenCLを使用すると、ユーザーは変更されていない既存のOpenCLアプリケーションを異種で実行できます。分散環境。さらに、OpenCLプログラミングモデルを拡張して、分散システムの個々のノードを処理します。」
VirtualCLを使用して、コンピューティングノードとして3つのAMD GPUを備え、ブローカーノードとして実行されているubuntuIntelデスクトップを備えたGPUクラスターを形成しました。ブローカーノードと計算ノードの両方を起動できました。
他のポスターですでに言及されているさまざまなオプションに加えて、ここにあなたが興味を持っているかもしれないさらに2つのオープンソースプロジェクトがあります:
ocland(ベータ段階):クライアントがOpenCLを透過的にサポートするローカルおよびリモートデバイスを利用するために使用できるサーバーアプリケーションとICD実装を提供します。ライセンスはGPLv3です。
Brown DeerTechnnologyによるCOPRTHRSDK(現在のバージョン1.6):x86_64、ARM、Epiphany、およびIntel MIC用のオープンソース(GPLv3)OpenCL実装を提供するこのSDKには、「Compute LayerRemoteProcedureCall」実装が含まれています。これは、rpc(libclrpc
)とサーバーアプリケーション(clrpcd
)をサポートするクライアント側のOpenCL実装で構成されています。Webサイトにはそれについてあまり言及されていませんが、ドキュメントにはこのCLRPC実装に関するセクションが含まれています。