Proyecto para la asignatura "Computación Paralela y Distribuida" en la UTEM. Docente: Sebastían Salazar.
El proyecto tiene como objetivo explicar la resolución de un problema de procesamiento de imágenes con clustering (MPI) para el estudio del procesamiento en múltiples máquinas por medio de este protocolo. El programa deberá recibir una entrada por medio de CLI y procesa la imagen según los parámetros enviados (Escala de grises, Difuminado o Ampliado de imágen).
Es un programa en C++ capaz de procesar imágenes por CLI, además este procesamiento debe ser en múltiples “procesadores” distribuidos en múltiples máquinas, siendo el objeto de estudio la interacción con otros “computadores” por medio de MPI (Message Passing Interface) que permite que éstos se comuniquen entre sí.
La implementación debe escoger una imagen en colores y hacer las siguientes actividades con algoritmos paralelos:
- Difuminar la imagen.
- A partir de la imagen en colores pasar a escala de grises.
- Escalar la imagen sin perder calidad.
- Ubuntu 20.04 LTS de 64 bits.
- C++.
- OpenMPI. (https://www-lb.open-mpi.org/software/ompi/v4.0/)
- OpenCV 4.4.0 (funciona con 4.2.0).(https://opencv.org/)
sudo apt update
sudo apt install libopencv-dev
sudo ldconfig
Archivos de Entrada:
algo.cpp
contiene el programa en C++ con MPI y OpenCV,Fubuki.jpg
imagen de ejemplo.
Formato archivos de salida:
operacion_numOperacion_YYYYmmddHHmmss
Método 1:
mpicxx -std=gnu++14 -g algo.cpp -o algo.o `pkg-config --cflags --libs opencv4`
Método 2: utilizar makefile
make
Método 1:
time mpirun ./algo.o numOperacion path
Método 2:
time mpirun ./dist/programa numOperacion path
Como se mencionó anteriormente, existen 3 operaciones, estas son:
- Difuminado Gaussiano.
- Grayscale.
- Ampliación de la imagén (ancho2 , alto2) Para utilizar alguna, se escribe el número correspondiente en el argumento para la ejecución (numOperacion)
time mpirun ./algo.o 1 Fubuki.jpg
o time mpirun ./dist/programa 1 Fubuki.jpg
time mpirun ./algo.o 2 Fubuki.jpg
o time mpirun ./dist/programa 2 Fubuki.jpg
time mpirun ./algo.o 3 Fubuki.jpg
o time mpirun ./dist/programa 3 Fubuki.jpg
- Daniel Aguilera Tasso
- Nicolás Andrews Sandoval