Este documento presenta un resumen de 3 oraciones de una tesis doctoral sobre computación paralela y entornos heterogéneos. La tesis estudia paradigmas como maestro-esclavo y pipeline para sistemas heterogéneos, desarrollando modelos analíticos, herramientas y validaciones. El documento contiene una introducción al contexto, objetivos y metodología, así como capítulos sobre maestro-esclavo, pipeline y una aplicación de predicción de estructura de RNA.
1. Curso 2004/05
CIENCIAS Y TECNOLOGÍAS/23
I.S.B.N.: 84-7756-662-3
LUZ MARINA MORENO DE ANTONIO
Computación paralela
y entornos heterogéneos
Director
FRANCISCO ALMEIDA RODRÍGUEZ
SOPORTES AUDIOVISUALES E INFORMÁTICOS
Serie Tesis Doctorales
2. Agradecimientos
Quiero expresar mi profundo agradecimiento a todos aquellos que de una forma u otra me han ayu-
dado a realizar este trabajo a lo largo de los a˜os.
n
A Francisco Almeida Rodr´ıguez, director de esta tesis, por su constante ayuda e inter´s, as´ como por
e ı
la confianza depositada en todo mi trabajo.
A Rumen Andonov (INRIA/IRISA, Rennes, Francia) y Vicent Poirriez (LAMIH/ROI, Valenciennes,
Francia) por su colaboraci´n en el desarrollo del ultimo cap´
o ´ ıtulo de esta tesis.
A todos mis compa˜eros del Grupo de Paralelismo, del ´rea de Lenguajes y Sistemas Inform´ticos
n a a
y del Departamento de Estad´ıstica, Investigaci´n Operativa y Computaci´n por la ayuda y el apoyo
o o
facilitado en todo momento.
A mis compa˜eros de la Torre de Qu´
n ımica, con los que he compartido caf´s, comidas y muchas, muchas
e
horas de trabajo, por su apoyo constante y sus consejos, sobre todo en los malos momentos. Especial-
mente, a mi compa˜ero de despacho, Roberto y a Isa S., Vicky, Isa D., Macu, Bea, Jes´s, Andr´s, Jordi,
n u e
Jos´ Luis y F´lix.
e e
Y, por supuesto, a mi familia, que ha estado conmigo siempre.
3. Pr´logo
o
Este trabajo se enmarca en el contexto de la computaci´n en paralelo. Es un hecho conocido que
o
el paralelismo constituye una alternativa real para reducir el tiempo de ejecuci´n de las aplicaciones.
o
Arquitecturas paralelas homog´neas con elementos de proceso de caracter´
e ısticas similares est´n siendo
a
usadas con ´xito en distintos ´mbitos de la ciencia y de la industria. De forma natural, la ampliaci´n
e a o
y la potenciaci´n de un sistema homog´no con nuevos elementos, deriva en un sistema de naturaleza
o e
heterog´nea en el que los nuevos componentes presentan caracter´
e ısticas diferenciales con los anteriores.
As´ pues, es muy frecuente encontrar arquitecturas paralelas donde las caracter´
ı ısticas de los elementos
que componen el sistema (los procesadores, la memoria, la red, ...) pueden ser diferentes.
A finales del siglo XX, en la decada de los 90, con la consolidaci´n de est´ndares para la programaci´n
o a o
en arquitecturas de paso de mensaje como PVM y MPI, la programaci´n de sistemas heterog´neos se
o e
convierte en un problema tan sencillo o complicado como pueda serlo la programaci´n de arquitecturas
o
homog´neas. Sin embargo, aunque la portabilidad de los c´digos est´ garantizada, no ocurre lo mismo
e o a
con el rendimiento observado en las aplicaciones. Aparecen nuevas situaciones y cuellos de botella que
no pueden ser resueltos mediante la aplicaci´n directa de los modelos y las t´cnicas conocidas para el
o e
caso homogeneo. Se hace necesario adaptar los m´todos conocidos y en muchos casos dise˜ar nuevas
e n
estrategias comenzando desde cero. Nos encontramos ante un conjunto importante de problemas abiertos
que est´n siendo intensamente estudiados y analizados. Los objetivos de este memoria se centran en el
a
desarrollo de modelos y herramientas que faciliten el trabajo en este ultimo tipo de entornos.
´
El cap´ıtulo 1, aut´ntico pr´logo de esta memoria, consiste en una breve introducci´n que permite
e o o
situarnos en el estado actual y en la problem´tica asociada a la computaci´n en paralelo sobre los
a o
sistemas heterog´neos. Una aproximaci´n formal a conceptos y m´tricas que adem´s ilustra el contexto
e o e a
espec´ıfico del desarrollo de nuestra propuesta y metodolog´
ıa.
Dos paradigmas de programaci´n que presentan inter´s desde la perspectiva de la computaci´n en
o e o
paralelo son el paradigma maestro-esclavo y el paradigma pipeline. Es cierto que ambos paradigmas han
sido profusamente estudiados sobre arquitecturas homog´neas; su an´lisis y desarrollo sobre plataformas
e a
heterog´neas constituye en estos momentos un aut´ntico reto. Los modelos formulados para arquitecturas
e e
homog´neas pueden considerarse como el punto de partida con el que abordar el caso heterog´neo, sin
e e
embargo, tales modelos no son directamente aplicables a este nuevo contexto. En ambas t´cnicas, partien-
e
do de las propuestas cl´sicas para el caso homog´neo, estudiamos su comportamiento sobre arquitecturas
a e
heterog´neas. La heterogeneidad viene dada por diferencias en los elementos de procesamiento y en las
e
capacidades de comunicaci´n. Derivamos modelos anal´
o ıticos que predicen su rendimiento y proponemos
estrategias para la distribuci´n ´ptima de tareas desarrollando las herramientas y utilidades necesarias
o o
en cada caso.
El cap´
ıtulo 2 contempla el paradigma maestro-esclavo, modelizamos las estrategias FIFO y LIFO
validando el modelo anal´ıtico sobre aplicaciones bien conocidas: Productos de Matrices y Transformadas
de Fourier bidimensionales. Hemos resuelto el problema de la asignaci´n ´ptima de los recursos (los
o o
procesadores) a las tareas, minimizando la funci´n objetivo obtenida desde el modelo an´litico, mediante
o a
algoritmos de programaci´n din´mica. La utilidad propuesta permite no s´lo establecer los beneficios de
o a o
las aproximaciones FIFO y LIFO, sino que adem´s deriva el conjunto ´ptimo de procesadores para una
a o
ejecuci´n eficiente.
o
El cap´
ıtulo 3 alude al m´todo pipeline. Desarrollamos herramientas que facilitan la instanciaci´n de
e o
algoritmos pipeline en los que el n´mero de etapas puede ser muy superior al n´mero de procesadores
u u
reales. Admite distribuciones c´ıclicas y c´
ıclicas por bloques de las etapas del pipeline virtual al pipeline
real. Considerado el caracter heterog´neo de la plataforma, las distribuciones c´
e ıclicas por bloques admiten
asignaciones vectoriales en las que los procesadores reciben tama˜os de bloques acordes a su capacidad
n
computacional. El tama˜o del buffer de comunicaci´n es tambi´n un par´metro de entrada. La im-
n o e a
4. plementaci´n de algoritmos de programaci´n din´mica para Problemas de la Mochila 0/1, Problemas
o o a
de Asignaci´n de Recursos, Problemas de Subsecuencias de Cadenas y Problemas de Planificaci´n de
o o
Caminos ilustra el uso y los beneficios de la librer´ La modelizaci´n anal´
ıa. o ıtica del m´todo ha sido valida-
e
da sobre problemas sint´ticos proponiendo t´cnicas con la que obtener par´metros (tama˜os de bloques
e e a n
y buffers) para su ejecuci´n ´ptima. Algunos autores encuentran analog´ entre el comportamiento de
o o ıas
las aplicaciones en plataformas heterog´neas y el de determinados c´digos irregulares sobre plataformas
e o
homog´neas. Este hecho admite la consideraci´n de la heterogeneidad debida al programa en plataformas
e o
homog´neas. El cap´
e ıtulo 4 presenta una de tales aplicaciones, la predicci´n de la estructura secundaria
o
del RNA. El paquete de Viena es un software de libre distribuci´n que resuelve este problema, adem´s de
o a
otros asociados a la biolog´ molecular. Implementa un conocido algoritmo de Programaci´n Din´mica
ıa o a
que presenta un particular tipo de dependencias en el dominio de ejecuci´n. El espacio de iteraciones
o
presenta un comportamiento irregular en el que el coste de cada iteraci´n es variable, condicionando un
o
particionado no regular. Proponemos modelos anal´ ıticos con los que obtener las dimensiones ´ptimas en
o
esta divisi´n del trabajo. Dada la dificultad del problema, el modelo introduce simplificaciones en el sis-
o
tema para facilitar su manipulaci´n mediante el aparato matem´tico. Presentamos un modelo estad´
o a ıstico
que prueba su efectividad m´s all´ del ´mbito de aplicabilidad del modelo anal´
a a a ıtico. Ambas propuestas
han sido validadas sobre m´leculas reales obtenidas de bases de datos p´blicas, generadas por diversos
o u
proyectos del contexto de la biolog´ La modelizaci´n estad´
ıa. o ıstica se concibe en esta ocasi´n como un
o
instrumento valioso en la predicci´n y an´lisis del rendimiento de aplicaciones paralelas. En el ap´ndice
o a e
A se hace un ligero recorrido sobre algunos conceptos y t´rminos de la biolog´ computacional que han
e ıa
sido utilizados de forma natural en el cap´ıtulo 4. Con este apartado, se pretende adem´s contextualizar
a
el problema de la predicci´n de la estructura secundaria del RNA y su relevancia.
o
9. Cap´
ıtulo 1
Computaci´n Paralela en Sistemas
o
Heterog´neos: Conceptos B´sicos,
e a
Objetivos y Metodolog´
ıa
1.1. Introducci´n
o
Los computadores secuenciales tradicionales han sido dise˜ados durante muchos a˜os bas´ndose en el
n n a
modelo introducido por John Von Newman [151, 179, 180]. Este modelo consiste en una unidad central
de proceso (CPU) y una memoria. Las m´quinas ejecutan una unica secuencia de instrucciones, operan
a ´
con una unica secuencia de datos y su velocidad est´ limitada por dos factores: la capacidad de ejecu-
´ a
ci´n de instrucciones y la velocidad de intercambio entre memoria y CPU. La primera m´quina que se
o a
construy´ utilizando est´ tecnolog´ fue la EDVAC [108, 121, 181], en 1947; desde entonces, este modelo
o a ıa
se convirti´ en el m´s utilizado en el dise˜o de ordenadores. Sin embargo, actualmente existe un amplio
o a n
rango de aplicaciones (cient´ ıficas, t´cnicas, m´dicas, etc.) que requieren procesar grandes cantidades de
e e
datos o realizar un alto n´mero de operaciones, pero no existen procesadores con capacidad para re-
u
solverlas de forma independiente en un per´ ıodo de tiempo razonable [1, 102, 113, 185]. Esto indica que
para ciertas aplicaciones, no es posible emplear el modelo Von Newman y es necesario buscar alternativas
tecnol´gicas.
o
Una de estas alternativas consiste en emplear m´ltiples procesadores que cooperen para resolver un
u
problema en una fracci´n del tiempo que requiere un procesador secuencial. Un problema cualquiera se di-
o
vide en un n´mero arbitrario de subproblemas y estos subproblemas pueden resolverse simult´neamente
u a
sobre diferentes procesadores. Por ultimo, los procesadores se comunican entre s´ para intercambiar y
´ ı
combinar los resultados parciales obtenidos. Este modelo tecnol´gico alternativo es denominado com-
o
putaci´n en paralelo y pretende conseguir que p procesadores, trabajando de forma conjunta, resuelvan
o
un problema p veces m´s r´pido que un unico procesador; aunque esta situaci´n ideal raras veces se al-
a a ´ o
canza en la pr´ctica.
a
Durante a˜os se han propuesto una amplia variedad de estrategias para abordar la computaci´n en
n o
paralelo. Estos nuevos modelos difieren en la forma en la que se comunican los procesadores (memoria
compartida o distribuida, red de interconexi´n en forma de ´rbol, estrella, etc.), pueden ejecutar el
o a
mismo algoritmo o no, operar de forma s´ ıncrona o as´ ıncrona, etc. Esto significa que existen diversas
formas de concebir la programaci´n en paralelo y de construir m´quinas paralelas para resolver un
o a
problema mediante esta t´cnica de computaci´n. Estas m´quinas presentan distintas caracter´
e o a ısticas de
red y arquitectura. Podemos encontrar sistemas formados por una unica m´quina con varios procesadores
´ a
que colaboran en la resoluci´n de un problema. Estos sistemas han sido denominados multiprocesadores
o
5
10. 6 CAP´
ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´
´ IA
o multicomputadores; se caracterizan por una gran capacidad de almacenamiento y una alta velocidad
de c´mputo, pero resultan muy caros y dif´
o ıciles de amortizar. Normalmente, se considera que estos
dos sistemas se diferencian en el acceso a memoria, la mayor´ de las definiciones establecen que un
ıa
multiprocesador es un sistema de memoria compartida, mientras que un multicomputador trabaja con
memoria distribuida [93, 141, 169]. Un multiprocesador puede a su vez clasificarse en grupos basados en
la implementaci´n de la memoria compartida [31, 164, 171]: puede existir un acceso uniforme a memoria
o
(UMA), donde el tiempo necesario para acceder a un dato es independiente de su localizaci´n; o un
o
acceso no uniforme (NUMA), donde la memoria compartida est´ f´ a ısicamente distribuida entre los nodos
de procesamiento.
Una alternativa de bajo coste para los sistemas paralelos la encontramos en sistemas que denominamos
clusters. Estos sistemas se componen de m´ltiples m´quinas, conectadas mediante una red, que el usuario
u a
utiliza como si dispusiera de un unico computador paralelo [42, 43, 44]. Los clusters de PCs est´n jugando
´ a
un papel importante en la Computaci´n de Alto Rendimiento (High Performance Computing). Esto es
o
debido al bajo coste de estos sistemas en relaci´n a su rendimiento. Nosotros hemos centrado gran parte
o
de nuestro trabajo en la resoluci´n de problemas sobre este tipo de recursos. Otro factor, que tambi´n ha
o e
contribuido de forma notable a la expansi´n de estos sistemas, se encuentra en la aparici´n de librer´
o o ıas
est´ndar de procesamiento paralelo que han facilitado la portabilidad de programas paralelos a diferentes
a
arquitecturas (PVM (Parallel Virtual Machine) [63, 78] y MPI (Message passing interface) [89, 134] para
el paradigma de paso de mensajes y OpenMP [142] para trabajar con sistemas de memoria compartida).
Actualmente, la importancia de los clusters en la computaci´n paralela queda reflejada en la inclusi´n
o o
de estos sistemas en la lista de los 500 sistemas m´s potentes (la lista del top500 [125]). En esta lista
a
se encuentran, a fecha de junio de 2004, 291 clusters. Esta cifra supone un 58 % de los 500 sistemas.
La proporci´n es a´n mayor si consideramos unicamente los 10 primeros sistemas, donde aparecen 6
o u ´
clusters. Los dos sistemas m´s potentes de este tipo se encuentran en las posiciones 2 y 3 de la lista y
a
ambos se encuentran instalados en Estados Unidos. El primero de ellos en el Lawrence Livermore National
Laboratory y est´ compuesto por 4096 procesadores Thunder e Intel Itanium2 Tiger4 de 1,4 GHz. El
a
segundo est´ localizado en Los Alamos National Laboratory, compuesto por 8192 procesadores ASCI Q -
a
AlphaServer SC45 de 1.25 GHz.
En muchos casos, los clusters est´n compuestos por procesadores de caracter´
a ısticas similares conec-
tados mediante una unica arquitectura de red. Los tiempos de c´mputo para todos los procesadores son
´ o
iguales, as´ como tambi´n lo son los tiempos de comunicaci´n entre ellos. A estos sistemas se los conoce
ı e o
como sistemas homog´neos. Sin embargo, debido a la arquitectura inherente a este tipo de sistema, es
e
muy probable que al incrementar el n´mero de procesadores en el cluster o al sustituir alg´n elemento
u u
de la m´quina (procesador, memoria, interfaz de red, etc.) las caracter´
a ısticas de la nueva m´quina no
a
coincidan con las caracter´
ısticas de los componentes originales, dando lugar a un sistema de naturaleza
heterog´nea.
e
El concepto de sistema heterog´neo se aplica, en ocasiones, a sistemas compuestos por diferentes
e
tipos de PCs y m´quinas con m´ltiples procesadores conectados mediante redes. Debido a las diferencias
a u
entre las m´quinas que forman el sistema, es probable que las velocidades de c´mputo de los procesadores
a o
sean distintas y los tiempos de transferencia de datos tambi´n pueden ser diferentes en las comunica-
e
ciones entre cada par de procesadores. La naturaleza de esta red es inherentemente din´mica y depende de
a
qu´ m´quinas se utilicen en cada momento para resolver un problema y cu´les sean sus caracter´
e a a ısticas (ca-
pacidades de c´mputo, memoria, comunicaciones, etc.). La programaci´n dependiente de la arquitectura
o o
de la m´quina supone una dificultad adicional en este tipo de sistemas.
a
Otra de las desventajas que aparecen en los sistemas heterog´neos se debe al comportamiento de los
e
tiempos de ejecuci´n de las aplicaciones. El rendimiento conseguido con un multiprocesador o multicom-
o
putador paralelo suele ser m´s elevado que el obtenido en un entorno de m´quinas heterog´neas; los usua-
a a e
rios pueden verse obligados a aceptar en algunos casos una reducci´n del rendimiento de sus aplicaciones a
o
favor de una gran reducci´n en el coste del sistema. Una de las razones para que esta situaci´n se produz-
o o
ca, es que la mayor´ de los programas paralelos han sido desarrollados bajo la hip´tesis de trabajar sobre
ıa o
11. ´
1.1. INTRODUCCION 7
una arquitectura homog´nea. Esta hip´tesis tambi´n ha sido considerada de manera habitual al desarro-
e o e
llar modelos anal´
ıticos con los que predecir el rendimiento de un sistema paralelo [24, 57, 73, 87, 154, 178];
generalmente, esos modelos no pueden ser aplicados directamente a entornos de naturaleza heterog´nea. e
Se hace necesario, por tanto, revisar los conceptos y modelos utilizados hasta el momento en los sistemas
homog´neos para adaptarlos a entornos heterog´neos [145, 191]. En los ultimos a˜os se han publicado
e e ´ n
diversos trabajos que analizan los entornos heterog´neos y los par´metros que deben considerarse en
e a
el uso de estos sistemas: las distintas velocidades de c´mputo de los procesadores que trabajan en la
o
resoluci´n del problema; las capacidades de memoria; la arquitectura de la red de interconexi´n entre
o o
las m´quinas; la planificaci´n de la distribuci´n de los subproblemas a los procesadores; el an´lisis del
a o o a
rendimiento del sistema, etc. Algunos de los mejores trabajos realizados sobre sistemas heterog´neos en
e
los ultimos a˜os podemos encontrarlos en [14, 15, 16, 17, 18, 37, 39, 40, 116, 118]. En [37] los autores
´ n
describen diferentes tipos de heterogeneidad que pueden encontrarse en un sistema y estudian la mayor´ ıa
de las situaciones que surgen en las plataformas homog´neas y heterog´neas, para c´mputos regulares e
e e o
irregulares. Debido a que existen diferentes tipos de heterogeneidad, algunos autores [16] consideran una
simplificaci´n del problema al tener en cuenta, unicamente, la heterogeneidad producida por la diferencia
o ´
entre las velocidades de procesamiento de las estaciones de trabajo. Sin embargo, es un hecho probado
que incluso la heterogeneidad en la velocidad de los procesadores puede tener un impacto significativo
en la sobrecarga de las comunicaciones [14], a´n cuando las capacidades de comunicaci´n en la red sean
u o
las mismas para todos los procesadores. En [18] los autores dan una definici´n formal de una plataforma
o
heterog´nea, como un grafo dirigido donde cada nodo es un recurso de computaci´n y las aristas son
e o
los enlaces de comunicaci´n entre ellos; en [17] se pueden encontrar algoritmos (round robin y multiple
o
round robin), que permiten calcular la distribuci´n de trabajo en plataformas homog´neas y heterog´neas,
o e e
considerando la existencia o no de latencia en el sistema; en [15] los autores realizan un estudio sobre
estrategias de planificaci´n teniendo en cuenta distintas plataformas heterog´neas en estrella o en ´rbol,
o e a
considerando adem´s diferentes niveles de paralelismo interno en los procesadores. En [116] se presentan
a
modelos de programaci´n eficientes en entornos heterog´neos comparando el rendimiento de un cluster
o e
Linux (14 procesadores Intel Pentium II ), con el de una m´quina Cray-T3E con 512 procesadores DEC
a
Alpha. En [118] se puede encontrar una heur´ ıstica que proporciona la distribuci´n de la carga ´ptima
o o
para los procesadores organizados mediante un anillo virtual, de modo que cada procesador s´lo puedeo
comunicarse con otros dos procesadores: el predecesor y el posterior en el anillo. En [39, 40] presentan
un sistema denominado PINCO para monitorizar la carga de las m´quinas del sistema, de manera que
a
pueden realizar una distribuci´n din´mica de la carga. En estos trabajos los autores plantean las tres
o a
posibles distribuciones de tareas m´s utilizadas en los sistemas heterog´neos.
a e
Realizar un particionamiento regular de los datos entre los procesos y asignar m´s de un proceso
a
por procesador.
Realizar un particionamiento irregular de los datos a los procesos y asignar unicamente un proceso
´
a cada procesador.
Seguir un modelo maestro-esclavo, donde existe un conjunto de tareas sim´tricas y un proceso por
e
procesador. Es utilizado cuando el n´mero de procesos es significativamente menor que el n´mero
u u
de tareas.
La ventaja de los dos primeros modelos es que ofrecen un soporte eficiente para resolver problemas,
capaz de mantener la eficiencia cuando la plataforma es altamente din´mica; aunque los sistemas de carga
a
din´mica se encuentran fuera del ´mbito de este trabajo.
a a
El resto del cap´
ıtulo lo hemos estructurado de la siguiente manera. En 1.2 se introduce el concepto de
heterogeneidad en sistemas paralelos. En la secci´n 1.3 se describen las plataformas heterog´neas y se co-
o e
mentan algunas de sus caracter´ ısticas. En 1.4 se detallan algunas de las m´tricas utilizadas para establecer
e
el rendimiento obtenido en estos sistemas. En 1.5 presentamos dos ejemplos de sistemas heterog´neos: el
e
cluster donde hemos realizado la mayor´ de las ejecuciones presentadas en este trabajo (subsecci´n 1.5.1)
ıa o
12. 8 CAP´
ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´
´ IA
y un ejemplo de programa heterog´neo (subsecci´n 1.5.2). Por ultimo, en 1.6 presentamos los objetivos
e o ´
de nuestra investigaci´n y la metodolog´ seguida para alcanzarlos.
o ıa
1.2. El concepto de heterogeneidad en sistemas paralelos
Los elementos fundamentales que intervienen en un sistema paralelo son los procesadores, la arqui-
tectura de red, la memoria, la forma de acceso a memoria (memoria compartida / memoria distribuida)
y el tipo del problema a resolver. Cada uno de los anteriores elementos constituyen una posible fuente de
heterogeneidad en el sistema.
Los procesadores: La velocidad de un procesador puede definirse en funci´n del n´mero de opera-
o u
ciones por segundo, as´ como del tiempo que necesita el procesador para realizar accesos a memo-
ı
ria. Se produce heterogeneidad debida a los procesadores cuando la velocidad de las m´quinas
a
disponibles en el sistema no es la misma para todos. Aunque tambi´n se puede producir heteroge-
e
neidad cuando procesadores con las mismas caracter´ ısticas ejecutan un mismo programa a distinta
velocidad, debido a la influencia de otros elementos de la arquitectura. La velocidad de un proce-
sador no est´ s´lo en funci´n del n´mero de operaciones por segundo.
a o o u
La memoria: Es posible jerarquizar la memoria de las m´quinas realizando una clasificaci´n por
a o
niveles (figura 1.1), donde el nivel m´s cercano al procesador es m´s r´pido y reducido por razones
a a a
de coste.
Figura 1.1: Jerarqu´ de memoria: el nivel m´s cercano al procesador es m´s r´pido y reducido por razones de
ıa a a a
coste.
La heterogeneidad debida a la memoria se produce cuando los procesadores disponen de jerarqu´ ıas
distintas de memoria o de diferentes cantidades de memoria en cada una de las categor´ existentes.
ıas
El tama˜o de los problemas que pueden resolverse en una m´quina est´ limitado por la cantidad
n a a
de memoria disponible en esa m´quina. Considerando un sistema heterog´neo, el tama˜o de los
a e n
problemas que pueden resolverse est´ limitado por la cantidad de memoria combinada que exista
a
en el sistema. Si no se tienen en cuenta las diferencias de memoria se podr´ estar infrautilizando
ıan
las capacidades de ejecuci´n del sistema.
o
La red: En un sistema paralelo se debe considerar tambi´n el coste de las comunicaciones entre dos
e
m´quinas cualesquiera. Por simplicidad, suele asumirse que el coste de las comunicaciones punto
a
a punto entre las m´quinas de una red se puede caracterizar mediante el modelo lineal cl´sico:
a a
β + τ ∗ w, donde β es la latencia de la red, que es independiente del tama˜o del mensaje enviado;
n
τ es el tiempo de transferencia por byte, que es la inversa del ancho de banda del enlace entre los
procesadores; y w representa el n´mero de bytes que se transmiten. El coste de comunicaci´n entre
u o
13. ´
1.3. PLATAFORMAS HETEROGENEAS 9
dos procesadores modelado de esta forma incluye el tiempo que tarda un procesador en enviar datos
y el que invierte el segundo procesador en recibirlos.
Estos dos par´metros son fundamentales en las comunicaciones en una red, debido a que una latencia
a
alta puede producir un alto coste en las comunicaciones y reducir el rendimiento del sistema; mien-
tras que el ancho de banda puede convertirse en un cuello de botella si la cantidad de informaci´n
o
que se quiere transmitir es superior a la capacidad del canal.
Sin embargo, en redes heterog´neas donde las capacidades de comunicaci´n pueden ser diferentes en
e o
los distintos procesadores, los par´metros β y τ deben ser obtenidos para cada par de procesadores
a
de forma independiente. De acuerdo con esta situaci´n, para establecer una comunicaci´n de tama˜o
o o n
w entre dos procesadores pi y pj se necesita invertir un tiempo βij + τij ∗ w, donde βij y τij son la
latencia y tiempo de transferencia por byte, respectivamente, que se obtienen entre los procesadores
pi y p j .
El programa: Los procesadores pueden ejecutar programas compuestos por c´digos regulares o
o
irregulares. Considerando estos programas, puede asumirse que existen dos tipos de iteraciones:
homog´neas y heterog´neas [37]. Se conocen como iteraciones homog´neas aquellas en las que
e e e
los procesadores realizan siempre la misma cantidad de trabajo. Las iteraciones heterog´neas e
son aquellas en las que var´ la cantidad de trabajo que realizan los procesadores en cada una de las
ıa
pasadas del algoritmo. Un programa que contenga iteraciones heterog´neas puede ser considerado
e
como un programa heterog´neo. e
Desde esta perspectiva, se puede considerar como sistema heterog´neo, un programa heterog´neo eje-
e e
cutado de forma paralela sobre procesadores homog´neos conectados mediante una red homog´nea.
e e
1.3. Plataformas heterog´neas
e
Una plataforma heterog´nea puede ser definida como un infraestructura computacional donde est´n
e a
disponibles procesadores de diferentes caracter´
ısticas conectados a trav´s de una red. Esta plataforma
e
puede ser representada por un grafo no dirigido HN (P, IN ) [192], donde:
P = {p0 . . . pp−1 } representa al conjunto de procesadores heterog´neos disponibles en el sistema (p
e
procesadores). La capacidad de c´mputo de cada uno de estos procesadores est´ determinada por la
o a
velocidad de CPU, la entrada/salida y velocidad de acceso a memoria. Los procesadores constituyen
los nodos del grafo.
IN es la red de interconexi´n entre los procesadores. Cada arista del grafo representa una conexi´n
o o
f´
ısica entre un par de procesadores y puede caracterizarse por una latencia y un ancho de banda
diferente, lo que significa que cada arista podr´ etiquetarse con dos valores que especifiquen el
ıa
tiempo necesario para transferir un mensaje entre los dos procesadores que se encuentran en los
extremos de la arista. Se asume que una arista entre dos nodos, pi y pj , es bidireccional y sim´trica;
e
es decir, es posible transmitir el mensaje en cualquiera de las dos direcciones posibles y el tiempo
para enviar el mensaje de pi a pj es el mismo que el tiempo necesario para transmitirlo de pj a pi .
El conjunto de aristas del sistema, IN , puede llegar a ser muy complejo e incluir m´ltiples caminos y
u
ciclos. El grafo puede ser completo o no (figuras 1.2-a y 1.2-b respectivamente) o estar organizado en una
estructura de estrella (figura 1.2-c), ´rbol (figura 1.2-d), etc. Si consideramos un procesador cualquiera
a
pi , se denominan vecinos de pi a todos aquellos procesadores interconectados a pi a trav´s de una arista
e
del grafo. En el caso de disponer de un conjunto de procesadores interconectados a trav´s de un grafo
e
completo, todos los procesadores son vecinos entre s´ debido a que siempre existe un enlace entre cada
ı,
par de nodos (pi , pj ).
En el ejemplo de la figura 1.2-a, el grafo completo, puede considerarse que existe un enlace f´
ısico de
comunicaci´n independiente entre cada par de nodos, o bien, considerar la plataforma donde todos los
o
14. 10 CAP´
ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´
´ IA
a) b)
c) d)
Figura 1.2: Ejemplos de plataformas heterog´neas: a) Grafo completo con 6 procesadores: existe un enlace
e
directo entre cada par de procesadores heterog´neos de la plataforma. b) Grafo no completo con 9 procesadores.
e
c) Plataforma en forma de estrella con 7 procesadores. d) Plataforma en forma de arbol con 12 procesadores.
´
procesadores est´n conectados a trav´s de un unico bus (figura 1.3). En este ultimo tipo de plataforma el
a e ´ ´
canal de comunicaci´n disponible entre las m´quinas suele ser exclusivo; es decir, en un instante de tiempo
o a
dado solamente un procesador puede utilizar la red de interconexi´n. Esto supone que si otro procesador
o
quiere utilizar el canal en el momento en que un procesador ya est´ transmitiendo, debe esperar a que el
a
canal se libere, lo que puede significar un retraso importante en las comunicaciones.
Figura 1.3: Ejemplo de plataforma heterog´nea con 6 procesadores: Todos los procesadores est´n conectados a
e a
trav´s de un unico bus.
e ´
En todos estos ejemplos hemos considerado que un enlace entre dos procesadores cualesquiera es
bidireccional; sin embargo, una variante a este tipo de plataforma puede asumir que en lugar de disponer de
aristas bidireccionales, existen dos enlaces unidireccionales entre cada par de procesadores, con etiquetas
que pueden ser diferentes. En este caso, la plataforma heterog´nea se representa por un grafo dirigido
e
y el tiempo de transmisi´n de un mensaje de pi a pj puede no coincidir con el tiempo empleado para
o
transmitirlo de pj a pi .
Asimismo, los procesadores del sistema pueden presentar diferentes comportamientos, en funci´n deo
sus capacidades para solapar c´mputo y comunicaciones [15]: realizar simult´neamente m´ltiples recep-
o a u
ciones de datos de todos sus vecinos, alguna operaci´n de c´mputo y m´ltiples operaciones de env´ de
o o u ıo
informaci´n a todos sus vecinos; pueden tener limitado el n´mero de recepciones y env´ a k vecinos
o u ıos
(k = 1, . . . , p − 2); pueden realizar dos acciones en paralelo (recepci´n + c´mputo, recepci´n + env´ o
o o o ıo
15. ´ ´
1.4. METRICAS DE RENDIMIENTO EN SISTEMAS HETEROGENEOS 11
c´mputo + env´ o pueden llevar a cabo unicamente una operaci´n en cada instante de tiempo. Esta
o ıo); ´ o
ultima opci´n elimina el paralelismo interno de los procesadores, ya que todas las operaciones que ejecuta
´ o
un procesador las realiza de forma secuencial.
1.4. M´tricas de rendimiento en sistemas heterog´neos
e e
En esta secci´n se especifican algunas de las m´tricas empleadas para analizar el rendimiento en
o e
sistemas heterog´neos. Algunas de ellas se definen de forma natural por extensi´n del caso homog´neo;
e o e
otras, por contra, requieren una formulaci´n espec´
o ıfica. En la definici´n de estas medidas se utiliza la
o
siguiente notaci´n:
o
M : Es el tama˜o del problema, expresado como el n´mero de operaciones necesarias para resolverlo.
n u
Tseqi : Es el tiempo de ejecuci´n del algoritmo secuencial en el procesador pi .
o
Ti : Es el tiempo empleado por la ejecuci´n paralela desde su inicio hasta la finalizaci´n del proce-
o o
sador pi .
Considerando las definiciones anteriores, se denomina tiempo de ejecuci´n paralelo, T par , al tiem-
o
po transcurrido desde el comienzo de la ejecuci´n paralela hasta el momento en que finaliza el ultimo
o ´
a p−1
procesador [113]: Tpar = m´xi=0 Ti .
La potencia computacional de un procesador en un sistema heterog´neo puede ser definida como
e
la cantidad de trabajo realizada en el procesador durante una unidad de tiempo [145, 192]. La potencia
computacional depende de las caracter´ ısticas f´
ısicas del procesador, pero tambi´n de la tarea que se
e
est´ ejecutando. Esto significa que este valor puede variar para diferentes aplicaciones y, debido a las
e
limitaciones del tama˜o de memoria, cach´ y otros componentes hardware, la velocidad de c´mputo
n e o
puede cambiar tambi´n al modificar el tama˜o del problema de la aplicaci´n.
e n o
La potencia computacional del procesador pi para una carga de trabajo M puede ser expresada como
M
CPi = Tseq . Desde un punto de vista pr´ctico, la potencia computacional media, en un conjunto de
a
i
procesadores, puede calcularse ejecutando una versi´n secuencial del algoritmo en cada uno de ellos,
o
usando un problema de tama˜o adecuado para prevenir errores debido a efectos en la memoria cach´.
n e
En los sistemas homog´neos la potencia computacional es constante para todos los procesadores
e
CPi = CP , i = 0, . . . , p − 1.
La potencia computacional total de un sistema heterog´neo, compuesto por p procesadores
e
(CPt (p)), puede definirse como la suma de la potencia computacional de todos los procesadores que
componen el sistema [145]. Este par´metro refleja la cantidad de trabajo que puede realizar el sistema en
a
p−1
una unidad de tiempo, al ejecutar un algoritmo espec´ıfico. Puede expresarse como CP t (p) = i=0 CPi .
En los sistemas homog´neos, al permanecer constante la potencia computacional para todos los proce-
e
sadores, la potencia computacional total puede expresarse como CPt (p) = p ∗ CP .
Otra de las m´tricas que pueden ser utilizadas en un sistema es su nivel de heterogeneidad. Este
e
par´metro ofrece un valor de la similitud o diversidad de las m´quinas del sistema; por ejemplo, cuando
a a
un n´mero peque˜o de procesadores es mucho m´s r´pido o m´s lento que la mayor´ se considera que
u n a a a ıa
es un sistema con una heterogeneidad alta. Se calcula en funci´n de la potencia computacional de sus
o
m´quinas: escalando los valores obtenidos de las potencias computacionales para los procesadores, de
a
modo que a aquellos que sean m´s r´pidos se les asigne una potencia computacional de 1. Denominando
a a
CPiE a las potencias computacionales escaladas de las m´quinas, se define la heterogeneidad del sistema
a
p−1
(1−CP E )
como H = i=0 p i
[192]. Esta m´trica var´ entre 0 cuando el sistema es homog´neo (la potencia
e ıa e
computacional es la misma para todos los procesadores) y un valor m´ximo pr´ximo a 1.
a o
16. 12 CAP´
ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´
´ IA
Independientemente de las caracter´ ısticas de los procesadores, tambi´n es necesario considerar el
e
coste de las comunicaciones. Tal como se ha descrito en la secci´n 1.2, un modelo habitual utiliza β ij
o
y τij (latencia y tiempo de transferencia respectivamente entre dos procesadores de la red, p i y pj ) para
representar el coste de las comunicaciones mediante el modelo lineal cl´sico β ij + τij ∗ w.
a
La aceleraci´n (Sp) obtenida en un sistema paralelo es tambi´n una m´trica importante del rendi-
o e e
miento de un algoritmo en el sistema, puesto que muestra el beneficio relativo de resolver un problema
en paralelo frente a su resoluci´n en una m´quina secuencial.
o a
En sistemas homog´neos se define la aceleraci´n como la relaci´n entre el tiempo secuencial obtenido en
e o o
Tseq
cualquiera de las m´quinas y el tiempo de ejecuci´n paralelo: Sp = Tpar , donde Tseq = Tseqi , i = 0, . . . , p−1
a o
[1, 185].
Si Sp > 1 entonces el sistema presenta un rendimiento superior al de las m´quinas individuales del
a
sistema. Te´ricamente, la aceleraci´n nunca puede exceder al n´mero de procesadores p que intervienen en
o o u
la resoluci´n del problema. En muchos casos, la aceleraci´n conseguida es mucho menor que la aceleraci´n
o o o
m´xima (Sp << p). Esta situaci´n puede producirse cuando no es posible descomponer el problema en
a o
un n´mero apropiado de tareas independientes a ser ejecutadas simult´neamente; o bien, si el tiempo
u a
requerido en la fase de comunicaci´n entre los procesadores es demasiado alto.
o
Sin embargo, en algunos algoritmos y para algunos casos, se puede obtener una aceleraci´n superior
o
al m´ximo (Sp > p). Este fen´meno se conoce como aceleraci´n superlineal [20, 91, 96]. Puede
a o o
aparecer debido a algoritmos secuenciales no ´ptimos o a caracter´
o ısticas del hardware que ralentizan
la ejecuci´n del algoritmo secuencial (por ejemplo, el tama˜o de la memoria cach´). La primera de
o n e
estas situaciones se produce cuando el programa paralelo implementado realiza un n´mero inferior de
u
operaciones, para resolver el problema, que el algoritmo secuencial. En este caso, la superlinealidad
puede resolverse f´cilmente si es posible dise˜ar un nuevo algoritmo secuencial que sea equivalente al
a n
algoritmo paralelo empleado. La segunda de las situaciones es debida al tama˜o de la memoria cach´ de
n e
un procesador, que puede permitir resolver el subproblema asignado en una ejecuci´n paralela, realizando
o
pocos intercambios de informaci´n entre memoria cach´ y memoria principal; mientras que el tama˜o
o e n
del problema a resolver en el caso secuencial es muy superior y son necesarios un n´mero excesivo
u
de intercambios de datos entre memoria principal y cach´, ralentizando su ejecuci´n. En este caso, el
e o
problema es m´s dif´ de resolver, es necesario modificar las caracter´
a ıcil ısticas hardware de la m´quina.
a
En el caso heterog´neo no todos los procesadores invierten el mismo tiempo en resolver el problema
e
de forma secuencial, por lo que es necesario adaptar el concepto de aceleraci´n. Diferentes autores pro-
o
porcionan definiciones de la aceleraci´n en una red heterog´nea [2, 32, 47, 62, 191, 192]. La definici´n m´s
o e o a
extendida es la que considera la aceleraci´n como la relaci´n entre el tiempo necesario para completar una
o o
ejecuci´n en el procesador de referencia de la red y el tiempo empleado para realizar la misma ejecuci´n
o o
sobre el sistema heterog´neo. Es habitual considerar como procesador de referencia el procesador m´s
e a
m´ p Tseqi
ıni=0
r´pido del sistema; en este caso, la definici´n de la aceleraci´n se convierte en Sp =
a o o Tpar . Esta
definici´n es la que hemos empleado a lo largo de la memoria.
o
En estos sistemas la acelaraci´n m´xima que se puede alcanzar es menor que el n´mero de procesadores
o a u
que intervienen en la ejecuci´n, puesto que no todas las m´quinas disponen de las mismas caracter´
o a ısticas.
En [47] los autores definen la potencia relativa del sistema como el n´mero de procesadores equivalentes
u
al procesador considerado como referencia, que deber´ componer un sistema homog´neo, para que los
ıan e
dos sistemas tuvieran la misma potencia de c´mputo total. Para calcular este valor es necesario conocer
o
el n´mero de m´quinas de cada tipo disponibles en el sistema y las relaciones entre sus velocidades.
u a
Considerando como procesador de referencia el correspondiente a las m´quinas m´s r´pidas, utilizamos
a a a
las potencias computacionales escaladas para obtener la heterogeneidad del sistema. Suponiendo que
tenemos un sistema con dos tipos de m´quinas, la aceleraci´n m´xima que podemos obtener ser´ Sp max
a o a ıa:
= n´mero de m´quinas r´pidas + n´mero de m´quinas lentas * potencia computacional escalada de las
u a a u a
m´quinas lentas. Considerando un sistema heterog´neo general, donde existen m tipos de m´quinas
a e a
m−1
diferentes, la aceleraci´n m´xima viene dada por la siguiente ecuaci´n: Sp max = n R + i=1 ni ∗ CPiE ;
o a o
17. ´ ´
1.4. METRICAS DE RENDIMIENTO EN SISTEMAS HETEROGENEOS 13
donde nR es el n´mero de procesadores r´pidos (tipo de m´quina 0) y se suma el n´mero de procesadores
u a a u
de cada uno de los tipos restantes (i = 1, . . . , m − 1) por su potencia computacional escalada. Un ejemplo
de aplicaci´n de esta definici´n lo encontramos en [88], aunque en este caso los autores utilizan como
o o
m´quina de referencia a los procesadores m´s lentos.
a a
La eficiencia y la escalabilidad son tambi´n dos conceptos fundamentales para definir el rendimiento
e
de los sistemas paralelos, particularmente en el caso de los clusters.
La eficiencia es una medida del porcentaje de tiempo por m´quina que es empleado para resolver un
a
c´mputo paralelo. En los sistemas homog´neos la eficiencia se define como la aceleraci´n dividida entre el
o e o
n´mero de procesadores Sp/p y se han desarrollado numerosos trabajos, tanto te´ricos como pr´cticos,
u o a
para caracterizar la eficiencia en estos sistemas [1, 58, 68, 87, 115, 185]. En un sistema ideal, el valor de
la eficiencia es 1, pero en sistemas reales var´ entre 0 y 1.
ıa
La escalabilidad de un sistema homog´neo es un t´rmino impreciso, puede definirse como la capaci-
e e
dad de un sistema paralelo para mejorar su rendimiento cuando aumenta el tama˜o del problema y el
n
n´mero de procesadores. Se basa en la selecci´n de una m´trica empleada para caracterizar el compor-
u o e
tamiento del sistema. Las m´tricas m´s utilizadas han sido la aceleraci´n, la eficiencia, la velocidad media
e a o
y la latencia. El grado de escalabilidad de un sistema se calcula mediante la ecuaci´n: crecimiento del
o
problema / crecimiento del sistema [190, 192].
Sin embargo, como sucede con las restantes medidas de rendimiento vistas en esta secci´n, no es
o
posible aplicar estos conceptos del ´mbito homog´neo directamente al caso heterog´neo, debido a las
a e e
diferencias de caracter´
ısticas y rendimiento de los procesadores que conforman el sistema. Para poder
establecer definiciones que se adapten a los sistemas heterog´neos partimos del concepto anterior de
e
potencia computacional total y concluimos que su valor en un sistema depende tanto del n´mero de
u
procesadores que componen el sistema como de la potencia computacional de cada uno de ellos. Esto
significa que dos sistemas con el mismo n´mero de procesadores no necesariamente deben tener la misma
u
potencia computacional total y, por lo tanto, es posible incrementar su valor aumentando el n´mero
u
de procesadores (escalabilidad f´ ısica) o la potencia de alguno de ellos (escalabilidad de potencia)
[145, 192].
Como consecuencia de este hecho no es posible definir la eficiencia de un sistema heterog´neo unica-
e ´
mente como una funci´n del n´mero de procesadores, como se hace en el caso de los sistemas homog´neos,
o u e
debido a que el rendimiento del sistema depende de cu´les son las m´quinas utilizadas en cada momento.
a a
La eficiencia en un sistema heterog´neo puede definirse como la relaci´n entre el menor tiempo de eje-
e o
cuci´n necesario para resolver un problema espec´
o ıfico en el sistema y el tiempo real obtenido durante la
ejecuci´n del algoritmo: EF = Tiempo de ejecuci´n optimo / Tiempo de ejecuci´n real [145].
o o ´ o
Formalmente, en [145] se establece la siguiente definici´n de escalabilidad: Dado un sistema paralelo
o
heterog´neo HN con p procesadores, con CPt para un trabajo M , y un sistema HN , con p procesadores
e
y con CPt para un trabajo M , con CPt > CPt ; se puede decir que HN es un sistema escalable si, cuando
el sistema es ampliado desde HN a HN , es posible seleccionar un problema M tal que la eficiencia de
HN y HN permanezcan constantes.
A efectos pr´cticos consideraremos que el sistema es escalable cuando sea posible incrementar la efi-
a
ciencia del sistema aumentando la potencia de c´mputo a trav´s de alguno de los dos elementos definidos.
o e
Por ultimo, el n´ mero de procesadores utilizados para resolver un problema tambi´n es una
´ u e
medida a tener en cuenta en el caso homog´neo. El n´mero total de procesadores disponibles en un
e u
entorno puede ser superior al n´mero ´ptimo necesario para ejecutar un algoritmo, lo que puede producir
u o
un uso ineficiente de la arquitectura paralela. Esto significa que hay que seleccionar un subconjunto de
procesadores que minimice el tiempo de ejecuci´n del problema. En el caso heterog´neo, es necesario
o e
calcular el n´mero ´ptimo de procesadores de cada uno de los tipos disponibles de m´quinas, para
u o a
minimizar el tiempo de ejecuci´n.
o
18. 14 CAP´
ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´
´ IA
1.5. Ejemplos de sistemas heterog´neos
e
1.5.1. Un ejemplo de plataforma heterogenea
Consideramos la plataforma heterog´nea donde hemos realizado las pruebas experimentales de los
e
cap´
ıtulos 2 y 3, como el grafo no dirigido HN (P, IN ) (secci´n 1.3), donde el conjunto de procesadores
o
disponibles en el sistema, P , est´ formado por los siguientes grupos de m´quinas:
a a
El primer grupo est´ compuesto por una m´quina de memoria compartida con cuatro procesadores
a a
Intel (R) XeonT M de 1.40 GHz con 3Gb de memoria. Los procesadores que forman esta m´quina
a
se denominar´n a lo largo de toda la memoria como m´quinas r´pidas (R).
a a a
El segundo grupo de m´quinas lo forman cuatro PCs AMD DuronT M de 800 MHz con 256 MB de
a
memoria. Estas m´quinas se denominar´n m´quinas intermedias (I).
a a a
El ultimo grupo, las m´quinas lentas (L), est´ formado por seis PCs AMD-K6 T M de 501 MHz con
´ a a
256 MB de memoria.
Todas las m´quinas de estos tres grupos trabajan con el sistema operativo Debian Linux y est´n
a a
conectadas mediante un switch Fast Ethernet a 100 Mbit/s en un esquema de bus (figura 1.3) formando
la red de inteconexi´n (IN ). En esta plataforma vamos a considerar la heterogeneidad debida a diferencias
o
en las velocidades de c´mputo de los procesadores y a las diferencias en las velocidades de comunicaci´n
o o
(secci´n 1.2). La heterogeneidad debida a las diferencias en las capacidades de memoria no la hemos
o
tenido en cuenta al realizar este trabajo.
A continuaci´n, caracterizamos esta plataforma (HN ) mediante algunas de las m´tricas de rendi-
o e
miento vistas en la secci´n 1.4. La primera m´trica calculada en HN es la potencia de c´mputo de cada
o e o
uno de los grupos de procesadores. Defin´ ıamos esta m´trica como la cantidad de trabajo realizado en el
e
procesador durante una unidad de tiempo. En la pr´ctica utilizamos como medida el tiempo que tarda
a
un procesador pi en computar una cantidad de trabajo. Podemos determinar este valor ejecutando el
algoritmo secuencial en los tres tipos de m´quinas que componen HN , y posteriormente usar la relaci´n
a o
entre estos valores para establecer las cantidades de trabajo que se asignan a cada procesador. Esta me-
dida depende del tipo de trabajo a realizar, por lo que es necesario calcularla para cada problema de
forma independiente; en los cap´ ıtulos siguientes se presentan los resultados obtenidos para cada caso. La
tabla 1.1 muestra un ejemplo de los resultados obtenidos al resolver el problema del producto de matrices
sobre los tres tipos de m´quinas. Los valores que aparecen en la tabla son las relaciones obtenidas entre
a
los tiempos secuenciales de las m´quinas r´pidas y lentas (columna L / R), entre los tiempo secuenciales
a a
de las m´quinas r´pidas e intermedias (columna I / R) y entre intermedias y lentas (columna I / L).
a a
Este problema lo resolvemos de forma paralela mediante un algoritmo maestro-esclavo en el cap´ ıtulo 2.
Tabla 1.1: Relaciones obtenidas entre los tiempos secuenciales para los tres tipos de m´quinas que componen
a
HN con diferentes tama˜os de problemas: lentas / r´pidas (L / R), intermedias / r´pidas (I / R) y lentas /
n a a
intermedias (L / I).
Filas Columnas L / R I / R L / I
700 700 4.89 1.63 3.00
1000 1000 5.03 1.67 3.01
1500 1500 4.85 2.99 1.62
2000 2000 3.94 3.70 1.06
Utilizando el mismo problema tambi´n podemos calcular el valor de otras dos m´tricas definidas en la
e e
secci´n 1.4: la heterogeneidad y la aceleraci´n m´xima que puede alcanzarse. Para calcular el valor de la
o o a
19. ´
1.5. EJEMPLOS DE SISTEMAS HETEROGENEOS 15
heterogenidad consider´bamos en la secci´n 1.4 que asign´bamos un 1 a la potencia computacional de la
a o a
m´quina m´s r´pida y escal´bamos los valores para el resto de las m´quinas. A continuaci´n aplic´bamos
a a a a a o a
p−1
(1−CP E )
la f´rmula: H = i=0 p
o i
. La tabla 1.2 contiene los valores escalados de la potencia computacional
E
para los tres tipos de m´quinas que componen el cluster (columnas CP R para las m´quinas r´pidas,
a a a
E E
CPI para las intermedias y CPL para las lentas) y el valor total de la heterogeneidad para el problema
del producto de matrices, con los cuatro tama˜os diferentes de problemas que presentamos en la tabla
n
1.1, cuando ejecutamos los problemas sobre el cluster completo de 14 m´quinas.
a
Tabla 1.2: Potencia computacional escalada para los tres tipos de m´quinas del cluster (r´pidas, intermedias y
a a
lentas) y valor de la heterogeneidad al resolver cuatro problemas de distintos tama˜os del producto de matrices.
n
E E E
Filas Columnas CPR CPI CPL Heterogeneidad
700 700 1 0.61 0.20 0.45
1000 1000 1 0.60 0.20 0.46
1500 1500 1 0.33 0.21 0.53
2000 2000 1 0.27 0.25 0.53
Como se observa en la tabla 1.2, disponemos de un sistema bastante heterog´neo, el valor de la
e
heterogeneidad se mantiene alrededor de 0.5. La heterogeneidad se incrementa al aumentar el tama˜o del
n
problema, puesto que la diferencia entre las velocidades de las m´quinas r´pidas e intermedias tambi´n
a a e
aumenta al resolver los problemas mayores (tabla 1.1).
La tercera m´trica que vamos a aplicar utilizando este problema es la aceleraci´n m´xima del sistema.
e o a
Adaptamos la f´rmula definida en la secci´n 1.4 a tres tipos de m´quinas y obtenemos la siguiente
o o a
E E
ecuaci´n: Spmax = nR + nI ∗ CPI + nL ∗ CPL , donde nR , nI y nL son el n´mero de procesadores
o u
E E
r´pidos, intermedios y lentos respectivamente; CPI y CPL son los valores de las potencias de c´mputo
a o
escaladas que obtuvimos en el c´lculo de la heterogeneidad (tabla 1.2). La figura 1.4 muestra cu´les son
a a
las aceleraciones m´ximas posibles para el sistema, cuando resolvemos los problemas utilizando los 14
a
procesadores disponibles.
Figura 1.4: Aceleraciones m´ximas posibles para los cuatro problemas del producto de matrices utilizando las 14
a
m´quinas disponibles en el sistema, comparadas con la aceleraci´n m´xima en un sistema homog´neo del mismo
a o a e
tama˜o.
n
Como se observa en la figura 1.4, las aceleraciones m´ximas que podemos conseguir en este sistema
a
est´n muy lejos de la Spmax = 14 que tendr´
a ıamos si ejecut´semos los problemas sobre un sistema ho-
a
mog´neo con el mismo n´mero de m´quinas que nuestro sistema heterog´neo.
e u a e
Otra de las medidas importantes que debemos considerar en nuestra plataforma es el coste de las
comunicaciones entre las m´quinas. Para modelizar estas comunicaciones se han medido los par´metros
a a
20. 16 CAP´
ITULO 1. SISTEMAS HETEROGENEOS: CONCEPTOS, OBJETIVOS Y METODOLOG´
´ IA
Tabla 1.3: Latencia y tiempo de transferencia por byte en nuestra plataforma para todas las combinaciones de
dos procesadores.
Tipo Emisor Tipo Receptor β τ
R´pido
a R´pido
a 6.52452E-06 8.7862E-09
R´pido
a Intermedio 0.000129947 9.45607E-08
R´pido
a Lento 0.000218896 1.0238E-07
Intermedio Intermedio 0.000139594 9.93899E-08
Intermedio Lento 0.000236513 1.07065E-07
Lento Lento 0.000306578 1.15404E-07
β y τ mediante experimentos de tipo ping-pong. Se han utilizado las funciones MPI Send y MPI Receive
con bloqueo definidas en el est´ndar de la librer´ de paso de mensajes MPI [89, 134] y se realiza un
a ıa
ajuste lineal de los tiempos de env´ como funci´n del tama˜o del mensaje, para combinaciones de
ıo, o n
pares de m´quinas lentas (L), intermedias (I) y r´pidas (R) (tabla 1.3). Como los par´metros se han
a a a
medido utilizando un ping-pong, los valores obtenidos por las combinaciones r´pida-lenta y lenta-r´pida
a a
son iguales, as´ como los obtenidos para las combinaciones r´pida-intermedia, intermedia-r´pida y lenta-
ı a a
intermedia, intermedia-lenta. La figura 1.5 muestra el efecto de los par´metros β y τ .
a
Figura 1.5: Modelo lineal cl´sico para el tiempo de transferencia usando diferentes tipos de procesadores. R =
a
Procesador R´pido, I = Procesador Intermedio y L = Procesador Lento.
a