2010-02-16 20 views
22

Planeo usar MPI para mi código C++. He instalado MPICH2 en mis computadoras. Pero no sé mucho sobre MPI y espero encontrar algunos materiales para leer. Espero que los expertos puedan recomendarme algunos buenos materiales. Cualquier consejo será apreciado.¿Cuál es el mejor tutorial para aprender MPI para C++?

+0

MPI: Message Passing Interface, un protocolo de comunicaciones informáticas para el cálculo en paralelo. Consulte http://en.wikipedia.org/wiki/Message_Passing_Interface –

Respuesta

14

Supongo que ya sabe cómo programar C++ bastante bien y tiene una comprensión básica de la programación paralela (o al menos sabe cómo quiere paralelizar su código).

Primero echaba un vistazo al libro Using MPI. El uso de MPI 2 es el siguiente libro que analiza el uso de los nuevos bits en MPi-2. Ambos libros fueron escritos por los tipos que escribieron la biblioteca de MPI y encabezaron el esfuerzo de estandarización. Una cosa buena sobre el uso de MPI es que está disponible en línea para que pueda verificarlo sin gastar dinero :-)

+1

+1 de mí. Un pequeño problema, que podría ser un problema o no: cambia entre Fortran, C y C++ código de ejemplo. – stephan

+0

Acepto que podría ser un poco molesto, pero no creo que sea un perjuicio significativo para la comprensión cuando estaba usando el libro. –

6

Parallel Programming with MPI por Peter S. Pacheco es un buen libro de introducción. Tenga en cuenta que el libro usa C, pero debería ser una transición fácil al uso de las vinculaciones C++ MPI.

+0

+1 Este libro es una excelente introducción a la programación de MPI. –

+0

Creo que el libro es una buena forma de aprender a programar con MPI. Si encuentra mi respuesta, descubrirá que no me gusta usar C++ para ningún nuevo desarrollo de MPI. Como no mencionas una advertencia similar, no votas. Aún recibiste un comentario de apoyo. ;) –

+0

El libro de Pacheco fue escrito hace muchos años. ¿Sigue siendo útil? –

2

Mpich2 viene con una serie de ejemplos en C++/C. probablemente el más famoso es cpi, que calcula pi en paralelo. Lea el programa junto con los manuales/libros sugeridos por otras personas. De esta forma, verá el código de trabajo actual de inmediato y podrá hacer sus propias modificaciones para jugar con las cosas.

5

Recomendaría no utilizar los enlaces MPI C++ para ningún desarrollo nuevo. El programa en sí mismo puede estar en C++, pero invierta el esfuerzo adicional para usar la interfaz C en la biblioteca de MPI.

El MPI Forum está desaprobando las vinculaciones de C++. Entonces, las implementaciones futuras de MPI probablemente dejarán de ser compatibles con C++. En general, la mayoría de las implementaciones escatiman en características cuando se trata de C++. Lo básico funcionará, pero cosas como los procesos dinámicos (es decir, engendrar), las interfaces PMPI, etc., tienen menos soporte.

Las consolidaciones C y Fortran están razonablemente bien respaldadas por todas las implementaciones principales, y continuarán recibiendo soporte en el futuro previsible.

4

Como señaló @semiuseless, el foro MPI está desaprobando las vinculaciones de C++. Una de las razones es que el boost MPI interface hace un trabajo mucho mejor.

Cuestiones relacionadas