Resumen Técnico

14
Facultad de Ingeniería Departamento de Informática y Computación Av. José Pedro Alessandri 1241, Ñuñoa Resumen Técnico Integrantes: Marco Molina Gonzalo Pradena Elías Águila G. Jaime Guarda M. Simón Muñoz S.

description

Resumen tecnico computacion paralela

Transcript of Resumen Técnico

Facultad de IngenieraDepartamento de Informtica y ComputacinAv. Jos Pedro Alessandri 1241, uoa

Facultad de IngenieraDepartamento de Informtica y ComputacinAv. Jos Pedro Alessandri 1241, uoa

Resumen Tcnico

Integrantes:Marco MolinaGonzalo PradenaElas guila G.Jaime Guarda M.Simn Muoz S.

Profesor:Oscar Magna V.

Asignatura:Computacin Paralela.

Fecha:Jueves 10 de Octubre de 2013.Tabla de contenido

Introduccin2Descripcin del Proyecto2Objetivo General2Objetivos Especficos2Definicin de un Clster3Clasificacin de los Clster3Componentes de un Clster4Ventajas y Desventajas Clusters4Ventajas4Desventajas4Requerimientos Fsicos5Nodo 1 (Maestro):5Nodo 2 (Esclavo1):5Nodo3 (Esclavo2):5Red de Interconexin5Cronograma de Actividades6ANEXO7Configuracion de Cluster en Nodo Maestro7Configuracion Nodo Esclavo10

Introduccin

En el mbito computacional, la resolucin de procesos complejos al igual que las simulaciones se han vuelto un hecho cotidiano en este mundo, por ende es necesario contar con un apoyo computacional potente al momento de atacar estas problemticas. La computacin paralela se ha vuelto una herramienta muy potente y muy utilizada por la gran utilidad que esta presta al momento de abarcar grandes problemas computacionales, una de las formas de aprovechar esta herramienta es mediante el uso de cluster de alto rendimiento los cuales se conforman de una computadora raz (nodo maestro) y de mltiples computadores adicionales (nodos esclavos) los cuales se comunican entre s para lograr un mayor desempeo.Descripcin del Proyecto

Este proyecto trata sobre el uso de soluciones tanto secuenciales como paralelas para el tratado de imagenes digitales lo cual se traduce en tcnicas de realzado, filtrado y mejora. La implementacin paralela estar sustentada por un clster de tres computadores, adems se busca medir y comparar el rendimiento de dichas soluciones con el fin de determinar en qu situacion es viable usar un ambiente paralelo o un ambiente secuencial.Objetivo General

Definir el marco de trabajo del proyecto, el alcance de ste, los modelos y tcnicas a usarse y requerimientos de hardware para la implementacin de una plataforma paralela para el tratamiento de imgenes digitales.Objetivos Especficos

Instalacin y configuracin del sistema operativo y las herramientas necesarias para la creacin y posterior configuracin del ambiente paralelo. Elaborar e implementer un algoritmo que pruebe el performance de la plataforma tanto paralela como secuencial en trminos de tiempo. Medir el rendimiento del ambiente paralelo vs el ambiente secuencial. Determinar en qu casos combiene ser usada la computacin paralela y en qu casos no.

Definicin de un Clster

Se llama clster a un grupo de computadores independientes que ejecutan aplicaciones en conjunto a travs de redes de alta velocidad y que para los clientes o aplicaciones se ven como un solo sistema.Segn las especificaciones el cluster estar conformado por computadores homogneos tanto a nivel de hardware como de software, este se enfocar en un cluster de alto rendimiento para poder lograr una capacidad de clculo que permite realizar las operaciones necesarias para el tratamiento de imgenes digitales.Un clster puede entregar los siguientes servicios: Alto rendimiento (High Performance) Alta disponibilidad (High Availability) Equilibrio de la carga (Load Balancing) Escalabilidad (Scalability)Clasificacin de los Clster

Alto rendimiento: Son clster en los cuales se ejecutan tareas que requieren de gran capacidad computacional, grandes cantidades de memoria, o ambos a la vez.Alta disponibilidad: Son clster cuyo objetivo es el de proveer disponibilidad y confiabilidad. Estos clster tratan de brindar la mxima disponibilidad de los servicios que ofrecen.Alta eficiencia: Son clster cuyo objetivo es el ejecutar la mayor cantidad de tareas en el menor tiempo posible. Existe independencia de datos entre las tareas individuales. El retardo entre los nodos del clster no es considerado un gran problema.Existe otra clasificacin de cluster donde se encuentran los Clster de IT Comerciales (Alta disponibilidad, Alta eficiencia) y Clster Cientficos (Alto rendimiento).Existen dos grandes conjuntos de clusters: Programacin paralela: estos cluster estn diseados y optimizados para correr programas paralelos, donde sus usos ms frecuentes son el anlisis estructural, simulaciones de mecnica de fluidos, modelos genmicos, prediccin meteorolgica. Distribucin de procesos: este tipo de cluster tiene como finalidad distribuir los procesos entre los diferentes nodos que componen el cluster. Si un nodo deja de funcionar, los procesos que estaban corriendo en ese nodo, sern redistribuidos entre los nodos que estn en funcionamiento.Componentes de un Clster

Todo cluster comparte una serie de componentes relevantes los cuales son: Nodos: corresponden a los computadores que conforman el clster, en este caso: Nodo Maestro: Es el encargado de sincronizar y gestionar los nodos esclavos. Nodo Esclavo: Es un conjunto de computadoras encargadas de ejecutar las operaciones pertinentes. Sistemas Operativos: debe ser multiproceso y multiusuario. Conexiones de Red: los nodos pueden conectarse por una red Ethernet con placas comunes o tecnologas de alta velocidad como Fast Ethernet, Gigabit Ethernet, Myrinet, InfiniBand, SCI, etc. Middleware: es un software que generalmente acta entre el sistema operativo y las aplicaciones Protocolos de Comunicacin y servicios. Aplicaciones.Ventajas y Desventajas Clusters

Ventajas

Los cluster ofrecen las siguientes caractersticas a un costo relativamente bajo: Alto rendimiento Alta disponibilidad Alta eficiencia Escalabilidad

Desventajas

En cuanto a las desventajas se aprecian las siguientes: La administracin de muchas mquinas interconectadas implica una mayor atencin y conocimiento, que la administracin de una gran mquina con muchos procesadores. La Red puede hacer perder la fiabilidad, e incluso el performance. Al ser un conjunto de computadores hay ms puntos que deben ser vigilados lo que leva la posibilidad de problemas de seguridad, en comparacin con un solo computador centralizado. Requerimientos Fsicos

Nodo 1 (Maestro): Procesador: Intel Core I7 Frecuencia: 3.40 GHz Memoria Cach: 8 MB Memoria RAM: 8 GB, 7,88 GB Disponibles, 1696 MB de memoria de video disponible. Disco Duro: 500 GBNodo 2 (Esclavo1): Procesador: Intel Core I7 Frecuencia: 3.40 GHz Memoria Cach: 8 MB Memoria RAM: 8 GB, 7,88 MB Disponibles, 1696 MB de memoria de video disponible. Disco Duro: 500 GBNodo3 (Esclavo2): Procesador: Intel Core I7 Frecuencia: 3,40 MHz Memoria Cach: 8 MB Memoria RAM: 8 GB, 7,88 MB Disponibles, 1696 MB de memoria de video disponible. Disco Duro: 500 GBRed de Interconexin Tipo: Ethernet IPv4 Topologa Estrella Velocidad: 60 Mbps Equipamiento: Hub conexin almbrica

Fig. 1 - Red de Interconexin.Cronograma de Actividades

A continuacin se presenta un cronograma de actividades aproximado al desarrollo del proyecto el cual muestra las principales actividades a ser ejectuadas:

Fig. 2 - Cronograma.

Fig. 3 - Diagrama de Cronograma.

ANEXO

Configuracion de Cluster en Nodo Maestro

Paso 1: actualizacin de SO e instalacin de programas a utilizar. En consola de ubuntu:

sudo apt-get update sudo apt-get upgrade sudo apt-get install gcc g++ sudo apt-get install openmpi-bin openmpi-common libopenmpi1.3 libopenmpi-dev sudo apt-get install ssh sudo apt-get install nfs-kernel-server nfs-common portmap sudo apt-get install build-essential

Paso 2: Creacin de carpeta a compartir. Ubicarse en la carpeta personal.

cd /home/"nombre_de_usuario"

Crear carpeta .shh y darle los permisos.

mkdir .ssh sudo chmod 777 .ssh

Volver al directorio raz (desde la carpeta personal)

cd ../../

Crear carpeta a compartir y otorgarle todos los permisos

sudo mkdir /"nombre_carpeta_maestra" sudo chmod 777 /"nombre_carpeta_maestra"

Ingresar a la carpeta y cambiar el propietario del directorio

cd /"nombre_carpeta_maestra" sudo chown "nombre_de_usuario" /"nombre_carpeta_maestra"

Paso 3: Editar ficheros hosts y exports

Fichero hosts: Este fichero asocia una direccin IP con un nombre de host.

Ingresar al archivo etc/hosts

sudo gedit /etc/hosts

Dentro del archivo ingresar la direccin ip ,nombre de usuario y nombre de equipo tanto del nodo maestro como de los nodos esclavos.

Fig. 4 - Ficheros host y exports. Fichero exports: Este fichero especifica el directorio a exportar, los permisos que se poseern y los hosts que pueden usarlo.

Ingresar al archivo etc/exports

sudo gedit /etc/exports

Fig. 5 - Fichero exports.Paso 4: Comparticin de directorio con nodos esclavo.

NFS Server: Servidor utilizado para compartir directorios y ficheros en red local.

Reinicio del servicio NFS.

sudo service nfs-kernel-server restart

ESPERAR A QUE LOS ESCLAVOS MONTEN LA CARPETA - REALIZAR PASO 3 NODO ESCLAVO -

Paso 5: Configuracin SSH

Creacin de clave

su "nombre de usuario" ssh-keygen -t rsa

Compartir clave a nodos esclavos.

Situndose en carpeta /home/"nombre de usuario"/.ssh

cat id_rsa.pub >> authorized_keys ssh-copy-id "ip_esclavo"

Confirmar si el proceso es correcto

ssh " ip_esclavo"

*Al ingresar al nodo esclavo este no debe pedir contrasea.

Paso 6: Ejecutar Cdigo.

Situarse en la carpeta maestra con programa a ejecutar.

Compilar programa

mpicc o nombre_programa nombre_programa.c

Ejecutar programa

mpirun np n de hilos -host ip_esclavo./nombre_programa

Ejemplo-> mpirun -np 4 --host 10.1.10.001 ./ nombre_programa

Para evitar tener que referenciar las ips a ejecutar se puede crear un archivo hostfile el que contenga los equipos y cantidad de ncleos que posee.

sudo gedit home/hostfile

Fig. 6 - Datos.

mpirun np n hilos -hostfile ruta fichero./nombre_programaConfiguracion Nodo Esclavo

Paso 1: Actualizacin de SO e instalacin de programas a utilizar.

sudo apt-get update sudo apt-get upgrade sudo apt-get install gcc g++ sudo apt-get install openmpi-bin openmpi-common libopenmpi1.3 libopenmpi-dev sudo apt-get install ssh sudo apt-get install nfs-kernel-server nfs-common portmap

Paso 2: Creacin de carpeta esclavo a sincronizar.

Ubicarse en la carpeta personal.

cd /home/"nombre_de_usuario"

Crear carpeta .shh y darle los permisos.

mkdir .ssh sudo chmod 600 .ssh

Volver al directorio raz (desde la carpeta personal)

cd ../../

Crear carpeta a compartir y otorgarle todos los permisos

sudo mkdir /"nombre_carpeta_esclavo" sudo chmod 777 /"nombre_carpeta_esclavo"

Ingresar a la carpeta y cambiar el propietario del directorio

cd /"nombre_carpeta_cliente" sudo chown "nombre_de_usuario" /"nombre_carpeta_esclavo"

Paso 3: Montaje de carpeta maestra.

Montar carpeta maestra compartida

En cada nodo cliente ejecutar:

sudo mount ip_nodo_maestro:/nombre_carpeta_maestra /nombre_carpeta_esclavo

Ejemplo -> sudo mount 10.1.10.000:/cluster /cluster

Para no tener que montar la carpeta maestra cada vez que se inicia el equipo, modificar el fichero fstab y agregar los datos de montaje:

sudo gedit /etc/fstab

Fig. 7 - Carpeta Maestra. sudo mount a

[11]