2010-11-20 30 views
0

私はOpenMP技術(つまりC/C++とJavaの間のブリッジを作る必要があります)を使って並列化を達成しなければならないJavaプロジェクトを持っています。これまでは、JavaでC/C++コードを統合するためにJNIを使​​用することについて話しましたが、代わりにJaMPを使用するように提案されました。私はこれらのテクニックやフレームワークについてあまり知らないので、私の質問は使いにくく、JavaコードでOpenMPをどのように実装すればよいのでしょうか? Javaスレッドのみを使用して(OpenMPを使用せずに)同じ機能を実現できますか?私はこのドメインの初心者ですので、絶対に助けてください。Javaコード内でOpenMPを使用するにはどうすればよいですか?

ヒント:このプロジェクトは、サーバーとクライアント間の相互作用を1つのコアに「置き」、効果的なグラフィック処理を別のコアに「組み込む」ことによって、共同グラフィックエディタを構築することです。

+0

OpenMPを使用する必要がありますか?なぜJavaベースのAPI /並列処理のテクニックを使用しないのですか? –

答えて

5

あなたのプロジェクトの簡単で紛らわしい説明から、OpenMPをまったく使用する必要はありません。あなたがやりたいことはすべて、Java内で完全に実行でき、並行プログラミングのための十分な(十分な)機能を備えています。

OpenMPはまったく異なるタイプの '並行'プログラム用に設計されました。実際には並列プログラム用です。その中心にあるのは、プロセッサ間でループの反復を広げるためです。これはあなたの問題にはあまり適していません。

JavaとOpenMPを使用しなければならないと言われた場合は、必要があると思います。そうであれば、JaMPに行ってください。あなたがJava + JNI + C/C++ + OpenMpのパスに立てば、誰かがあなたの頭に銃を持っている場合にのみ。

+0

ありがとうございました。 Java + JNI + C/C++ + OpenMpを使用する上での難しさは何でしょうか教えてください。あなたはそれが不必要である、あるいは本当の苦痛であると言っているのでしょうか? – twentynine

+0

一方、JaMPで何らかの経験がある場合は、学習を開始するのに適切な出発点を指摘できますか?それはLinux専用ですか? – twentynine

+0

@twentynine - Java + JNI + C/C+++ OpenMPはあなたの目的には不必要なようだが、それは本当の苦痛になるだろう - あなたはJNI、C/C++とOpenMP - 3つをすべて同時に学習しようとすると同時に、あなた自身にそれをやってもらえますか?いいえ、JaMPの経験はありません。以前はJOMPを使用していましたが、JaMPは最新のように見え、安定しています。 –

0

Futuresまた、あなたのプロジェクトの外観を与えることができます。 私は、多くの伝統的プログラマーが仕事を並列化するために使用していないと思います。

関連する問題