有些人可以推薦使用C++進行並行化的方法,這時要處理的數據非常龐大。我一直在閱讀關於openMP和英特爾的TBB以用C++進行並行化,但還沒有嘗試過。這些對於並行數據處理更好?任何其他圖書館/方法?什麼是大數據處理推薦的C++並行庫
回答
「大」和「數據處理」涵蓋了很多地方,沒有更多信息很難給出明智的答案。
如果數據處理是「令人尷尬的並行」 - 如果涉及到做大量和大量完全相互獨立的計算 - 那麼就會有一百萬個事情能夠起作用,而這只是一個尋找某種事情的問題匹配您的代碼和背景。
如果它不是令人尷尬的並行,但幾乎如此 - 計算需要大量的數據,但只是將其提取爲數字 - 只有少數幾種選擇。
如果計算結果比這更緊密 - 需要處理器在大塊數據上串聯工作,那麼您可能會遇到備用數據庫 - 編譯器的OpenMP功能,如果它可以在單機(也有TBB,但通常用於數字處理的OpenMP更快更容易)或MPI(如果它需要同時使用多臺機器)。你提到了C++; Boost有一個非常漂亮的MPI層。
但是考慮使用哪個庫進行並行化可能首先考慮錯誤的結束。在很多情況下,您不一定需要直接處理這些圖層。如果數字運算涉及大量的線性代數(例如),那麼PLASMA(用於多核機器 - http://icl.cs.utk.edu/plasma/)或支持分佈式內存機器的PetSC(例如多臺計算機(http://www.mcs.anl.gov/petsc/petsc-as/))是很好的選擇,它可以完全隱藏您的並行實施的實際細節。其他類型的技術也有其他庫。最好考慮一下你需要做什麼樣的分析,然後看看現有的工具包是否有你需要的平行化數量。只有當你確定答案時,你纔會開始擔心如何推出自己的答案。
有趣的觀點在這裏,感謝您的投入。 – 2010-10-11 12:42:05
OpenMP和Intel TBB都用於本地,因爲它們有助於編寫多線程應用程序。
如果您擁有真正龐大的數據集,您可能需要將負載分散到多臺機器上 - 然後像Open MPI這樣的庫用於MPI並行編程。 Open MPI有一個C++接口,但是現在您也面臨一個網絡組件以及一些計算機沒有的管理問題。
我正在試驗openMP作爲單臺機器上的第一步,會在多臺機器上嘗試MPI。 – 2010-10-11 12:40:53
MPI在單個本地計算機上也很有用。它將跨多個內核/ CPU運行作業,與線程相比,這可能是過度殺毒,這意味着您可以將作業移動到沒有更改的羣集。大多數MPI實現還優化本地作業,以使用共享內存而不是TCP來進行數據連接。
- 1. 在C++中處理Winsock錯誤的推薦方法是什麼?
- 2. android中推薦的ocr庫是什麼?
- 3. 什麼是處理AVCaptureVideoDataOutput有關方向的圖像數據的推薦方式
- 4. 客戶管理/推薦什麼數據庫?
- 5. 什麼是推薦的Bcrypt C實現?
- 6. Ember附加組件:推薦的輸入數據處理方式是什麼?
- 7. 並行大數據處理
- 8. 數據庫推薦
- 9. 處理環境配置更改的推薦方式是什麼?
- 10. 你推薦什麼JavaScript庫?
- 11. 什麼是opencv_traincascade的推薦參數?
- 12. 什麼是最推薦的跨平臺C++庫?
- 13. 推薦系統處理大規模動態數據的最有效方法是什麼?
- 14. 在Android(Kotlin)中處理Singletons清理的推薦方式是什麼?
- 15. 什麼是圖形數據庫可以水平擴展,處理大量數據並執行低延遲查詢?
- 16. 推薦iOS iOS初始化的推薦方式是什麼?
- 17. 推薦幫助文件的推薦方式是什麼?
- 18. 什麼是我的數據集的好方法推薦系統?
- 19. Spring批處理推薦
- 20. 推薦的C++庫設計
- 21. Google protobuf:推薦C++庫來處理通信?
- 22. 你推薦什麼.NET庫/ wrapper來嗅探數據包?
- 23. 並行處理大量數據
- 24. 大熊貓數據幀並行處理
- 25. .Net中科學計算的推薦數據類型是什麼?
- 26. 什麼是推薦的命令行參數語法?
- 27. 是否使用File.WriteAllText推薦File.WriteAllLines來處理大文件?
- 28. 什麼是更新Maven存儲庫元數據的推薦方式
- 29. 你推薦什麼Java Collections庫?
- 30. 什麼是推薦的JAX-RS組合?
如果數據的類型正確,您可以考慮使用CUDA/GPU。 – 2010-10-04 15:45:29
不一定:當你有很多相對的計算時,GPU計算就會發光,相對較少的數據I/O,因爲將數據傳輸到GPU的成本可能很高。 – 2010-10-04 17:24:57
@Dirk:當你對所有的數據進行相同的操作時,它也會工作得很好,如果每個數據單元都應該遵循它自己的邏輯,那麼它將不起作用。 – 2010-10-04 18:56:37