/1
\
KCentro de Invesfiigación Científica y de
Educación Superior de Ensenada
EVALUACION DE RENDIMIENTO DE SISTEMAS
DISTRIBUIDOS BASANDOSE EN UN MODELO
GEOMETRICO DE EJECUCION
TESIS
¬
MAESTRIA EN CIENCIAS
ADAN HIRALES CARBAJÁI.
Y APROBADA Pon EL s|Gu|EN†E coM|†É
Dr. Andrei Tchernykh
Directar del Comité
›
¿iiiíphw
\.†\†_Z'"' `_" ' "%
Dr. Isaac . Schëis Dr. Oscar R. López lšoniiia
Miembro del Comité Miembro del Cumité
/K _, Wi Í 321Ã
MC. Carlos Fi. Duarte Muñoz Dr. Iii go Iiidexlgo Silva U
Miembro del Comité Miem/Jro del Comite'
2 I Q A
M. C. José Luis Briseño Cervantea DR
Jem de¡ Depaftamenm de Directar de Estudios de Pasg/'adn
Ciencias de la Computación
DIVISIÓN DE FISICA APLICADA
DEPARTAMENTO DE CIENCIA DE LA COMPUTACIÓN
Evaluación de Rendimiento de Sistemas Distribuidos basándose en un Modelo Genmétricu de Ejecución
TESIS
que para cubrir parcialmente los requisitos necesarios para obtener el grado de MAESTRO EN CIENCIAS presenta:
ADÁN HIRALES CARBAJAL
EVALUACIÓN DE DEsEIvrrEÑo DE sIsTEMAs DISTRIBUIDOS BAsAND0sE
EN UN MoDELO GEOMETRICO DE EJECUCIÓN
Resumenaprobadopor: 4 (_'
,
C
Dr. Andrei Tchemykh Director de la Tesis
Es evidente que la evaluación de desempeño es una fase de suma importancia
durante el ciclo de desarrollo de muchos dispositivos de hardware o aplicaciones de
sotìware, La evaluación de desempeño es considerada como una estrategia de
optimización, donde uno de sus principales objetivos es el detectar las causas que generan los cuellos de botella en el desempeño de un sistema o una aplicación,
Los sistemas distribuidos normalmente son evaluados mediante el uso de
benchmarks. Sin embargo, un benchmark es desarrollado para evaluar el desempeño de un subsistemas de una arquitectura y presenta su rendimiento como una abstracción de
alto nivel. Una estrategia que permite representar el desempeño de un sistema como un
Vector es denominada vectores de desempeño. El método de los puntos de intersección es
utilizado para estimar tal vector. Sin embargo, este método requiere que el grado de aceptación del conjunto de bcnchmarks utilizado durante el proceso de evaluación sea pequeña.
Una estrategia novedosa para estimar un vector de desempeño es propuesta, esta
se basa en la estadística de múltiples variables y es denominada el método de agrupamiento con filtración. El metodo de los puntos de intersección y el método de agrupamiento con filtración son utilizados para estimar el rendimiento de una sistema Sun SuperSPARC. El vector de desempeño estimado mediante el método de agnipamiento con filtración se aproxima al vector estimado mediante el método de los puntos de intersección. El metodo de agrupamienlo también permite estimar varias capas de abstracción del desempeño del sistema.
DISTRIBUTED SYSTEM PERFORMANCE EVALUATION BASED ON A GEOMETRIC MODEL OF EXECUTION
ABSTRACT
lt has become apparent that perfomiance evaluation is an important phase during the development cycle of many hardware devices or software applications. Performance
evaluation is often considered as an optimization strategy, Where one of its main
objectives is to detect the cause of performance bottlenecks in the performance of a system or an application.
Distributed systems are normally evaluated by the use benchmarks. However, a benchmark is developed for measuring the performance of a subsystem of a machine and presents its performance as a high level abstraction. A strategy which represents the
perfon-nance of a system as a vector is denominated performance vectors. The intersection point method is used to estimate such performance vector. However, this
method requires that the compliance of benchmark set used during the process of
evaluation is small.
A novel strategy for estimating the performance vector is proposed, such is based
on multivariable statistics y is denominated the clustering method. The intersection point
method and the cluster screening method are used to estimate the performance of a Sun
SuperSPARC system. The performance vector estimated by the cluster screening method
approximates the performance vector estimated by the intersection point method. The
cluster screening method also allows the estimation of several layers of performance
abstraction of the system.
A mi esposa Lupita Ahuatzin Hernandez, quien me ha demostrado el significado de la
frase: “Reprende 11 un amigo en silencio y glorifícalo en público”
Con mucho amor a mi esposa Lupita Ahuatzin y mi niño Alan I-Iirales Ahuatzin,
A mi papá Adan Hirales de la Cruz por darme la oportunidad de estudiar y por siempre
cuidarme. Lo quiero mucho papá.
A mi director de tesis y buen amigo Andrei Tchemykh y a mi comité de tesis. Gracias
por tenerme tanta paciencia.
Al Consejo Nacional de Ciencia y Tecnología, gracias por apostar en mi futuro, I-Ian
1NTRoDUccIÓN
I Introducción I.1 Antecedentes I.2 Motivación 1.3 Objetivo I.4 Metas1.5 Alcance del trabajo
1.6 Infraestmctura
1.7 Esquema de la tesis
MATERIALES Y METODOS
II Compendio de Análisis de Desempeño
II.l Introducción
II.2 Metas del análisis de desempeño
II.3 Métricas
II.3.l Métricas genéricas de rendimiento
II.3.2 Métricas para la evaluación de sistemas paralelos
II.4 Estrategias de evaluación de desempeño
lI.4.l Evaluación por modelaje
II.4.2 Evaluación por medición
II.S Benchmarks
II.5.1 Clasificación de benchmarks
II.5.2 Algunos benchmarks
SPEC
AIM
LINYACK
Benchmarks paralelos de la NAS (NPB)
III Modelos de Evaluación de Desempeño
III.l Introducción
III.2 Vectores de Desempeño
III.2.1 Definiciones fonnales
III.3 Modelos de flujo de ejecución
III.3.1 Modelo de flujo secuencial
III,3,2 Modelo de flujo paralelo
lIl.4 Evaluación de vectores de desempeño
lIl.5 Modelo Geometrico de ejecución en máquina
III.5.1 Antecedentes
III.5.2 Evaluando del punto medio de operación
III.6 Sumario
IV Evaluación de Desempeño en Sistemas Distribuidos
lV,l Introducción
IV.2 Sistemas Distribuidos
IV.3 Componentes del MG en un sistema distribuido
IV.3.l Puntos de soporte
IV.3.2 Punto de operación
IV.3.3 Punto medio de operacion
IV.4 Análisis de agrupamiento
IV.5 Método de agrupamiento con filtración
IV.5,l Representación de datos
IV.5.2 Selección inicial
IV.6 Sumario
RESULTADOS Y DISCUSIÓN
V Resultados Experimentales
V,l Introducción
V.2 Evaluación de la estación SUN SuperSPARC.
V,3 Sumario
CONCUSIONES
VI Conclusiones y Direcciones Futuras
VI. 1 Conclusiones
VI.2 Direcciones Futuras
APENDICES:
Herramientas para enumerar instrucciones ejecutadas
Técnicas de análisis de agrupamiento
Datos experimentales
Figura
1 Estructura de capas del software de un nodo.
2 Organización del hardware y sofiware de un sistema distribuido
tipo cluster,
3 Topología de interconexión de un cluster dedicado.
4 Modelo general para el análisis de desempeño
5 Procedimeinto genérico para la evaluación por medición.
6 Vector de desempeño de cuatro mediciones.
7 Modelo de flujo secuencial.
8 GDA de un programa con múltiples flujos de ejecución.
9 Puntos de soportes y punto operacional de dos instrucciones Iie 11.
I 0
1 1
12
Punto medio de operacion para un conjunto de benchmarks en R2 .
Pasos realizados por el método del punto de intersección.
Puntos de soporte para un sistema cluster con dos nodos utilizando
una distribución dinámica de la carga de trabajo.
1 3
14
l 5
16
Metodologia del análisis de agmpamiento.
Puntos externos altos y bajos.
Estimación de un área de confianza mediante el uso de tendencias
centrales y percentiles.
17 Frecuencia de aparición de hiperplanos discretos para valores
discretos dx .
18
19
20
21
Área de confianza delimitada por valores de dx y f(dx) .
Comparación de estrategias de evaluación de desempeño.
Procedimiento general para el análisis de agrupamiento MAF.
Vector de desempeño de la microfarquitectiira SUN SuperSpark,
estimado mediante MePI.
Vectores de desempeño estimados por MePI y MAP-{ l,3,5}H
Vectores de desempeño estimados por MePI y MAP†3E 22
23
Discretización de cuatro hiperplanos utilizando incrementos discretos.
Figura Página
24 Vectores de desempeño estimados por MePI y MAF†{75,80,85}% 89
25 Vectores de desempeño estimados por MePI yMAF-{60,65,70)% 89
26 Vectores de desempeño estimados por MePI y MAF~{30,35,40)% 90
27 Matriz de distancia. 112
28 Dendograma de tres niveles. 114
Tabla
I Configuración de hardware del sistema cluster.
II Métricas para la representación de desempeño.
III
IV
V
VI
Unidades para representacón de FLOPs.
Reglas para el conteo de FLOPs.
Métricas de desempeño para sistemas paralelos.
VII Herramientas para perfilar del sistema operativo Linux,
VIII
IX
X
Aplicaciones y núcleos de la distribución NPB.
Cargas de trabajo generadas por NPB.
Valores de tendencia central, límites superior e inferior para la
estimación de una zona de confianza.
XI Eventos de la jerarqula de memoria accesibles por PCL XII Eventos de control e instrucciones accesibles por PCL
XIII Herramientas para la enumeración de instrucciones bajo SO Linux.
XIV Herramientas para la enumeración de instrucciones bajo el SO Linux
XV Tecnicas de cambio de escala con normalización.
XVI Métricas Euclidianas de Intervalo.
XVIIMétricas de distancia de contador.
XVIII Algoritmos de agrupamiento.
XX Datos perfilados de la estación SuperSPARC bajo los
benchmarks SPEC92.
XXI Vectores de desempeño estimados por MAP (K~medias).
XXIIVector de desempeño estimador por MePI y MAF con un
intervalo de confianza 0%-{30%, 35%, 40%).
XXIII Vector de desempeño estimado por MePI y MAF con un
intervalo de confianza 0%-{45%, 50%, 55%}.
XXIV Vector de desempeño estimado por MePI y MAP con un
intervalo de confianza 0%~{ 60%, 65%, 70%).
Herramientas de instrumentación para sistemas con paso de mensages.
Capítulo I
Introducción
I.1 Antecedentes
Los sistemas uniprocesadores son máquinas complejas aun siendo estos maquinas
de estado finito. La complejidad de los sistemas paralelos es inclusive mayor debido a la
concurrencia que soportan. Para que un usuario pueda comprender el comportamiento de
un sistemas secuencial o paralelo este requiere de metodologías, paradigmas para la
evaluación de desempeño y herramientas de instrumentación, que pemiitan realizar un
diagnostico o análisis de desempeño del sistema en prueba.
Dos tecnicas utilizadas para la evaluación de desempeño son: evaluación por
modelaje y medición, Jain Anil considera al modelaje analítico como una tercer
clasificación [Jain Anil, 1991]. La técnica de evaluación por modelaje pennite simular el
desempeño mediante la utilización de un modelo del sistema en vez de la arquitectura o
aplicación a evaluar, Esta técnica es compleja de implementar y la simulación,
dependiendo en el detalle de la implementación, puede ser costosa de ejecutar. Nuevas
estrategias para la simulación consisten en la implementación de una máquina virtual' del
sistema en estudio [Balderas Contreras y García Monroy, 2000].
La técnica de evaluación por medición consiste basicamente en una secuencia de
dos pasos: recabar información de desempeño del sistema durante la ejecución de su carga
de trabajo, y posteriormente, utilizar algún paradigma de la evaluación de desempeño para
1 una máquina vimni es im programa que aimtiene cada ia fimeimiiaaa de un sistema, pero se puede
procesar la información recabada. Esta técnica también se consideraba como una estrategia
costosa debido que el perfilar la ejecución de una aplicación era normalmente realizada a
nivel del núcleo mediante el uso de intermpciones al sistema operativo. Esto tiene severas
implicaciones, teniendo como resultado mediciones con menor precisión, debido a que
muchas operaciones no son consideradas durante los periodos de interrupción. La
evaluación por medición ha venido siendo una estrategias mas factible, debido a la
implementación de nuevas técnicas para realizar el perfilaje. Por ejemplo, actualmente se
implementan a nivel microprocesador de PC's, estaciones de trabajo y de
supercomputadoras contadores de instrucciones [Berrendorf Rudolf y Ziegler Heinz,
2000]. En este trabajo nos enfocamos en el area de evaluación de desempeño de sistemas
distribuidos, en particular de sistemas con una única imagen (Single System Image, SSI)
[Rajkumar Buyya, 1999], con orientación a la evaluación de desempeño por medición.
Quizás el paradigma mas filndamental y de mayor controversia para la evaluación
de desempeño de sistemas paralelos es la ley de Amdahl [Allen Malony, 2000]. Su
propósito principal es señalar el incremento de desempeño (speedup) de una aplicación
tomando en cuenta únicamente dos parámetros: la fracción de la aplicación que se ejecuta
de manera secuencial y el número de procesadores utilizados para procesar la fracción
paralela de la aplicación. Otras especializaciones para la Ley de Amdahl han sido
desarrolladas, por ejemplo: la ley de Gustafson y la ley de Sun y Ni [Hwang Kai y Zhiwei
Xu, 1998]. Sin embargo, el incremento de desempeño es un paradigma pobre para la
Los benchmar/tri han sido aceptados ampliamente como una técnica para la
evaluación de desempeño debido a esfuerzos que se han invertido para hacerlos portables,
de amplia disposición, delimitan cargas predefinidas de trabajo y por su facilidad de uso.
Los benclimarks han sido utilizados para más que solo estimar el desempeño promedio de
sistemas, su principal aplicación es el proporcionar una estrategia independiente de
cualquier arquitectura para comparar sistemas candidatos. Podemos ver esto por los
resultados publicados de varios sistemas en el sitio de Web TOP500. El sitio de web
TOP500 publica los resultados recabados de los benchmaks paralelos NAS (Nas Pararell
Benchmarks, NPB) de las 500 supercomputadoras más rápidas alrededor del mundo
[Top500, 2000]. Actualmente, se han realizado esfuerzos para la creación de un segundo
sitio de web que registre los 500 clusters mas rápidos del mundo [Top500Clusters, 2000].
Un benchmark calcula el desempeño de un sistema basándose en el conteo de operaciones
y presenta al usuario un promedio de la operación que se monitoreo, por ejemplo, FLOPS,
promedio de operaciones TLB. Sin embargo, tal promedio es una abstracción de alto nivel
que describe el desempeño promedio del sistema y es un parámetro pobre para propósitos
específicos del análisis de desempeño.
Allen Malony en [Allen Malony, 2000] sugiere que un análisis de desempeño con
mayor precisión es asistido por "Un ambiente para solucionar problemas de desempeño,
compuesto por: una metodologia paralela aplicada para la evaluación de rendimiento y de
un conjunto integrado de herramientas para el modelaje, medición, análisis, presentación y
predicción de desempeño". Tal ainbiente puede hacer uso de metodologías hibridas de
manera cíclica o no cíclica para generar un análisis detallado de datos que describan el
desempeño de un sistema.
Debido a deficiencias presentes en paradigmas de evaluación de desempeño y a la
amplia aceptación de herramientas tales como los benchmarks. Scherson [Scherson Isaac y
Krishnaswamy Umesh, 1993] [Krishnaswamy Umesh, 1995] [Scherson Isaac y
Krishnaswamy Umesh, 1996] propone un modelo para la evaluación de desempeño de
sistemas de memoria compartida denominado el modelo geométrico de ejecución de
máquina (Geometría Model 1./` machine executinn, GM). El modelo geométrico de
ejecución pennite modelar el desempeño de un sistema a una granularidad tina basándose
en tres componentes: puntos de soporte, puntos operacionales y un punto medio
operacional. Los puntos de soporte representan todos los posibles tiempos de ejecución de
una instrucción. Un punto operacional representa el promedio de los puntos de soporte de
una instrucción, por lo tanto, los puntos operacionales representan el promedio de
ejecución de un conjunto de instrucciones. El punto medio operacional es el punto
promedio de los puntos de soporte y en conclusión describe el desempeño promedio del
sistema. Tal punto se representa como un vector de mediciones, por ejemplo, promedio
lecturas al TLB, promedio de hits en memoria L1 o misses, etc. Para poder estimar tal
vector de mediciones el metodo de los puntos de intersección se propuso (Interseclíon
Point Method, IPM). El IPM también sirve como herramienta para la caracterización de la
carga de trabajo, asociando a un benchmark una medida cuantitativa de calidad
denominada aptitud del benchmark. Siri embargo, el procedimiento para estimar el vector
I.2 Motivación
Las estrategias para la evaluación de desempeño estan teniendo una transición de
paradigmas simples a composiciones hibridas, con la ayuda de herramientas especificas de
instrumentación y de estrategias portables para la caracterización de cargas de trabajo. Esto
alienta el desarrollo de una herramienta 0 estrategia para la evaluación de desempeño de
sistemas distribuidos SSI basandoce en herramientas y paradigmas existentes. El objetivo
principal de esta investigación consiste en la adaptación del GM de ejecución para la
evaluación de desempeño de sistemas distribuidos SSI, en particular sistemas distribuidos
tipo cluster] operando bajo el sistema operativo Linux.
Se selecciono como sistema candidato la platafonna cluster de PCs operando bajo
el sistema operativo Linux, debido a su ventaja en costo/desempeño en comparación con
supercomputadoras tradicionales. No se requiere hardware especial solamente de
componentes de comodidad es decir, componentes que se pueden comprar en cualquier
tienda de computadoras y de soiìware middleware que permita operar el sistema como una
máquina SSI. Tanto el sistema operativo como el software middleware son de libre
distribución.
L3 Objetivo
El objetivo de esta tesis es desarrollar una estrategia para la evaluación de
desempeño de sistemas distribuidos tipo SSI. Tal trabajo es una continuación de la tesis de
3 Un cluster puede ser definido como "una red con elementos de procesamiento, donde cada unidad de
pfeeeeemieme tiene emma emereneiiea pfineipalz une 0 más CPU; y memoria leen. Lee uniaeaee de
procesamiento no comparten memoria y sc comunican a través dc un protocolo de paso de mensajes"
doctorado denominada “Evaluación de Desempeño Usando Vectores de Desempeño” de
Krishnaswamy Umesh. Nuestro interés fundamental consiste en la adaptación del GM para
el modelaje y evaluación de desempeño de sistemas distribuidos tipo SSI.
I.4 Metas
Para poder lograr tal objetivo las siguientes actividades especificas son
delimitadas.
1 Instalacion y configuración del ambiente tipo cluster,
1.1 Establecer la conexion fisica de 3 o 4 computadoras personales.
1.2 Instalación del sistema operativo de Linux.
1.3 Instalación del software de soporte middleware. Seleccionamos MPICH puesto que
es un estándar para el paso de mensajes.
1.4 Instalación y configuración de las herramientas de instrumentación. Para que la
herramientas de instrumentación sean funcionales sobre el cluster de Linux, el núcleo
del sistema operativo se debe parchar con fragmentos de código que permitan perfilar
el microprocesador en nuestro caso de la familia Intel P6. También se deben
configurar las librerias que permitirán realizar las llamadas de monitoreo.
2 Verificación funcional del cluster mediante la utilización de un subconjunto de los
benchmarks NAS.
3 Investigación bibliográfica de paradigmas para la evaluación de desempeño de sistemas
4 Estudio del modelo geométrico de ejecución como estrategia para el análisis de
desempeño.
5 Desarrollo de una estrategia para el analisis de desempeño basada en el modelo
geométrico de ejecución y en tecnicas de agrupamiento de multivariables.
6 Insertar directivas de instrumentación a un subconjunto de los NAS NPB y perfilar su
ejecución, tal subconjunto de benchmarks se ejecutará sobre el sistema cluster.
7 Aplicación del modelo propuesto y análisis de los resultados generados.
I.S Alcance del trabajo
Tomando en consideración el objetivo y de las actividades propuestas, el alcance de
la tesis se ha delimitado a las siguientes actividades:
1 Investigación bibliográfica de las estrategias para la evaluación de desempeño de
sistemas paralelos.
2 Estudio del modelo geométrico de ejecución.
3 Propuesta de una estrategia para la evaluación de desempeño de sistemas distribuidos
en particular sistemas tipo cluster SSI, basándose en el modelo geométrico de ejecución
y en técnicas de agrupamiento de multivariables.
4 Si la información que describen el desempeño del sistema cluster no pueden ser
perfilada, entonces, información que describe el desempeño de una máquina será
estudiada en su caso.
5 Someter los datos perfilados a la estrategia propuesta.
1.6 Infraestructura
La infraestructura presente para la realización de la experimentación consiste de:
cinco PCs Pentium III duales interconectadas por un interruptor Fast Ethernet. La
configuración del software instalado en cada nodo, se presenta en el siguiente listado:
- Sistema operativo Linux Red Hat. Tal sistema fue seleccionado puesto que tanto los
binarios y como el código fuente del sistema operativo son de libre distribución. Debido
a dependencias de versión del software de instrumentación, las versiones compatibles
del núcleo del sistema operativo son la 2.2.14 y el 2.2.9. El sistema actualmente
funciona con la versión 2.2.14,
- Benchmarks paralelos NAS NPB versión 2.3. Los NAS NPB generan la carga de
trabajo sobre el sistema. Solo un subconjunto de los benchmarks será utilizado en
particular los núcleos EP, IS, MG, CG y las aplicaciones BT, LU, SP. El código fuente
del los benchmarks fue compilado con la opción CLASSIA. El número de procesos que
Se especificaron durante la compilación de los benchmarks varían de 1 a 16 en saltos
pares o impares dependiendo de la aplicación o núcleo de la distribución de
benchmarks. Las banderas de compilación definidas en el archivo
/NPB2.3/config/make.def para el compilador de Fortran fueron FFLAGS=~03 y para el
compilador de C fueron CFLAGS=†03. Ambos compiladores egcs C y Fortran versión
1.1,2 emisión 3.0 provienen de un proyecto de la GNU.
- MPICH como soporte de Middleware. MPICH fue seleccionado debido a que es un
estándar para el paso de mensajes MPI (Message Passing Interface, MP1). MPICH es
e
PERF PAPI herramienta de instrumentación. PERF PAPI es una herramienta de
instrumentación que pennite realizar perfilar a tres niveles de granularidad, por tal
motivo le denominamos como una herramienta de granularidad fina. La distribución de
PERF PAPI esta compuesta por un conjunto de parches uno para diferentes versiones
del núcleo del sistema operativo Linux versión 2.0.36, 2.2.5, 2.2.10, 2.2.12 y 2.2.15. Y
un conjunto de librerías para instrumentar codificadas en el lenguaje de programación
C. La configuración seleccionada esta basada en el parche 2.2.15.
Todos los nodos que conforman el ambiente cluster tienen instaladas las mismas
ecificaciones de software. PERF PAPI fue seleccionado como la herramienta de
SP
instrumentación puesto que proporcionan soporte para el cambio de contexto de procesos.
La figura 1 muestra la estructura de capas del software instalada en cada nodo del sistema.
Aplicaciones secuenciales I AplIišÍ\cSi0Iì]IÍ›SBpä-Él)e]aS NlV91AP1iCaC¡ón
mi
lnsnurmntación de alto nivcl
(TA Uwmppef)
(Middleware)
lmmmimaaán Pmfilaezan Rama MPICH
PDT API Pprof Vampir
Dynlnst API Racy 'SMARTS
Instrumentación de bajo nivel Sistema operativo _ ,
Nivel sis te ma
Parche del sistema operativo PERF núcleol (red, rsh,rexec)
1 Hardware 1 ¶
Figura 1. Estmctura de capas del software de un nodo.
Tres capas de software se distinguen: aplicación, sistema y hardware. La capa de
aplicación puede clasificarse en dos subcapas: una de las cuales contiene las aplicaciones
secuenciales y paralelas de los usuarios y la otra contiene el software middleware el cual
permiten el uso de recursos distribuidos como uno solo, por ejemplo:
- El conjunto de herramientas de instrumentación TAU. TAU contiene aplicaciones para
instrumentación automática de código, perfìlamiento y rastreo de aplicaciones
secuenciales y paralelas.
- MPICH una implementación portable del estándar de paso de mensajes el cual
proporciona directivas e instrucciones para la paralelización de programas y un
ambiente para la ejecución de programas paralelizados.
La capa del sistema consiste de un micronúcleo, es decir, una distribución mínima
del sistema operativo y de directivas de bajo nivel (PERILPAPI) para accesar los
contadores de instrucciones de un microprocesador. La última capa contiene los
componentes de hardware de un nodo. En la figura 2, ilustramos la organización general
Aplicaciones paralelas I Aplicaciones secuenciales' MPICH, PVM, DIPC, HPF
l Capa globalde Linux
/ // // / //
del sistema.
fa4;
i
Pc
i
Pc
Pc
Pc
Pc
i inroruaekea iaierrszaeusa irmerrazdeaedl i intemzdeueai l inrerrezuekeu
J / I
I / I
I
< Topología de Red D
Todos los nodos del sistema tienen instalada una capa común de software. Los
nodos se comunican mediante el uso de una o mas interfaces de red (Network Interface
Card, NIC) intereonectados a una topología de red (interruptor, hub, malla, hipercubo.) El
sistema candidato utiliza un interruptor Fast Ethernet de 10/100 megabips. Un nodo
contiene dos interfaces de red, una se encuentra conectada al interruptor de red y la
segunda se encuentra conectada a la red local de la institución. En la tabla I, presentamos
un listado general de los componentes de hardware que conforman el sistema cluster.
i Campønentn Nado I Nudo 2 Nada 3 Nada 4 Nado 5
Tabla I. Confi uración de hardware del sistema cluster.
Dua_l~PIII i;Í1al†PIII
_ÍÉ',Í"€"" C1
i Procesador Dual†PIII Dual-PIII ual†PIII
lMem0r¡a
l 128 MB
liza MB
|12s MB
|1zs MB
za MB
lniswdum l 1oG
\1oG
| 1oG
|1oG
i Tarjeta madre i Intel i Intel I Intel Ilntel ntel
lrmjeta de red l srs
lsls
lsrs
|s1s
sis
El sistema cluster se encuentra configurado como un sistema cluster tipo Beowulf.
Los criterios para clasificar un sistema distribuido como un cluster de tipo Beowulf son:
- Los componentes de hardware que conforman el cluster son componentes de estantes o
mas comúnmente denominados de comodidad.
- Y cluster opera mediante el uso de un sistema operativo de libre distribución, tal como:
Linux o FreeBSD. Esta condición no es estricta puesto que muchos clusters actuales
también se construyen con sistemas operativos comerciales.
sistema dedicado. En la figura 3, ilustramos la organización fisica de un cluster dedicado
compuesto por cinco nodos y un interruptor. Aqui un nodo actúa como un portal y la
función de los otros nodos es la de procesar las tareas que se les asignen.
Q
... .._. ...._..
Figura 3. Topología de interconexión de un cluster dedicado.
I.7 Esquema de la tesis
[šlllïfl
En el capitulo 2 iniciamos con una introducción al área de evaluación de
desempeño. La orientación de tal capitulo esta encaminada a la evaluación de desempeño
por medición en particular de sistemas distribuidos paralelos SSI. Concluimos este capítulo
con la reflexión Las herramientas tradicionales y los paradigmas para la evaluación de
desempeño proveen suficiente información para describir el rendimiento promedio del
sistema, pero no para detectar cuellos de botella que deterioren el desempeño.
El el capítulo 3 se presenta una estrategia novedosa para la evaluación de
desempeño la cual utiliza: los benchmarks debido a su gran aceptación y un modelo
novedoso para la evaluación de desempeño denominado Modelo Geornetrico de Ejecucion
del desempeño del sistema en prueba.
En el capitulo 4 se presenta dos estrategias para la evaluación de desempeño de
sistemas distribuidos. Tales tienen como base el modelo geométrico de ejecución y las
técnicas de agrupamiento conceptual de multivariables. Los resultados experimentales se
presentan en el capítulo 5. En en el capitulo 6 se discuten los resultados experimentales y
se proponen futuras lineas de investigación.
Tres apéndices son incluidos. El apéndice A contiene una recopilación de
herramientas para enumerar instrucciones ejecutadas para sistemas operando bajo el
sistema operativo Linux. El apéndice B presenta una introducción a técnicas de
agrupamiento conceptual de multivariables. Y el apéndice C contiene tablas de
Capítulo II
Compendio de Análisis de Desempeño
II.1 Introducción
En este capitulo presentamos un breve abstracto del campo de análisis de
desempeño. Ponemos especial atención en los paradigmas y estrategias de evaluación de
desempeño de sistemas tipo SSI. También se presentan los benchmarks como una
herramienta suplemental para la evaluación de desempeño. Finalizamos el capitulo
realizando algunas observaciones con respecto a las desventajas que presentan los
paradigmas y benchmarks para propósitos generales de la evaluación de desempeño.
El termino desempeño puede ser definido como: la ejecución de una acción; el
cumplimiento satisfactorio o no satisfactorio de una actividad o petición. Contemplando
como principal objetivo la ganancia de beneficio en comparación con un estado previo, por
ejemplo, disminución en tiempo de ejecución. En el área de Ciencias de la Computación el
término desempeño es nomialmente referenciado como una propiedad del sistema
presentada como una cantidad abstracta, por ejemplo: millones de operaciones de punto
flotante por segindo. El procedimiento utilizado para generar tal cantidad abstracta es
denominado análisis de desempeño. Existen varias razones que justifican la necesidad del
análisis de desempeño, algunas de las mas comunes según Jain [Jain Anil,199l] son:
- Afinación del sistema. Por afinación del sistema nos referimos a una actividad de
función, algoritmo y protocolo de comunicación; utilización de memoria y en general
cualquier recurso de hardware o software.
- Prueba de altemativas de diseño. Las fases de desarrollo de software y hardware
pueden ser auxiliadas por la evaluación de desempeño. La evaluación de desempeño
sirve como una herramienta para decisiones de diseño, mediante la predicción del
posible funcionamiento del sistema,
- Comparacion de sistemas candidatos.
- Identificación de cuellos de botella, en otras palabras, detección de problemas en el
desempeño del sistema.
- Caracterización de la carga de trabajo.
- Planeación de capacidad. Esto es, determinar el número y tamaño de los componentes
para la predicción de futuras cargas de trabajo.
Algunas organizaciones involucradas en el área de análisis de desempeño son: La
Asociación de Maquinaria de Cómputo Grupo de Interes Especial tal grupo investiga y
publican temas de evaluación de sistemas de cómputo [ACM SIGMETRICS, 2000],
Transacción en Modelaje y Simulación de la Computadora [ACM TOMACS, 2000], el
Instituto de Ingenieros en Electricidad y Electrónica [IEEE Computer, 2000], Grupo de
Evaluación de la computadora [CMG initiative, 2000], Federación Intemacional para el
Procesamiento de Información [IFIP, 2000], La Sociedad para la Industria y Matemáticas
Aplicadas [SIAM, 2000], y la Asociación Americana de Investigación de Operaciones
novedosos, estrategias para la simulación y nuevas técnicas para el análisis de desempeño.
El análisis de desempeño se puede concebir como un procedimiento sistemático
"donde los métodos para el análisis de desempeño no son globales o aplicables a cualquier
tipo de problema. Aun así, algunos pasos en los que coinciden son: definición de los
objetivos y especificación del sistema, realizar una relacion de los servicios y salidas,
seleccionar las métricas, listar los parámetros, especificación de los factores de estudio,
selección de las técnicas o paradigmas para la evaluación, definición de la carga de trabajo,
diseño experimentos, análisis e interpretación de los resultados y presentación de
resultados" [Jain Anil, 1991].
II.2 Metas del análisis de desempeño
Uno de los principales objetivos del analisis de desempeño es comprender el
comportamiento o funcionamiento neto de desempeño de un sistema para propósitos de
optimización. Otros objetivos son: evaluar diseños alternativos para un sistema, comparar
sistemas candidatos, afinamiento de sistemas, predicción, etc. Estos objetivos pueden
considerarce comunes tanto para sistemas secuenciales como para paralelos. Sin embargo,
sistemas distribuidos SSI 0 en general cualquier arquitectura paralela (MIMD) tiene como
objetivo primordial la escalibilidad. Esto es, "como es el cambio de desempeño de un
sistema en relación con los efectos de software y hardware al incrementar el número de
procesadores o unidades funcionales" [Allen Malony, 2000].
La escalabilidad normalmente es delimitada por cuellos de botella generados ya sea
desempeño neto e identificar problemas en el desempeño del sistema (cuellos de botella)
con la posibilidad de realizar ambas mediciones a un nivel arbitrario de sistema y con la
granularidad deseada la escalabilidad entonces puede ser predecida,
En conclusión, el principal objetivo del análisis de desempeño de sistemas
secuenciales y paralelos se satisface al responder a tres preguntas básicas: ¿Porqué el
desempeño del sistema es pobre? ¿Qué que causa los cuellos de botella? y ¿Cuando
ocurren? No existe un procedimiento general para responder estas preguntas. Sin embargo,
estrategias hibridas para el análisis de desempeño que incorporen el modelo del sistema,
utilicen técnicas estandares y portables para caracterización de la carga de trabajo, y
herramientas dependientes de la plataforma pueden proporcionar una buena plataforma
para esta actividad. Esta estrategia se ilustra en la figura 4.
Tal procedimiento para el análisis de desempeño toma en consideración
información de la aplicación secuencial o paralela y características de la arquitectura, por
ejemplo: la topología de interconexión. Observaciones acerca del desempeño del sistema se
recaban durante la ejecución de la aplicación mediante el uso de herramientas de
instrumentación. Posteriormente, la infonnación recabada puede es procesada por una
estrategia para la evaluación de desempeño ya sea por modelaje o medición para generar
datos experimentales que describan el desempeño del sistema. La estrategia de evaluación
puede refinarse proponiendo una nueva hipótesis de desempeño auxiliándose en un
l77"77"“_"'““\
;
,it
U
,
` `
l Tí j
l Sjswma Apl`x>ación
j distribuido Paralela
Caiacterlstitms de la aplicación Restricción de observaciones, y sistem, historial de desempeño hem-¡mientas de instrumentación
I-Ii otesis de.p, . Evaluación de.
7› desempeño I M desempeño I M
Analisis de amnpeaa
maaeuje medición
Refinamiento de hipótesis a partir de resultados irnplncos Registro de
Conocimiento de ¿M _
dfiwueñfl
Resutaaos dei rendimiento
d“*1d°""'P°“°
Datos expenxnentales
Figura 4. Modelo general para el análisis de desempeno, extraído
de [Allen Malony, 2000]
II.3 Métricas
113.1 Métricas genéricas de rendimiento
Una métrica se puede definir como una unidad o un criterio para la representación
del desempeño. De acuerdo con Hwang y Xu en [Hwang Kai y Zhiwei Xu. 1998] las
métricas más utilizadas por los usuarios son: tiempo de ejecución, velocidad de
procesamiento, caudal del sistema (throughput) y costo/beneficio. Existe una amplia
variedad de métricas, se puede decir que para cada subsistema implementado software o
hardware una métrica es propuesta. En la tabla II presentamos un listado de las métricas
Velocidad de Métrica
Tabla II. Métricas para la representacion de desempeño.
Descripción
procesamiento
Es la capacidad de procesar una carga de trabajo con diferentes
entradas. El tiempo de ejecución puede variar pero la velocidad de procesamiento se mantiene.
Costofefectividad Esta definido como la razón entre la velocidad alcanzada y el costo total por unidad de tiempo de ejecución.
Caudal del sistema El caudal del sistema se define como el número de trabajos
procesados por unidad de tiempo. Si un trabajo es procesado en
cada unidad de tiempo el caudal es recíproco al tiempo de ejecución. Tal métrica es utilizada cuando múltiples trabajos se
ejecutan de manera simultánea. El caudal de un sistema se puede incrementar incorporando:
- Pìpelining donde trabajos sucesivos traslapan sus ejecuciones en varios estados del pipeling.
- Asignado una tarea a un procesador en una máquina multiprocesador.
Tiempo de ejecución Proporciona una métrica para medir el tiempo requerido para procesar una carga de trabajo de una aplicación, por ejemplo:
tiempo de iniciación, tiempo de espera en cola, E/S, etc. Fosdick
[Fosdick er al., 1996] clasifica el concepto de tiempo de ejecución en cuatro categorias:
- Tiempo de usuario es la cantidad de tiempo que el CPU esta activo procesando las tareas de una aplicacion, No se considera el tiempo que requiere el sistema operativo para administrar las tareas de la aplicación.
- Tiempo de sistema mide el tiempo que el sistema operativo requiere para la administración de las tareas de una aplicación.
- Tiempo de pared mide la diferencia del tiempo de inicio y terminación de la ejecución de una aplicación. Esta medición
puede ser mayor que la suma del tiempo de usuario y del sistema, puesto que muchos sistemas soportan la multiprogramación.
Las métricas para la evaluación de desempeño pueden ser clasificadas de acuerdo a
su dependencia o independencia arquitectónica [Hwang Kai y Zhiwei Xu. 1998]. Tres
categorias se distinguen: tiempo de ejecución, número de instrucciones ejecutadas y
número de operaciones de punto flotante. El tiempo de ejecución puede ser definido como
una medida del tiempo necesario para procesar la carga de trabajo de una aplicación. El
tiempo de ejecución puede variar al ejecutar la misma carga de trabajo en distintos
sistemas, por lo que esta métrica se clasifica como dependiente del sistema. Algunas
representaciones para el tiempo de ejecucion incluyen: tiempo de usuario, tiempo de
sistema, tiempo de pared, y tiempo de respuesta. Las unidades utilizadas para representar el
tiempo de ejecución son: horas, minutos, segundos, microsegundos, milisegundos, etc. La
unidad mas común para representar el tiempo de ejecución es segundos,
El número de instrucciones ejecutadas o conteo de instrucciones mide la carga de
un sistema en terminos del número de instrucciones ejecutadas. El conteo de instrucciones
depende del conjunto de instrucciones de la arquitectura del sistema. Solo cuando distintos
sistemas contiene el mismo conjunto de instrucciones en su arquitectura, el conteo final de
el número de instrucciones ejecutadas pueden ser equivalentes. La unidad para representar
el número de instrucciones ejecutadas son MIPS (Millions of Instructions Per Second).
Las operaciones de punto flotante (FLOating Point operations FLOPS) miden la
carga de trabajo en términos del número de operaciones de punto flotante que un sistema
ejecuta por segundo. Las unidades de medición más comunes para FLOPs se listan en la
Tabla III. Unidades para repgsentación de FLOPs.
Abreviación Descripción Unidad
¶MFLo1›s
Miiiønes de 1=Lo1›s
V
mo*
l
GFLOPS
|B¡110nes de FLoPs
l
1x1o°
l
rrrovs
|rn1i<›nes de 1=LoPs
J
mo”
l___4
Los FLOPS son considerados independientes de la arquitectura. Puesto que para
realizar una medición de una carga de trabajo es necesario considerar reglas para el conteo
de operaciones de punto flotame Tales reglas se listan en la tabla IV.
Tabla IV. Reglasyara el conteo de FLOPs. Operación iCantea i Cømentarias
A[2*i] = Bfi~1] + 1.5 * C r 2 La suma, resta o multiplicación cuentan como un
1 FLOP
La indexación no cuenta
3 La asignación no individual no cuenta
X=Y La asignación aislada o directa cuenta como 1
1 FLOP
Si (X>Y) Max: 2.0 * X 2 La comparación cuenta como 1 FLOP
X:(float)i-l-3.0 La conversión de tipos de datos fa flotante-2 cuenta como l FLOP
X I Y/ 3.0 + sqr(Z) La división y la raíz cuadrada cuentan como 4
9 FLOPS
,X = sin( Y ) - exp( Z ) \El seno, exponencial, etc; cuentan como 8`
ll FLOPS
Otras métricas utilizadas para representar el desempeño son: MOPS (Millones de
Operaciones Por Segundo), CPI (Cielos de Reloj por Instrucción) y el pico teórico, La
métrica MOPS define la velocidad de un sistema en términos de los millones de operandos
equivalente a MIPS. Cuando el número de operandos es mayor que uno entoces el número
de contados MOPS sera mayor que MIPS. CPI define la velocidad de un sistema en
ténninos del número de ciclos de reloj por instmcción. El pico teórico, describe el número
máximo teóricamente de FLOPS que una máquina puede procesar.
Las métricas presentadas hasta el momento pueden ser utilizadas para evaluar
sistemas secuenciales y paralelos. Sin embargo, existen estrategias especiales diseñadas
para evaluar el rendimiento de sistemas paralelos. Tal vez la métrica mas fundamental y
controversial para la evaluación de sistemas paralelos es la Ley de aceleración de Amdahl.
lI.3.2 Métricas para la evaluación de sistemas paralelos
En el ámbito del paralelismo, la ley de Amdahl es la métrica más fiindamental y
controversial para la evaluación de desempeño. Tal define un limite superior en el
desempeño de un procesamiento paralelo. En términos de un solo parámetro de software la
fracción secuencial del procesamiento y un parámetro de hardware el número de
procesadores [Allen Malony, 2000]. Existen especializaciones para la ley de Amdahl, tal
como: la ley de Gustafsons; y la ley de Sun y Ni [Hwang Kai y Zhiwei Xu, 1998]. Tales
leyes, buscan alguna solución al problema del cuello de botella secuencial y al tamaño fijo
del problema que especifica la ley de Amdahl.
Las métricas de evaluación de desempeño de sistemas paralelos consideran mas
parámetros. El rendimiento de un sistema paralelo puede ser descrito no solo en términos
del tiempo de procesamiento TPM , sino se consideran tiempos y costos adicionales Tpm .
- Administración de procesos. Por ejemplo: creación y tenninación de procesos.
- Operaciones de grupo. Por ejemplotereación y destrucción de grupos.
- Consulta de información de procesos. Por ejemplo: solicitud del identificador (ID) del
un proceso, del rango de un proceso, tamaño de un grupo, etc.
Interacción de procesos TM, , esto es:
- Tiempo requerido para la sincronización. Algunas operaciones de sincronización de
procesos son: barreras, regiones críticas y eventos.
- Operaciones de agregación. Por ejemplo: división y reducción.
~ Operaciones de comunicación. Por ejemplo: difusión de información (broadcast), punto
a punto, lectura y escritura de variables compartidas.
Tomando en consideración estos criterios, el tiempo de ejecucion de una aplicación
paralela se puede expresar como T: Tpm+ Tpwft-TWu., Tomando en cuenta este modelo
para la representación del tiempo paralelo de ejecución; en la tabla V se muestra una lista
de métricas de desempeño paralelas:
Donde n define el número de procesadores. DOP representa el grado de paralelismo
de una aplicación. Esto es, durante la ejecución de una aplicación el sistema puede utilizar
n o menos procesadores considerando que la arquitectura consiste de al menos n nodos,
para procesar sus tareas. Finalmente la constante W define la carga de trabajo a la que
somete el sistema. Para una descripción detallada de las expresiones que se presentan en la
Tabla V, Métricas de desem eño ara sistemas paralelos.
ii Natación Descripcíórx Expresión
TI Tiempo secuencial de ejecución T1: 2 T¡(¡)
tem;
T" Tiempo paralelo con nf nodos T'
ff 2 _ì+†,i..+†.",,,.
i<:<1; rmn[DOP,,")Tw Ruta critica Tm: Z T1 (i ]
|<mi DOP,
pfl Velocidad con n¬1odos 1>"= W / T"
S" Aceleración con n~nodos S"=T¡ / T"
En Eficiencia con n-nodos En : Sn / n = T] / ( ,, Tu)
Un Utilización con n¬nodos U":P"/( V, PPM)
Tu Gastos generales totales Tn : TW + TM (overhead)
Promedio de paralelismo T1/Tw
Promedio de gastos generales T0/ W
Promedio de granularidad W/ TU
Una desventaja tanto de métricas secuenciales y como paralelas es que el
desempeño de un sistema lo representan como una abstracción de alto nivel, Es decir,
describen el desempeño general como una cantidad. Por ejemplo: durante un
procesamiento el sistema puede ejecutar distintas operaciones, pero a final de cuentas el
rendimiento general del sistema se representa solo como un promedio de operaciones de
punto flotante. Desafortunadamente, esta información es de poca utilidad para propósitos
de añnamiento de un sistema. Especialmente si el objetivo es detectar cuellos de botella.
evaluación de desempeño que permitan realizar un analisis de bajo u alto nivel.
II.4 Estrategias de evaluación de desempeño
Una estrategia de evaluación de desempeño puede considerarse como una receta de
cocina, define los ingredientes y la secuencia de preparación. Los ingredientes en nuestro
contexto representa la infonnación recabada que describe el rendimiento del sistema a
evaluar, mientras que la secuencia representa el procedimiento para procesar la
infonnación recabada. En la practica, existen dos estrategias para el análisis de desempeño:
evaluación por modelaje y evaluación por medición.
[[.4.1 Evaluación por modelaje
La evaluación por modelaje es una técnica que simula el rendimiento de un sistema,
mediante el uso de un modelo del sistema en vez del sistema en si. El propósito del modelo
es estimar caracteristicas del desempeño tales como utilización de recursos y tiempos
promedio de respuesta (servicio, espera, etc.). Dos técnicas utilizadas para la
implementación de un modelaje son mediante la utilización de: modelos analíticas
matemáticos y a través de la simulación [Krishnaswamy Umesh, 1995].
El modelaje analítico consiste en representar el modelo del sistema como un
conjunto de ecuaciones matemáticas, tales ecuaciones normalmente se derivan de la Teoria
de Colas. En el área de teoria de colas los modelos generados pueden simular de manera
adecuada la competencia por recursos. Sin embargo, no pueden modelar la sincronización
carecen en capturar todos los aspectos de un sistema real.
Dos métodos frecuentemente utilizados para la evaluación de desempeño por
simulación son: simulación por eventos discretos estacásticos y simulación guiada por
eventos de rastreo. La evaluación por eventos discretos estocásticos es una simulación de
un modelo de colas, el cual es guiada por una secuencia de número aleatorios con una
distribución predefinida por el usuario. La evaluación guiada por eventos de rastreo es una
simulación de un modelo deterministico, el cual es guiado por una secuencia o rastreo
recabada a través del perfilamiento de la ejecución del sistema real.
II.4.2 Evaluación por medición
La evaluación por medición se concentra en recabar infonnación de rendimiento
durante el desempeño del sistema, esto lo realiza perfilando el procesamiento de la carga
de trabajo a la que se somete. En la ñgura 5, se muestra un procedimiento general de la
técnica de evaluación por medición. El primer paso consiste en la caracterización o en
deñnir la carga de trabajo. Esto es, la selección de un conjunto de programas o benchmarks
que representan la carga de trabajo. Durante la ejecución de la carga de trabajo,
herramientas de instrumentación tales como: relojes, perfiladores de bajo nivel, etc; son
utilizados para generar un conjunto de observaciones acerca del desempeño del sistema. La
información recabada posteriormente es analizada por un modelo matemático para generar
información experimental que describa el desempeño del sistema monitcreado.
El usuario final puede implementar aplicaciones sintéticas para propósitos de
mediante esta práctica, De esta manera, optimizaciones son efectuadas sobre el código de
la aplicación sintética con el objetivo de reportar un mejor desempeño, Una altemativa al
desarrollo de una aplicación sintética es mediante el uso de benchmarks. Los benchmarks
son diseñados para ser portables, por lo que características especificas de la arquitectura,
las cuales pueden mejorar el desempeño durante la ejecución del benchmark, no son
especificadas (esta es la desventaja de la portabilidad). Sin embargo, una ventaja de los
benchmarks consiste en que el código del mismo nonnalmente es de libre distribución. Por
lo que, posteriormente este se puede optimizar para el sistema que se desee evaluar. En
secciones posteriores retomamos el terna de benchmarks.
Las herramientas de instrumentación son utilizadas para realizar mediciones de
eventos a una granularidad tina. Tales herramientas deben de ser rápidas, precisas, no
intrusivas y eficientes en la utilización de memoria (disco). Rajkumar Buyya [Rajkumar
Buyya, 1999] define que las herramientas de instrumentación están compuestas por uno o
más de los componentes que se describen en la siguiente lista:
- Un medio para realizar llamadas desde el nivel de aplicacion a rutinas de monitoreo de
rendimiento.
- Una librería que este compuesta por un conjunto de rutinas que permitan el monitoreo y
salvar distintos aspectos del desempeño de un programa.
Éššà
Aplicación Arquitectura
paralela
Restricción de observaciones Herramientas de instrumentación
Observaciones de
desempeño
Analisis de desempeño por: medición
Datos experimentales
de desempeño
Figura S, Procedimiento generico para la evaluación por medición.
Dos estrategias de instmmentación son perfilar y rastreo. La tecnica de perfilar es
menos intmsiva puesto solo se encarga de recabar conteo de instrucciones u operaciones.
Mientras que la técnica de rastreo registra una secuencia dinámica de eventos. En cada
evento se considera información que describe el estado de varios subsistemas, por ejemplo:
microprocesador, administrador de memoria, etc. Esta técnica tiene como efecto
secundario el incrementar el tiempo de ejecución de una aplicación, generando entonces
información errónea del rendimiento real del sistema. En la tabla VI se listan herramientas
Tabla VI. Herramientas de instrumentación para sistemas con paso de mensajes. Herramienta l Caracteristicas URL
AIMS Instrumentación librerias hL^p://science.nas.nasa.gov/Software/AIMS
para el monitoreo y
análisis.
MPE Libreria de conexión, http://www.mcs.anl.gov/mpi/mpich snapshot, upshot,
visualización de
desempeño.
Pablo Libreria de monitoreo y http://wwwfpablo.cs.uiuc.edu/Pro`ects/Pablo analisis.
Paradyn Instnimentación htgg://www,cs.wisc.edu/paradyn
dinámica, análisis.
SvPablo Instrumentación http://www-pablo.cs.uiuc.edu/Projects/Pablo/ integrada, librería de
monitoreo y análisis.
Vampir Libreria de monitorea y http://wwwpallas.de/pages/vampirhtm visualizacion de
desempeño.
Dimemas Predicción de desempeño hdp://wwwpallas.com/pages/dimemas.htm para aplicaciones de paso
de mensajes.
Paraver Visualización y análisis htip://Wwwcepba.upc.es/paraver de programas.
La tabla VII muestra herramientas para perfilar el desempeño de un sistema que se
ejecuta bajo el sistema operativo Linux. Actualmente, la actividad de perfilar es realizada a
nivel de hardware mediante el uso de contadores de desempeño incorporados en los
microprocesadores. Una de las características mas atractivas que hacen un software para
perfilar favorable sobre otro, es que brinden soporte para el cambio de contexto de
Tabla VH. Herramientas para perfil_a_r del sistema operativo Linux.
i Herramienta l Característica l URL
PERF Librería en para el 7 Í monitoreo, cambio de
contexto, soporte para la familia de microprocesadores
de la familia P6.
häpi//wWw.beowulf. org/software/software.
html
PCL Librerias de monitoreo en C,
CH, fortran, no se soporta el
cambio de contexto, soporte
para arquitecturas: DEC
ALPHA(2l164,21264), SGI MIPS SGI Rl0000 y Rl2000,
Intel P6 y Power PC640e.
ht@://www.fz~`uelich.de/zam/PCL/
PAP] Soporte para la familia P6, cambio de contexto.
http://icl.cs.utk.edu/projects/papfl
PPERF Soporte para las arquitecturas Pentium y Pentium Pro. No se soporta los cambios de
contexto
http://gso_lanl. gov/-mpg/perfmon.htrnl
PCM Libreria en C para el
monitoreo, no se soporta los
cambios de contexto.
http://www.scl.ameslabgov/Pro`ects/Rabbi
1
La evaluación por medición y la simulación pueden considerarse como estrategias
tradicionales o estándares para la obtención y procesamiento de información de
desempeño. Nuevas estrategias para la evaluación de desempeño consideran otros factores
(tales se muestran en la figura 4), tal como: el modelo del sistema, caracteristicas de la
aplicación, una base de datos que almacene previo conocimiento de el desempeño del
sistema, etc. Mas información sobre este tópico se puede consultar en [Allen Malony,
ILS Benchmarks
Los benchmarks son una estrategia para la evaluación de desempeño que han tenido
una amplia aceptación por los usuarios. Esto se debe principalmente puesto que han sido
desarrollados no solo para estimar el desempeño promedio de un sistema, pero para que
sean portables a una variedad de plataformas. Los benchmarks no son estrategias globales
de evaluación de desempeño, normalmente estan destinados para el análisis de un
subsistema, por ejemplo: tráfico de red, conteo de operaciones, solicitudes de información
a una base de datos (viaje redondo), utilización de memoria, E/S, etc.
Un benchmark puede ser definido como una prueba que mide el procesamiento y
los movimientos de datos de un sistema o subsistema durante el procesamiento de una tarea
o un conjunto de tareas bien definidas. Actúa como un monitor o herramienta de
diagnostico. Una distribución de benchmarks es referenciado normalmente como un
conjunto de benchmarks o programas, los cuales definen procedimentos especificos,
entrada de datos precletinidas, condiciones de prueba, métricas de desempeño, etc.
H.5.1 Clasificación de benchmarks
Los benchmarks pueden ser clasificados de acuerdo a su: tipo de aplicación, nivel
de medición y abstracción de la aplicación. Por tipo de aplicación nos referimos al uso o el
propósito para el cual fue desarrollado el benchmark. Por ejemplo supongamos que
estamos interesados en el desempeño de operaciones de punto flotante de un sistema, por
lo tanto la aplicación del benchmark es intensiva numérica. Los tipos de clasificación
transacciones de información, orientada a la administración de información, etc. La
clasificación nivel de medición determina si la evaluación de desempeño de un sistema es
parcial o completa. Bajo tal consideración, los benchmarks pueden ser clasificados corno:
- Macro benchmarks los cuales comparan diferentes sistemas con respecto a un tipo de
aplicación, por ejemplo: los benchmarks paralelos de la NAS NPB.
- Micro benchmarlcr los cuales ponen en prueba subsistemas especificos de un sistema,
por ejemplo: velocidad del CPU, velocidad de E/S, latencia de la red, etc.
La clasificación abstracción de la aplicación clasifica un benchmark como una
aplicación completa o un núcleo. Un núcleo es un programa pequeño extraido de una
aplicación, el cual mantiene las caracteristicas principales de la aplicación. Una aplicación
es un programa completo que es utilizado para realizar algún trabajo real, por ejemplo: un
procesador de palabras, rutinas de álgebra lineal, etc. Las aplicaciones pueden realizar
algun trabajo real o pueden ser programas sintéticos diseñados especificamente para la
evaluación de desempeño. Mas información acerca de tal clasificación se pueden encontrar
en [Hwang Kai y Zhiwei Xu, 1998].
ll.5.2 Algunos benchmarks
En los siguientes párrafos presentamos una breve sumario de varios benchmarks
que se describen en la página de web benchmarks FAQ versión 6.0 [Benchmark, 1999] y
en otros recursos de Web. La mayor parte del software que describimos son de libre
SPEC
Las siglas SPEC sig-nifican Cooperativa para la Evaluación de Desempeño de
Sistemas (System Perfonnance Evaluation Cooperative, SPEC). Tal cooperativa fue
fundad en 1988 por un grupo pequeño de distribuidores de estaciones de trabajo, los cuales
se percataron de la necesidad de pruebas estándares de desempeño. Su objetivo es asegurar
que el mercado tenga un conjunto de métricas justas y útiles para un amplio conjunto de
sistemas. Durante el tiempo de este escrito (24/Noviembre/1999), La estructura de la
organización SPEC esta conformada por tres grupos:
- Grupo de sistemas abiertos (Open System Group, OSG).
- Grupo de alto desempeño (High Performance Group, HPG).
- Grupo de caracterización de desempeño gráfico (Graphics Performance
Characterization group, GPC).
La distribución OSG evalúa estaciones de trabajo de alto desempeño y servidores
con sistemas de ambientes abiertos. Mide el desempeño de componentes y de aplicaciones
a nivel aplicación. OSG esta compuesta por las siguientes distribuciones: SPEC CPU95,
SPEC JVM98, SPEC SFS2.0 y SPEC WEB99. SPEC CPU95 consiste de dos paquetes:
- CINT95 es utilizada para generar operaciones de tipo enteras. Los programas que
componen CINT95 son: base de datos orientada a objetos, simulador del
microprocesador motorola 88100, interprete de xlisp, compilador de GNU C 2.5.3,
compresión y descompresión de imágenes, etc.
conforman CFP95 son: generación de malla vectorial, ecuaciones de agua poca
profunda, método de Monte Carlo, ecuación de Navier Stokes, ecuaciones diferenciales
parciales, etc.
SPEC JVM98 es utilizada para compara plataformas IVM. SPEC SFS 2.0 pone a
prueba el desempeño de sistemas de archivos de red (Network File Systems, NFS). SPEC
WEB99 es una prueba de desempeño estándar para servidores WWW. La distribucion
HPG mide el desempeño (tiempo de ejecución y caudal) de sistemas de alto rendimiento
ejecutando aplicaciones de tipo industrial. El ambiente objetivo son sistemas paralelos y
sistemas distribuidos, por lo que versiones de PVM y MPI existen. La distribución HPC es
conocida como SPEChpc96 y esta compuesta por tres aplicaciones: procesamiento sísmico
(SPECseis96), quimica computacional (SPECchem96) y modelado de climático
(SPECclimate).
La distribución GPC mide el desempeño del subsistema de gráficos de un sistema.
Las tres distribuciones que conforman GPC son: SPECapc, SPECmedia y SPECopc.
SPECapc es un benchmark estándar para subsistemas de grañcos, SPECmedia contiene
benchmars para MPE¬2, reconocimiento de voz, posicionamiento de sonido en 3D,
gráñcas orientadas para el entretenimiento en 3D y páginas de web habilitadas con
aplicaciones de multimedia en Java. La distribución SPECopc contiene un benchn1ark para
AIM
En Palo Alto la organización denominada tecnologias AIM desarrollo dos
distribuciones de benchmarks. La distribución III mide el desempeño general de un sistema
mediante el monitoreo de: rutinas de tareas (procesamiento de palabras, administración de
base de datos, etc.) y rutinas de dispositivos (memoria, disco, etc.). La distribución V mide
el caudal de una estación de trabajo en un ambiente multitareas, Ambas distribuciones son
de libre distribución y el código fuente esta escrito en C.
LINPACK
LINPACK fue desarrollado y es mantenido por Jack Don Garra en el departamento
de Ciencias de la Computación en la Universidad de Tennessee. El paquete Ll'N`PACK es
utilizado para realizar procesamiento real, consiste de un conjtmto de rutinas de álgebra
lineal utilizadas para resolver y analizar ecuaciones lineales y problemas de minimo
cuadrados. Las matrices pueden ser generales, acotadas, simetricas indefmida, simétrica
positiva, triangular y tridiagonal cuadrada. El código fuente se encuentra en el WEB y esta
codificado en C y Fortran.
Benchmarks paralelas de la NAS (NPB)
NPB fue desarrollados en el Centro de Investigación Ames en NASA. La primer
versión fue programada en Fortran por Sisiria Weeratunga, estos códigos posteriormente
fueron recodificados en C por un grupo de estudiantes de la Universidad de Wisconsin en
una aplicación de gran escala, la simulación de un problema de la dinámica de fluidos
(Computational Fluid Dynamics, CDF). NPB consiste de cinco núcleos (EP, IS, MG, CG,
and FT) y tres aplicaciones (BT, LU, SP). La tabla VIII presenta una breve descripción de
las cinco aplicaciones y los tres núcleos.
Tabla VIII. Aplicaciones y núcleos de la distribución NPB.
Distribución j Abreviación j Descripción -T
IS Ordenamiento de enteros basándose en el algoritmo de
núcleos j EP jTrivialmente paralelizables (Embarrassingly Parallel, EP),
j ordenamiento de cubetas.
Poisson escalar de 3D.
CG Método de los gradientes conjugados, calcula el eigenvalor más pequeño de una matriz positiva definida.
FT Resuelve una ecuación diferencial de 3D utilizando el método espectral de la transformada rápida de Fourier.
MG Método Multi~Grid para solucionar una ecuación de
Aplicaciones j BT Bloque Tri~diagonal
j LU Bloque inferior y superior tridiagonal.
j SP Escalar Pentamdiagonal.
Todos las aplicaciones utilizan diferentes estrategias para solucionar la ecuación de
Navier-Stokes. En la tabla IX, se presentan los tamaños o cargas de trabajos generados por
los distintos benchmarks.
Tabla IX. Cargas de trabajo generadas or NPB,
Benchmark Clase S Clase W j Clase A Clase B j Clase C
Benchmark Clase S I Clase W I ClaseA j Clase B I Clase C j
cc
1400|
7000|
14000l
7so00|
150000
rr
e4*|
12s1›r32|
zssfmsl
s12X2s§|
5121
IS 2\s| 220 2111 2151 21'/I
LU
12*`_
33*
srl
102* l
iszfil
sP
121
363
641 l
1021]
1621 l
BT
1z*|
243|
641 l
102* l
1623 l
II.6 Sumario
Existen varias razones que justifican la necesidad del análisis de desempeño
(comparar sistemas candidatos, definición de la carga de trabajo, etc.) Una de las
principales razones es la identificación de las deficiencias de desempeño o detección de los
cuellos de botella en el desempeño del sistema. En los sistemas paralelos se tiene como
mayor prioridad mayor el criterio de escalabilidad, Esto es, que tan bien el desempeño del
sistema se sostiene cuando el número de procesadores o de unidades funcionales es
incrementado.
No existe ninguna duda de la importancia del análisis de desempeño. Es por eso
que métricas de evaluación, paradigmas y estrategias han sido desarrolladas. El paradigma
más fundamental y controversial para la evaluación de sistemas paralelos es la Ley de
Amdal1l”s. A pesar de su eficacia en la descripción los limites del desempeño de una
aplicación paralela, la aceleración 0 ganancia de desempeño proporciona información muy
pobre para la identificación de problemas en el desempeño de un sistema.
de amplia aceptación. Sin embargo, solo proporcionan una abstracción de alto nivel en
forma de una cantidad que describe el desempeño general del sistema. Algunas
caracteristicas que hacen los benchmarks convenientes son: aceptación, portabilidad, el
código fuente es de libre distribución y predefinen una carga de trabajo. Estas
caracteristicas hace atractivo la adaptación de los benchmarks para elaborar técnicas mas
complejas de evaluación de desempeño.
Una estrategias compleja para el análisis de desempeño pueden considerarse como
una composición híbrida de métricas, paradigmas y los procedimientos para su utilización.
Por ejemplo: la evaluación de desempeño a través de la simulación y medición. Sin
embargo, si las métricas de tales estrategias solo proporcionan una abstracción de alto nivel
del desempeño del sistema. Por lo que, poco beneficio se obtendrá de aplicar tales
estrategias.
Lo que se requiere es una métrica o estrategia que proporcione una descripción de
granularidad tina del desempeño de un sistema. El modelo geométrico de ejecución de
máquina satisface tal requerimiento o necesidad al representar el desempeño no como un
número sino como un vector de mediciones (vector de desempeño). En el capitulo 3,
Capítulo III
Modelos de Evaluacion de Desempeño
III.1 Introducción
En este capitulo presentamos un modelo para la evaluación de rendimiento
denominado Evaluación de Computadoras Usando Vectores de Desempeño
[Krishnaswamy Umesh, 1995]. Se estudian dos modelos de medición de desempeño de
propósito general: vectores de desempeño y el modelo geométrico de ejecución de
máquina.
Un vector de desempeño es propuesto para la evaluación de múltiples
caracteristicas de la arquitectura de máquina. Sin embargo, el modelo de vectores de
desempeño falla en estimar el desempeño de tm sistema. Se reporta la obtención de
mediciones negativas en algunos parámetros del vector de desempeño al aplicar tal
método. El modelo geométrico supera este problema al proveer tres componentes para
modelar la ejecución de máquina: puntos de soporte, puntos de operación y el punto medio
de operación. Dichos componentes limitan el espacio de desempeño a un espacio positivo
n-dimensional. Finalmente, el lema del punto de intersección es usado para calcular
solamente el punto medio de operación. Dicho punto describe el desempeño promedio de