Cómo usar MPI para simular mis datos en varias computadoras

A2A “¿Cómo puedo usar MPI para simular mis datos en varias computadoras?” Debería proporcionar más información sobre lo que está tratando de hacer.

De todos modos, MPI le permite iniciar procesos, tanto localmente como a través de múltiples computadoras. La forma de hacerlo depende de la instalación de MPI que tenga y del administrador de trabajos (Torque, SLURM, etc.) que tenga en el clúster.

Suponiendo el caso más simple de algunas máquinas conectadas a la misma red con configuraciones idénticas, puede hacer lo siguiente,

mpirun -np 4 echo “hola”

Esto ejecutará 4 copias de “echo”. Esto no es tan útil, pero te da la idea. Ahora, si escribe un programa en C, C ++, Java o Fortran, puede poner (la forma equivalente de) MPI_INIT () y MPI_FINALIZE () a su código para decir que es un programa MPI. Luego, en el medio, puede usar todas las características del paso de mensajes MPI.

Nuevamente, sin información específica, esto será demasiado largo y un tutorial sobre MPI, que evitaré porque hay otros tutoriales geniales por ahí.

Si eres completamente nuevo en MPI, te recomiendo mirar

Tutoriales · Tutorial de MPI

y

Interfaz de paso de mensajes (MPI)

Espero que esto ayude

Depende de si puede dividir su simulación en muchas piezas independientes. Después de todo, MPI es solo una biblioteca para pasar mensajes (y algunos patrones de mensajería comunes): no hace el trabajo por usted y, en sí mismo, ¡solo hace que su programa sea más lento!

Las simulaciones son a menudo muy paralelas: los modelos físicos tienden a tener entidades que interactúan localmente con sus vecinos físicos y, por lo tanto, es posible que nunca necesiten intercambiar información de estado con entidades distantes. La transferencia de información a larga distancia o global es relativamente costosa, pero no necesaria en muchos tipos de simulación. Sin embargo, nada de esto es realmente específico para MPI, pero determinará si algún tipo de paralelismo reducirá su tiempo de ejecución.

Algunas simulaciones son perfectamente (o “vergonzosamente”) paralelas, lo que significa que están compuestas de grandes unidades de trabajo que solo toman una configuración inicial y producen solo una respuesta (idealmente, ambas pequeñas). El ejemplo clásico es el cálculo montecarlo de Pi: la única entrada es algo así como una semilla aleatoria y la única salida es la estimación de Pi. Básicamente: cómo divide el trabajo y qué cantidad de comunicación es necesaria entre las unidades de trabajo. Las simulaciones basadas en la física tienden a escalar bien porque los objetos a simular se dividen en trozos donde el trabajo es proporcional al volumen (cubo de tamaño) pero la comunicación se escala con el área de superficie (cuadrado).

Vale la pena señalar que hay muchos modelos de programación, algunos de los cuales pueden darle una aceleración más fácil que MPI (como subprocesos si aún no lo está haciendo, o métodos paralelos a datos como SIMD o GPU).

La frase “simulación de datos” no está clara. ¿En realidad no tienes datos, pero solo los simulas?

De todos modos, MPI puede ayudarlo a distribuir el trabajo en varias computadoras, si tiene demasiados datos o demasiado trabajo. Por lo tanto, debe encontrar una manera de dividir los datos o el trabajo.

Podría darle información detallada, pero eso requeriría copiar unos cientos de páginas. ¿Por qué no revisas los tutoriales vinculados en la otra respuesta?