2010-05-11 3 views
7

Je cherche un moyen d'utiliser la capacité de calcul de nombre d'un GPU (avec Java peut-être?) En plus d'utiliser les multiples cœurs que possède la machine cible. Je vais travailler sur la mise en œuvre (actuellement) de l'algorithme A * mais à l'avenir, j'espère le remplacer par un algorithme génétique de toutes sortes. J'ai regardé Project Fortress mais comme je construis ma GUI en JavaFX, je préférerais ne pas m'éloigner trop d'une JVM.HPC (principalement sur Java)

Bien sûr, si aucune solution possible n'est disponible, je migrerai vers la solution la plus simple à mettre en œuvre.

Répondre

3

Parallel Colt peut être d'intérêt.

+0

Est-ce que cela prend du parallélisme implicite? Je lis la section sur la concurrence, mais il ne semble pas y avoir d'avantages spécifiques au matériel. – Insectatorious

+0

La page Web suggère d'utiliser automatiquement plusieurs cœurs de processeur si possible. Je n'ai pas utilisé cette version de Colt moi-même seulement la bibliothèque originale sur laquelle cela est basé. – Mark

5

Si vous êtes intéressé par HPC avec des GPU alors peut-être vous pouvez regarder jCuda. Cela fournit des liaisons Java pour CUDA, ainsi que l'accès à CUDA FFT, CUDA BLAS et CUDA DPP. Je n'ai vu aucun rapport de performance sur cette bibliothèque, donc je ne peux pas garantir que ce sera très bien. Au-delà de ça, je ne suis pas vraiment sûr. Si vous êtes intéressé à faire ce genre de choses comme un exercice éducatif alors Java devrait être assez bon, mais si vous avez un besoin sérieux de HPC alors vous allez probablement vouloir implémenter en C et utiliser l'interface native Java pour communiquer avec elle.

+0

Cheers! Je vais jeter un coup d'oeil sur le lien ASAP. – Insectatorious

4

Morten Joergensen Nobel a une blog post montrant comment créer un ensemble de Mandelbrot en utilisant JOGL - Java OpenGL bindings pour

Toutefois, si vous voulez le calcul générique, plutôt que de graphiques, alors vous seriez après les liaisons Java pour OpenCL , à partir de laquelle vous pouvez choisir parmi JOCL, ou JOCL ou JavaCL.

Wikipedia's page montre comment OpenCL peut être utilisé pour calculer une transformée de Fourier rapide.

+0

Sweet. Dans cet exemple, il rend une image 3D en 2D en utilisant une caméra sans perspective. Serait-il possible d'obtenir un traitement brut 'umph!' en utilisant JOGL alors? Je demande parce que je n'ai jamais utilisé OpenGL auparavant et je ne veux pas franchir le pas à moins que cela ne serve mes besoins. – Insectatorious

+0

Auriez-vous des recommandations sur la liaison OpenCL à utiliser? –

+0

@Insectatorious - Non, alors j'ai mis à jour ma réponse pour être plus utile. –

2

Jetez un oeil à JPPF, il est une très belle et mature grille Java open source informatique environnement

Questions connexes