• No se han encontrado resultados

Evaluación de rendimiento de sistemas distribuidos basándose en un modelo geométrico de ejecuciónDistributed system performance evaluation based a geometric model of execution

N/A
N/A
Protected

Academic year: 2020

Share "Evaluación de rendimiento de sistemas distribuidos basándose en un modelo geométrico de ejecuciónDistributed system performance evaluation based a geometric model of execution"

Copied!
142
0
0

Texto completo

(1)

/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.

(2)
(3)
(4)

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

(5)

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

(6)

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.

(7)

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.

(8)

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”

(9)

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

(10)

1NTRoDUccIÓN

I Introducción I.1 Antecedentes I.2 Motivación 1.3 Objetivo I.4 Metas

1.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)

(11)

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.

(12)

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

(13)

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.

(14)

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

(15)

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.

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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"

(21)

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

(22)

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.

(23)

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

(24)

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.

(25)

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

(26)

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.

(27)

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

(28)

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

(29)

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

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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.

(35)

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

(36)

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

(37)

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 .

(38)

- 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

(39)

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.

(40)

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

(41)

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

(42)

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.

(43)

Éššà

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

(44)

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

(45)

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,

(46)

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

(47)

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

(48)

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.

(49)

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

(50)

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

(51)

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

(52)

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.

(53)

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,

(54)

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

Referencias

Documento similar

El contar con el financiamiento institucional a través de las cátedras ha significado para los grupos de profesores, el poder centrarse en estudios sobre áreas de interés

[r]

A partir del semestre julio-diciembre 2010 con la transición metodológica del proceso, la evaluación docente en la UAEH estará orientada al perfeccionamiento, siendo un elemento

Este estudio presenta un rastreo de la transformación del perfil del maestro en Colombia en su práctica pedagógica y su dimensión socio- política a partir de la emergencia del

[r]

Las mayores correlaciones existentes entre las métricas que conforman el sistema de medición del desempeño se encuentran en niveles superiores al 0.75, que para este

[r]

SECUNDARIA COMPRENDE LOS