2010-02-16 5 views
22

Ich plane, MPI für meinen C++ Code zu verwenden. Ich habe MPICH2 auf meinen Computern installiert. Aber ich weiß nicht viel über MPI und hoffe, einige Materialien zum Lesen zu finden. Ich hoffe, dass Sie Experten einige gute Materialien zu mir empfehlen können. Jeder Rat wird geschätzt.Was ist das beste Tutorial zum Erlernen von MPI für C++?

+0

MPI: Message Passing Interface, ein Computer-Kommunikationsprotokoll für die parallele Berechnung. Siehe http://en.wikipedia.org/wiki/Message_Passing_Interface –

Antwort

14

Ich nehme an, dass Sie bereits wissen, wie man C++ ziemlich gut programmiert und ein grundlegendes Verständnis der parallelen Programmierung hat (oder zumindest weiß, wie Sie Ihren Code parallelisieren wollen).

Ich würde zuerst das Buch Using MPI überprüfen. Mit MPI 2 ist das folgende Buch, das die Verwendung der neuen Bits in MPi-2 diskutiert. Beide Bücher wurden von den Jungs geschrieben, die die MPI-Bibliothek geschrieben und die Standardisierungsbemühungen geleitet haben. Eine nette Sache über die Verwendung von MPI ist, dass es online verfügbar ist, so dass Sie es auschecken können, ohne Geld auszugeben :-)

+1

+1 von mir. Ein kleines Problem, das ein Problem sein kann oder auch nicht: wechselt zwischen Fortran, C und C++ - Beispielcode. – stephan

+0

Ich stimme zu, dass es ein bisschen nervig sein könnte, aber ich fand es nicht als einen wesentlichen Nachteil für das Verständnis, wenn ich das Buch benutzte. –

6

Parallel Programming with MPI von Peter S. Pacheco ist ein gutes Intro-Buch. Beachten Sie, dass das Buch C verwendet, aber es sollte ein einfacher Übergang zur Verwendung der C++ - MPI-Bindungen sein.

+0

+1 Dieses Buch ist eine großartige Einführung in die MPI-Programmierung. –

+0

Ich denke, dass das Buch eine gute Möglichkeit ist, mit MPI zu programmieren. Wenn Sie meine Antwort finden, werden Sie feststellen, dass ich C++ für keine neue MPI-Entwicklung bevorzuge. Da Sie eine ähnliche Vorsicht nicht erwähnen, keine Aufwertung. Du hast immer noch einen unterstützenden Kommentar erhalten. ;) –

+0

Pachecos Buch wurde vor vielen Jahren geschrieben. Ist es immer noch nützlich? –

2

Mpich2 kommt mit einer Reihe von Beispielen in C++/C. wahrscheinlich ist der berühmteste cpi, der pi parallel berechnet. Lesen Sie das Programm zusammen mit Handbüchern/Büchern, die von anderen Personen vorgeschlagen wurden. Auf diese Weise sehen Sie sofort den aktuellen Arbeitscode und können Ihre eigenen Modifikationen vornehmen, um mit den Dingen zu spielen.

5

Ich würde von der Verwendung der MPI C++ - Bindungen für jede neue Entwicklung abraten. Das Programm selbst kann in C++ sein, aber den zusätzlichen Aufwand zur Verwendung der C-Schnittstelle zur MPI-Bibliothek investieren.

Das MPI-Forum lehnt die C++ - Bindungen ab. Daher werden zukünftige Implementierungen von MPI wahrscheinlich die Unterstützung für C++ verlieren. Im Allgemeinen sparen die meisten Implementierungen an Features, wenn es um C++ geht. Die Grundlagen werden funktionieren, aber Dinge wie dynamische Prozesse (d. H. Spawn), die PMPI-Schnittstellen usw. werden weniger gut unterstützt.

Die C- und Fortran-Bindungen werden von allen wichtigen Implementierungen einigermaßen gut unterstützt und werden in absehbarer Zukunft weiterhin unterstützt.

4

Wie @seemiuseless hervorgehoben hat, lehnt das MPI-Forum die C++ - Bindungen ab. Einer der Gründe dafür ist, dass die boost MPI interface einen viel besseren Job macht.

Verwandte Themen