Respuesta

2

Si desea aprender MPI, definitivamente puede hacerlo en una sola PC (la mayoría de las MPI modernas tienen comunicación basada en memoria compartida para comunicación local, por lo que no necesita configuración adicional). ¡Entonces instale un popular MPI (MPICH/OpenMPI) en una caja de linux y comience! Si sus programas van a estar vinculados a la CPU, le sugiero que solo ejecute tamaños de trabajo que igualen el número de núcleos de procesador en su máquina.

Editar: Desde que lo etiquetó como una pregunta de virtualización, quería agregar que también podría ejecutar MPI en múltiples máquinas virtuales (en VMPlayer o VirtualBox por ejemplo) y ejecutar sus pruebas. Esto requeriría la configuración de una red intervm (se diferencia en función de su software de virtualización).

Elija lo que elija (PC individual vs VM) no cambiará la forma en que escribe sus programas MPI. Como esto es para aprender MPI, sugiero ir con el primer enfoque (ejecutar múltiples programas MPI en una sola PC).

+0

Me gustaría aprender formas adicionales de manejar múltiples procesadores conectados, como en un clúster real, ¿dices que esto se puede hacer con VM? Yo mi universidad tenemos un clúster de 256 procesadores y se usaron algunos comandos en linux, quiero crear, digamos 4 clústeres de computadoras para aprender a configurar esto en Linux, como se suele decir, ¿puedes relacionarte también con esto? su respuesta por favor –

+0

Lo que está hablando parece diferente de MPI. MPI es una biblioteca de programación para ayudarlo a escribir código paralelo. Hay muchas implementaciones diferentes de MPI y varían bastante en cómo configurarlas. Si es nuevo en la programación en general, considere probar un lenguaje más fácil que C (que es el lenguaje más comúnmente utilizado para los programas MPI). Hay una versión de Python aquí https://bitbucket.org/bromer/pupympi/wiki/Home. – Jan

1

No necesita tener máquinas virtuales en ejecución para iniciar varias copias de la aplicación que se comunican mediante MPI.

MPI puede ayudarlo con un clúster virtual en un nodo único determinado mediante el lanzamiento de varias copias de sus aplicaciones.

Una ventaja, sin embargo, de que se ejecute en una máquina virtual es que (como ya se mencionó) proporciona sand boxing. Por lo tanto, cualquier problema si la aplicación se crea se limitará a esa máquina virtual que ejecuta la copia de la aplicación.

Cuestiones relacionadas