java - 如何在 Java 代码中使用 OpenMP?

标签 java c java-native-interface openmp

我有一个 Java 项目,其中我必须通过 OpenMP 技术实现并行化(也就是说,我必须以某种方式在 C/C++ 和 Java 之间架起一座桥梁)。到目前为止,我被告知使用 JNI 在 java 中集成 C/C++ 代码,但是,我也被建议改用 JaMP。我对这些技术/框架了解不多,所以我的问题是,使用起来更轻松,而且一般来说,我如何在 Java 代码中实现 OpenMP 的东西?我能否仅使用 Java 线程(不使用 OpenMP)实现相同的功能?我是该领域的初学者,非常感谢任何帮助。

提示:该项目是通过将服务器与客户端之间的交互“放在”一个核心上,并将有效的图形处理“放在”另一个核心上来构建协作图形编辑器。

最佳答案

根据您对项目的简短且略显困惑的解释,我认为您根本不需要使用 OpenMP。您想要做的所有事情都可以完全在 Java 中完成,Java 具有良好(足够)的并发编程设施。

OpenMP 是为一种完全不同类型的“并发”程序设计的——真正的并行程序;它的核心是在处理器之间传播循环迭代。这不太适合您的问题。

如果有人告诉您必须使用 Java 和 OpenMP,那么我想您必须这样做。如果是这样,请选择 JaMP。只有当有人拿枪指着你的脑袋时,你才应该走上Java+JNI+C/C+++OpenMp的道路。

关于java - 如何在 Java 代码中使用 OpenMP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4233510/

相关文章:

java - 识别 docx 中文本的颜色

c# - C 和 C++ 以外的语言中未定义行为的示例

java - onCreate 之外的按钮

c - 在 C 中运行嵌入式 R

c - 在最近的 Linux 内核上测试 msync 使用的好方法是什么?

java - 如何使用 JNI 在 C++ 中设置类成员

java - 从 Java 中的 gradle.build 获取属性

C 中带有缓冲环的 Char 链表

java - C++对象转java,将对象传递给java后属性不正确(int,double)

java - 用于 C++ 实现的 native JNI 静态方法的 Java 运行时错误