2009-06-08 8 views
1

Connaissez-vous un package pour distribuer des calculs sur plusieurs ordinateurs et/ou plusieurs cœurs sur chaque ordinateur? Le code de calcul est en C++, le paquet doit pouvoir gérer des données> 2GB et fonctionner sur une machine Windows x64. Shareware serait bien, mais n'est pas une exigence.Package de distribution des calculs

Répondre

0

Il existe une bibliothèque MPI et la DVM system qui fonctionne au-dessus de MPI. Ce sont des outils génériques largement utilisés pour paralléliser une variété de tâches.

1

Vous pouvez regarder OpenMP

+0

Je pense que c'est exactement ce que je cherche! – AnnaR

2

Une solution adaptée dépend du type de calcul et des données que vous souhaitez vous traitez, la granularité du parallélisme que vous souhaitez atteindre, et combien les efforts que vous êtes prêt à investir dedans.

Le plus simple serait simplement d'utiliser un solveur/bibliothèque approprié qui supporte le parallélisme (par exemple scalapack). Ou si vous souhaitez lancer vos propres solveurs, vous pouvez en extraire une partie de votre code actuel en utilisant OpenMP ou des compilateurs qui fournissent une paralleisation automatique (par exemple un compilateur Intel C/C++). Tout cela vous donnera une amélioration raisonnable des performances sans nécessiter une restructuration massive de votre code. À l'autre extrémité du spectre, vous avez l'option MPI. Il peut vous permettre d'augmenter vos performances si votre algorithme est bien parallélisé. Il faudra cependant un peu de réingénierie. Une autre alternative consisterait à descendre la voie d'enfilage. Il existe des bibliothèques et des outils qui en feront un cauchemar. Ceux-ci valent le coup d'oeil: Boost C++ Parallel programming library et Threading Building Block

Questions connexes