我有一個用C++編寫的實用程序,並使用MPICH2做了一些繁重的計算,我對它的性能不滿意,並且有很多改進的範圍。將支持MPICH2的代碼轉換爲OpenCL代碼
首先MPICH2只使用exes,所以我必須將我的數據寫入文件並將該文件作爲參數傳遞給該實用程序,該實用程序再次讀取所有數據並將輸出寫回文件。 如果我可以在DLL中有這個,我可以節省大量的時間來傳遞數據。另外,如果我能以某種方式在GPU上運行,這將會提升(不太確定)。
我在想,將實用程序代碼轉換爲OpenCL需要付出多少努力,或者是否有任何工具可以完成60-70%的轉換任務。
+1;停止使用文件I/O作爲通信媒介。而且,MPI和OpenCL是正交的;一種是通過傳達節點間的部分問題(或節點上的處理器)來加速計算,另一種是加速節點上的計算。沒有理由讓事情成爲一個或另一個。 – 2012-03-01 13:42:13
我可以刪除讀取和寫入只是傳遞緩衝區地址和實用程序可以更新數據,然後我可以得到結果。但爲此,我必須將實用程序EXE轉換爲DLL,但MPICH2不能與DLL工作。 – Mohit 2012-03-01 14:04:13
將其他庫(例如dll)與mpi或mpich2鏈接起來沒有任何問題,所以你不清楚你在問什麼。 – 2012-03-01 14:58:07