現在PyLabで行っている多くの計算を高速化する必要があります。CUDAを使うことを考えました。計算の全体的な単位(A)は、数(数千)の完全に独立した小さな計算(B)を実行することで構成されます。それらのそれぞれは、初期段階で、40-41の独立した、さらに小さな計算を行うことを含みます(C)。したがって、並列プログラミングは本当に役立つはずです。PyLabを使用すると、全体として(A)20分、(B)10分の1秒かかります。
この領域の初心者として、私の質問は、(C)または(B)のどちらで、どのレベルで計算を並列化する必要があるかということです。
(C)ステージは、すべての(C)プロセス間で共有される大量のデータ(数千のフロート)を取得し、さまざまなタスクを実行することで構成されていることを明確にする必要があります。その中で最も時間がかかるのは線形回帰です。並列化も可能です!各手順(C)の出力は、単一のフロートです。各計算(B)は、基本的に、手順(C)を何度も実行し、出力されるデータに対して線形回帰を実行することで構成されます。この場合も、その出力は単一のフロートです。
私はCUDAプログラミングに精通していないので、基本的に、最初に最も賢明な戦略は何かを尋ねています。