Я ищу некоторый способ использовать способность перемалывания чисел GPU (с Java, возможно?) в дополнение к использованию нескольких ядер, которые имеет целевая машина. Я буду работать над реализацией (в настоящее время)* Алгоритм, но в будущем я надеюсь заменить его своего рода Генетическим алгоритмом. Я посмотрел на Крепость Проекта, но поскольку я создаю свой GUI в JavaFX, я предпочел бы не отклоняться слишком далекий от JVM.
Конечно, если никакое выполнимое решение не доступно, я мигрирую на самое легкое решение реализовать.
Если вас интересуют высокопроизводительные вычисления с графическими процессорами, возможно, вы можете посмотреть jCuda . Это обеспечивает привязки Java для CUDA, а также доступ к CUDA FFT, CUDA BLAS и CUDA DPP. Я не видел отчетов о производительности этой библиотеки, поэтому не могу гарантировать, что она будет очень хорошей.
Кроме того, я не совсем уверен. Если вы заинтересованы в выполнении этого типа вещей в качестве образовательного упражнения, тогда Java должна быть достаточно хорошей, но если у вас есть серьезная потребность в HPC, вы, вероятно, захотите реализовать на C и использовать собственный интерфейс Java для общаться с ним.
Morten Nobel Joergensen опубликовал запись в блоге, показывающую, как создать набор Мандельброта с помощью JOGL - Java Bindings for OpenGL
Однако если вам нужны общие вычисления, а не графика, то вам нужны привязки Java для OpenCL, из которых вы можете выбрать JOCL, или JOCL, или JavaCL.
Страница Википедии показывает, как OpenCL может быть использован для вычисления быстрого преобразования Фурье.
Взгляните на JPPF , это очень хорошая и продуманная среда вычислений сетки Java с открытым исходным кодом