我有一個Java項目,我必須通過OpenMP技術實現並行化(也就是說,我必須在某種程度上在C/C++和Java之間架起一座橋樑)。到目前爲止,我被告知使用JNI來集成Java中的C/C++代碼,但是,我也被建議使用JaMP來代替。我對這些技術/框架知之甚少,所以我的問題是,使用起來不那麼痛苦,一般來說,我如何在Java代碼中實現OpenMP?我能否僅使用Java線程實現相同的功能(不使用OpenMP)?我是這個領域的初學者,所以絕對讚賞任何幫助。提示:該項目將建立一個協作圖形編輯器,將「服務器與客戶端之間的交互」「放入」一個核心,並將「有效」圖形處理「放入」另一個核心。OpenMP如何在Java代碼中使用?
回答
從您對項目的簡要和輕微混淆的解釋中,我看不出您有任何需要使用OpenMP。所有你想做的事情都可以完全在Java中完成,它具有良好的(足夠的)併發編程功能。
OpenMP是爲完全不同類型的「併發」程序而設計的 - 真正用於並行程序;其核心在於跨處理器擴展循環迭代。這不適合你的問題。
如果您被告知必須使用Java和OpenMP,那麼我認爲您必須。如果是這樣,請與JaMP一起使用。只有當有人拿着槍時,你才能在Java + JNI + C/C++ + OpenMp的路徑上展開。
謝謝你的回答。你能告訴我使用Java + JNI + C/C++ + OpenMp有什麼困難嗎?你說這是不必要的,或者是真正的痛苦? – twentynine 2010-11-20 18:20:04
另一方面,如果你有一些JaMP的經驗,你能指點我一個開始學習的好起點嗎?僅限於Linux嗎? – twentynine 2010-11-20 18:34:21
@twentynine - Java + JNI + C/C+++ OpenMP對於您的目的來說似乎沒有必要,這將會是一個真正的痛苦 - 您不會給那些熟悉JNI,C/C++和OpenMP--試圖在整合它們的同時嘗試學習所有3個 - 你會對自己做這些嗎?不,我沒有JaMP的經驗,過去我使用過JOMP,但JaMP似乎更新,並且來自穩定。 – 2010-11-21 12:20:52
Futures也可以看看你的項目。 我認爲這並不是許多傳統程序員用於並行化他們的工作。
- 1. 在cuda主機代碼中使用openMP?
- 2. 如何在Java代碼中使用scala.collection.immutable.List
- 3. 如何在java代碼中使用parenetheses
- 4. 如何測量Linux中OpenMP代碼的內存使用情況?
- 5. 如何使用Java代碼
- 6. 如何使用Java代碼
- 7. 如何使用Java代碼
- 8. 如何使用Java代碼
- 9. OpenMP幫助代碼
- 10. OpenMP代碼並行
- 11. 如何從strings.xml中使用Java代碼
- 12. 如何在Java上使用html代碼?
- 13. 如何使用編譯這個簡單的C++代碼`openmp`
- 14. 如何使用OpenMP加速遞歸代碼?
- 15. 如何使openMP上的代碼在xeon phi上工作?
- 16. 如何使用Java解碼html代碼?
- 17. 在迭代映射中使用openmp
- 18. 如何使用代碼在java wicket中使用代碼打開新選項卡
- 19. 如何使用Java代碼運行Java代碼?
- 20. 如何在Xcode 9.0中使用OpenMP
- 21. 如何在OpenMP中使用鎖定?
- 22. 如何使用Rhino庫在Java中使用JavaScript代碼?
- 23. 將OpenMP代碼編譯爲C代碼
- 24. openmp的代碼實現
- 25. OpenMp和代碼塊16?
- 26. 此OpenMP代碼崩潰linux
- 27. OpenMp代碼的性能
- 28. 如何在Linux中使用C++代碼調用java -classpath
- 29. 如何使用BPEL在Apache ODE中調用java代碼
- 30. 如何在java代碼中使用weka中的日期類型?
您是否必須使用OpenMP?爲什麼不使用基於Java的API /技術進行並行處理? – 2010-11-20 16:26:34