Juego de la Vida Paralelo

Anuncio
Juego de la Vida Paralelo
El Juego de la Vida fue desarrollado por J.H. Conway en 1970. Aunque parezca un juego,
realmente es un modelo de una población de células que interactúan con su entorno. En
el núcleo del modelo se encuentra una cuadrícula que representa el "mundo".
Cada cuadrado puede estar ocupado por una célula viva o una muerta. La ejecución del
juego produce una serie de generaciones donde cada una de ellas es un mundo derivado
del anterior.
Las células interactúan entre si usando las siguientes reglas:
•
Una célula muerta con exactamente 3 vecinos vivos se convierte en una célula
viva (nacimiento)
•
Una célula viva con 2 ó 3 vecinos vivos permanece viva (supervivencia)
•
En todos los demás casos, una célula muere o permanece muerta (sobrepoblación
o soledad)
El patrón inicial constituye la “semilla” del sistema. La primera generación se obtiene
aplicando las reglas antes descritas simultáneamente a cada célula en la semilla. Los
nacimientos y las muertes suceden de forma simultánea. Las reglas se vuelven a aplicar
nuevamente para obtener otra generación.
En nuestro caso, vamos a considerar la cuadrícula que representa el mundo de forma
toroidal. Estro significa que los bordes de la cuadrícula se conectan con sus respectivos
extremos opuestos.
En esta asignación deberá implementar el problema del Juego de la Vida usando un
modelo de programación de Memoria Compartida (openMP)
Consideren una cuadrícula de 512 x 512 puntos. La cuadrícula inicial que usará para
probar su implementación viene dada por el siguiente código
for (i=1; i<=N; i++)
for (j=1; j<=N; j++)
if ((i==N/2) || (j==N/2)) {
board[i][j] = 1;
num_alive = num_alive+1;
}
else
board[i][j] = 0;
printf("Numero de vivos %d\n",num_alive);
Para cada generación que produzca imprima el número de seres vivos en la misma.
Descargar