同じデータセットでいくつかの独立した解析を実行する必要があります。 具体的には、私は100グラム(一般化線形モデル)の分析を束ねる必要があり、ビデオカード(GTX580)を活用しようと考えていました。MatlabとGPU/CUDAプログラミング
MatlabとParallel Computing Toolbox(私はC++にはうまくいきません)にアクセスできたので、私はそれを試してみることにしました。
1つのGLMが並列計算には理想的ではないことを理解していますが、100-200を並列に実行する必要があるため、parforを使用することが解決策になると思いました。
私の問題は、どのアプローチを従わせるべきか私には明らかではないということです。私はMATLAB関数glmfitのgpuArray版を書いたが、parforを使うと標準の "for"ループよりも利点がない。
これは、matlabpoolの設定と関係がありますか?これをGPUカードに「見る」ように設定する方法は私には明らかではありません。デフォルトでは、間違っていなければ、CPUのコア数(私の場合は4)に設定されています。 私はアプローチに完全に間違っていますか?
どのような提案も高く評価されます。
編集
感謝。私はGPUmatとJacketを知っているので、あまり努力することなくCで書くことができますが、皆さんがMatlabまたはRを使用する部門のGPUコンピューティングの可能性をテストしています。最終目標はC2050 Matlab Distribution Server(または少なくともこれが最初のプロジェクトでした)。 MathworksからADを読む私は、Cスキルがなくても並列計算が可能だったという印象を受けました。私の部門の研究者にCを学ばせることは不可能なので、限られていてglmのようないくつかの一般的なルーチンへのサポートは存在しないとしても、GPUmatとJacketがより良い解決策であると推測しています。
クラスタとどのようにインターフェイスできるか?彼らはいくつかの就職活動システムで働いていますか?
ジャケットへのポインタありがとうございます。これには、PCI-E転送の最小化とカード上のメモリ転送の両方を含む、メモリ転送を最小限にするランタイムシステムが含まれています。 JacketがPCTよりも優れている方法の詳細については、http://accelereyes.com/compareをご覧ください。 – arrayfire