Вы находитесь на странице: 1из 10

50

Implementacin Paralela del Algoritmo de Jubete


Mara del Carmen Galeano Medina
Universidad Nacional del Este - Facultad Politcnica
krmita@gmail.com
Resumen. Este trabajo se halla enmarcado dentro de la teora del procesamiento distribuido y la
programacin paralela, conjuntamente con tcnicas basadas en los conceptos de dual, polar u ortogonal,
que se asocian a inecuaciones lineales y pertenecen a las teoras de polaridad. En este trabajo se define
cmo pueden ser aplicados los conjuntos ortogonales para resolver problemas matriciales, estos
problemas son abordados desde una perspectiva puramente algebraica sin considerar los aspectos
relativos al anlisis numrico como la estabilidad, la aplicabilidad a matrices dispersas, la eleccin
numrica de pivotes, etc.
Palabras claves: procesamiento distribuido, conjuntos ortogonales, pivote.
Abstract. This work is framed within the distributed processing theory and the parallel programming,
jointly with techniques based in the dual, polar and orthogonal concepts that are related to lineal
inequations and belongs to the polarity theory. In this work is defined how the orthogonal sets can be
applied to resolve matrices problems, which are boarded from a purely algebraic perspective not
considering the Numerical Analysis related aspects like stability, the dispersed matrices applicability, the
numeric choice of pivots, etc.
Keywords: distributed processing, orthogonal sets, pivots.

1.

Introduccin

La inversin de matrices, el clculo de


determinantes, la resolucin de sistemas lineales
de ecuaciones, y los problemas de programacin
lineal son algunos de los problemas matemticos
que surgen frecuentemente en la vida prctica.
Por ello, existen muchos procedimientos y
programas de ordenador para resolverlos. Sin
embargo, muchos de estos programas no estn
preparados para lidiar con otros problemas
tambin de aparicin frecuente, tales como:
Calcular la inversa de una matriz tras
modificarla, suprimiendo y/o aadiendo filas
o columnas, a partir de la inversa de la
matriz inicial.

Calcular la inversa de una matriz simblica.

Resolver sistemas de ecuaciones lineales con


algunas variables.

Obtener la solucin de un sistema de


ecuaciones lineales cuando se han eliminado
o aadido algunas ecuaciones y/o variables,
sin empezar desde el principio, es decir,
utilizando la solucin del sistema inicial.

Analizar la compatibilidad de los sistemas


lineales de ecuaciones e inecuaciones con
variables restringidas.

Resolver sistemas de inecuaciones lineales.

El Algoritmo de Ortogonalizacin de Jubete,


ofrece un mtodo computacionalmente eficiente
para hallar la inversa, el determinante y el rango
de una matriz. Adems, el mtodo permite
actualizaciones dinmicas de inversas y
determinantes, cuando se cambian las filas de la
matriz inicial, y son especialmente convenientes
para clculos simblicos [6].
El Algoritmo de Jubete tiene la operativa
anloga a la empleada en los mtodos de
programacin lineal; sin embargo, esta nueva
concepcin basada en los conjuntos ortogonales
y de mayor profundidad, permite acceder a su
generalizacin en el caso de matrices simblicas
y particionadas [7].
En el presente trabajo se utiliza el Algoritmo de
Ortogonalizacin de Jubete para hallar la inversa
de matrices no singulares.

ARTCULOS CIENTFICOS INFORMTICA N 4 AO 2008

51
2. Inversa de una matriz
Para calcular la inversa de la matriz A= (a1; ;
an)T Se aplica el Algoritmo 2.1 a las filas de A,
usando una matriz inicial no singular V0, se
obtienen las matrices Vj para j = 1,n,
mediante las transformaciones.
Vj+1= Vj Mi-1 (2.1) donde j= 0,.., n-1,
Donde Mi es definida como Mi = (e1,,ei-1, ti,
ei+1,,en) T Entonces se satisface que:
ajT Vn = ajT Vj Mi-1 Mi+1-1.. Mn-1
= tjT Mj-1 Mj+1-1. Mn-1
= ejT Mj-1 Mj+1-1. Mn-1 = ejT (2.2)
Esto prueba que A-1 = Vn, es decir, la inversa de
A es la matriz cuyas columnas estn en la tabla
final, obtenida utilizando el Algoritmo 2.1.

columna ir al Paso 7. En caso contrario,


continuar con el Paso 5.
Paso 5: Incrementar l en una unidad, dividir la
columna rl-sima por tlrl, y si rl l intercambiar
las columnas l y rl, y los productos escalares
asociados tlrl y tll.
Paso 6: Desde j=1 hasta s y j rl hacer lo
siguiente: Si tlj 0 hacer wkj = wkj tlj wki para
k=1,,n.
Paso 7: Si i = m ir al Paso 8. En caso contrario,
incrementar i en una unidad e ir al Paso3.
Paso 8:
subespacio ortogonal :

como

el

como su
complemento.

El proceso anterior tambin permite obtener la


descomposicin ortogonal del subespacio con
respecto a cualquier fila de A.
Sean {v1,., vn} las columnas de Vn,
entonces:
(2.3)
es la descomposicin ortogonal de
con
respecto a ai. De esta manera, se tiene que:
ai x vj = ij
(2.4)
Siendo ij las deltas de Kronecker [15].
Algoritmo 2.1 Algoritmo de Ortogonalizacin
de Jubete

2.1.

Complejidad

En esta seccin se obtiene la complejidad del


Algoritmo de Ortogonalizacin de Jubete y se
compara con el procedimiento de eliminacin de
Gauss. En la Tabla 2.1 se da el nmero de
productos y sumas requeridos en las iteraciones.
As, se tiene:
Nmero total de productos = n3 y
Nmero total de sumas = n3- 2n2+n
Similarmente, en la Tabla 2.2 se muestra el
nmero de productos y sumas requeridas en las
iteraciones del mtodo de eliminacin de Gauss
para invertir una matriz.

Entrada: Dos subespacios vectoriales


Productos o divisiones
Salida: El subespacio vectorial ortogonal

Fase

Iter. 1

Iter.2

Iter. n

Total

n2

n( n - 1)

n( n - 1)

Nor
mali
0

Paso 1: Hacer W= V (la matriz con vj , j=


1,.,s como columnas).
Paso 2: Hacer i=1 y l=0

zaci
n
Pivot
aje

Paso 3: Calcular los productos escalares tlj = ui


x wj, j = 1,., s
Paso 4: Desde j= l donde s localizar la
columna pivote rl como la primera columna no
ortogonal a ui es decir, tlrl 0. Si no existe tal

n( n - 1)

n2( n - 1)

Sumas
Pivot
aje

( n - 1)2

( n - 1)2

(n -1)2

ARTCULOS CIENTFICOS INFORMTICA N 4 AO 2008

(n3-2n2+n)

52
as, se tiene:

Productos o divisiones

Nmero total de productos = n3 y


Nmero total de
sumas = n3-2n2+n
Lo que demuestra que las complejidades de los
dos algoritmos son exactamente las mismas.

Fase

Iter.
1

Iter.2

Iter. n

Total

Prod.
Escala

n( n - 1)

(n3 - n2)/2

(n2 + n)/2

n-1

2 (n - 1)

res

3. Procesamiento Paralelo
En las ciencias de la computacin, un algoritmo
paralelo, en oposicin a los algoritmos clsicos o
algoritmos secuenciales, puede ejecutarse por
partes en el mismo instante de tiempo por varias
unidades de procesamiento, para que finalmente
se agrupen todas las partes y se obtenga el
resultado correcto.
Algunos algoritmos se dividen fcilmente en
partes; como por ejemplo, un algoritmo que
obtenga todos los nmeros primos entre 1 y 100,
donde se podra dividir los nmeros originales
en subconjuntos y calcular los primos para cada
uno de los subconjuntos de los nmeros
originales, al final, se uniran todos los
resultados y se tendra la solucin final del
algoritmo.
Por el contrario, a veces los problemas no se
paralelizan fcilmente, de ah que estos
problemas se conocen como problemas
inherentemente secuenciales [4]. Como ejemplo
de estos mtodos se tienen los mtodos
numricos iterativos, como el mtodo de
Newton o el problema de los tres cuerpos.
Los algoritmos paralelos son importantes,
porque se tratan grandes tareas de computacin
ms rpidamente mediante la paralelizacin, que
a travs de tcnicas secuenciales. sta es la
forma como se trabaja en el desarrollo de los
procesadores modernos, ya que es ms difcil
incrementar la capacidad de procesamiento con
un nico procesador, que aumentar su capacidad
de cmputo mediante la inclusin de unidades
en paralelo, logrando as la ejecucin de varios
flujos de instrucciones dentro del procesador.
Pero se debe mantener cautela con la excesiva
paralelizacin de algoritmos, ya que existe
siempre una parte secuencial en cada algoritmo
paralelo, y debido a esto, se puede llegar a un
punto de saturacin [3]. Por tanto, a partir de
cierto nivel de paralelismo, en caso de que se
adicionen ms unidades de procesamiento, solo
se obtiene el incremento de coste y la disipacin
de calor.

Norm
alizaci

n
Pivota
je

n( n - 1)

(n3 - n)/2

Sumas

Fase

Iter. 1

Iter.2

Iter. n

n-1

(n -1)2

Prod.
Escala
res
Pivota
je

n-1

(n -1)

Total
(n32n2+n)/2
(n32n2+n)/2

El coste o complejidad de los algoritmos


secuenciales se estima en trminos de espacio
(memoria) y tiempo (ciclos de procesador) que
requiera. Los algoritmos paralelos tambin
necesitan optimizar la comunicacin entre
diferentes unidades de procesamiento. Esto se
consigue mediante la aplicacin de dos
paradigmas de programacin y diseo de
procesadores distintos: memoria compartida o
paso de mensajes.
La tcnica de memoria compartida requiere de
seguridad en los datos para impedir que se
modifiquen
simultneamente
por
dos
procesadores, lo que produce un coste extra en
ciclos de CPU y ciclos de bus. Tambin obliga a
serializar alguna parte del algoritmo.
La tcnica paso de mensajes utiliza canales y
mensajes, pero esta comunicacin aade un
coste de bus, memoria adicional para las colas y
los mensajes, y latencia en los mensajes. Los
diseadores
de
procesadores
paralelos
implementan buses especiales para que el coste
de la comunicacin sea pequeo, pero es el
algoritmo paralelo el que decide el volumen del
trfico. Finalmente, una subclase de los
algoritmos
paralelos,
los
algoritmos

ARTCULOS CIENTFICOS INFORMTICA N 4 AO 2008

53
distribuidos, son algoritmos que trabajan en
entornos tipo cluster y de computacin
distribuida, donde se utilizan otras tcnicas,
fuera del alcance de los algoritmos paralelos
clsicos.
La idea bsica detrs del procesamiento paralelo
es que varios dispositivos (procesadores),
ejecuten simultnea y coordinadamente las
tareas, para que puedan rendir ms que un nico
dispositivo. El problema fundamental son las
innovaciones tecnolgicas que se requieren para
obtener ese rendimiento mejorado.
Si bien el procesamiento paralelo ofrece una
ventaja definitiva en cuanto a costos, su
principal beneficio, la escalabilidad (capacidad
de crecimiento), puede ser difcil de alcanzar.
Esto se debe a que conforme se adicionen
procesadores, las disputas por los recursos
compartidos se intensifican. [5].

programa paralelo por paso de mensajes, los


datos se deben distribuir explcitamente entre los
procesadores. El espacio de direccionamiento de
los procesos, que componen el programa
paralelo, es distinto, por eso se concibi la
abstraccin de usar mensajes que pueden ser
enviados de un proceso a otro por un canal de
comunicacin. Tal concepto es denotado en el
programa, a travs de las primitivas send y
receive, las cuales suponen que un proceso
pretende enviar (send) un mensaje a otro
proceso, el cual espera recibirlo (receive). Entre
los procesos existe un canal de comunicacin.
En la prctica, los programadores disponen de
bibliotecas de comunicacin con primitivas
semejantes a send y receive. Las bibliotecas de
comunicacin que obtuvieron mayor aceptacin
fueron: MPI y PVM, ambas con soporte a
lenguaje C y Fortran [11].

Existen diversos modelos de programas


distribuidos, entre ellos se destacan [12]:

En este trabajo se usar la biblioteca MPI para la


implementacin paralela del Algoritmo de
Jubete; a continuacin se exponen los conceptos
bsicos de dicha biblioteca.

3.3

3.1. Modelos de Programas Distribuidos

Maestro/Esclavo: Procesos hijos ejecutan


partes menores de una tarea, devolvindose
los resultados al proceso padre.
Pipeline (lnea de produccin): Procesos
cooperan intercambiando informacin en un
flujo continuo. Un proceso, al completar su
tarea, pasa el resultado al proceso siguiente,
quedando libre para recibir nuevas tareas del
procesador anterior.

3.2. Herramienta
Paralela:

de

la

Programacin

Paso de Mensajes
El paradigma de paso de mensajes es utilizado
en sistemas dbilmente acoplados, representados
por la arquitectura basada en memoria
distribuida (clusters), en donde cada procesador
tiene acceso solamente a su memoria local y, por
consiguiente, la comunicacin necesariamente se
lleva a cabo por medio de una red de
interconexin [12].
Conceptualmente, la idea de paso de mensajes,
es totalmente independiente del hardware,
sistema operativo, lenguaje de programacin, y
bibliotecas. Durante el desarrollo de un

MPI

El MPI es una biblioteca de Message Passing o


Paso de Mensajes desarrollada para ambientes
de memoria distribuida, mquinas paralelas, y
redes heterogneas. Define un conjunto de
rutinas para facilitar la comunicacin
(intercambio de datos y sincronizacin) entre
procesos paralelos. Posee aproximadamente 125
funciones para la programacin [10].
Al disearse MPI, se tomaron en cuenta las
caractersticas ms atractivas de los sistemas
existentes para el paso de mensajes, en vez de
seleccionar solo uno de ellos y adoptarlo como
el estndar. Resultaron as una fuerte influencia
para MPI los trabajos hechos por IBM, INTEL,
NX/2, Express, nCUBEs Vernex, p4 y
PARMACS. Otras contribuciones importantes
provienen de Zipcode, Chimp, PVM,
Chameleon y PICL [12].
El esfuerzo para estandarizar MPI involucr a
cerca de 60 personas de 40 organizaciones
diferentes, principalmente de U.S.A y Europa.
La mayora de los vendedores de computadoras
concurrentes estaban involucrados con MPI, as
como los investigadores de diferentes
universidades, laboratorios del gobierno e

ARTCULOS CIENTFICOS INFORMTICA N 4 AO 2008

54
industrias. El proceso de estandarizacin
comenz en el taller de estndares para el paso
de mensajes en un ambiente de memoria
distribuida, patrocinado por el Centro de
Investigacin en Computacin Paralela en
Williamsbur, Virginia. Se lleg a una propuesta
preliminar conocida como MPI1, enfocada
principalmente en comunicaciones punto a punto
sin incluir rutinas para comunicacin colectiva y
no presentaba tareas seguras. El estndar final
para el MPI fue presentado en la conferencia de
Supercomputacin en Noviembre de 1993, y se
constituy as el foro para el MPI [10,12].
Las implementaciones en MPI consisten en un
conjunto de bibliotecas de rutinas que pueden
ser utilizadas en programas escritos en los
lenguajes de programacin C, C++, Fortran y
Ada, Java etc. [12].
Las arquitecturas de computacin paralela
pueden verse como una extensin de las
arquitecturas convencionales que permiten la
cooperacin y comunicacin entre elementos de
procesos.
Actualmente existen 2 paradigmas en las
arquitecturas de computacin paralela.

ejecucin del Algoritmo Secuencial con el


Algoritmo en Paralelo y demostrar las ventajas
que ofrece la computacin paralela, en la gestin
de datos en grandes cantidades.
El algoritmo de Jubete resuelve un gran nmero
de problemas del lgebra lineal, de forma muy
eficiente. El problema seleccionado para probar
la eficiencia del Algoritmo de Ortogonalizacin
de Jubete fue hallar la inversa de matrices no
singulares. Para tal efecto, se ha implementado
el Algoritmo en forma secuencial (en un solo
procesador) y paralela (en varios procesadores),
y luego se han comparado los tiempos de
ejecucin entre ambas implementaciones, y se
obtuvo el speedUp a partir de estos datos, para
concluir los resultados finales.
El primer paso para la implementacin paralela
del Algoritmo de ortogonalizacin de Jubete fue
el estudio detallado y detenido del cdigo, para
hallar la manera ms efectiva de paralelizarlo.
Seguidamente fue codificado y probado en una
PC con sistema operativo Linux y MPI. Luego
de verificarse la correccin de los resultados, se
procedi a realizar las pruebas en un cluster de
10 PCs con sistema operativo Linux y MPI. Se
utilizaron matrices de datos diversos y de
tamao variable. Luego se verific el tiempo de
procesamiento de acuerdo con el tamao de las
matrices y el nmero de procesadores
empleados. Seguidamente se extrajeron y se
analizaron los resultados para obtener las
conclusiones finales.
4.1

Respecto al modelo de programacin,


actualmente 3 paradigmas principales

4.

Implementacin

El objetivo del presente trabajo es emplear las


propiedades del pilotaje para hallar la inversa de
matrices no singulares de grandes dimensiones e
implementarlas en un ambiente paralelo. Para
llegar al objetivo propuesto se utiliz como base
el MPI en su versin para C/C++ y el sistema
Operativo Linux. El mismo fue instalado en una
red de computadoras compuesto por PCs
(computadoras personales) interconectadas en
red. La idea bsica es comparar el tiempo de

Implementacin Secuencial

Como mencionado en la seccin anterior, luego


del estudio de las propiedades y bondades del
Algoritmo de Ortogonalizacin de Jubete, se
procedi a la implementacin del mismo en
cdigo secuencial, utilizando como herramienta
el Dev-C++. Como plataforma se ha utilizado
una PC de Sum corporation con procesador
AMD Opteron de 2.8 GHz con 1 GB de
memoria RAM, en donde fue instalado el
Sistema Operativo Linux, distribucin Fedora y
MPI para Linux.
Para ejecutar la implementacin secuencial del
Algoritmo se realizan los siguientes pasos:
Algoritmo 4.1. Algoritmo de Jubete en
secuencial.
Incluir la biblioteca jubete.h
//programa principal
Main

ARTCULOS CIENTFICOS INFORMTICA N 4 AO 2008

55
{
Leer matriz A generada desde el archivo
mat.dat
Cargar la matriz identidad C
Mientras el nro. de columnas sea menor al
contador{
Colocar la primera fila de A en el vector
B
Hallar los productos escalares y colocar
los resultados en el vector TIJ
Hallar el pivote y la columna pivote
Dividir los elementos de la columna
pivote por el pivote
Multiplicar la columna pivote por el
producto escalar correspondiente a la
columna y restar del valor actual de C
en dicha columna
}Fin del mientras
Cargar la matriz resultado en el archivo
mat.dat
}Fin

4.2. Implementacin Paralela

Antes de realizar la codificacin paralela del


Algoritmo de Ortogonalizacin de Jubete, se ha
analizado el cdigo cuidadosamente con el fin
de obtener el mejor desempeo posible en la
implementacin paralela. Se ha utilizado una
red de 10 computadoras personales de idnticas
caractersticas de la utilizada para la solucin
secuencial, las mismas fueron conectadas a
travs de una red Ethernet, donde una de ellas
hace el papel de administrador y las dems de
esclavos, todas con Sistema Operativo Linux,
distribucin Fedora y MPI para Linux.
En la Figura 4.1 se puede ver la disposicin
topolgica del Cluster. Para la implementacin
paralela se tom el esquema algortmico bsico
de la programacin paralela, llamado MaestroEsclavo. En este esquema se tienen algunos
procesos que funcionan como maestro y otros
como esclavos donde la comunicacin solo se
realiza entre el maestro y los esclavos.

Nodos Esclavos

Nodo Maestro
Nodos Esclavos
Figura 4. Topologa del Cluster

Maestro.- Este se encarga de la descomposicin


en subproblemas, de la distribucin del trabajo,
de la recoleccin y combinacin.

Este esquema se puede apreciar en la figura 4.2


Esclavo.- Este se encarga de la captacin del
subproblema, del procesamiento que le fue
asignado por el maestro y del envo de
resultados al maestro
Figura4.2: Esquema maestro - esclavo

A continuacin se muestran los algoritmos


utilizados
Algoritmo 4.2. Algoritmo de Jubete en paralelo
(Administrador).
Incluir la biblioteca jubete.h

ARTCULOS CIENTFICOS INFORMTICA N 4 AO 2008

56
Main
Almacenar el resultado final en mat.dat
} Fin Para
} Fin

//programa principal
{
Definir variales tipo double t_inicial_par,
t_final_par;
Asignar valor a mpierr;
Para mpierr<0
{
Imprimir error de inicializacin
}
Caso Contrario
{
Leer matriz A generada desde el archivo mat.dat
Cargar la matriz identidad C
Mientras contador<iteraciones
{
Colocar la primera fila de A en el vector
B
Hallar los productos escalares y colocar los
resultados en el vector TIJ
Hallar el pivote y la columna pivote
Dividir los elementos de la columna pivote
por el pivote
Multiplicar la columna pivote por el
producto escalar correspondiente a la
columna y restar del valor actual de C en
dicha columna
Construir el vector CP
Construir la matriz PLL
Enviar el vector PLL a cada proceso i
Enviar el vector CP a cada proceso i
Enviar PTIJ
Enviar el tamao de la matriz t
Enviar el nmero de iteraciones i
Esperar que los procesadores devuelvan los
resultados parciales
Si todas las multiplicaciones parciales fueron
recibidas, cargar los vectores resultados en la matriz
C.
} Fin Mientras

5.

Resultados
Secuencial

de

la

Algoritmo 4.3. Algoritmo de Jubete en paralelo


(Esclavo).
Incluir la biblioteca jubete.h
//programa principal
Main
{
Definir variales tipo double t_inicial_par,
t_final_par;
Asignar valor a mpierr;
Para mpierr<0
{
Imprimir error de inicializacin
}
Caso Contrario
{
Mientras contador<iteraciones
{
Identifica el proceso
Identifica la cantidad de procesos
Esperar el vector PLL
Esperar el vector CP
Esperar PTIJ
Esperar el tamao de la matriz t
Esperar el nmero de iteraciones i
Calcular PLL[c]=PLL[c]-(PTIJ*CP[c]);
Enviar el resultado PLL al administrador
Esperar PLL, CPL, PTIJ, i, t del administrador
} Fin mientras
} Fin Para
} Fin

implementacin

A continuacin se exhiben los resultados


respecto al tiempo de ejecucin y tamao de la
matriz (Grfico 5.1), de la implementacin

secuencial del Algoritmo de Ortogonalizacin de


Jubete.

Tiempo de Ejecucion Algoritmo Secuencial

Tiem po de Ejecucion

600
500
400
300
200
100
0
10

15

50

70

100

150

180

Tamao de Matriz

Grfico 5.1. Tiempo de Ejecucin del Algoritmo Secuencial.

ARTCULOS CIENTFICOS INFORMTICA N 4 AO 2008

57
Como se pudo observar, al aumentar el tamao
de la matriz de entrada, el tiempo de ejecucin
del Algoritmo de Ortogonalizacin de Jubete
aumenta, llegando a un punto en que este tiempo
se vuelve excesivamente largo. Esta limitacin,
imposibilit que las pruebas del Algoritmo sean
realizadas con matrices de mayor tamao
6. Resultados de la implementacin paralela

realizaron con tamaos de matrices variables,


como se puede observar en las tablas a
continuacin.
6.1 Tiempo de procesamiento paralelo del
Algoritmo de Jubete
Se puede observar los tiempos de procesamiento
encontrados en las pruebas. Las pruebas fueron
realizadas variando el nmero de procesadores y
el tamao de la matriz.

En los algoritmos paralelos, adems del tiempo


utilizado en la computacin efectiva del
problema, es necesario estimar
el tiempo
generado por la comunicacin entre los
procesos.
En sistemas de paso de mensajes, el tiempo
utilizado con el envo de mensajes debe ser
considerado como el tiempo total de ejecucin
de un problema.
Por lo tanto, el tiempo de ejecucin est dado
por la suma del tiempo utilizado en la parte
computacional y el tiempo de comunicacin
[12].
En una red de wordstations, debido a la
heterogeneidad de las mquinas, resulta difcil
hacer un anlisis matemtico del tiempo de
computacin [14].
De esta forma, usualmente, se considera que
todos los procesadores son homogneos y que
operan a la misma velocidad. De manera
anloga, el clculo del tiempo de comunicacin
depende de varios factores: estructura de la red,
latencia, ancho de banda y tamao del mensaje a
ser transferido.
De esta forma, se puede usar la siguiente
aproximacin:

tcom= tstartup + n. tdata


donde:
tstartup = Tiempo utilizado para empaquetar el
mensaje en el origen y desempaquetarlo en el
destino.
tdata = Tiempo utilizado para transmitir un dato
del origen hasta el destino.
Tales tiempos son tomados como constantes en
este trabajo.

Grafico 5.2. Tiempo Ejecucin del Algoritmo Paralelo

Como se pudo percibir en lo expuesto, el tiempo


de procesamiento paralelo del Algoritmo de
Ortogonalizacin de Jubete va disminuyendo a
medida que aumenta el nmero de procesadores.
6.2 SpeedUp logrado con el procesamiento
paralelo del Algoritmo de Jubete
La medicin del rendimiento en ambientes
paralelos es ms compleja por nuestro propsito
de conocer cunto ms rpido ejecuta una
aplicacin en un computador paralelo. Es decir,
nos interesa conocer cul es el beneficio
obtenido cuando utilizamos el paralelismo y cul
es la aceleracin resultante.
El SpeedUp [12] es la Aceleracin obtenida al
resolver el problema en cuestin utilizando una
implementacin paralela y est dada por la razn
del tiempo gastado por la solucin en forma
secuencial entre el tiempo gastado por la
solucin en forma paralela, de acuerdo con la
expresin (5.2)
t_sec
Sp

En el siguiente apartado se muestran los tiempos


de procesamiento, el SpeedUp y la eficiencia en
las pruebas del Algoritmo de Jubete utilizando 1,
2, 4, 8 y 10 procesadores. Las pruebas se

(5.1)
t_par

A continuacin se exhibe el SpeedUp alcanzado


por el Algoritmo de Jubete.

ARTCULOS CIENTFICOS INFORMTICA N 4 AO 2008

58
del Algoritmo de Ortogonalizacin de Jubete, al
contar con un ambiente de programacin de bajo
costo que permite la resolucin del problema en
tiempos de procesamiento aceptables.
8. Propuestas para trabajos futuros

Grafico 5.3. SpeedUp alcanzado por el Algoritmo de


Jubete

De lo expuesto, se puede decir que el SpeedUp


en el Algoritmo de Jubete va aumentando a
medida que es incrementado el nmero de
procesadores utilizado, alcanzando as mayor
rapidez en la obtencin del resultado final.
Como se pudo observar, la implementacin
paralela del Algoritmo de Ortogonalizacin de
Jubete es ventajosa, porque es posible llegar al
resultado final hasta tres veces ms rpidamente
que
implementando
el
algoritmo
secuencialmente. Esta ventaja es bastante
significativa a la hora de hallar la inversa de
matrices de gran tamao, situacin encontrada
con frecuencia en problemas de ingeniera.

Como se expuso en los captulos anteriores, el


Algoritmo de Ortogonalizacin de Jubete,
soluciona varios problemas del lgebra lineal,
como por ejemplo: resolver sistemas de
ecuaciones lineales; obtener la solucin de un
sistema de ecuaciones lineales cuando se han
eliminado o aadido algunas ecuaciones y/o
variables, sin empezar desde el principio;
analizar la compatibilidad de los sistemas
lineales de ecuaciones e inecuaciones con
variables restringidas; resolver sistemas de
inecuaciones lineales, hallar el determinante y
rango de una matriz, etc.
Sera interesante la implementacin de uno de
estos problemas en un ambiente paralelo, en
donde sea posible llegar al resultado final en un
tiempo aceptable, cuando es manipulada una
gran cantidad de informacin.
9. Referencias
[1] Castillo, E. et al. Orthogonal Sets and Polar
Methods in Linear Algebra , J. Mason ( Editor),
Plenum Press, New York, 1999.

7. Conclusiones
El objetivo de este trabajo consisti en la
implementacin, tanto secuencial como paralela,
del Algoritmo de Ortogonalizacin de Jubete,
para hallar la inversa de matrices no singulares,
y como resultado final se obtuvo un tiempo
aceptable, comparado al obtenido al aplicarlo en
su forma secuencial.
Estos objetivos fueron logrados, pues como se
pudo verificar, la versin paralela del Algoritmo
de Ortogonalizacin de Jubete, logr obtener el
resultado hasta 3 veces ms rpidamente que
implementndolo en su forma secuencial. Estos
resultados demuestran la efectividad de la
implementacin paralela del algoritmo, cuando
lo que se desea es utilizar matrices de grandes
dimensiones.
De lo expuesto se puede afirmar que el excesivo
costo computacional en la obtencin de matrices
inversas no singulares, de grandes dimensiones,
ir en disminucin, gracias a la paralelizacin

[2] Castillo, E. et al. Updating Inverses in


Matriz Anlisis of Structures. International
Journal of Numerical Methods in Engineering,
43, 1479 1504, 1998.
[3] Wikipedia. Ley de Amdahl. [marzo-2008].
http://es.wikipedia.org/wiki/Ley_de_Amdahl

[4] Wikipedia. Algoritmos Paralelos[marzo2008].


http://es.wikipedia.org/wiki/Algoritmo_paralelo

[5] Romo M, Procesamiento Paralelo.


Universidad Internacional del Ecuador, Facultad
de Informtica y Multimedia. Boletn 5.
[6] Castillo E. Conjuntos Ortogonales. CIS,
Santander, Espaa, 2001.
[7] Castillo, E. et al. Conjuntos Ortogonales y
Mtodos
Polares
en
Algebra
Lineal.Aplicaciones
a Clculo Matricial,
Sistema de Ecuaciones, Inecuaciones y

ARTCULOS CIENTFICOS INFORMTICA N 4 AO 2008

59
Programacin Lineal.Academia
Madrid, Espaa.

de Ingeniera,

[8] Wikipedia. Distributed Computing. [marzo2008].


http://en.wikipedia.org/ wiki/ Distributed _
computing

[9] Pires A, Ferreira C, Souza M. Computao


distribuda de baixo custo aplicada
resoluo de problemas matemticos no
ambiente ms-windows. [marzo-2008].
http://www.geocities.com/amaurycarvalho/mpi.html

[10] Wikipedia. MPI. [enero-2008].


http://en.wikipedia.org/wiki/Message_Passing_Interf
ace

[11] Wikipedia. Parallel Computing [enero2008].

[12] Guia de Inovao Tecnolgica em Cluster


e Grid. Ministerio do Planejamento, Oramento
e Gesto. [marzo-2008].
http://guialivre.governoeletronico.
gov.br/guiaonline/guiacluster/

[13] Plaza, E. Cluster Heterogneo de


Computadoras. [junio- 2006].
http://es.tldp.org/Manuales- LuCAS/doc-clustercomputadoras/doc-cluster computadorashtml/manual.html

[14] Macera G. Gua de Aulas. [marzo-2008].


http://www.ucb.br/ prg/professores/giovanni
/disciplinas/20052/pc/Avaliando%20Programas%20P
aralelos.html

[15] Maple User Group Answers. Kronecker


Delta [marzo-2008].
http://www.math.rwthaachen.de/mapleAnswers/
html/66.html

http://en.wikipedia.org /wiki/ Parallel_computing

[16] Tanenbaum, A. Sistemas Operativos


Modernos, Ed. Guanabara Koogan,1995

ARTCULOS CIENTFICOS INFORMTICA N 4 AO 2008

Вам также может понравиться