除了使用目标机器拥有的多个核心外,我还在寻找一些使用GPU的数字运算能力的方法(可能使用Java?)。我将致力于实现(目前)A *算法,但在未来我希望用遗传算法替代它。我看了Project Fortress但是当我在JavaFX中构建我的GUI时,我宁愿不要偏离JVM太远。
当然,如果没有可行的解决方案,我将迁移到最简单的解决方案来实现。
答案 0 :(得分:5)
如果您对使用GPU的HPC感兴趣,那么您可以查看jCuda。这为CUDA提供了Java绑定,同时还提供了对CUDA FFT,CUDA BLAS和CUDA DPP的访问。我没有看到关于这个库的任何性能报告,所以我不能保证它会非常好。
除此之外,我不太确定。如果你有兴趣将这类东西作为一种教育练习,那么Java应该足够好了,但是如果你非常需要HPC那么你可能想要在C中实现并使用Java Native Interface来与之沟通。
答案 1 :(得分:4)
Morten Nobel Joergensen有一个blog post展示如何使用JOGL创建一个Mandelbrot集 - 用于OpenGL的Java绑定
但是,如果您想要通用计算而不是图形,那么您将使用OpenCL的Java绑定,您可以从中JOCL或JOCL或{ {3}}
JavaCL显示了OpenCL如何用于计算快速傅立叶变换。
答案 2 :(得分:3)
Parallel Colt可能会引起人们的兴趣。
答案 3 :(得分:2)
看看JPPF,它是一个非常好的和成熟的开源Java网格计算环境