我有一个 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/