que es un cluster

28
Que es un cluster? Conjunto de maquinas, conectadas entre si en red y funcionando en paralelo y compartiendo recursos para cooperar en cargas de trabajo complejas y conseguir mayor eficacia que un solo equipo. Dado que se comporta como un único gran recurso

Upload: morris-star

Post on 19-Jun-2015

461 views

Category:

Documents


2 download

DESCRIPTION

Uploaded from Google Docs

TRANSCRIPT

Page 1: Que Es Un Cluster

Que es un clusterConjunto de maquinas conectadas entre si en red y funcionando en paralelo y compartiendo recursos para cooperar en cargas de trabajo complejas y conseguir mayor eficacia que un solo equipo Dado que se comporta como un uacutenico gran recurso

Nodos Pueden ser simples computadores sistemas multiprocesador o estaciones de trabajo (workstations) tenemos dos tipos de nodos que son

Nodos Dedicados no disponen de teclado mouse ni monitor y su uso estaacute exclusivamente dedicado a realizar tareas relacionadas con el cluster

Nodos no dedicados disponen de teclado mouse y monitor y su uso no estaacute exclusivamente dedicado a realizar tareas relacionadas con el cluster el cluster hace uso de los ciclos de reloj que el usuario del computador no esta utilizando para realizar sus tareas

Almacenamiento El almacenamiento puede consistir en una NAS una SAN o almacenamiento interno en el servidor El protocolo maacutes comuacutenmente

utilizado es NFS (Network File System) sistema de ficheros compartido entre servidor y los nodos

Componentes de un Cluster

Sistemas Operativos Deben de uso y acceso facilidad y permitir ademaacutes muacuteltiples procesos yusuarios (conjunto de compiladores y aplicaciones especiales ) Conexiones de Red Los nodos conectadas mediante una simple red Ethernet con placas

comunes (adaptadores de red o NICs) o utilizarse tecnologiacuteas especiales de alta velocidad como Fast Ethernet Gigabit Ethernet Myrinet Infiniband etc

Middleware Es un software que generalmente actuacutea entre el sistema operativo y lasaplicaciones y provee a un cluster lo siguiente - Una interfaz uacutenica de acceso al sistema denominada SSI (Single System Image) la cual genera

la sensacioacuten al usuario de que utiliza un uacutenico ordenador muy potente - Herramientas para la optimizacioacuten y mantenimiento del sistema migracioacuten de procesos

checkpointrestart (congelar uno o varios procesos mudarlos de servidor y continuar su funcionamiento en el nuevo host) balanceo de carga tolerancia a fallos etc

- Escalabilidad debe poder detectar automaacuteticamente nuevos servidores conectados al cluster para proceder a su utilizacioacuten

Ejemplos de middleware MOSIX OpenMOSIX Condor OpenSSL etc Protocolos de Comunicacioacuten y servicios Aplicaciones Ambientes de Programacioacuten Paralela Que nos permiten implementar algoritmos que hagan

uso de recursos compartidos CPU (Central Processing Unit) memoria datos y servicios

Clasificacioacuten de los Cluster1 Alto rendimiento (HP high performance) Los clusters de alto rendimiento han sido creados para compartir el recurso maacutes

valioso de un computador el tiempo de proceso Cualquier operacioacuten que necesite altos tiempos de CPU puede ser utilizada en un cluster de alto rendimiento siempre que se encuentre un algoritmo que sea paralelizable

2 Alta disponibilidad o de redundancia (HA high availability) Los clusters de alta disponibilidad comparten los HD pretenden dar servicios de

cualquier tipo son clusters donde la principal funcionalidad es estar controlando y actuando para que un servicio o varios se encuentren activos durante el maacuteximo periodo de tiempo posible (los nodos se monitorean)

3 Alta confiabilidad (HR high reliability) Estos clusters tratan de aportar la maacutexima confiabilidad en un entorno Puede

tratarse por ejemplo de sistemas de respuesta a tiempo real sistema se va a comportar de una manera determinada

Este tipo de clusters son los maacutes difiacuteciles de implementar No se basan solamente en conceder servicios de alta disponibilidad sino en ofrecer un entorno de sistema altamente confiable Esto implica muchiacutesima sobrecarga en el sistema

Uso de los Clusters

Clusters en Aplicaciones CientiacuteficasEjemplos Simulaciones genoacutemica computacional prediccioacuten

meteoroloacutegica etc

Clusters en Aplicaciones EmpresarialesbullEjemplos wikipedia y Google

Desarrollo de la herramienta MicroCluster

Donde una de las computadoras del cluster desempentildea el papel de administrador Dicho administrador se encarga de recolectar informacioacuten sobre la carga de trabajo del cluster y de enviar los procesos a las computadoras con menor carga El administrador puede ser definido expliacutecitamente por el operador del MicroCluster (mediante un archivo de configuracioacuten) o puede ser elegido automaacuteticamente al iniciar el cluster

Ventajas de los Clusters 1048708 Flexibilidad1048708 Disponibilidad1048708 Escalabilidad1048708 Crecimiento por incrementos1048708 Incorporacioacuten de tecnologiacutea punta1048708 Aprovecha ciclos perdidos1048708 Heterogeneidad Problemas de los Clusters 1048708 Existen todaviacutea varios problemas propios de estos sistemas 1048708 Software 1048708 Problemas de administracioacuten y gestioacuten 1048708 Memoria fiacutesicamente distribuida =gt utilizacioacuten menos eficiente 1048708 Varias copias del sistema operativo 1048708 La red es el cuello de botella del sistema

Balance de carga y coacutemputo paralelo bull Procesar un algoritmo o programa en paralelo significa que dicha

aplicacioacuten se ejecuta en forma distribuida sobre un cierto nuacutemero de nodos del cluster Asiacute sobre cada nodo trabaja una parte del algoritmo y esto permite que diferentes procesos corran en forma simultanea en lugar de hacerlo secuencialmente sobre un solo procesador Los procesos ldquodistribuidosrdquo o ldquoparalelizadosrdquo de un algoritmo en general no son independientes entre siacute es decir que para completar ciertos procesos sobre un nodo del cluster se requiere informacioacuten de otros procesos que corren sobre otros nodos Esta informacioacuten debe ser transmitida a traveacutes de la red que los conecta

bull Para facilitar la transmisioacuten de la informacioacuten entre los procesos se han desarrollado herramientas especiales Una de ellas es la ldquoInterfaz de Paso de Mensajesrdquo (MPI del ingles Message Passing Interface) y la otra es conocida como Maquina Paralela Virtual (PVM del ingles Parallel Virtual Machine)

BALANCEO DE CARGA

Un tipo concreto de cluster cuya funcioacuten es repartir la carga de proceso entre los nodos y aprovechar al maacuteximo las capacidades disponibles en este es el cluster openMosix sistema automaacutetico que distribuye los procesos que constituye una solucioacuten escalable para clusters basados en Linux los algoritmos de MOSIX comparten los recursos disponibles en forma adaptativa mediante un sistema de migracioacuten de procesos Internamente y de forma transparente para el usuario los procesos seraacuten migrados al nodo que maacutes recursos disponibles posea Dado que las demandas en cada nodo pueden variar en el tiempo los procesos migran automaacuteticamente de un nodo a otro para aprovechar el sistema al maacuteximo De forma alternativa si fuera necesario el usuario puede migrar ldquomanualmenterdquo sus procesos e incluso fijar la ejecucioacuten a un nodo en particular

Las caracteriacutesticas maacutes destacadas de este tipo de cluster son Se puede ampliar su capacidad faacutecilmente antildeadiendo maacutes ordenadores al cluster Robustez Ante la caiacuteda de alguno de los ordenadores del cluster el servicio se

puede ver mermado pero mientras haya ordenadores en funcionamiento eacutestos seguiraacuten dando servicio

El aspecto del balanceo de carga es bastante importante debido a que en muchas aplicaciones paralelas como la buacutesqueda o la optimizacioacuten es extraordinariamente difiacutecil predecir el tamantildeo de las tareas asignadas a cada procesador de manera que se realice una divisioacuten de las mismas para que todos mantengan la carga computacional uniforme Cuando no es uniforme es decir hay desbalance en la carga ya sea que el trabajo no se haya repartido de una forma equitativa o porque algunos procesadores sean maacutes raacutepidos que otros o por ambas situaciones entonces algunos procesadores terminaraacuten permaneciendo inactivos mientras otros todaviacutea estaacuten calculando

La situacioacuten ideal es que todos los procesadores trabajen de una forma continua sobre las tareas disponibles para conseguir el miacutenimo tiempo de ejecucioacuten

Tipos de Balanceo de Carga

1Balanceo de Carga Estaacuteticobull El balanceo de carga tambieacuten es llamado mapeado del problema o

planificacioacuten del problema La distribucioacuten de las tareas se realiza al comienzo de la computacioacuten lo cual permite al maestro participar en la computacioacuten una vez que haya asignado una fraccioacuten del trabajo a cada esclavo La asignacioacuten de tareas se puede realizar de una sola vez o de manera ciacuteclica

bull El balanceo de carga estaacutetico tiene serios inconvenientes que lo situacutean en desventaja sobre el balanceo de carga dinaacutemico Entre ellos cabe destacar los siguientes

- Es muy difiacutecil estimar de forma precisa el tiempo de ejecucioacuten de todas las partes en las que se divide un programa sin ejecutarlas

- A veces los problemas necesitan un nuacutemero indeterminado de pasos computacionales para alcanzar la solucioacuten

2 Balanceo de Carga Dinaacutemicobull Este tipo de balanceo de carga se trata durante la ejecucioacuten de procesos La carga computacional depende de las tareas que se estaacuten ejecutando y

no de la estimacioacuten del tiempo que pueden tardar en ejecutarse Aunque el balanceo de carga dinaacutemico lleva consigo una cierta sobrecarga durante la ejecucioacuten del programa resulta una alternativa mucho maacutes eficiente que el balanceo de carga estaacutetico

balanceo de carga dinaacutemico es muy uacutetil cuando el nuacutemero de tareas es mayor que el nuacutemero de procesadores disponibles o cuando el nuacutemero de tareas es desconocido al comienzo de la aplicacioacuten Una importante caracteriacutestica del balanceo de carga dinaacutemico es la capacidad que tiene la aplicacioacuten de adaptarse a los posibles cambios del sistema no soacutelo a la carga de los procesadores sino tambieacuten a posibles reconfiguraciones de los recursos del sistema Debido a esta caracteriacutestica un cluster puede responder bastante bien cuando se produce el fallo de alguacuten procesador lo cual simplifica la creacioacuten de aplicaciones tolerantes a fallos que sean capaces de sobrevivir cuando se pierde alguacuten esclavo o incluso el maestro

Dependiendo de doacutende y coacutemo se almacenen y repartan las tareas el balanceo de carga dinaacutemico se divide en

- Balanceo de carga dinaacutemico centralizado Se corresponde con la estructura tiacutepica de MaestroEsclavo

- Balanceo de carga dinaacutemico distribuido o descentralizado Se utilizan varios maestros y cada uno controla a un grupo de esclavos

21 Balanceo de carga dinaacutemico centralizado bull Cuando un nodo esclavo finaliza una tarea solicita una nueva al maestro

bull Esta teacutecnica tambieacuten se denomina programacioacuten por demanda o bolsa de trabajo y no soacutelo es aplicable a problemas que tengan tareas de un mismo tamantildeo

bull En problemas con tareas de distintos tamantildeos es mejor repartir primero aquellas que tengan una mayor carga computacional Si la tarea maacutes compleja se dejase para el final las tareas maacutes pequentildeas seriacutean realizadas por esclavos que despueacutes estariacutean esperando sin hacer nada hasta que alguno completara la tarea maacutes compleja

bull En algunas aplicaciones especialmente en algoritmos de buacutesqueda la ejecucioacuten de una tarea puede generar nuevas tareas aunque al final el nuacutemero de tareas se debe de reducir a cero para alcanzar la finalizacioacuten del programa En este contexto se puede utilizar una cola para mantener las tareas pendientes Si todas las tareas son del mismo tamantildeo y de la misma importancia o prioridad una cola FIFO (First In First Out) puede ser maacutes que suficiente

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 2: Que Es Un Cluster

Nodos Pueden ser simples computadores sistemas multiprocesador o estaciones de trabajo (workstations) tenemos dos tipos de nodos que son

Nodos Dedicados no disponen de teclado mouse ni monitor y su uso estaacute exclusivamente dedicado a realizar tareas relacionadas con el cluster

Nodos no dedicados disponen de teclado mouse y monitor y su uso no estaacute exclusivamente dedicado a realizar tareas relacionadas con el cluster el cluster hace uso de los ciclos de reloj que el usuario del computador no esta utilizando para realizar sus tareas

Almacenamiento El almacenamiento puede consistir en una NAS una SAN o almacenamiento interno en el servidor El protocolo maacutes comuacutenmente

utilizado es NFS (Network File System) sistema de ficheros compartido entre servidor y los nodos

Componentes de un Cluster

Sistemas Operativos Deben de uso y acceso facilidad y permitir ademaacutes muacuteltiples procesos yusuarios (conjunto de compiladores y aplicaciones especiales ) Conexiones de Red Los nodos conectadas mediante una simple red Ethernet con placas

comunes (adaptadores de red o NICs) o utilizarse tecnologiacuteas especiales de alta velocidad como Fast Ethernet Gigabit Ethernet Myrinet Infiniband etc

Middleware Es un software que generalmente actuacutea entre el sistema operativo y lasaplicaciones y provee a un cluster lo siguiente - Una interfaz uacutenica de acceso al sistema denominada SSI (Single System Image) la cual genera

la sensacioacuten al usuario de que utiliza un uacutenico ordenador muy potente - Herramientas para la optimizacioacuten y mantenimiento del sistema migracioacuten de procesos

checkpointrestart (congelar uno o varios procesos mudarlos de servidor y continuar su funcionamiento en el nuevo host) balanceo de carga tolerancia a fallos etc

- Escalabilidad debe poder detectar automaacuteticamente nuevos servidores conectados al cluster para proceder a su utilizacioacuten

Ejemplos de middleware MOSIX OpenMOSIX Condor OpenSSL etc Protocolos de Comunicacioacuten y servicios Aplicaciones Ambientes de Programacioacuten Paralela Que nos permiten implementar algoritmos que hagan

uso de recursos compartidos CPU (Central Processing Unit) memoria datos y servicios

Clasificacioacuten de los Cluster1 Alto rendimiento (HP high performance) Los clusters de alto rendimiento han sido creados para compartir el recurso maacutes

valioso de un computador el tiempo de proceso Cualquier operacioacuten que necesite altos tiempos de CPU puede ser utilizada en un cluster de alto rendimiento siempre que se encuentre un algoritmo que sea paralelizable

2 Alta disponibilidad o de redundancia (HA high availability) Los clusters de alta disponibilidad comparten los HD pretenden dar servicios de

cualquier tipo son clusters donde la principal funcionalidad es estar controlando y actuando para que un servicio o varios se encuentren activos durante el maacuteximo periodo de tiempo posible (los nodos se monitorean)

3 Alta confiabilidad (HR high reliability) Estos clusters tratan de aportar la maacutexima confiabilidad en un entorno Puede

tratarse por ejemplo de sistemas de respuesta a tiempo real sistema se va a comportar de una manera determinada

Este tipo de clusters son los maacutes difiacuteciles de implementar No se basan solamente en conceder servicios de alta disponibilidad sino en ofrecer un entorno de sistema altamente confiable Esto implica muchiacutesima sobrecarga en el sistema

Uso de los Clusters

Clusters en Aplicaciones CientiacuteficasEjemplos Simulaciones genoacutemica computacional prediccioacuten

meteoroloacutegica etc

Clusters en Aplicaciones EmpresarialesbullEjemplos wikipedia y Google

Desarrollo de la herramienta MicroCluster

Donde una de las computadoras del cluster desempentildea el papel de administrador Dicho administrador se encarga de recolectar informacioacuten sobre la carga de trabajo del cluster y de enviar los procesos a las computadoras con menor carga El administrador puede ser definido expliacutecitamente por el operador del MicroCluster (mediante un archivo de configuracioacuten) o puede ser elegido automaacuteticamente al iniciar el cluster

Ventajas de los Clusters 1048708 Flexibilidad1048708 Disponibilidad1048708 Escalabilidad1048708 Crecimiento por incrementos1048708 Incorporacioacuten de tecnologiacutea punta1048708 Aprovecha ciclos perdidos1048708 Heterogeneidad Problemas de los Clusters 1048708 Existen todaviacutea varios problemas propios de estos sistemas 1048708 Software 1048708 Problemas de administracioacuten y gestioacuten 1048708 Memoria fiacutesicamente distribuida =gt utilizacioacuten menos eficiente 1048708 Varias copias del sistema operativo 1048708 La red es el cuello de botella del sistema

Balance de carga y coacutemputo paralelo bull Procesar un algoritmo o programa en paralelo significa que dicha

aplicacioacuten se ejecuta en forma distribuida sobre un cierto nuacutemero de nodos del cluster Asiacute sobre cada nodo trabaja una parte del algoritmo y esto permite que diferentes procesos corran en forma simultanea en lugar de hacerlo secuencialmente sobre un solo procesador Los procesos ldquodistribuidosrdquo o ldquoparalelizadosrdquo de un algoritmo en general no son independientes entre siacute es decir que para completar ciertos procesos sobre un nodo del cluster se requiere informacioacuten de otros procesos que corren sobre otros nodos Esta informacioacuten debe ser transmitida a traveacutes de la red que los conecta

bull Para facilitar la transmisioacuten de la informacioacuten entre los procesos se han desarrollado herramientas especiales Una de ellas es la ldquoInterfaz de Paso de Mensajesrdquo (MPI del ingles Message Passing Interface) y la otra es conocida como Maquina Paralela Virtual (PVM del ingles Parallel Virtual Machine)

BALANCEO DE CARGA

Un tipo concreto de cluster cuya funcioacuten es repartir la carga de proceso entre los nodos y aprovechar al maacuteximo las capacidades disponibles en este es el cluster openMosix sistema automaacutetico que distribuye los procesos que constituye una solucioacuten escalable para clusters basados en Linux los algoritmos de MOSIX comparten los recursos disponibles en forma adaptativa mediante un sistema de migracioacuten de procesos Internamente y de forma transparente para el usuario los procesos seraacuten migrados al nodo que maacutes recursos disponibles posea Dado que las demandas en cada nodo pueden variar en el tiempo los procesos migran automaacuteticamente de un nodo a otro para aprovechar el sistema al maacuteximo De forma alternativa si fuera necesario el usuario puede migrar ldquomanualmenterdquo sus procesos e incluso fijar la ejecucioacuten a un nodo en particular

Las caracteriacutesticas maacutes destacadas de este tipo de cluster son Se puede ampliar su capacidad faacutecilmente antildeadiendo maacutes ordenadores al cluster Robustez Ante la caiacuteda de alguno de los ordenadores del cluster el servicio se

puede ver mermado pero mientras haya ordenadores en funcionamiento eacutestos seguiraacuten dando servicio

El aspecto del balanceo de carga es bastante importante debido a que en muchas aplicaciones paralelas como la buacutesqueda o la optimizacioacuten es extraordinariamente difiacutecil predecir el tamantildeo de las tareas asignadas a cada procesador de manera que se realice una divisioacuten de las mismas para que todos mantengan la carga computacional uniforme Cuando no es uniforme es decir hay desbalance en la carga ya sea que el trabajo no se haya repartido de una forma equitativa o porque algunos procesadores sean maacutes raacutepidos que otros o por ambas situaciones entonces algunos procesadores terminaraacuten permaneciendo inactivos mientras otros todaviacutea estaacuten calculando

La situacioacuten ideal es que todos los procesadores trabajen de una forma continua sobre las tareas disponibles para conseguir el miacutenimo tiempo de ejecucioacuten

Tipos de Balanceo de Carga

1Balanceo de Carga Estaacuteticobull El balanceo de carga tambieacuten es llamado mapeado del problema o

planificacioacuten del problema La distribucioacuten de las tareas se realiza al comienzo de la computacioacuten lo cual permite al maestro participar en la computacioacuten una vez que haya asignado una fraccioacuten del trabajo a cada esclavo La asignacioacuten de tareas se puede realizar de una sola vez o de manera ciacuteclica

bull El balanceo de carga estaacutetico tiene serios inconvenientes que lo situacutean en desventaja sobre el balanceo de carga dinaacutemico Entre ellos cabe destacar los siguientes

- Es muy difiacutecil estimar de forma precisa el tiempo de ejecucioacuten de todas las partes en las que se divide un programa sin ejecutarlas

- A veces los problemas necesitan un nuacutemero indeterminado de pasos computacionales para alcanzar la solucioacuten

2 Balanceo de Carga Dinaacutemicobull Este tipo de balanceo de carga se trata durante la ejecucioacuten de procesos La carga computacional depende de las tareas que se estaacuten ejecutando y

no de la estimacioacuten del tiempo que pueden tardar en ejecutarse Aunque el balanceo de carga dinaacutemico lleva consigo una cierta sobrecarga durante la ejecucioacuten del programa resulta una alternativa mucho maacutes eficiente que el balanceo de carga estaacutetico

balanceo de carga dinaacutemico es muy uacutetil cuando el nuacutemero de tareas es mayor que el nuacutemero de procesadores disponibles o cuando el nuacutemero de tareas es desconocido al comienzo de la aplicacioacuten Una importante caracteriacutestica del balanceo de carga dinaacutemico es la capacidad que tiene la aplicacioacuten de adaptarse a los posibles cambios del sistema no soacutelo a la carga de los procesadores sino tambieacuten a posibles reconfiguraciones de los recursos del sistema Debido a esta caracteriacutestica un cluster puede responder bastante bien cuando se produce el fallo de alguacuten procesador lo cual simplifica la creacioacuten de aplicaciones tolerantes a fallos que sean capaces de sobrevivir cuando se pierde alguacuten esclavo o incluso el maestro

Dependiendo de doacutende y coacutemo se almacenen y repartan las tareas el balanceo de carga dinaacutemico se divide en

- Balanceo de carga dinaacutemico centralizado Se corresponde con la estructura tiacutepica de MaestroEsclavo

- Balanceo de carga dinaacutemico distribuido o descentralizado Se utilizan varios maestros y cada uno controla a un grupo de esclavos

21 Balanceo de carga dinaacutemico centralizado bull Cuando un nodo esclavo finaliza una tarea solicita una nueva al maestro

bull Esta teacutecnica tambieacuten se denomina programacioacuten por demanda o bolsa de trabajo y no soacutelo es aplicable a problemas que tengan tareas de un mismo tamantildeo

bull En problemas con tareas de distintos tamantildeos es mejor repartir primero aquellas que tengan una mayor carga computacional Si la tarea maacutes compleja se dejase para el final las tareas maacutes pequentildeas seriacutean realizadas por esclavos que despueacutes estariacutean esperando sin hacer nada hasta que alguno completara la tarea maacutes compleja

bull En algunas aplicaciones especialmente en algoritmos de buacutesqueda la ejecucioacuten de una tarea puede generar nuevas tareas aunque al final el nuacutemero de tareas se debe de reducir a cero para alcanzar la finalizacioacuten del programa En este contexto se puede utilizar una cola para mantener las tareas pendientes Si todas las tareas son del mismo tamantildeo y de la misma importancia o prioridad una cola FIFO (First In First Out) puede ser maacutes que suficiente

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 3: Que Es Un Cluster

Sistemas Operativos Deben de uso y acceso facilidad y permitir ademaacutes muacuteltiples procesos yusuarios (conjunto de compiladores y aplicaciones especiales ) Conexiones de Red Los nodos conectadas mediante una simple red Ethernet con placas

comunes (adaptadores de red o NICs) o utilizarse tecnologiacuteas especiales de alta velocidad como Fast Ethernet Gigabit Ethernet Myrinet Infiniband etc

Middleware Es un software que generalmente actuacutea entre el sistema operativo y lasaplicaciones y provee a un cluster lo siguiente - Una interfaz uacutenica de acceso al sistema denominada SSI (Single System Image) la cual genera

la sensacioacuten al usuario de que utiliza un uacutenico ordenador muy potente - Herramientas para la optimizacioacuten y mantenimiento del sistema migracioacuten de procesos

checkpointrestart (congelar uno o varios procesos mudarlos de servidor y continuar su funcionamiento en el nuevo host) balanceo de carga tolerancia a fallos etc

- Escalabilidad debe poder detectar automaacuteticamente nuevos servidores conectados al cluster para proceder a su utilizacioacuten

Ejemplos de middleware MOSIX OpenMOSIX Condor OpenSSL etc Protocolos de Comunicacioacuten y servicios Aplicaciones Ambientes de Programacioacuten Paralela Que nos permiten implementar algoritmos que hagan

uso de recursos compartidos CPU (Central Processing Unit) memoria datos y servicios

Clasificacioacuten de los Cluster1 Alto rendimiento (HP high performance) Los clusters de alto rendimiento han sido creados para compartir el recurso maacutes

valioso de un computador el tiempo de proceso Cualquier operacioacuten que necesite altos tiempos de CPU puede ser utilizada en un cluster de alto rendimiento siempre que se encuentre un algoritmo que sea paralelizable

2 Alta disponibilidad o de redundancia (HA high availability) Los clusters de alta disponibilidad comparten los HD pretenden dar servicios de

cualquier tipo son clusters donde la principal funcionalidad es estar controlando y actuando para que un servicio o varios se encuentren activos durante el maacuteximo periodo de tiempo posible (los nodos se monitorean)

3 Alta confiabilidad (HR high reliability) Estos clusters tratan de aportar la maacutexima confiabilidad en un entorno Puede

tratarse por ejemplo de sistemas de respuesta a tiempo real sistema se va a comportar de una manera determinada

Este tipo de clusters son los maacutes difiacuteciles de implementar No se basan solamente en conceder servicios de alta disponibilidad sino en ofrecer un entorno de sistema altamente confiable Esto implica muchiacutesima sobrecarga en el sistema

Uso de los Clusters

Clusters en Aplicaciones CientiacuteficasEjemplos Simulaciones genoacutemica computacional prediccioacuten

meteoroloacutegica etc

Clusters en Aplicaciones EmpresarialesbullEjemplos wikipedia y Google

Desarrollo de la herramienta MicroCluster

Donde una de las computadoras del cluster desempentildea el papel de administrador Dicho administrador se encarga de recolectar informacioacuten sobre la carga de trabajo del cluster y de enviar los procesos a las computadoras con menor carga El administrador puede ser definido expliacutecitamente por el operador del MicroCluster (mediante un archivo de configuracioacuten) o puede ser elegido automaacuteticamente al iniciar el cluster

Ventajas de los Clusters 1048708 Flexibilidad1048708 Disponibilidad1048708 Escalabilidad1048708 Crecimiento por incrementos1048708 Incorporacioacuten de tecnologiacutea punta1048708 Aprovecha ciclos perdidos1048708 Heterogeneidad Problemas de los Clusters 1048708 Existen todaviacutea varios problemas propios de estos sistemas 1048708 Software 1048708 Problemas de administracioacuten y gestioacuten 1048708 Memoria fiacutesicamente distribuida =gt utilizacioacuten menos eficiente 1048708 Varias copias del sistema operativo 1048708 La red es el cuello de botella del sistema

Balance de carga y coacutemputo paralelo bull Procesar un algoritmo o programa en paralelo significa que dicha

aplicacioacuten se ejecuta en forma distribuida sobre un cierto nuacutemero de nodos del cluster Asiacute sobre cada nodo trabaja una parte del algoritmo y esto permite que diferentes procesos corran en forma simultanea en lugar de hacerlo secuencialmente sobre un solo procesador Los procesos ldquodistribuidosrdquo o ldquoparalelizadosrdquo de un algoritmo en general no son independientes entre siacute es decir que para completar ciertos procesos sobre un nodo del cluster se requiere informacioacuten de otros procesos que corren sobre otros nodos Esta informacioacuten debe ser transmitida a traveacutes de la red que los conecta

bull Para facilitar la transmisioacuten de la informacioacuten entre los procesos se han desarrollado herramientas especiales Una de ellas es la ldquoInterfaz de Paso de Mensajesrdquo (MPI del ingles Message Passing Interface) y la otra es conocida como Maquina Paralela Virtual (PVM del ingles Parallel Virtual Machine)

BALANCEO DE CARGA

Un tipo concreto de cluster cuya funcioacuten es repartir la carga de proceso entre los nodos y aprovechar al maacuteximo las capacidades disponibles en este es el cluster openMosix sistema automaacutetico que distribuye los procesos que constituye una solucioacuten escalable para clusters basados en Linux los algoritmos de MOSIX comparten los recursos disponibles en forma adaptativa mediante un sistema de migracioacuten de procesos Internamente y de forma transparente para el usuario los procesos seraacuten migrados al nodo que maacutes recursos disponibles posea Dado que las demandas en cada nodo pueden variar en el tiempo los procesos migran automaacuteticamente de un nodo a otro para aprovechar el sistema al maacuteximo De forma alternativa si fuera necesario el usuario puede migrar ldquomanualmenterdquo sus procesos e incluso fijar la ejecucioacuten a un nodo en particular

Las caracteriacutesticas maacutes destacadas de este tipo de cluster son Se puede ampliar su capacidad faacutecilmente antildeadiendo maacutes ordenadores al cluster Robustez Ante la caiacuteda de alguno de los ordenadores del cluster el servicio se

puede ver mermado pero mientras haya ordenadores en funcionamiento eacutestos seguiraacuten dando servicio

El aspecto del balanceo de carga es bastante importante debido a que en muchas aplicaciones paralelas como la buacutesqueda o la optimizacioacuten es extraordinariamente difiacutecil predecir el tamantildeo de las tareas asignadas a cada procesador de manera que se realice una divisioacuten de las mismas para que todos mantengan la carga computacional uniforme Cuando no es uniforme es decir hay desbalance en la carga ya sea que el trabajo no se haya repartido de una forma equitativa o porque algunos procesadores sean maacutes raacutepidos que otros o por ambas situaciones entonces algunos procesadores terminaraacuten permaneciendo inactivos mientras otros todaviacutea estaacuten calculando

La situacioacuten ideal es que todos los procesadores trabajen de una forma continua sobre las tareas disponibles para conseguir el miacutenimo tiempo de ejecucioacuten

Tipos de Balanceo de Carga

1Balanceo de Carga Estaacuteticobull El balanceo de carga tambieacuten es llamado mapeado del problema o

planificacioacuten del problema La distribucioacuten de las tareas se realiza al comienzo de la computacioacuten lo cual permite al maestro participar en la computacioacuten una vez que haya asignado una fraccioacuten del trabajo a cada esclavo La asignacioacuten de tareas se puede realizar de una sola vez o de manera ciacuteclica

bull El balanceo de carga estaacutetico tiene serios inconvenientes que lo situacutean en desventaja sobre el balanceo de carga dinaacutemico Entre ellos cabe destacar los siguientes

- Es muy difiacutecil estimar de forma precisa el tiempo de ejecucioacuten de todas las partes en las que se divide un programa sin ejecutarlas

- A veces los problemas necesitan un nuacutemero indeterminado de pasos computacionales para alcanzar la solucioacuten

2 Balanceo de Carga Dinaacutemicobull Este tipo de balanceo de carga se trata durante la ejecucioacuten de procesos La carga computacional depende de las tareas que se estaacuten ejecutando y

no de la estimacioacuten del tiempo que pueden tardar en ejecutarse Aunque el balanceo de carga dinaacutemico lleva consigo una cierta sobrecarga durante la ejecucioacuten del programa resulta una alternativa mucho maacutes eficiente que el balanceo de carga estaacutetico

balanceo de carga dinaacutemico es muy uacutetil cuando el nuacutemero de tareas es mayor que el nuacutemero de procesadores disponibles o cuando el nuacutemero de tareas es desconocido al comienzo de la aplicacioacuten Una importante caracteriacutestica del balanceo de carga dinaacutemico es la capacidad que tiene la aplicacioacuten de adaptarse a los posibles cambios del sistema no soacutelo a la carga de los procesadores sino tambieacuten a posibles reconfiguraciones de los recursos del sistema Debido a esta caracteriacutestica un cluster puede responder bastante bien cuando se produce el fallo de alguacuten procesador lo cual simplifica la creacioacuten de aplicaciones tolerantes a fallos que sean capaces de sobrevivir cuando se pierde alguacuten esclavo o incluso el maestro

Dependiendo de doacutende y coacutemo se almacenen y repartan las tareas el balanceo de carga dinaacutemico se divide en

- Balanceo de carga dinaacutemico centralizado Se corresponde con la estructura tiacutepica de MaestroEsclavo

- Balanceo de carga dinaacutemico distribuido o descentralizado Se utilizan varios maestros y cada uno controla a un grupo de esclavos

21 Balanceo de carga dinaacutemico centralizado bull Cuando un nodo esclavo finaliza una tarea solicita una nueva al maestro

bull Esta teacutecnica tambieacuten se denomina programacioacuten por demanda o bolsa de trabajo y no soacutelo es aplicable a problemas que tengan tareas de un mismo tamantildeo

bull En problemas con tareas de distintos tamantildeos es mejor repartir primero aquellas que tengan una mayor carga computacional Si la tarea maacutes compleja se dejase para el final las tareas maacutes pequentildeas seriacutean realizadas por esclavos que despueacutes estariacutean esperando sin hacer nada hasta que alguno completara la tarea maacutes compleja

bull En algunas aplicaciones especialmente en algoritmos de buacutesqueda la ejecucioacuten de una tarea puede generar nuevas tareas aunque al final el nuacutemero de tareas se debe de reducir a cero para alcanzar la finalizacioacuten del programa En este contexto se puede utilizar una cola para mantener las tareas pendientes Si todas las tareas son del mismo tamantildeo y de la misma importancia o prioridad una cola FIFO (First In First Out) puede ser maacutes que suficiente

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 4: Que Es Un Cluster

Clasificacioacuten de los Cluster1 Alto rendimiento (HP high performance) Los clusters de alto rendimiento han sido creados para compartir el recurso maacutes

valioso de un computador el tiempo de proceso Cualquier operacioacuten que necesite altos tiempos de CPU puede ser utilizada en un cluster de alto rendimiento siempre que se encuentre un algoritmo que sea paralelizable

2 Alta disponibilidad o de redundancia (HA high availability) Los clusters de alta disponibilidad comparten los HD pretenden dar servicios de

cualquier tipo son clusters donde la principal funcionalidad es estar controlando y actuando para que un servicio o varios se encuentren activos durante el maacuteximo periodo de tiempo posible (los nodos se monitorean)

3 Alta confiabilidad (HR high reliability) Estos clusters tratan de aportar la maacutexima confiabilidad en un entorno Puede

tratarse por ejemplo de sistemas de respuesta a tiempo real sistema se va a comportar de una manera determinada

Este tipo de clusters son los maacutes difiacuteciles de implementar No se basan solamente en conceder servicios de alta disponibilidad sino en ofrecer un entorno de sistema altamente confiable Esto implica muchiacutesima sobrecarga en el sistema

Uso de los Clusters

Clusters en Aplicaciones CientiacuteficasEjemplos Simulaciones genoacutemica computacional prediccioacuten

meteoroloacutegica etc

Clusters en Aplicaciones EmpresarialesbullEjemplos wikipedia y Google

Desarrollo de la herramienta MicroCluster

Donde una de las computadoras del cluster desempentildea el papel de administrador Dicho administrador se encarga de recolectar informacioacuten sobre la carga de trabajo del cluster y de enviar los procesos a las computadoras con menor carga El administrador puede ser definido expliacutecitamente por el operador del MicroCluster (mediante un archivo de configuracioacuten) o puede ser elegido automaacuteticamente al iniciar el cluster

Ventajas de los Clusters 1048708 Flexibilidad1048708 Disponibilidad1048708 Escalabilidad1048708 Crecimiento por incrementos1048708 Incorporacioacuten de tecnologiacutea punta1048708 Aprovecha ciclos perdidos1048708 Heterogeneidad Problemas de los Clusters 1048708 Existen todaviacutea varios problemas propios de estos sistemas 1048708 Software 1048708 Problemas de administracioacuten y gestioacuten 1048708 Memoria fiacutesicamente distribuida =gt utilizacioacuten menos eficiente 1048708 Varias copias del sistema operativo 1048708 La red es el cuello de botella del sistema

Balance de carga y coacutemputo paralelo bull Procesar un algoritmo o programa en paralelo significa que dicha

aplicacioacuten se ejecuta en forma distribuida sobre un cierto nuacutemero de nodos del cluster Asiacute sobre cada nodo trabaja una parte del algoritmo y esto permite que diferentes procesos corran en forma simultanea en lugar de hacerlo secuencialmente sobre un solo procesador Los procesos ldquodistribuidosrdquo o ldquoparalelizadosrdquo de un algoritmo en general no son independientes entre siacute es decir que para completar ciertos procesos sobre un nodo del cluster se requiere informacioacuten de otros procesos que corren sobre otros nodos Esta informacioacuten debe ser transmitida a traveacutes de la red que los conecta

bull Para facilitar la transmisioacuten de la informacioacuten entre los procesos se han desarrollado herramientas especiales Una de ellas es la ldquoInterfaz de Paso de Mensajesrdquo (MPI del ingles Message Passing Interface) y la otra es conocida como Maquina Paralela Virtual (PVM del ingles Parallel Virtual Machine)

BALANCEO DE CARGA

Un tipo concreto de cluster cuya funcioacuten es repartir la carga de proceso entre los nodos y aprovechar al maacuteximo las capacidades disponibles en este es el cluster openMosix sistema automaacutetico que distribuye los procesos que constituye una solucioacuten escalable para clusters basados en Linux los algoritmos de MOSIX comparten los recursos disponibles en forma adaptativa mediante un sistema de migracioacuten de procesos Internamente y de forma transparente para el usuario los procesos seraacuten migrados al nodo que maacutes recursos disponibles posea Dado que las demandas en cada nodo pueden variar en el tiempo los procesos migran automaacuteticamente de un nodo a otro para aprovechar el sistema al maacuteximo De forma alternativa si fuera necesario el usuario puede migrar ldquomanualmenterdquo sus procesos e incluso fijar la ejecucioacuten a un nodo en particular

Las caracteriacutesticas maacutes destacadas de este tipo de cluster son Se puede ampliar su capacidad faacutecilmente antildeadiendo maacutes ordenadores al cluster Robustez Ante la caiacuteda de alguno de los ordenadores del cluster el servicio se

puede ver mermado pero mientras haya ordenadores en funcionamiento eacutestos seguiraacuten dando servicio

El aspecto del balanceo de carga es bastante importante debido a que en muchas aplicaciones paralelas como la buacutesqueda o la optimizacioacuten es extraordinariamente difiacutecil predecir el tamantildeo de las tareas asignadas a cada procesador de manera que se realice una divisioacuten de las mismas para que todos mantengan la carga computacional uniforme Cuando no es uniforme es decir hay desbalance en la carga ya sea que el trabajo no se haya repartido de una forma equitativa o porque algunos procesadores sean maacutes raacutepidos que otros o por ambas situaciones entonces algunos procesadores terminaraacuten permaneciendo inactivos mientras otros todaviacutea estaacuten calculando

La situacioacuten ideal es que todos los procesadores trabajen de una forma continua sobre las tareas disponibles para conseguir el miacutenimo tiempo de ejecucioacuten

Tipos de Balanceo de Carga

1Balanceo de Carga Estaacuteticobull El balanceo de carga tambieacuten es llamado mapeado del problema o

planificacioacuten del problema La distribucioacuten de las tareas se realiza al comienzo de la computacioacuten lo cual permite al maestro participar en la computacioacuten una vez que haya asignado una fraccioacuten del trabajo a cada esclavo La asignacioacuten de tareas se puede realizar de una sola vez o de manera ciacuteclica

bull El balanceo de carga estaacutetico tiene serios inconvenientes que lo situacutean en desventaja sobre el balanceo de carga dinaacutemico Entre ellos cabe destacar los siguientes

- Es muy difiacutecil estimar de forma precisa el tiempo de ejecucioacuten de todas las partes en las que se divide un programa sin ejecutarlas

- A veces los problemas necesitan un nuacutemero indeterminado de pasos computacionales para alcanzar la solucioacuten

2 Balanceo de Carga Dinaacutemicobull Este tipo de balanceo de carga se trata durante la ejecucioacuten de procesos La carga computacional depende de las tareas que se estaacuten ejecutando y

no de la estimacioacuten del tiempo que pueden tardar en ejecutarse Aunque el balanceo de carga dinaacutemico lleva consigo una cierta sobrecarga durante la ejecucioacuten del programa resulta una alternativa mucho maacutes eficiente que el balanceo de carga estaacutetico

balanceo de carga dinaacutemico es muy uacutetil cuando el nuacutemero de tareas es mayor que el nuacutemero de procesadores disponibles o cuando el nuacutemero de tareas es desconocido al comienzo de la aplicacioacuten Una importante caracteriacutestica del balanceo de carga dinaacutemico es la capacidad que tiene la aplicacioacuten de adaptarse a los posibles cambios del sistema no soacutelo a la carga de los procesadores sino tambieacuten a posibles reconfiguraciones de los recursos del sistema Debido a esta caracteriacutestica un cluster puede responder bastante bien cuando se produce el fallo de alguacuten procesador lo cual simplifica la creacioacuten de aplicaciones tolerantes a fallos que sean capaces de sobrevivir cuando se pierde alguacuten esclavo o incluso el maestro

Dependiendo de doacutende y coacutemo se almacenen y repartan las tareas el balanceo de carga dinaacutemico se divide en

- Balanceo de carga dinaacutemico centralizado Se corresponde con la estructura tiacutepica de MaestroEsclavo

- Balanceo de carga dinaacutemico distribuido o descentralizado Se utilizan varios maestros y cada uno controla a un grupo de esclavos

21 Balanceo de carga dinaacutemico centralizado bull Cuando un nodo esclavo finaliza una tarea solicita una nueva al maestro

bull Esta teacutecnica tambieacuten se denomina programacioacuten por demanda o bolsa de trabajo y no soacutelo es aplicable a problemas que tengan tareas de un mismo tamantildeo

bull En problemas con tareas de distintos tamantildeos es mejor repartir primero aquellas que tengan una mayor carga computacional Si la tarea maacutes compleja se dejase para el final las tareas maacutes pequentildeas seriacutean realizadas por esclavos que despueacutes estariacutean esperando sin hacer nada hasta que alguno completara la tarea maacutes compleja

bull En algunas aplicaciones especialmente en algoritmos de buacutesqueda la ejecucioacuten de una tarea puede generar nuevas tareas aunque al final el nuacutemero de tareas se debe de reducir a cero para alcanzar la finalizacioacuten del programa En este contexto se puede utilizar una cola para mantener las tareas pendientes Si todas las tareas son del mismo tamantildeo y de la misma importancia o prioridad una cola FIFO (First In First Out) puede ser maacutes que suficiente

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 5: Que Es Un Cluster

Uso de los Clusters

Clusters en Aplicaciones CientiacuteficasEjemplos Simulaciones genoacutemica computacional prediccioacuten

meteoroloacutegica etc

Clusters en Aplicaciones EmpresarialesbullEjemplos wikipedia y Google

Desarrollo de la herramienta MicroCluster

Donde una de las computadoras del cluster desempentildea el papel de administrador Dicho administrador se encarga de recolectar informacioacuten sobre la carga de trabajo del cluster y de enviar los procesos a las computadoras con menor carga El administrador puede ser definido expliacutecitamente por el operador del MicroCluster (mediante un archivo de configuracioacuten) o puede ser elegido automaacuteticamente al iniciar el cluster

Ventajas de los Clusters 1048708 Flexibilidad1048708 Disponibilidad1048708 Escalabilidad1048708 Crecimiento por incrementos1048708 Incorporacioacuten de tecnologiacutea punta1048708 Aprovecha ciclos perdidos1048708 Heterogeneidad Problemas de los Clusters 1048708 Existen todaviacutea varios problemas propios de estos sistemas 1048708 Software 1048708 Problemas de administracioacuten y gestioacuten 1048708 Memoria fiacutesicamente distribuida =gt utilizacioacuten menos eficiente 1048708 Varias copias del sistema operativo 1048708 La red es el cuello de botella del sistema

Balance de carga y coacutemputo paralelo bull Procesar un algoritmo o programa en paralelo significa que dicha

aplicacioacuten se ejecuta en forma distribuida sobre un cierto nuacutemero de nodos del cluster Asiacute sobre cada nodo trabaja una parte del algoritmo y esto permite que diferentes procesos corran en forma simultanea en lugar de hacerlo secuencialmente sobre un solo procesador Los procesos ldquodistribuidosrdquo o ldquoparalelizadosrdquo de un algoritmo en general no son independientes entre siacute es decir que para completar ciertos procesos sobre un nodo del cluster se requiere informacioacuten de otros procesos que corren sobre otros nodos Esta informacioacuten debe ser transmitida a traveacutes de la red que los conecta

bull Para facilitar la transmisioacuten de la informacioacuten entre los procesos se han desarrollado herramientas especiales Una de ellas es la ldquoInterfaz de Paso de Mensajesrdquo (MPI del ingles Message Passing Interface) y la otra es conocida como Maquina Paralela Virtual (PVM del ingles Parallel Virtual Machine)

BALANCEO DE CARGA

Un tipo concreto de cluster cuya funcioacuten es repartir la carga de proceso entre los nodos y aprovechar al maacuteximo las capacidades disponibles en este es el cluster openMosix sistema automaacutetico que distribuye los procesos que constituye una solucioacuten escalable para clusters basados en Linux los algoritmos de MOSIX comparten los recursos disponibles en forma adaptativa mediante un sistema de migracioacuten de procesos Internamente y de forma transparente para el usuario los procesos seraacuten migrados al nodo que maacutes recursos disponibles posea Dado que las demandas en cada nodo pueden variar en el tiempo los procesos migran automaacuteticamente de un nodo a otro para aprovechar el sistema al maacuteximo De forma alternativa si fuera necesario el usuario puede migrar ldquomanualmenterdquo sus procesos e incluso fijar la ejecucioacuten a un nodo en particular

Las caracteriacutesticas maacutes destacadas de este tipo de cluster son Se puede ampliar su capacidad faacutecilmente antildeadiendo maacutes ordenadores al cluster Robustez Ante la caiacuteda de alguno de los ordenadores del cluster el servicio se

puede ver mermado pero mientras haya ordenadores en funcionamiento eacutestos seguiraacuten dando servicio

El aspecto del balanceo de carga es bastante importante debido a que en muchas aplicaciones paralelas como la buacutesqueda o la optimizacioacuten es extraordinariamente difiacutecil predecir el tamantildeo de las tareas asignadas a cada procesador de manera que se realice una divisioacuten de las mismas para que todos mantengan la carga computacional uniforme Cuando no es uniforme es decir hay desbalance en la carga ya sea que el trabajo no se haya repartido de una forma equitativa o porque algunos procesadores sean maacutes raacutepidos que otros o por ambas situaciones entonces algunos procesadores terminaraacuten permaneciendo inactivos mientras otros todaviacutea estaacuten calculando

La situacioacuten ideal es que todos los procesadores trabajen de una forma continua sobre las tareas disponibles para conseguir el miacutenimo tiempo de ejecucioacuten

Tipos de Balanceo de Carga

1Balanceo de Carga Estaacuteticobull El balanceo de carga tambieacuten es llamado mapeado del problema o

planificacioacuten del problema La distribucioacuten de las tareas se realiza al comienzo de la computacioacuten lo cual permite al maestro participar en la computacioacuten una vez que haya asignado una fraccioacuten del trabajo a cada esclavo La asignacioacuten de tareas se puede realizar de una sola vez o de manera ciacuteclica

bull El balanceo de carga estaacutetico tiene serios inconvenientes que lo situacutean en desventaja sobre el balanceo de carga dinaacutemico Entre ellos cabe destacar los siguientes

- Es muy difiacutecil estimar de forma precisa el tiempo de ejecucioacuten de todas las partes en las que se divide un programa sin ejecutarlas

- A veces los problemas necesitan un nuacutemero indeterminado de pasos computacionales para alcanzar la solucioacuten

2 Balanceo de Carga Dinaacutemicobull Este tipo de balanceo de carga se trata durante la ejecucioacuten de procesos La carga computacional depende de las tareas que se estaacuten ejecutando y

no de la estimacioacuten del tiempo que pueden tardar en ejecutarse Aunque el balanceo de carga dinaacutemico lleva consigo una cierta sobrecarga durante la ejecucioacuten del programa resulta una alternativa mucho maacutes eficiente que el balanceo de carga estaacutetico

balanceo de carga dinaacutemico es muy uacutetil cuando el nuacutemero de tareas es mayor que el nuacutemero de procesadores disponibles o cuando el nuacutemero de tareas es desconocido al comienzo de la aplicacioacuten Una importante caracteriacutestica del balanceo de carga dinaacutemico es la capacidad que tiene la aplicacioacuten de adaptarse a los posibles cambios del sistema no soacutelo a la carga de los procesadores sino tambieacuten a posibles reconfiguraciones de los recursos del sistema Debido a esta caracteriacutestica un cluster puede responder bastante bien cuando se produce el fallo de alguacuten procesador lo cual simplifica la creacioacuten de aplicaciones tolerantes a fallos que sean capaces de sobrevivir cuando se pierde alguacuten esclavo o incluso el maestro

Dependiendo de doacutende y coacutemo se almacenen y repartan las tareas el balanceo de carga dinaacutemico se divide en

- Balanceo de carga dinaacutemico centralizado Se corresponde con la estructura tiacutepica de MaestroEsclavo

- Balanceo de carga dinaacutemico distribuido o descentralizado Se utilizan varios maestros y cada uno controla a un grupo de esclavos

21 Balanceo de carga dinaacutemico centralizado bull Cuando un nodo esclavo finaliza una tarea solicita una nueva al maestro

bull Esta teacutecnica tambieacuten se denomina programacioacuten por demanda o bolsa de trabajo y no soacutelo es aplicable a problemas que tengan tareas de un mismo tamantildeo

bull En problemas con tareas de distintos tamantildeos es mejor repartir primero aquellas que tengan una mayor carga computacional Si la tarea maacutes compleja se dejase para el final las tareas maacutes pequentildeas seriacutean realizadas por esclavos que despueacutes estariacutean esperando sin hacer nada hasta que alguno completara la tarea maacutes compleja

bull En algunas aplicaciones especialmente en algoritmos de buacutesqueda la ejecucioacuten de una tarea puede generar nuevas tareas aunque al final el nuacutemero de tareas se debe de reducir a cero para alcanzar la finalizacioacuten del programa En este contexto se puede utilizar una cola para mantener las tareas pendientes Si todas las tareas son del mismo tamantildeo y de la misma importancia o prioridad una cola FIFO (First In First Out) puede ser maacutes que suficiente

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 6: Que Es Un Cluster

Desarrollo de la herramienta MicroCluster

Donde una de las computadoras del cluster desempentildea el papel de administrador Dicho administrador se encarga de recolectar informacioacuten sobre la carga de trabajo del cluster y de enviar los procesos a las computadoras con menor carga El administrador puede ser definido expliacutecitamente por el operador del MicroCluster (mediante un archivo de configuracioacuten) o puede ser elegido automaacuteticamente al iniciar el cluster

Ventajas de los Clusters 1048708 Flexibilidad1048708 Disponibilidad1048708 Escalabilidad1048708 Crecimiento por incrementos1048708 Incorporacioacuten de tecnologiacutea punta1048708 Aprovecha ciclos perdidos1048708 Heterogeneidad Problemas de los Clusters 1048708 Existen todaviacutea varios problemas propios de estos sistemas 1048708 Software 1048708 Problemas de administracioacuten y gestioacuten 1048708 Memoria fiacutesicamente distribuida =gt utilizacioacuten menos eficiente 1048708 Varias copias del sistema operativo 1048708 La red es el cuello de botella del sistema

Balance de carga y coacutemputo paralelo bull Procesar un algoritmo o programa en paralelo significa que dicha

aplicacioacuten se ejecuta en forma distribuida sobre un cierto nuacutemero de nodos del cluster Asiacute sobre cada nodo trabaja una parte del algoritmo y esto permite que diferentes procesos corran en forma simultanea en lugar de hacerlo secuencialmente sobre un solo procesador Los procesos ldquodistribuidosrdquo o ldquoparalelizadosrdquo de un algoritmo en general no son independientes entre siacute es decir que para completar ciertos procesos sobre un nodo del cluster se requiere informacioacuten de otros procesos que corren sobre otros nodos Esta informacioacuten debe ser transmitida a traveacutes de la red que los conecta

bull Para facilitar la transmisioacuten de la informacioacuten entre los procesos se han desarrollado herramientas especiales Una de ellas es la ldquoInterfaz de Paso de Mensajesrdquo (MPI del ingles Message Passing Interface) y la otra es conocida como Maquina Paralela Virtual (PVM del ingles Parallel Virtual Machine)

BALANCEO DE CARGA

Un tipo concreto de cluster cuya funcioacuten es repartir la carga de proceso entre los nodos y aprovechar al maacuteximo las capacidades disponibles en este es el cluster openMosix sistema automaacutetico que distribuye los procesos que constituye una solucioacuten escalable para clusters basados en Linux los algoritmos de MOSIX comparten los recursos disponibles en forma adaptativa mediante un sistema de migracioacuten de procesos Internamente y de forma transparente para el usuario los procesos seraacuten migrados al nodo que maacutes recursos disponibles posea Dado que las demandas en cada nodo pueden variar en el tiempo los procesos migran automaacuteticamente de un nodo a otro para aprovechar el sistema al maacuteximo De forma alternativa si fuera necesario el usuario puede migrar ldquomanualmenterdquo sus procesos e incluso fijar la ejecucioacuten a un nodo en particular

Las caracteriacutesticas maacutes destacadas de este tipo de cluster son Se puede ampliar su capacidad faacutecilmente antildeadiendo maacutes ordenadores al cluster Robustez Ante la caiacuteda de alguno de los ordenadores del cluster el servicio se

puede ver mermado pero mientras haya ordenadores en funcionamiento eacutestos seguiraacuten dando servicio

El aspecto del balanceo de carga es bastante importante debido a que en muchas aplicaciones paralelas como la buacutesqueda o la optimizacioacuten es extraordinariamente difiacutecil predecir el tamantildeo de las tareas asignadas a cada procesador de manera que se realice una divisioacuten de las mismas para que todos mantengan la carga computacional uniforme Cuando no es uniforme es decir hay desbalance en la carga ya sea que el trabajo no se haya repartido de una forma equitativa o porque algunos procesadores sean maacutes raacutepidos que otros o por ambas situaciones entonces algunos procesadores terminaraacuten permaneciendo inactivos mientras otros todaviacutea estaacuten calculando

La situacioacuten ideal es que todos los procesadores trabajen de una forma continua sobre las tareas disponibles para conseguir el miacutenimo tiempo de ejecucioacuten

Tipos de Balanceo de Carga

1Balanceo de Carga Estaacuteticobull El balanceo de carga tambieacuten es llamado mapeado del problema o

planificacioacuten del problema La distribucioacuten de las tareas se realiza al comienzo de la computacioacuten lo cual permite al maestro participar en la computacioacuten una vez que haya asignado una fraccioacuten del trabajo a cada esclavo La asignacioacuten de tareas se puede realizar de una sola vez o de manera ciacuteclica

bull El balanceo de carga estaacutetico tiene serios inconvenientes que lo situacutean en desventaja sobre el balanceo de carga dinaacutemico Entre ellos cabe destacar los siguientes

- Es muy difiacutecil estimar de forma precisa el tiempo de ejecucioacuten de todas las partes en las que se divide un programa sin ejecutarlas

- A veces los problemas necesitan un nuacutemero indeterminado de pasos computacionales para alcanzar la solucioacuten

2 Balanceo de Carga Dinaacutemicobull Este tipo de balanceo de carga se trata durante la ejecucioacuten de procesos La carga computacional depende de las tareas que se estaacuten ejecutando y

no de la estimacioacuten del tiempo que pueden tardar en ejecutarse Aunque el balanceo de carga dinaacutemico lleva consigo una cierta sobrecarga durante la ejecucioacuten del programa resulta una alternativa mucho maacutes eficiente que el balanceo de carga estaacutetico

balanceo de carga dinaacutemico es muy uacutetil cuando el nuacutemero de tareas es mayor que el nuacutemero de procesadores disponibles o cuando el nuacutemero de tareas es desconocido al comienzo de la aplicacioacuten Una importante caracteriacutestica del balanceo de carga dinaacutemico es la capacidad que tiene la aplicacioacuten de adaptarse a los posibles cambios del sistema no soacutelo a la carga de los procesadores sino tambieacuten a posibles reconfiguraciones de los recursos del sistema Debido a esta caracteriacutestica un cluster puede responder bastante bien cuando se produce el fallo de alguacuten procesador lo cual simplifica la creacioacuten de aplicaciones tolerantes a fallos que sean capaces de sobrevivir cuando se pierde alguacuten esclavo o incluso el maestro

Dependiendo de doacutende y coacutemo se almacenen y repartan las tareas el balanceo de carga dinaacutemico se divide en

- Balanceo de carga dinaacutemico centralizado Se corresponde con la estructura tiacutepica de MaestroEsclavo

- Balanceo de carga dinaacutemico distribuido o descentralizado Se utilizan varios maestros y cada uno controla a un grupo de esclavos

21 Balanceo de carga dinaacutemico centralizado bull Cuando un nodo esclavo finaliza una tarea solicita una nueva al maestro

bull Esta teacutecnica tambieacuten se denomina programacioacuten por demanda o bolsa de trabajo y no soacutelo es aplicable a problemas que tengan tareas de un mismo tamantildeo

bull En problemas con tareas de distintos tamantildeos es mejor repartir primero aquellas que tengan una mayor carga computacional Si la tarea maacutes compleja se dejase para el final las tareas maacutes pequentildeas seriacutean realizadas por esclavos que despueacutes estariacutean esperando sin hacer nada hasta que alguno completara la tarea maacutes compleja

bull En algunas aplicaciones especialmente en algoritmos de buacutesqueda la ejecucioacuten de una tarea puede generar nuevas tareas aunque al final el nuacutemero de tareas se debe de reducir a cero para alcanzar la finalizacioacuten del programa En este contexto se puede utilizar una cola para mantener las tareas pendientes Si todas las tareas son del mismo tamantildeo y de la misma importancia o prioridad una cola FIFO (First In First Out) puede ser maacutes que suficiente

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 7: Que Es Un Cluster

Ventajas de los Clusters 1048708 Flexibilidad1048708 Disponibilidad1048708 Escalabilidad1048708 Crecimiento por incrementos1048708 Incorporacioacuten de tecnologiacutea punta1048708 Aprovecha ciclos perdidos1048708 Heterogeneidad Problemas de los Clusters 1048708 Existen todaviacutea varios problemas propios de estos sistemas 1048708 Software 1048708 Problemas de administracioacuten y gestioacuten 1048708 Memoria fiacutesicamente distribuida =gt utilizacioacuten menos eficiente 1048708 Varias copias del sistema operativo 1048708 La red es el cuello de botella del sistema

Balance de carga y coacutemputo paralelo bull Procesar un algoritmo o programa en paralelo significa que dicha

aplicacioacuten se ejecuta en forma distribuida sobre un cierto nuacutemero de nodos del cluster Asiacute sobre cada nodo trabaja una parte del algoritmo y esto permite que diferentes procesos corran en forma simultanea en lugar de hacerlo secuencialmente sobre un solo procesador Los procesos ldquodistribuidosrdquo o ldquoparalelizadosrdquo de un algoritmo en general no son independientes entre siacute es decir que para completar ciertos procesos sobre un nodo del cluster se requiere informacioacuten de otros procesos que corren sobre otros nodos Esta informacioacuten debe ser transmitida a traveacutes de la red que los conecta

bull Para facilitar la transmisioacuten de la informacioacuten entre los procesos se han desarrollado herramientas especiales Una de ellas es la ldquoInterfaz de Paso de Mensajesrdquo (MPI del ingles Message Passing Interface) y la otra es conocida como Maquina Paralela Virtual (PVM del ingles Parallel Virtual Machine)

BALANCEO DE CARGA

Un tipo concreto de cluster cuya funcioacuten es repartir la carga de proceso entre los nodos y aprovechar al maacuteximo las capacidades disponibles en este es el cluster openMosix sistema automaacutetico que distribuye los procesos que constituye una solucioacuten escalable para clusters basados en Linux los algoritmos de MOSIX comparten los recursos disponibles en forma adaptativa mediante un sistema de migracioacuten de procesos Internamente y de forma transparente para el usuario los procesos seraacuten migrados al nodo que maacutes recursos disponibles posea Dado que las demandas en cada nodo pueden variar en el tiempo los procesos migran automaacuteticamente de un nodo a otro para aprovechar el sistema al maacuteximo De forma alternativa si fuera necesario el usuario puede migrar ldquomanualmenterdquo sus procesos e incluso fijar la ejecucioacuten a un nodo en particular

Las caracteriacutesticas maacutes destacadas de este tipo de cluster son Se puede ampliar su capacidad faacutecilmente antildeadiendo maacutes ordenadores al cluster Robustez Ante la caiacuteda de alguno de los ordenadores del cluster el servicio se

puede ver mermado pero mientras haya ordenadores en funcionamiento eacutestos seguiraacuten dando servicio

El aspecto del balanceo de carga es bastante importante debido a que en muchas aplicaciones paralelas como la buacutesqueda o la optimizacioacuten es extraordinariamente difiacutecil predecir el tamantildeo de las tareas asignadas a cada procesador de manera que se realice una divisioacuten de las mismas para que todos mantengan la carga computacional uniforme Cuando no es uniforme es decir hay desbalance en la carga ya sea que el trabajo no se haya repartido de una forma equitativa o porque algunos procesadores sean maacutes raacutepidos que otros o por ambas situaciones entonces algunos procesadores terminaraacuten permaneciendo inactivos mientras otros todaviacutea estaacuten calculando

La situacioacuten ideal es que todos los procesadores trabajen de una forma continua sobre las tareas disponibles para conseguir el miacutenimo tiempo de ejecucioacuten

Tipos de Balanceo de Carga

1Balanceo de Carga Estaacuteticobull El balanceo de carga tambieacuten es llamado mapeado del problema o

planificacioacuten del problema La distribucioacuten de las tareas se realiza al comienzo de la computacioacuten lo cual permite al maestro participar en la computacioacuten una vez que haya asignado una fraccioacuten del trabajo a cada esclavo La asignacioacuten de tareas se puede realizar de una sola vez o de manera ciacuteclica

bull El balanceo de carga estaacutetico tiene serios inconvenientes que lo situacutean en desventaja sobre el balanceo de carga dinaacutemico Entre ellos cabe destacar los siguientes

- Es muy difiacutecil estimar de forma precisa el tiempo de ejecucioacuten de todas las partes en las que se divide un programa sin ejecutarlas

- A veces los problemas necesitan un nuacutemero indeterminado de pasos computacionales para alcanzar la solucioacuten

2 Balanceo de Carga Dinaacutemicobull Este tipo de balanceo de carga se trata durante la ejecucioacuten de procesos La carga computacional depende de las tareas que se estaacuten ejecutando y

no de la estimacioacuten del tiempo que pueden tardar en ejecutarse Aunque el balanceo de carga dinaacutemico lleva consigo una cierta sobrecarga durante la ejecucioacuten del programa resulta una alternativa mucho maacutes eficiente que el balanceo de carga estaacutetico

balanceo de carga dinaacutemico es muy uacutetil cuando el nuacutemero de tareas es mayor que el nuacutemero de procesadores disponibles o cuando el nuacutemero de tareas es desconocido al comienzo de la aplicacioacuten Una importante caracteriacutestica del balanceo de carga dinaacutemico es la capacidad que tiene la aplicacioacuten de adaptarse a los posibles cambios del sistema no soacutelo a la carga de los procesadores sino tambieacuten a posibles reconfiguraciones de los recursos del sistema Debido a esta caracteriacutestica un cluster puede responder bastante bien cuando se produce el fallo de alguacuten procesador lo cual simplifica la creacioacuten de aplicaciones tolerantes a fallos que sean capaces de sobrevivir cuando se pierde alguacuten esclavo o incluso el maestro

Dependiendo de doacutende y coacutemo se almacenen y repartan las tareas el balanceo de carga dinaacutemico se divide en

- Balanceo de carga dinaacutemico centralizado Se corresponde con la estructura tiacutepica de MaestroEsclavo

- Balanceo de carga dinaacutemico distribuido o descentralizado Se utilizan varios maestros y cada uno controla a un grupo de esclavos

21 Balanceo de carga dinaacutemico centralizado bull Cuando un nodo esclavo finaliza una tarea solicita una nueva al maestro

bull Esta teacutecnica tambieacuten se denomina programacioacuten por demanda o bolsa de trabajo y no soacutelo es aplicable a problemas que tengan tareas de un mismo tamantildeo

bull En problemas con tareas de distintos tamantildeos es mejor repartir primero aquellas que tengan una mayor carga computacional Si la tarea maacutes compleja se dejase para el final las tareas maacutes pequentildeas seriacutean realizadas por esclavos que despueacutes estariacutean esperando sin hacer nada hasta que alguno completara la tarea maacutes compleja

bull En algunas aplicaciones especialmente en algoritmos de buacutesqueda la ejecucioacuten de una tarea puede generar nuevas tareas aunque al final el nuacutemero de tareas se debe de reducir a cero para alcanzar la finalizacioacuten del programa En este contexto se puede utilizar una cola para mantener las tareas pendientes Si todas las tareas son del mismo tamantildeo y de la misma importancia o prioridad una cola FIFO (First In First Out) puede ser maacutes que suficiente

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 8: Que Es Un Cluster

Balance de carga y coacutemputo paralelo bull Procesar un algoritmo o programa en paralelo significa que dicha

aplicacioacuten se ejecuta en forma distribuida sobre un cierto nuacutemero de nodos del cluster Asiacute sobre cada nodo trabaja una parte del algoritmo y esto permite que diferentes procesos corran en forma simultanea en lugar de hacerlo secuencialmente sobre un solo procesador Los procesos ldquodistribuidosrdquo o ldquoparalelizadosrdquo de un algoritmo en general no son independientes entre siacute es decir que para completar ciertos procesos sobre un nodo del cluster se requiere informacioacuten de otros procesos que corren sobre otros nodos Esta informacioacuten debe ser transmitida a traveacutes de la red que los conecta

bull Para facilitar la transmisioacuten de la informacioacuten entre los procesos se han desarrollado herramientas especiales Una de ellas es la ldquoInterfaz de Paso de Mensajesrdquo (MPI del ingles Message Passing Interface) y la otra es conocida como Maquina Paralela Virtual (PVM del ingles Parallel Virtual Machine)

BALANCEO DE CARGA

Un tipo concreto de cluster cuya funcioacuten es repartir la carga de proceso entre los nodos y aprovechar al maacuteximo las capacidades disponibles en este es el cluster openMosix sistema automaacutetico que distribuye los procesos que constituye una solucioacuten escalable para clusters basados en Linux los algoritmos de MOSIX comparten los recursos disponibles en forma adaptativa mediante un sistema de migracioacuten de procesos Internamente y de forma transparente para el usuario los procesos seraacuten migrados al nodo que maacutes recursos disponibles posea Dado que las demandas en cada nodo pueden variar en el tiempo los procesos migran automaacuteticamente de un nodo a otro para aprovechar el sistema al maacuteximo De forma alternativa si fuera necesario el usuario puede migrar ldquomanualmenterdquo sus procesos e incluso fijar la ejecucioacuten a un nodo en particular

Las caracteriacutesticas maacutes destacadas de este tipo de cluster son Se puede ampliar su capacidad faacutecilmente antildeadiendo maacutes ordenadores al cluster Robustez Ante la caiacuteda de alguno de los ordenadores del cluster el servicio se

puede ver mermado pero mientras haya ordenadores en funcionamiento eacutestos seguiraacuten dando servicio

El aspecto del balanceo de carga es bastante importante debido a que en muchas aplicaciones paralelas como la buacutesqueda o la optimizacioacuten es extraordinariamente difiacutecil predecir el tamantildeo de las tareas asignadas a cada procesador de manera que se realice una divisioacuten de las mismas para que todos mantengan la carga computacional uniforme Cuando no es uniforme es decir hay desbalance en la carga ya sea que el trabajo no se haya repartido de una forma equitativa o porque algunos procesadores sean maacutes raacutepidos que otros o por ambas situaciones entonces algunos procesadores terminaraacuten permaneciendo inactivos mientras otros todaviacutea estaacuten calculando

La situacioacuten ideal es que todos los procesadores trabajen de una forma continua sobre las tareas disponibles para conseguir el miacutenimo tiempo de ejecucioacuten

Tipos de Balanceo de Carga

1Balanceo de Carga Estaacuteticobull El balanceo de carga tambieacuten es llamado mapeado del problema o

planificacioacuten del problema La distribucioacuten de las tareas se realiza al comienzo de la computacioacuten lo cual permite al maestro participar en la computacioacuten una vez que haya asignado una fraccioacuten del trabajo a cada esclavo La asignacioacuten de tareas se puede realizar de una sola vez o de manera ciacuteclica

bull El balanceo de carga estaacutetico tiene serios inconvenientes que lo situacutean en desventaja sobre el balanceo de carga dinaacutemico Entre ellos cabe destacar los siguientes

- Es muy difiacutecil estimar de forma precisa el tiempo de ejecucioacuten de todas las partes en las que se divide un programa sin ejecutarlas

- A veces los problemas necesitan un nuacutemero indeterminado de pasos computacionales para alcanzar la solucioacuten

2 Balanceo de Carga Dinaacutemicobull Este tipo de balanceo de carga se trata durante la ejecucioacuten de procesos La carga computacional depende de las tareas que se estaacuten ejecutando y

no de la estimacioacuten del tiempo que pueden tardar en ejecutarse Aunque el balanceo de carga dinaacutemico lleva consigo una cierta sobrecarga durante la ejecucioacuten del programa resulta una alternativa mucho maacutes eficiente que el balanceo de carga estaacutetico

balanceo de carga dinaacutemico es muy uacutetil cuando el nuacutemero de tareas es mayor que el nuacutemero de procesadores disponibles o cuando el nuacutemero de tareas es desconocido al comienzo de la aplicacioacuten Una importante caracteriacutestica del balanceo de carga dinaacutemico es la capacidad que tiene la aplicacioacuten de adaptarse a los posibles cambios del sistema no soacutelo a la carga de los procesadores sino tambieacuten a posibles reconfiguraciones de los recursos del sistema Debido a esta caracteriacutestica un cluster puede responder bastante bien cuando se produce el fallo de alguacuten procesador lo cual simplifica la creacioacuten de aplicaciones tolerantes a fallos que sean capaces de sobrevivir cuando se pierde alguacuten esclavo o incluso el maestro

Dependiendo de doacutende y coacutemo se almacenen y repartan las tareas el balanceo de carga dinaacutemico se divide en

- Balanceo de carga dinaacutemico centralizado Se corresponde con la estructura tiacutepica de MaestroEsclavo

- Balanceo de carga dinaacutemico distribuido o descentralizado Se utilizan varios maestros y cada uno controla a un grupo de esclavos

21 Balanceo de carga dinaacutemico centralizado bull Cuando un nodo esclavo finaliza una tarea solicita una nueva al maestro

bull Esta teacutecnica tambieacuten se denomina programacioacuten por demanda o bolsa de trabajo y no soacutelo es aplicable a problemas que tengan tareas de un mismo tamantildeo

bull En problemas con tareas de distintos tamantildeos es mejor repartir primero aquellas que tengan una mayor carga computacional Si la tarea maacutes compleja se dejase para el final las tareas maacutes pequentildeas seriacutean realizadas por esclavos que despueacutes estariacutean esperando sin hacer nada hasta que alguno completara la tarea maacutes compleja

bull En algunas aplicaciones especialmente en algoritmos de buacutesqueda la ejecucioacuten de una tarea puede generar nuevas tareas aunque al final el nuacutemero de tareas se debe de reducir a cero para alcanzar la finalizacioacuten del programa En este contexto se puede utilizar una cola para mantener las tareas pendientes Si todas las tareas son del mismo tamantildeo y de la misma importancia o prioridad una cola FIFO (First In First Out) puede ser maacutes que suficiente

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 9: Que Es Un Cluster

BALANCEO DE CARGA

Un tipo concreto de cluster cuya funcioacuten es repartir la carga de proceso entre los nodos y aprovechar al maacuteximo las capacidades disponibles en este es el cluster openMosix sistema automaacutetico que distribuye los procesos que constituye una solucioacuten escalable para clusters basados en Linux los algoritmos de MOSIX comparten los recursos disponibles en forma adaptativa mediante un sistema de migracioacuten de procesos Internamente y de forma transparente para el usuario los procesos seraacuten migrados al nodo que maacutes recursos disponibles posea Dado que las demandas en cada nodo pueden variar en el tiempo los procesos migran automaacuteticamente de un nodo a otro para aprovechar el sistema al maacuteximo De forma alternativa si fuera necesario el usuario puede migrar ldquomanualmenterdquo sus procesos e incluso fijar la ejecucioacuten a un nodo en particular

Las caracteriacutesticas maacutes destacadas de este tipo de cluster son Se puede ampliar su capacidad faacutecilmente antildeadiendo maacutes ordenadores al cluster Robustez Ante la caiacuteda de alguno de los ordenadores del cluster el servicio se

puede ver mermado pero mientras haya ordenadores en funcionamiento eacutestos seguiraacuten dando servicio

El aspecto del balanceo de carga es bastante importante debido a que en muchas aplicaciones paralelas como la buacutesqueda o la optimizacioacuten es extraordinariamente difiacutecil predecir el tamantildeo de las tareas asignadas a cada procesador de manera que se realice una divisioacuten de las mismas para que todos mantengan la carga computacional uniforme Cuando no es uniforme es decir hay desbalance en la carga ya sea que el trabajo no se haya repartido de una forma equitativa o porque algunos procesadores sean maacutes raacutepidos que otros o por ambas situaciones entonces algunos procesadores terminaraacuten permaneciendo inactivos mientras otros todaviacutea estaacuten calculando

La situacioacuten ideal es que todos los procesadores trabajen de una forma continua sobre las tareas disponibles para conseguir el miacutenimo tiempo de ejecucioacuten

Tipos de Balanceo de Carga

1Balanceo de Carga Estaacuteticobull El balanceo de carga tambieacuten es llamado mapeado del problema o

planificacioacuten del problema La distribucioacuten de las tareas se realiza al comienzo de la computacioacuten lo cual permite al maestro participar en la computacioacuten una vez que haya asignado una fraccioacuten del trabajo a cada esclavo La asignacioacuten de tareas se puede realizar de una sola vez o de manera ciacuteclica

bull El balanceo de carga estaacutetico tiene serios inconvenientes que lo situacutean en desventaja sobre el balanceo de carga dinaacutemico Entre ellos cabe destacar los siguientes

- Es muy difiacutecil estimar de forma precisa el tiempo de ejecucioacuten de todas las partes en las que se divide un programa sin ejecutarlas

- A veces los problemas necesitan un nuacutemero indeterminado de pasos computacionales para alcanzar la solucioacuten

2 Balanceo de Carga Dinaacutemicobull Este tipo de balanceo de carga se trata durante la ejecucioacuten de procesos La carga computacional depende de las tareas que se estaacuten ejecutando y

no de la estimacioacuten del tiempo que pueden tardar en ejecutarse Aunque el balanceo de carga dinaacutemico lleva consigo una cierta sobrecarga durante la ejecucioacuten del programa resulta una alternativa mucho maacutes eficiente que el balanceo de carga estaacutetico

balanceo de carga dinaacutemico es muy uacutetil cuando el nuacutemero de tareas es mayor que el nuacutemero de procesadores disponibles o cuando el nuacutemero de tareas es desconocido al comienzo de la aplicacioacuten Una importante caracteriacutestica del balanceo de carga dinaacutemico es la capacidad que tiene la aplicacioacuten de adaptarse a los posibles cambios del sistema no soacutelo a la carga de los procesadores sino tambieacuten a posibles reconfiguraciones de los recursos del sistema Debido a esta caracteriacutestica un cluster puede responder bastante bien cuando se produce el fallo de alguacuten procesador lo cual simplifica la creacioacuten de aplicaciones tolerantes a fallos que sean capaces de sobrevivir cuando se pierde alguacuten esclavo o incluso el maestro

Dependiendo de doacutende y coacutemo se almacenen y repartan las tareas el balanceo de carga dinaacutemico se divide en

- Balanceo de carga dinaacutemico centralizado Se corresponde con la estructura tiacutepica de MaestroEsclavo

- Balanceo de carga dinaacutemico distribuido o descentralizado Se utilizan varios maestros y cada uno controla a un grupo de esclavos

21 Balanceo de carga dinaacutemico centralizado bull Cuando un nodo esclavo finaliza una tarea solicita una nueva al maestro

bull Esta teacutecnica tambieacuten se denomina programacioacuten por demanda o bolsa de trabajo y no soacutelo es aplicable a problemas que tengan tareas de un mismo tamantildeo

bull En problemas con tareas de distintos tamantildeos es mejor repartir primero aquellas que tengan una mayor carga computacional Si la tarea maacutes compleja se dejase para el final las tareas maacutes pequentildeas seriacutean realizadas por esclavos que despueacutes estariacutean esperando sin hacer nada hasta que alguno completara la tarea maacutes compleja

bull En algunas aplicaciones especialmente en algoritmos de buacutesqueda la ejecucioacuten de una tarea puede generar nuevas tareas aunque al final el nuacutemero de tareas se debe de reducir a cero para alcanzar la finalizacioacuten del programa En este contexto se puede utilizar una cola para mantener las tareas pendientes Si todas las tareas son del mismo tamantildeo y de la misma importancia o prioridad una cola FIFO (First In First Out) puede ser maacutes que suficiente

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 10: Que Es Un Cluster

Las caracteriacutesticas maacutes destacadas de este tipo de cluster son Se puede ampliar su capacidad faacutecilmente antildeadiendo maacutes ordenadores al cluster Robustez Ante la caiacuteda de alguno de los ordenadores del cluster el servicio se

puede ver mermado pero mientras haya ordenadores en funcionamiento eacutestos seguiraacuten dando servicio

El aspecto del balanceo de carga es bastante importante debido a que en muchas aplicaciones paralelas como la buacutesqueda o la optimizacioacuten es extraordinariamente difiacutecil predecir el tamantildeo de las tareas asignadas a cada procesador de manera que se realice una divisioacuten de las mismas para que todos mantengan la carga computacional uniforme Cuando no es uniforme es decir hay desbalance en la carga ya sea que el trabajo no se haya repartido de una forma equitativa o porque algunos procesadores sean maacutes raacutepidos que otros o por ambas situaciones entonces algunos procesadores terminaraacuten permaneciendo inactivos mientras otros todaviacutea estaacuten calculando

La situacioacuten ideal es que todos los procesadores trabajen de una forma continua sobre las tareas disponibles para conseguir el miacutenimo tiempo de ejecucioacuten

Tipos de Balanceo de Carga

1Balanceo de Carga Estaacuteticobull El balanceo de carga tambieacuten es llamado mapeado del problema o

planificacioacuten del problema La distribucioacuten de las tareas se realiza al comienzo de la computacioacuten lo cual permite al maestro participar en la computacioacuten una vez que haya asignado una fraccioacuten del trabajo a cada esclavo La asignacioacuten de tareas se puede realizar de una sola vez o de manera ciacuteclica

bull El balanceo de carga estaacutetico tiene serios inconvenientes que lo situacutean en desventaja sobre el balanceo de carga dinaacutemico Entre ellos cabe destacar los siguientes

- Es muy difiacutecil estimar de forma precisa el tiempo de ejecucioacuten de todas las partes en las que se divide un programa sin ejecutarlas

- A veces los problemas necesitan un nuacutemero indeterminado de pasos computacionales para alcanzar la solucioacuten

2 Balanceo de Carga Dinaacutemicobull Este tipo de balanceo de carga se trata durante la ejecucioacuten de procesos La carga computacional depende de las tareas que se estaacuten ejecutando y

no de la estimacioacuten del tiempo que pueden tardar en ejecutarse Aunque el balanceo de carga dinaacutemico lleva consigo una cierta sobrecarga durante la ejecucioacuten del programa resulta una alternativa mucho maacutes eficiente que el balanceo de carga estaacutetico

balanceo de carga dinaacutemico es muy uacutetil cuando el nuacutemero de tareas es mayor que el nuacutemero de procesadores disponibles o cuando el nuacutemero de tareas es desconocido al comienzo de la aplicacioacuten Una importante caracteriacutestica del balanceo de carga dinaacutemico es la capacidad que tiene la aplicacioacuten de adaptarse a los posibles cambios del sistema no soacutelo a la carga de los procesadores sino tambieacuten a posibles reconfiguraciones de los recursos del sistema Debido a esta caracteriacutestica un cluster puede responder bastante bien cuando se produce el fallo de alguacuten procesador lo cual simplifica la creacioacuten de aplicaciones tolerantes a fallos que sean capaces de sobrevivir cuando se pierde alguacuten esclavo o incluso el maestro

Dependiendo de doacutende y coacutemo se almacenen y repartan las tareas el balanceo de carga dinaacutemico se divide en

- Balanceo de carga dinaacutemico centralizado Se corresponde con la estructura tiacutepica de MaestroEsclavo

- Balanceo de carga dinaacutemico distribuido o descentralizado Se utilizan varios maestros y cada uno controla a un grupo de esclavos

21 Balanceo de carga dinaacutemico centralizado bull Cuando un nodo esclavo finaliza una tarea solicita una nueva al maestro

bull Esta teacutecnica tambieacuten se denomina programacioacuten por demanda o bolsa de trabajo y no soacutelo es aplicable a problemas que tengan tareas de un mismo tamantildeo

bull En problemas con tareas de distintos tamantildeos es mejor repartir primero aquellas que tengan una mayor carga computacional Si la tarea maacutes compleja se dejase para el final las tareas maacutes pequentildeas seriacutean realizadas por esclavos que despueacutes estariacutean esperando sin hacer nada hasta que alguno completara la tarea maacutes compleja

bull En algunas aplicaciones especialmente en algoritmos de buacutesqueda la ejecucioacuten de una tarea puede generar nuevas tareas aunque al final el nuacutemero de tareas se debe de reducir a cero para alcanzar la finalizacioacuten del programa En este contexto se puede utilizar una cola para mantener las tareas pendientes Si todas las tareas son del mismo tamantildeo y de la misma importancia o prioridad una cola FIFO (First In First Out) puede ser maacutes que suficiente

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 11: Que Es Un Cluster

El aspecto del balanceo de carga es bastante importante debido a que en muchas aplicaciones paralelas como la buacutesqueda o la optimizacioacuten es extraordinariamente difiacutecil predecir el tamantildeo de las tareas asignadas a cada procesador de manera que se realice una divisioacuten de las mismas para que todos mantengan la carga computacional uniforme Cuando no es uniforme es decir hay desbalance en la carga ya sea que el trabajo no se haya repartido de una forma equitativa o porque algunos procesadores sean maacutes raacutepidos que otros o por ambas situaciones entonces algunos procesadores terminaraacuten permaneciendo inactivos mientras otros todaviacutea estaacuten calculando

La situacioacuten ideal es que todos los procesadores trabajen de una forma continua sobre las tareas disponibles para conseguir el miacutenimo tiempo de ejecucioacuten

Tipos de Balanceo de Carga

1Balanceo de Carga Estaacuteticobull El balanceo de carga tambieacuten es llamado mapeado del problema o

planificacioacuten del problema La distribucioacuten de las tareas se realiza al comienzo de la computacioacuten lo cual permite al maestro participar en la computacioacuten una vez que haya asignado una fraccioacuten del trabajo a cada esclavo La asignacioacuten de tareas se puede realizar de una sola vez o de manera ciacuteclica

bull El balanceo de carga estaacutetico tiene serios inconvenientes que lo situacutean en desventaja sobre el balanceo de carga dinaacutemico Entre ellos cabe destacar los siguientes

- Es muy difiacutecil estimar de forma precisa el tiempo de ejecucioacuten de todas las partes en las que se divide un programa sin ejecutarlas

- A veces los problemas necesitan un nuacutemero indeterminado de pasos computacionales para alcanzar la solucioacuten

2 Balanceo de Carga Dinaacutemicobull Este tipo de balanceo de carga se trata durante la ejecucioacuten de procesos La carga computacional depende de las tareas que se estaacuten ejecutando y

no de la estimacioacuten del tiempo que pueden tardar en ejecutarse Aunque el balanceo de carga dinaacutemico lleva consigo una cierta sobrecarga durante la ejecucioacuten del programa resulta una alternativa mucho maacutes eficiente que el balanceo de carga estaacutetico

balanceo de carga dinaacutemico es muy uacutetil cuando el nuacutemero de tareas es mayor que el nuacutemero de procesadores disponibles o cuando el nuacutemero de tareas es desconocido al comienzo de la aplicacioacuten Una importante caracteriacutestica del balanceo de carga dinaacutemico es la capacidad que tiene la aplicacioacuten de adaptarse a los posibles cambios del sistema no soacutelo a la carga de los procesadores sino tambieacuten a posibles reconfiguraciones de los recursos del sistema Debido a esta caracteriacutestica un cluster puede responder bastante bien cuando se produce el fallo de alguacuten procesador lo cual simplifica la creacioacuten de aplicaciones tolerantes a fallos que sean capaces de sobrevivir cuando se pierde alguacuten esclavo o incluso el maestro

Dependiendo de doacutende y coacutemo se almacenen y repartan las tareas el balanceo de carga dinaacutemico se divide en

- Balanceo de carga dinaacutemico centralizado Se corresponde con la estructura tiacutepica de MaestroEsclavo

- Balanceo de carga dinaacutemico distribuido o descentralizado Se utilizan varios maestros y cada uno controla a un grupo de esclavos

21 Balanceo de carga dinaacutemico centralizado bull Cuando un nodo esclavo finaliza una tarea solicita una nueva al maestro

bull Esta teacutecnica tambieacuten se denomina programacioacuten por demanda o bolsa de trabajo y no soacutelo es aplicable a problemas que tengan tareas de un mismo tamantildeo

bull En problemas con tareas de distintos tamantildeos es mejor repartir primero aquellas que tengan una mayor carga computacional Si la tarea maacutes compleja se dejase para el final las tareas maacutes pequentildeas seriacutean realizadas por esclavos que despueacutes estariacutean esperando sin hacer nada hasta que alguno completara la tarea maacutes compleja

bull En algunas aplicaciones especialmente en algoritmos de buacutesqueda la ejecucioacuten de una tarea puede generar nuevas tareas aunque al final el nuacutemero de tareas se debe de reducir a cero para alcanzar la finalizacioacuten del programa En este contexto se puede utilizar una cola para mantener las tareas pendientes Si todas las tareas son del mismo tamantildeo y de la misma importancia o prioridad una cola FIFO (First In First Out) puede ser maacutes que suficiente

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 12: Que Es Un Cluster

Tipos de Balanceo de Carga

1Balanceo de Carga Estaacuteticobull El balanceo de carga tambieacuten es llamado mapeado del problema o

planificacioacuten del problema La distribucioacuten de las tareas se realiza al comienzo de la computacioacuten lo cual permite al maestro participar en la computacioacuten una vez que haya asignado una fraccioacuten del trabajo a cada esclavo La asignacioacuten de tareas se puede realizar de una sola vez o de manera ciacuteclica

bull El balanceo de carga estaacutetico tiene serios inconvenientes que lo situacutean en desventaja sobre el balanceo de carga dinaacutemico Entre ellos cabe destacar los siguientes

- Es muy difiacutecil estimar de forma precisa el tiempo de ejecucioacuten de todas las partes en las que se divide un programa sin ejecutarlas

- A veces los problemas necesitan un nuacutemero indeterminado de pasos computacionales para alcanzar la solucioacuten

2 Balanceo de Carga Dinaacutemicobull Este tipo de balanceo de carga se trata durante la ejecucioacuten de procesos La carga computacional depende de las tareas que se estaacuten ejecutando y

no de la estimacioacuten del tiempo que pueden tardar en ejecutarse Aunque el balanceo de carga dinaacutemico lleva consigo una cierta sobrecarga durante la ejecucioacuten del programa resulta una alternativa mucho maacutes eficiente que el balanceo de carga estaacutetico

balanceo de carga dinaacutemico es muy uacutetil cuando el nuacutemero de tareas es mayor que el nuacutemero de procesadores disponibles o cuando el nuacutemero de tareas es desconocido al comienzo de la aplicacioacuten Una importante caracteriacutestica del balanceo de carga dinaacutemico es la capacidad que tiene la aplicacioacuten de adaptarse a los posibles cambios del sistema no soacutelo a la carga de los procesadores sino tambieacuten a posibles reconfiguraciones de los recursos del sistema Debido a esta caracteriacutestica un cluster puede responder bastante bien cuando se produce el fallo de alguacuten procesador lo cual simplifica la creacioacuten de aplicaciones tolerantes a fallos que sean capaces de sobrevivir cuando se pierde alguacuten esclavo o incluso el maestro

Dependiendo de doacutende y coacutemo se almacenen y repartan las tareas el balanceo de carga dinaacutemico se divide en

- Balanceo de carga dinaacutemico centralizado Se corresponde con la estructura tiacutepica de MaestroEsclavo

- Balanceo de carga dinaacutemico distribuido o descentralizado Se utilizan varios maestros y cada uno controla a un grupo de esclavos

21 Balanceo de carga dinaacutemico centralizado bull Cuando un nodo esclavo finaliza una tarea solicita una nueva al maestro

bull Esta teacutecnica tambieacuten se denomina programacioacuten por demanda o bolsa de trabajo y no soacutelo es aplicable a problemas que tengan tareas de un mismo tamantildeo

bull En problemas con tareas de distintos tamantildeos es mejor repartir primero aquellas que tengan una mayor carga computacional Si la tarea maacutes compleja se dejase para el final las tareas maacutes pequentildeas seriacutean realizadas por esclavos que despueacutes estariacutean esperando sin hacer nada hasta que alguno completara la tarea maacutes compleja

bull En algunas aplicaciones especialmente en algoritmos de buacutesqueda la ejecucioacuten de una tarea puede generar nuevas tareas aunque al final el nuacutemero de tareas se debe de reducir a cero para alcanzar la finalizacioacuten del programa En este contexto se puede utilizar una cola para mantener las tareas pendientes Si todas las tareas son del mismo tamantildeo y de la misma importancia o prioridad una cola FIFO (First In First Out) puede ser maacutes que suficiente

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 13: Que Es Un Cluster

2 Balanceo de Carga Dinaacutemicobull Este tipo de balanceo de carga se trata durante la ejecucioacuten de procesos La carga computacional depende de las tareas que se estaacuten ejecutando y

no de la estimacioacuten del tiempo que pueden tardar en ejecutarse Aunque el balanceo de carga dinaacutemico lleva consigo una cierta sobrecarga durante la ejecucioacuten del programa resulta una alternativa mucho maacutes eficiente que el balanceo de carga estaacutetico

balanceo de carga dinaacutemico es muy uacutetil cuando el nuacutemero de tareas es mayor que el nuacutemero de procesadores disponibles o cuando el nuacutemero de tareas es desconocido al comienzo de la aplicacioacuten Una importante caracteriacutestica del balanceo de carga dinaacutemico es la capacidad que tiene la aplicacioacuten de adaptarse a los posibles cambios del sistema no soacutelo a la carga de los procesadores sino tambieacuten a posibles reconfiguraciones de los recursos del sistema Debido a esta caracteriacutestica un cluster puede responder bastante bien cuando se produce el fallo de alguacuten procesador lo cual simplifica la creacioacuten de aplicaciones tolerantes a fallos que sean capaces de sobrevivir cuando se pierde alguacuten esclavo o incluso el maestro

Dependiendo de doacutende y coacutemo se almacenen y repartan las tareas el balanceo de carga dinaacutemico se divide en

- Balanceo de carga dinaacutemico centralizado Se corresponde con la estructura tiacutepica de MaestroEsclavo

- Balanceo de carga dinaacutemico distribuido o descentralizado Se utilizan varios maestros y cada uno controla a un grupo de esclavos

21 Balanceo de carga dinaacutemico centralizado bull Cuando un nodo esclavo finaliza una tarea solicita una nueva al maestro

bull Esta teacutecnica tambieacuten se denomina programacioacuten por demanda o bolsa de trabajo y no soacutelo es aplicable a problemas que tengan tareas de un mismo tamantildeo

bull En problemas con tareas de distintos tamantildeos es mejor repartir primero aquellas que tengan una mayor carga computacional Si la tarea maacutes compleja se dejase para el final las tareas maacutes pequentildeas seriacutean realizadas por esclavos que despueacutes estariacutean esperando sin hacer nada hasta que alguno completara la tarea maacutes compleja

bull En algunas aplicaciones especialmente en algoritmos de buacutesqueda la ejecucioacuten de una tarea puede generar nuevas tareas aunque al final el nuacutemero de tareas se debe de reducir a cero para alcanzar la finalizacioacuten del programa En este contexto se puede utilizar una cola para mantener las tareas pendientes Si todas las tareas son del mismo tamantildeo y de la misma importancia o prioridad una cola FIFO (First In First Out) puede ser maacutes que suficiente

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 14: Que Es Un Cluster

Dependiendo de doacutende y coacutemo se almacenen y repartan las tareas el balanceo de carga dinaacutemico se divide en

- Balanceo de carga dinaacutemico centralizado Se corresponde con la estructura tiacutepica de MaestroEsclavo

- Balanceo de carga dinaacutemico distribuido o descentralizado Se utilizan varios maestros y cada uno controla a un grupo de esclavos

21 Balanceo de carga dinaacutemico centralizado bull Cuando un nodo esclavo finaliza una tarea solicita una nueva al maestro

bull Esta teacutecnica tambieacuten se denomina programacioacuten por demanda o bolsa de trabajo y no soacutelo es aplicable a problemas que tengan tareas de un mismo tamantildeo

bull En problemas con tareas de distintos tamantildeos es mejor repartir primero aquellas que tengan una mayor carga computacional Si la tarea maacutes compleja se dejase para el final las tareas maacutes pequentildeas seriacutean realizadas por esclavos que despueacutes estariacutean esperando sin hacer nada hasta que alguno completara la tarea maacutes compleja

bull En algunas aplicaciones especialmente en algoritmos de buacutesqueda la ejecucioacuten de una tarea puede generar nuevas tareas aunque al final el nuacutemero de tareas se debe de reducir a cero para alcanzar la finalizacioacuten del programa En este contexto se puede utilizar una cola para mantener las tareas pendientes Si todas las tareas son del mismo tamantildeo y de la misma importancia o prioridad una cola FIFO (First In First Out) puede ser maacutes que suficiente

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 15: Que Es Un Cluster

21 Balanceo de carga dinaacutemico centralizado bull Cuando un nodo esclavo finaliza una tarea solicita una nueva al maestro

bull Esta teacutecnica tambieacuten se denomina programacioacuten por demanda o bolsa de trabajo y no soacutelo es aplicable a problemas que tengan tareas de un mismo tamantildeo

bull En problemas con tareas de distintos tamantildeos es mejor repartir primero aquellas que tengan una mayor carga computacional Si la tarea maacutes compleja se dejase para el final las tareas maacutes pequentildeas seriacutean realizadas por esclavos que despueacutes estariacutean esperando sin hacer nada hasta que alguno completara la tarea maacutes compleja

bull En algunas aplicaciones especialmente en algoritmos de buacutesqueda la ejecucioacuten de una tarea puede generar nuevas tareas aunque al final el nuacutemero de tareas se debe de reducir a cero para alcanzar la finalizacioacuten del programa En este contexto se puede utilizar una cola para mantener las tareas pendientes Si todas las tareas son del mismo tamantildeo y de la misma importancia o prioridad una cola FIFO (First In First Out) puede ser maacutes que suficiente

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 16: Que Es Un Cluster

22 Balanceo de carga dinaacutemico distribuido o descentralizado

bull Una gran desventaja del balanceo de carga dinaacutemico centralizado es que el nodo maestro uacutenicamente puede repartir una tarea cada vez y despueacutes de que haya enviado las tareas iniciales soacutelo podraacute responder a nuevas peticiones de una en una Por tanto se pueden producir colisiones si varios esclavos solicitan peticiones de tareas de manera simultaacutenea

bull La estructura centralizada uacutenicamente seraacute recomendable si no hay muchos esclavos y las tareas son intensivas computacionalmente Para tareas de grano fino (tareas con muy poca carga computacional) y muchos esclavos es apropiado distribuir las tareas en maacutes de un sitio

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 17: Que Es Un Cluster

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

bull un meacutetodo para balancear la carga de trabajo tratando de optimizar al maacuteximo el tiempo

total de ejecucioacuten Considerando esto el tipo de cluster seleccionado es el de alto rendimiento (HP high performance) ya que cuando la palabra cluster es pronunciada la primera cosa que pasa por la cabeza es alto desempentildeo este tipo de cluster es el maacutes comuacuten entre las comunidades cientiacuteficas sistemas predictivossimulaciones que exigen alto poder de procesamiento

Funcioacutenbull dado un problema complejo e identificado como paralelizable un servidor (maestro) debe

ser responsable de dividir este problema en numerosas partes para ser procesadas en nodos esclavos (nodos dedicados al procesamiento) Asiacute una vez que cada nodo esclavo encuentre una solucioacuten este la enviacutea al nodo maestro para que el maestro presente la solucioacuten completa del problema

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro

problema

problema

problema

problema

problema

SOLUCIONES

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 18: Que Es Un Cluster

bull Se trabajaraacute con el balanceo de carga dinaacutemico centralizado el cual consiste en que la asignacioacuten de la carga es efectuada por el nodo maestro a todos sus esclavos

bull El nodo maestro seraacute el encargado de recibir todas las tareas que se deberaacuten ejecutar y tomar la mejor decisioacuten al momento de realizar la reparticioacuten de eacutestas teniendo siempre en cuenta cuaacutel nodo es maacutes o menos fuerte dentro del cluacutester

bull En el meacutetodo se veraacute que el nodo maestro no realizaraacute ninguna de las tareas soacutelo las distribuiraacute De ahiacute se descarta todo lo que concierne con el balanceo de carga estaacutetico donde el nodo maestro participa activamente de la ejecucioacuten de las tareas en la computacioacuten una vez que haya asignado el trabajo a los nodos esclavos realizando este proceso una vez o ciacuteclicamente

MEacuteTODO PARA EL MANEJO DEL BALANCEO DE CARGA

maestro

problema

problema

problema

problema

problema

SOLUCIONES

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 19: Que Es Un Cluster

41 Descripcioacuten del Meacutetodobull En este trabajo el meacutetodo que se propone consiste en la distribucioacuten de tareas en los nodos esclavos por parte del nodo maestro el cual

recopilaraacute una a una las tareas conforme van llegando a medida que pasa el tiempobull La asignacioacuten de las tareas a los nodos esclavos dependeraacute del tamantildeo de las tareas y de una funcioacuten de aptitud la cual es calculada por

el nodo maestro despueacutes de que el nodo esclavo enviacutea ciertos atributos (velocidad de procesamiento capacidad de memoria y tiempo de respuesta)

bull Despueacutes de que el nodo maestro asigna una tarea a cierto nodo esclavo el esclavo ejecutaraacute la tarea y enviaraacute al nodo maestro una notificacioacuten de terminacioacuten de tarea indicaacutendole asiacute al nodo maestro que esta listo para ejecutar una nueva

bull La funcioacuten de aptitud se define como la rapidez asociada a la velocidad de procesamiento la capacidad de memoria y el tiempo de respuesta o latencia

bull El caacutelculo de la funcioacuten de aptitud corresponde a la sumatoria entre los atributos mencionados previamente donde cada uno de estos estaraacute multiplicado por un peso que dependeraacute de la importancia de este factor en el cluster

FuncionAptitud(i)=1048708cp(i) a+10487081048708cm(i) b 10487081048708+tr(i) c donde cp(i) = velocidad de procesamiento del nodo i cm(i) = capacidad de memoria del nodo i tr(i) = tiempo de respuesta o latencia del nodo ia b c = pesos asociados a cada variable y que dependen del tipo de cluacutester seleccionado

Nodo 1

Nodo 2

Nodo 3

Nodo 4

maestro ENVIAN ATRIBUTOS

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 20: Que Es Un Cluster

bull Para hacer el caacutelculo de la funcioacuten de aptitud en los nodos es necesario normalizar cada una de las variables

bull En este meacutetodo se tendraacuten en cuenta los tamantildeos de las tareas para la asignacioacuten recopilando estos por medio de series de tandas que se crearan acorde a la cantidad de nodos esclavos

bull 1 Se toman dos vectores iniacuteciales en un vector se almacenan todas las tareas iniacuteciales organizadas de mayor a menor tamantildeo cada una de estas presenta un ID que identifica que tarea es el otro vector recopila los nodos esclavos organizados por funcioacuten de aptitud de mayor a menor

bull 2 Se calculan los valores de las sumatorias de los tamantildeos de las tareas (STT) y de las funciones de aptitud de los nodos esclavos (SFA)

Donde n es la cantidad total de tareas que se presentan inicialmente y m es la cantidad de nodos del cluster El nodo 0 es el nodo maestro

Nodo 1

Nodo 2

Nodo 3

Nodo 4

Vector tareas

tareatarea

tarea Nodo 1

Nodo 2

Nodo 3

Vector nodos

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 21: Que Es Un Cluster

bull 5 En este punto el maestro ya conoce cual es la capacidad de cada nodo esclavo y procede con la distribucioacuten de las tareas teniendo en cuenta los caacutelculos realizados y que las tareas se encuentran organizadas de mayor a menor tamantildeo y los nodos se encuentran tambieacuten organizados de mayor a menor pero en cuanto a funcioacuten de aptitud

bull Para iniciar con la asignacioacuten se deberaacute recorrer el vector en donde se encuentran almacenadas las tareas

bull Para cada nodo esclavo se crearaacute un nuevo vector llamado Tanda(i) que contendraacute las tareas que le seraacuten asignadas para ejecutar

tarea tare

a tarea

Tanda n1 Tanda n2 Tanda n3

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 22: Que Es Un Cluster

bull En el nodo maestro se almacenaraacute una variable para cada uno de los nodos esclavos que seraacute un contador (sumatoria de tamantildeos de tareas) que examinaraacute si la tarea a ser asignada podraacute o no estar en la tanda de tareas del nodo respectivo cumpliendo o no con los requisitos del rango de cada nodo esclavo Esta variable se conoceraacute como SumatoriaTanda(i)

bull A continuacioacuten se realiza la asignacioacuten de las tareas a los nodos teniendo en cuenta la variable SumatoriaTanda(i) almacenada en el nodo maestro para cada nodo esclavo

bull Se toma el primer tamantildeo de tarea que se encuentra en el vector de tareas y se acumula en SumatoriaTanda(i)

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 23: Que Es Un Cluster

bull b) Se examina siacute SumatoriaTanda(i) es menor que LimiteInferiorNodo(i) De ser cierto se asigna esa tarea a la Tanda(i) se elimina esta tarea del vector y se evaluacutea siacute hay aun tareas en el vector de tareas si es asiacute se continua con la siguiente tarea del vector hasta que SumatoriaTanda(i) sea menor que LimiteSuperiorNodo(i) esto implica que la tanda se encuentra lista para ser asignada al nodo y se encuentra dentro del rango admisible por ese nodo

bull Se examina si hay maacutes tareas por asignar en el vector de tareas y se continuacutea con el siguiente nodo realizando el mismo procedimiento

bull Sin embargo puede haber casos excepcionales en el que ya se hayan asignado algunas tareas a la tanda y la tarea siguiente a ser asignada sobrepase el LimiteSuperiorNodo(i) en este caso esta tarea no se asigna a dicho nodo y se evaluacutea para el nodo siguiente de ahiacute se puede observar que este nodo auacuten posee espacio disponible para ejecutar alguna tarea Tambieacuten puede existir la posibilidad de que la primera tarea del vector de tareas exceda inmediatamente el LimiteSuperiorNodo(i)

bull cuando esto ocurre se le asigna dicha tarea a este nodo y se cambia de nodo y tarea bull c) Despueacutes de haber asignado las tareas a los nodos esclavos en sus respectivas tandas se

debe analizar nuevamente siacute auacuten quedan tareas en el vector de tareas de ser el caso estas deberaacuten ser incluidas en una nueva tanda que seraacute destinada a las tareas faltantes y que deberaacuten ser asignadas a las tandas de los nodos esclavos que tengan auacuten espacio sin exceder en el LimiteSuperiorNodo(i)

bull d) Siacute llegasen a faltar tareas por ser asignadas despueacutes de realizar el paso anterior y ninguna

entra en el rango de los nodos esclavos entraraacute una nueva variable a tomar parte de la asignacioacuten Esta seraacute el tiempo de ejecucioacuten que seraacute el tiempo que tarda cada nodo en ejecutar una tarea respectiva Esta variable es calculada como el espacio (tamantildeo de la tarea que se esta realizando) sobre la velocidad (funcioacuten de aptitud del nodo ejecutor de la tarea)

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 24: Que Es Un Cluster

bull El procedimiento a seguir es calcular el tiempo de ejecucioacuten total

acumulado en cada nodo esclavo (TiempoEjecucionTotal(i)) tomando la tanda de tareas de cada nodo (Tanda(i)) y calculando el tiempo de ejecucioacuten para cada una de las tareas que tiene dicho nodo

bull Posteriormente se procede a tomar la primera tarea que se encuentra en la tanda de tareas faltantes y a calcular un tiempo de ejecucioacuten supuesto TiempoEjecucionSupuesto(i)) para cada nodo con dicha tarea y a acumularlo en el TiempoEjecucionTotal(i) de cada nodo Luego se procederaacute con la revisioacuten de cual nodo posee el menor tiempo de ejecucioacuten total supuesto TiempoEjecucionTotalSupuesto(i)) aquel que tenga dicho tiempo seraacute el nodo al cual se le asignaraacute en su tanda esta tarea

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28
Page 25: Que Es Un Cluster

bull Esto se hace hasta que no queden tareas en la tanda de tareas faltantes

bull e) Finalmente el nodo maestro enviacutea a sus nodos

esclavos una por una las tareas respectivas de las tandas que les corresponden para que comiencen a ejecutarlas Cada vez que un esclavo finalice una tarea propia este enviacutea una notificacioacuten de terminacioacuten de tarea con el fin de que el maestro enviacutee la siguiente tarea de su tanda haciendo esto hasta que culmine de ejecutar todas sus tareas

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Slide 5
  • Slide 6
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Slide 19
  • Slide 20
  • Slide 21
  • Slide 22
  • Slide 23
  • Slide 24
  • Slide 25
  • Slide 26
  • Slide 27
  • Slide 28