2012-10-02 49 views
0

我已經實現了一個可以調用DGEMM的工作程序(FORTRAN,編譯器:Intel ifort 11.x)。我讀過,有一個快速的方法與編譯並行這樣的:螺紋DGEMM上的錯誤

ifort -mkl=parallel -O3 myprog.f -o myprog 

我有一個四核處理器,所以我運行的程序(通過bash)的:

export OMP_NUM_THREADS=4 
./myprog 

我假設是DGEMM會自動召喚4個線程,導致更快的矩陣乘法。這似乎並沒有發生。我錯過了什麼嗎?任何幫助,將不勝感激。

+0

你是用這個命令編譯所有的源代碼嗎?嘗試 - 並行。 –

+0

用'DGEMM'乘上的矩陣有多大? MKL線程也由'MKL_NUM_THREADS'變量控制。檢查它是否設置爲「1」。順便說一句,'DGEMM'是MKL中內置並行機制的典型示例 - 請參見[here](http://software.intel.com/zh-cn/articles/parallelism-in-the-intel-math -kernel庫)。 –

+0

我認爲矩陣太小了。感謝您的幫助,夥計們。 – Salmonstrikes

回答

0

我認爲-mkl = parallel是intel編譯器的默認選擇。因此,您不必特別設置該標誌。試試-mkl = sequential,看看計算是否放緩。