アプリケーションをさまざまなタスクに分割し、マルチスレッド環境用に変換しているときに、基本的な概念が根本的に間違っていることに気付きました。OpenCL は、アプリで実行する必要がある種類の操作には適していません。問題の数学的部分について。
そのため、この時点で、MPI を使用して異なるデバイスで n 個のスレッドを起動し、デバイスに GPU がある場合は OpenCL カーネルを起動できるかどうか疑問に思っていました。
これは一般的に行われていることですか、それとも MPI を使用して OCL を除外し、その逆ですか?
私の目的は、コンピューターでアプリを実行し、それに接続されているデバイス (存在する場合) を使用して、計算能力を高め、タスクを共有することです。タスク自体は、数値の計算 (OCL に最適)、データの計算部分からの結果の OGL レンダリング、UI の管理と対話、およびデータの管理 (保存、保存、置換) に分かれています。
私が理解していることから、MPI は OCL のようにスレッドを GPU にアドレス指定することはできませんが、OCL の主な用途は数学計算であるため、たとえばアプリが情報を取得するためにネットワークにアクセスする必要がある場合、またはそれがスレッドの結果をプロットするために OGL を使用する必要があります。その場合、最良の選択は MPI です。
実行可能なオプションについての提案は大歓迎です。