Armadillo C++ linear algebra library documentation指出在C++中開發庫的原因之一是"ease of parallelisation via OpenMP present in modern C++ compilers",但Armadillo代碼不使用OpenMP。我如何獲得與Armadillo並行的好處?這是通過使用high-speed LAPACK and BLAS replacements之一實現的嗎?我的平臺是Linux,Intel處理器,但我懷疑這個問題有一個通用的答案。Armadillo中的並行
4
A
回答
7
好吧,看來並行化確實是通過使用高速LAPACK和BLAS替代品來實現的。在Ubuntu 12.04上,我使用軟件包管理器安裝了OpenBLAS,並從源代碼構建了Armadillo庫。 examples
文件夾中的示例已構建並運行,我可以使用OPENBLAS_NUM_THREADS
環境變量來控制核心數量。
我創建了一個小型項目openblas-benchmark,它可以測量Armadillo在計算矩陣積C = AxB時對各種大小矩陣的性能提升,但我目前只能在2核機器上進行測試。
對於大於512x512的矩陣,性能圖顯示執行時間減少將近50%。請注意,兩個軸都是對數的; y軸上的每個網格線表示執行時間加倍。
相關問題
- 1. 什麼是Armadillo + Atlas,Armadillo + OpenBLAS,Armadillo + uBLAS,Armadillo + MKL?
- 2. 使用MPI和Armadillo在C++中並行化
- 3. Armadillo C++ LU分解
- 4. 設置Armadillo的線程數
- 5. Armadillo與FFTW的接口
- 6. 如何在Armadillo矩陣中執行元素布爾操作
- 7. 將Armadillo C++庫導入到Xcode中
- 8. 在C++ Armadillo中使用虛數?
- 9. 如何鏈接Armadillo與Eclipse
- 10. 使用Armadillo時出錯
- 11. 編譯Mex和Armadillo難度
- 12. Armadillo相當於Matlab排列?
- 13. Armadillo + BLAS + LAPACK:鏈接錯誤?
- 14. R的sum()和Armadillo的accu()的區別
- 15. Armadillo和ofxOpenCv之間的衝突
- 16. 使用Armadillo和OpenBLAS進行多線程時性能不一致
- 17. 使用相同的內存做armadillo中的LU分解
- 18. 函數模板在C++與Armadillo
- 19. armadillo C++ lu分解:我做錯了嗎?
- 20. 在Mac OS X上安裝C++ Armadillo庫
- 21. Armadillo庫如何處理錯誤?
- 22. Armadillo與Embarcadero C++ Builder XE *兼容嗎?
- 23. Armadillo C++沒有找到矩陣逆
- 24. Armadillo找不到BLAS線性代數包
- 25. C++犰狳和OpenMp:外部產品求和的並行化 - 爲Armadillo矩陣定義約簡
- 26. 在Armadillo Cube中添加1列的高效方法
- 27. 在Microsoft Visual Studio 2015的C++項目中包含Armadillo C++庫
- 28. 如何在使用Armadillo的Visual Studio 2008項目中使用LAPACK
- 29. 如何在Armadillo中處理「find」的空回報?
- 30. 在Armadillo矩陣中有概率的向量化Rcpp rbinom
我的不好;我在X軸上看不到對數刻度。 2x是2x,沒關係。如果我是你,我會再次檢查它是正確的答案:=} –
我做了,謝謝:-)由於多項式複雜性的問題顯示爲圖中的直線並且指數可能是讀取曲線的導數。 – Svaberg