Skip to content

Latest commit

 

History

History
42 lines (28 loc) · 3.55 KB

README.md

File metadata and controls

42 lines (28 loc) · 3.55 KB

uclm

Red Toroidal

Autor: David Camuñas

Descripción

Esta práctica perteneciente al laboratorio de la asignatura de Diseño de Infraestructura de Redes (DIR) de ESI - UCLM.
Es una simulación de una Red Toroidal o de anillo, mediante la utilización de programación paralela MPI en lenguaje C.

Enunciado

Dado un archivo con nombre datos.dat, cuyo contenido es una lista de valores separados por comas, nuestro programa realizará lo siguiente: El proceso de rank 0 destribuirá a cada uno de los nodos de un toroide de lado L, los L x L numeros reales que estarán contenidos en el archivo datos.dat.

En caso de que no se hayan lanzado suficientes elementos de proceso para los datos del programa, éste emitirá un error y todos los procesos finalizarán. En caso de que todos los procesos han recibido su correspondiente elemento,comenzará el proceso normal del programa.

Se pide calcular el elemento menor de toda la red, el elemento de proceso con rank 0 mostrará en su salida estándar el valor obtenido. La complejidad del algoritmo no superará O(raiz_cuadrada(n)) Con n número de elementos de la red.

Manual de Usuario

Creación de directorios necesarios

Con este comando se crearan los diferentes directorios entre ellos el directorio que contiene el archivo ejecutable del programa.
$ make dirs

Limpieza de directorios

Este comando se ha utilizado para limpiar los directorios en los que se almacenan los ejecutables y las clases objetos (explicada anteriormente su creación).
$ make clean

Compilación

El proceso de compilación, se puede realizar de varias formas:

  • Automaticamente con Makefile: $ make toroidalNet

  • Manualmente: $ mpicc src/toroidalNet.c -I include/ -lm -o exec/toroidalNet

Donde se puede observar la opción -I include/ la cual define donde se encuentran las librerias propias (definitions.h). Y la opción -lm esta opción define la utilización de la libreria math.h de C.

Ejecución

Para la ejecución del programa se puede realizar al igual que la compilación de varias formas:

  • Automaticamente con Makefile: $ make solution
    Se ejecutará el ejecutable ./exec/toroidalNet

  • Manualmente: $ mpirun -n 9 ./exec/toroidalNet

Donde la opción -n 9 en este caso indica el número de nodos que contiene la red toroidal.