Anda di halaman 1dari 9

Desarrollo de un cluster computacional para la compilacin de

algoritmos en paralelo en el Observatorio Astronmico.


John Jairo Parra Prez

Resumen
Este artculo muestra cmo funciona la supercomputacin y adems como
esta puede contribuir al desarrollo de futuras investigaciones en varios
campos del conocimiento; tomando para ello los recursos computacionales
que brinda la Universidad y software que se encuentra libre en Internet. La
ran por la cual se est desarrollando este proyecto es que sirva de
!erramienta para las futuras investigaciones a realiar en el "bservatorio
#stronmico.
Abstract
$!e super computation t!eory actually t!is is t!e principal tool to develop
investigations in muc! areas of %nowledge. In #stronomy t!is is very
important in t!e galactic dynamics& cosmology and ot!ers areas. 'y t!is
reason t!e #stronomical "bservatory of (ergio #rboleda University is
ma%ing a computational cluster for futures investigations.

Ingeniero de (istemas de la Universidad #utnoma de )olombia& procesamiento de datos y operacin del


telescopio del "bservatorio #stronmico de la Universidad (ergio #rboleda.
*
Palabras Clave: )luster& %ernel& paraleliar& speedup& "pen+osi,.
. !ntroduccin.
La supercomputacin !a contribuido a la solucin de problemas en muc!as reas del
conocimiento tales como la astronoma& ingeniera& fsica& matemticas& paleontologa&
criminalstica& medicina forense& solo por citar algunas; incluso en nuestro
entretenimiento como por e-emplo en los espectaculares efectos digitales casi
imperceptibles que caracterian las producciones de la pantalla gigante. .ace de la
necesidad del a!orro de grandes sumas de dinero que implicara invertir en sistemas
computaciones muy veloces. Un cluster traba-a ba-o el procesamiento en paralelo y se
define como la capacidad de utiliar varios procesadores para e-ecutar diferentes partes
del mismo programa simultneamente
*
. El ob-etivo principal del paralelismo es el
reducir el n/mero de ciclos de e-ecucin de un programa en relacin al n/mero de
procesadores que e,isten en el sistema.
0ara que el software compile en el cluster necesita ser paraleliado& es decir !acer que
su cdigo permita la distribucin de procesos. 0ara ello se cuenta con muc!as
!erramientas las cuales son de acceso libre en Internet; pero no todos los programas
pueden ser paraleliados as que en la mayora de los casos es tarea de los grupos de
dise1o del cluster desarrollar el software que permita solucionar su problema.
*
$!e "pen+osi, 2"3$".
4
En astronoma la implementacin de un cluster es indispensable sobre todo en las reas
de reduccin y anlisis de datos y construccin de modelos de diferentes tipos tales
como dinmica estelar& dinmica de gala,ias& cosmologa y muc!os mas. 0or esta
ran& para poder estudiar nuestros campos de inter5s se dio paso a su realiacin.

". #eor$a de la supercomputacin.
".. %a %e& de Amdahl
Un programa con un n/mero de instrucciones determinado tardar un tiempo t en
e-ecutarse de manera completa en un sistema uniprocesador. La medida de me-ora de
rendimiento 6o speedup7 toma como referencia el tiempo de e-ecucin de un programa
en un sistema uniprocesador respecto a la medida de tiempo de e-ecucin del programa
en un sistema multiprocesador o multicomputador.
j
t
t
speedup
*
=
8onde t* es el tiempo que tarda en e-ecutarse el programa para una mquina con un solo
procesador y tj es el tiempo que tarda en e-ecutarse el mismo programa con un sistema
de j procesadores. el speedup o me-ora de rendimiento aumenta linealmente con el
n/mero de procesadores que posea el sistema. 0ara el caso de los programas lo primero
que debe !acerse es comprender su naturalea& luego clasificar su cdigo9 cul es
paraleliable y cul es lineal ya que este /ltimo en varias ocasiones va a requerir tener
:
acceso a ciertas dependencias. 0ara ello debe e,istir un nodo en el cual se e-ecuten este
cdigo y del que depende el resto. Es lgico afirmar que el speedup de un programa
depende de9
a) El tiempo en el que se e-ecuta el cdigo lineal Wl& llamado as por traba-o lineal.
b) El tiempo en el que se e-ecuta el cdigo paraleliable Wn.
c) El numero de procesadores o nodos que posee el sistema n.
8ados estos factores se puede concluir que el m,imo speedup que se puede obtener en
un programa a nivel general viene dado por9
n
W
W
W W
speedup
n
l
n l
+
+
=
Esta es la llamada Ley de #mda!l y fue descrita por ;ene #mda!l en *<=>. Las
implicaciones que trae esta ecuacin son claras a pesar de que no se tenga en cuenta las
caractersticas de cada sistema en concreto& que a su ve tambi5n limitaran el speedup
de cada sistema. 0ara empear el rendimiento no depende completamente del n/mero
de procesadores que posea el sistema9 en la mayora de los casos dependera del n/mero
de procesadores m,imos que se aprovec!ara para e-ecutar un programa. 0or otro lado
puede concluirse que cuanto me-or paraleliado est5 un programa mas susceptible ser
de aumentar su speedup y por tanto e,plotar el rendimiento de un sistema paralelo
como puede ser un cluster.
?
0or e-emplo si tenemos un programa que inicialmente no se !a paraleliado& y si en
nuestras medidas el tiempo de e-ecucin lineal es del *4@ y el de paralela es AA@
(Figura 1)
Bigura *9 E-emplo del incremento del speedup obtenido por la Ley de #mda!l.
En la figura la parte no paraleliable del proceso impide que se pueda escalar de forma
lineal& llegar un momento en que a1adir nuevos procesadores no a1ada una venta-a real
al sistema porque casi todo lo que est5 !aciendo cada uno de los procesadores sea
procesar cdigo secuencial. 0or lo tanto para ma,imiar el aprovec!amiento de los
sistemas paralelos se debe tener muc!o cuidado con la forma de paraleliar las
aplicaciones; ya que entre ms cdigo secuencial tengan& ms problemas de
escalabilidad aparecern.
C
".". 'ard(are.
En lo que se refiere a lmites del !ardware& la eficiencia en la paraleliacin es lo me-or
que se posee& ya que se paralelia por instruccin en cada procesador de la
computadora. Despecto a este tema e,iste gran variedad de me-oras de rendimiento a
los lmites que se imponen por el programa& estas me-oras se van incorporando en los
procesadores de /ltima generacin. El problema es que esta solucin puede resultar en
muc!os casos demasiado costosa& si no es por la adquisicin de la computadora& por la
dificultad o tiempos de implementacin. #dems siempre se necesita cierta ayuda de
parte del software& principalmente el compilador. #s aunque el 0entiumIE tenga
nuevas instrucciones vectoriales& no son prcticamente usadas por los compiladores
actuales y el rendimiento de un 0IE es bastante inferior al esperado. En cambio usando
el compilador especialmente desarrollado por Intel& los mismos programas aprovec!an
las instrucciones vectoriales del procesador muc!o me-or con lo que se consiguen
programas muc!o ms rpidos. 2oy en da es difcil ver programar en ensamblador
4
para procesadores que no est5n dedicados a tareas como dispositivos empotrados o de
tiempo real& e incluso en estos este lengua-e se !ace ms raro cada da& a no ser que sea
software de sistema. 0or lo tanto las optimiaciones de uso de las nuevas capacidades
de los procesadores tienen que venir de parte del compilador que es quien se encarga de
traba-ar a ba-o nivel.
4
El ensamblador es un lengua-e de programacin de ba-o nivel.
=
".). *o+t(are.
0or lo visto anteriormente& la Ley de #mda!l pone restricciones al incremento de
rendimiento en un sistema que use cdigo no paraleliable. La /nica solucin posible es
la optimiacin del cdigo as que en el ciclo de vida del software se deber tener en
cuenta la paraleliacin. #dems e,iste otro tipo de limitaciones comenando por el
sistema elegido para paraleliar aplicaciones. #!ora bien el papel del compilador es
sumamente importante& este se clasifica en9 compilador tonto y compilador listo
6Figura 27.
Bigura 49 La funcin del compilador.
8ic!o papel puede verse en accin entre un compilador inteligente frente a uno que no
lo es tanto ante una misma entrada9 un programa con una secuencia de divisiones con
coma flotante& despu5s unas sumas del mismo tipo y por /ltimo unas operaciones con
>
enteros& todas sin dependencias entre s y ocurre que9 el compilador tonto no las
reordena con lo que si el procesador no tiene ordenacin de instrucciones !ar que las
instrucciones de enteros que seguramente tardan * o 4 ciclos tengan que esperar a las
instrucciones de divisin en coma flotante& operaciones que pueden tardar ms de :F
ciclos. +ientras se !acen las divisiones en coma flotante no se estn usando las
unidades de suma de flotantes ni las de operaciones con enteros.
En cambio el compilador listo primero e-ecuta la instruccin que ms tiempo tardar en
e-ecutarse& y despu5s e-ecuta las instrucciones que usan otras unidades para que el
procesador pueda estar procesando de forma paralela todos los datos& usando al m,imo
su !ardware. 0or supuesto que esta misma operacin 6primero las operaciones que ms
tardan7 si se realia sobre las mismas unidades !ace que el retardo medio de finaliar
una instruccin aumente por lo que el compilador debe !acer las elecciones correctas si
est intentando realiar una ordenacin inteligente.
). Construccin del Cluster.
En el observatorio contamos con siete computadoras disponibles para la elaboracin del
cluster de las cuales cuatro poseen las mismas especificaciones de !ardware& a estas se
les instal Linu, como sistema operativo y el cluster se est traba-ando con el software
"pen+osi,. 0or a!ora se est configurando cada uno de los nodos para que traba-e
ptimamente y se deben realiar pruebas con cdigo en paralelo.
A
,. Conclusiones.
8urante el traba-o que se !a realiado con "pen+osi, se !an determinado que entre las
venta-as que posee& est el no requerir paquetes e,tra para su operacin& adems no es
necesario realiar modificaciones de cdigos; pero como desventa-a se tiene la
dependencia directa con el kernel y la presencia de problemas con la memoria
compartida.
0or las pruebas !asta a!ora efectuadas& para una operacin ptima del cluster todos los
equipos deben tener las mismas especificaciones t5cnicas.
-ibliogra+$a.
G*H I. 'uytaert9 The OpenMosix Howto& vF.:& 4FF:.
G4H +. )olomer9 Clustering with OpenMosix 4FF:.
G:H +. 'ar9 H!C Co"puting #pplied to $usiness #ppli%ations *<<>.
G?H I. Latter9 Heterogeneous Clusters v*.*& 4FF:.
GCH J. Ridruejo, J. Agirre, J. M. Alonso: Estrategias de instalacin y
gestin de clusters
con software libre, 2003
<

Anda mungkin juga menyukai