Anda di halaman 1dari 4

Aproximación de equilibrio de carga en un cluster

de computadoras en imágenes Digitales

Emmanuel Martínez Mateos

tigg65_2@hotmail.com

Benemérita Universidad Autónoma de Puebla

Facultad de Ciencias de la Computación

Abstract Como podemos observar en la figura 1, se


muestra la forma de realizar una multiplicación
El trabajo consiste en balancear la carga de
de matrices, para nuestro trabajo, nos enfoca-
trabajo entre los distintos nodos que conforman
remos en el cluster, cada línea y columna
el cluster, ya que algunos nodos pueden estar
de la matriz se asigna a un nodo y este se en-
muy sobrecargados y otros pueden estar des-
carga de realizar las operaciones que se utilizan
ocupados, el problema se centra en garantizar
para unir dos imágenes en una sola.
el equilibrio de carga en los nodos mediante
algoritmos, los cuales hay de dos tipos, estáti-
cos y dinámicos, el trabajo se realizará en los
algoritmos de tipo dinámicos. El problema al que nos enfrentamos, es al que-
El problema es interesante en el aspecto de que rer gestionar las tareas de una manera justa y
se busca trabajar con imágenes digitales y me- balanceada hacia todos los nodos del cluster y
jorar el rendimiento y los tiempos de respuesta de esta manera garantizar los tiempos de res-
hacia el servidor. Este trabajo se podrá aplicar a puesta hacia el servidor.
problemas de índole científico que requieran de
un sistema de supercómputo.

1. Introducción
2. Trabajo relacionado
En el presente trabajo se busca y se comple-
Ray Tracing
menta una solución, mediante algoritmos de
equilibrio de carga dinámicos, este tipo de algo- Básicamente, es una técnica que sirve para
ritmos permite distribuir las tareas a los nodos transformar una imagen tridimensional a partir
conforme va evolucionando el problema, un de una imagen bidimensional. Esta técnica se
claro ejemplo es al querer realizar una multipli- deriva del modelo físico que se utiliza para ob-
cación de matrices de tamaño 3 x 3. tener fotografías con cámaras análogas.
Una de las partes más importantes para la im-
plementación de forma paralela de la técnica de
Ray Tracing, es identificar una manera de des-
componer la aplicación en partes para que cada
una de estas pueda ser procesada por un pro-
ceso diferente.

Fig. 1 ejemplo de una multiplicación de matrices.

Martínez Mateos Emmanuel. Aproximación de equilibrio de carga en un cluster de computadoras en imágenes digitales
(Junio de 2010)
2

3. Desarrollo del trabajo


Se pretende realizar operaciones sobre imáge-
nes digitales, la idea es propuesta ya que al
operar con imágenes de gran tamaño se requie-
re tener un gran poder de procesamiento al
multiplicar una gran cantidad de píxeles que se
convierten en bits de información, el resultado
de las operaciones genera unir dos imágenes
de la misma resolución en una sola.
Para comenzar, se necesita transformar la ima-
(151,198,255),(167,202,250),(178,207,249)
gen en información numérica mostrada en forma
de Matriz para llevar a cabo las operaciones (176,220,255),(190,223,254),(197,220,253)
matemáticas, el segundo paso es “cortar” la (209,224.245),(216,229,247),(217,228,246)
matriz en “pedazos” para después en un tercer
Figura. 3 Transformación de una imagen de 3 pixeles de
paso, poderla repartir entre los Nodos, los cua- ancho por 3 pixeles de alto a una matriz.
les procesaran dicha información y la devol-
verán al servidor para que pueda colocar el
resultado en una tercer matriz, la cual es la ima- Ahora que ya sabemos cómo representar una
gen generada a partir de la manipulación de sus imagen RGB formaremos matrices de dimen-
píxeles. siones m x n, con vectores, los cuales estarán
constituidos por 3 componentes (canales RGB).

⁺ Operaciones a realizar
Para unir dos imágenes en una sola, que es
nuestro propósito, se define

= La siguiente función:
R[i, j, c] donde;
R=Matriz resultante
Figura 2 resultado de la manipulación de imágenes, de i=fila
tamaño 1024 x 768 pixeles.
j= columna
PIXELES
c=canal RGB
Una imagen digital se compone por píxeles que
son los elementos más pequeños de una ima- y las operaciones para unir:
gen digital. Cada pixel es un espacio en memo-
ria, donde se almacena un número, este repre-
senta la definición del color y el brillo. 1.-Suma ponderada
RGB R[i,j,c]=A[i, j, c] + B[i, j, c]
Cualquier color se puede representar mediante 2.-Funcion Fars
la combinación de los colores rojo, verde, y azul,
i+j si i+j <= 255
La combinación RGB, Indica 256 niveles por
cada canal, es decir por cada color rojo, verde o R[i,j,c]=fars (R[i,j,c]=
azul.
Para representar el valor de 256 requerimos de 255 si i+j > 255
8 bits para cada canal de color.
En la siguiente figura se muestra la transforma-
ción de una imagen de 3 píxeles de ancho por 3
píxeles de alto.

Martínez Mateos Emmanuel. Aproximación de equilibrio de carga en un cluster de computadoras en imágenes digitales
(Junio de 2010)
3

El proyecto se realizara en el lenguaje java ya solide toda la información y la mande a


que es un lenguaje flexible y contiene bibliote- un archivo,
cas para:
-manejo de imágenes > Cada proceso tendrá un identificador
(id), el cual ayudara a distinguirse de los
-sincronización
demás, con este id cada proceso será
-manejo de protocolos de red tcp/ip capaz de identificar que parte de la
y se divide en las siguientes fases: imagen le toca procesar y enviar al ser-
vidor.
- Carga de imágenes: Se seleccionan las
imágenes desde el servidor con formato > Una vez que el proceso acaba su parte
*.jpg dese un directorio especifico se la enviará al proceso con identifica-
dor cero (proceso central) para que éste
- Cambiar tamaño: En el caso en el que
consolide la información y pueda gene-
las dos imágenes sean de distinta reso-
rar la matriz final.
lución se utilizara el programa Picture
Converter 4.10, Cuando ya tenemos
seleccionadas las imágenes, sólo nos
queda elegir el tamaño al que queremos
transformarlas y después pulsar en
"modificar tamaño".

- Convertir imágenes: Se utiliza un driver


llamado pixelgrabber en java para poder
convertir la imagen en una matriz de
píxeles.
Figura 4, se muestra la descomposición de la
- Separador: Se encarga de recortar la imagen en bloques.

matriz para poder repartir a los nodos


EL ALGORITMO
sus respectivas tareas, nos centraremos
en esta parte del proyecto para mejorar > 1. Leer el archivo.
la distribución de la carga.
> 2. Inicializar estructuras de datos
- Realizar operaciones: Esta parte la lle-
> 3. Inicializar MPI.
van los clientes y es el que se encarga
de realizar las funciones suma ponde- > 4. Determinar el número de procesos y
rada o función Fars ya definidas. el identificador de mi proceso.
- Devolución: En esta parte, los resulta- > 5. En base al número de procesos de-
dos obtenidos se regresan al servidor terminar el número de bloques.
para que pueda colocar los resultados
en la Matriz final. > 6. En base al identificador de proceso
determinar el bloque que tengo que
Para poder mejorar el balanceo de la carga, procesar y procesarlo.
usaremos MPI (interfaz de paso de mensajes)
usando una implementación en Java. > 7. Si el identificador es diferente de cero
A continuación se explica la forma en la que se enviar el bloque procesado al proceso
parten las imágenes y el algoritmo. central.
> Nuestra idea es repartir una parte de la
> 8. Si el identificador es igual a cero es-
imagen a cada proceso y conforme ca-
perar a que todas las tareas me envíen
da uno de los procesos vayan acabando
la información y generar la matriz final.
la generación de esa parte se la envia-
ran a un proceso central para que con- > 9. Finalizar MPI

Martínez Mateos Emmanuel. Aproximación de equilibrio de carga en un cluster de computadoras en imágenes digitales
(Junio de 2010)
4

4. Conclusiones y Trabajo a Futuro

Esta implementación es posible conectar un


conjunto de computadoras (cluster) y mejorar el
rendimiento y los tiempos de respuesta hacia el
servidor, este modelo tiene la capacidad de ser
escalable, al poder conectar n computadoras,
cada una de éstas con la misma configuración
con respecto al hardware.
Es una muy buena opción para querer trabajar
con cómputo pesado, ya que tiene una mayor
fiabilidad en los aspectos económico-escalable
con respecto a las llamadas “supercomputado-
ras” con múltiples procesadores.
El trabajo a futuro queda abierto para realizar
trabajos de investigación relacionado con imá-
genes digitales o video digital, en este último se
necesitará trabajar más, en la “renderizacion”.

5. Referencias
Desarrollo de una “supercomputadora” basada en un cluster
de PC’S
Laboratorio de Cibernética del IPN
Diego H. Milone
d.milone@ieee.org

Grid computing: Promesa de los sistemas


distribuidos
Harold Castro ,Ph,D.

Aplicación de las matrices en el procesamiento de imágenes


Prof. Erick Norman Guevara Corona
UNAM-Facultad de ingeniería

Martínez Mateos Emmanuel. Aproximación de equilibrio de carga en un cluster de computadoras en imágenes digitales
(Junio de 2010)