我需要在同一個數據集上運行多個獨立分析。 具體來說,我需要運行一串100 glm(廣義線性模型)分析,並且正在考慮利用我的視頻卡(GTX580)。Matlab和GPU/CUDA編程
因爲我可以訪問Matlab和Parallel Computing Toolbox(並且我對C++不太好),所以我決定嘗試一下。
我知道單個GLM對於並行計算並不理想,但由於我需要並行運行100-200,我認爲使用parfor可能是一個解決方案。
我的問題是,我不清楚我應該遵循哪種方法。我寫了一個gpuArray版本的matlab函數glmfit,但是使用parfor與標準的「for」循環相比沒有任何優勢。
這與matlabpool設置有關嗎?我甚至不清楚如何設置它以「查看」GPU卡。默認情況下,它被設置爲CPU中的核心數(我的情況是4),如果我沒有錯的話。 我的方法完全錯了嗎?
任何建議將不勝感激。
編輯
感謝。我知道GPUmat和Jacket,而且我可以在不用太多努力的情況下開始用C編寫,但是我正在測試每個人使用Matlab或R的部門的GPU計算可能性。最終目標是基於C2050和Matlab Distribution Server(或者至少這是第一個項目)。 從Mathworks讀取AD我的印象是,即使沒有C語言技能,並行計算也是可能的。要求我的部門的研究人員學習C是不可能的,所以我猜測GPUmat和Jacket是更好的解決方案,即使這些限制非常大,並且對像glm這樣的常用例程的支持是不存在的。
它們如何與羣集接口?他們是否與一些工作分配系統一起工作?
感謝指向Jacket的指針。它包括一個運行時間系統,用於最大限度地減少內存傳輸,包括PCI-E傳輸最小化和卡內存傳輸,最終爲人們帶來好處。有關Jacket如何比PCT更好的詳細信息,請參閱http://accelereyes.com/compare祝您好運! – arrayfire