2009-06-08 4 views
1

Kennen Sie ein Paket zur Verteilung von Berechnungen auf mehreren Computern und/oder mehreren Kernen auf jedem Computer? Der Rechencode ist in C++, das Paket muss mit Daten> 2GB zurechtkommen und auf einem Windows x64-Rechner arbeiten können. Shareware wäre nett, aber keine Voraussetzung.Paket für die Verteilung von Berechnungen

Antwort

0

Es gibt eine MPI Bibliothek und die DVM system arbeitet auf MPI. Dies sind generische Tools, die häufig zum Parallelisieren einer Vielzahl von Aufgaben verwendet werden.

1

Sie wollen bei OpenMP

+0

Ich denke, dass dies genau das ist, was ich suche! – AnnaR

2

Eine geeignete Lösung nach Art der Berechnung und Daten, die Sie Sie bearbeiten möchten abhängen würde aussehen kann, die Granularität der Parallelität Sie erreichen wollen, und wie viel Mühe Sie bereit sind, zu investieren drin.

Am einfachsten wäre es, einen geeigneten Solver/eine Bibliothek zu verwenden, die Parallelität unterstützt (z. B. scalapack). Oder wenn Sie Ihre eigenen Solver rollen möchten, können Sie eine Parallelisierung aus Ihrem aktuellen Code mit OpenMP oder Compiler, die automatische Parallelisierung (z. B. Intel C/C++ - Compiler) zur Verfügung stellen. All dies wird Ihnen einen angemessenen Leistungsschub geben, ohne dass eine massive Umstrukturierung Ihres Codes erforderlich ist. Am anderen Ende des Spektrums haben Sie die Option MPI. Es kann Ihnen den meisten Leistungsschub bringen, wenn Ihr Algorithmus gut parallelisiert. Es erfordert jedoch ein gutes Stück Reengineering.

Eine andere Alternative wäre, die Einfädelungsroute hinunterzugehen. Es gibt Bibliotheken und Tools, die dies weniger zum Albtraum machen. Diese sind einen Blick wert: Boost C++ Parallel programming library und Threading Building Block

Verwandte Themen