Los esfuerzos de esta tesis se centran en onstruir una máquina virtual sobre un sistema Cluster que proporcione la doble funcionalidad de ejecutar eficientemente tanto trabajos tradicionales (o locales) de estaciones de trabajo
así como aplicaciones distribuidas.
Para solucionar el problema, deben tenerse en cuenta dos importantes consideraciones:
* Como compartir y planificar los recursos de las diferentes estaciones de trabajo (especialmente la CPU) entre las aplicaciones locales y distribuidas.
* Como gestionar y controlar la totalidad del sistema para
conseguir ejecuciones eficientes de ambos tipos de aplicaciones.
Coscheduling es el principio básico usado para compartir
y planificar la CPU. Cosche-duling se basa en la reducción
del tiempo de espera de comunicación de aplicaciones distribuidas,
planificando simultáneamente todas (o un subconjunto de)
las tareas que la componen. Por lo tanto, mediante el uso
de técnicas de coscheduling, únicamente se puede incrementar
el rendimiento de aplicaciones distribuidas con comunicación
remota entre las tareas que la componen.
Las técnicas de Coscheduling se clasifican en dos grandes
grupos: control-explícito y control-implícito. Esta clasificación
se basa en la forma de coplanificar las tareas distribuidas.
En control-explícito, la coplanificación es realizada por
procesos y (o) procesadores especializados. En cambio, en
control-implícito, las técnicas de coscheduling se realizan
tomando decisiones de planificación localmente, dependiendo
de los eventos que ocurren en cada estación de trabajo.
En este proyecto se presentan dos mecanismos de coscheduling,
los cuales siguen las dos diferentes filosofías explicadas
anteriormente, control-implícito y control-explí-cito. También
proporcionan características adicionales incluyendo un buen
rendimiento en la ejecución de aplicaciones distribuidas,
ejecución simultánea de varias aplicaciones distribuidas,
bajo overhead y también bajo impacto en el rendimiento de
la carga local.
También se presenta un modelo de coscheduling, el cual proporciona
una base teórica para el desarrollo de nuevas técnicas de
control-implícito. La técnica de control-implícito propuesta
se basa en este modelo.
El buen comportamiento de las técnicas de coscheduling presentadas
en este trabajo se analiza en primer lugar por medio de
simulación. También se ha realizado un gran esfuerzo en
la implementación de estas técnicas de coscheduling en un
Cluster real. El estudio de los resultados obtenidos proporciona
una orientación importante para la investigación futura
en el campo de coscheduling.
En la experimentación en el Cluster real, se han utilizado
varios benchmarks distribuidos con diversos patrones de
comunicación de paso de mensajes: regulares e irregulares,
anillos lógicos, todos-a-todos, etc. También se han utilizado
benchmarks que medían diferentes primitivas de comunicación,
tales como barreras, enlaces uni y bidireccionales, etc.
El uso de esta amplia gama de aplicaciones distribuidas
ha servido para demostrar la aplicabilidad de las técnicas
de coscheduling en computación distribuida basados en Clusters.
--------------------------------------------------
Efforts of this Thesis are centered on constructing a Virtual
Machine over a Cluster system that provides the double functionality
of executing traditional workstation jobs as well as distributed
applications efficiently.
To solve the problem, two major considerations must be addressed:
* How share and schedule the workstation resources (especially
the CPU) between the local and distributed applications.
* How to manage and control the overall system for the efficient
execution of both application kinds.
Coscheduling is the base principle used for the sharing and
scheduling of the CPU. Coscheduling is based on reducing
the communication waiting time of distributed applications
by scheduling their forming tasks, or a subset of them at
the same time. Consequently, non-communicating distributed
applications (CPU bound ones) will not be favored by the
application of coscheduling. Only the performance of distributed
applications with remote communication can be increased
with coscheduling.
Coscheduling techniques follow two major trends: explicit
and implicit control. This classification is based on the
way the distributed tasks are managed and controlled. Basically,
in explicit-control, such work is carried out by specialized
processes and (or) processors. In contrast, in implicit-control,
coscheduling is performed by making local scheduling decisions
depending on the events occurring in each workstation.
Two coscheduling mechanisms which follow the two different
control trends are presented in this project. They also
provide additional features including usability, good performance
in the execution of distributed applications, simultaneous
execution of distributed applications, low overhead and
also low impact on local workload performance. The design
of the coscheduling techniques was mainly influenced by
the optimization of these features.
An implicit-control coscheduling model is also presented.
Some of the features it provides include collecting on-time
performance statistics and the usefulness as a basic scheme
for developing new coscheduling policies. The presented
implicit-control mechanism is based on this model.
The good scheduling behavior of the coscheduling models presented
is shown firstly by simulation, and their performance compared
with other coscheduling techniques in the literature. A
great effort is also made to implement the principal studied
coscheduling techniques in a real Cluster system. Thus,
it is possible to collect performance measurements of the
different coscheduling techniques and compare them in the
same environment. The study of the results obtained will
provide an important orientation for future research in
coscheduling because, to our knowledge, no similar work
(in the literature) has been done before.
Measurements in the real Cluster system were made by using
various distributed benchmarks with different message patterns:
regular and irregular communication patterns, token rings,
all-to-all and so on. Also, communication primitives such
as barriers and basic sending and receiving using one and
two directional links were separately measured. By using
this broad range of distributed applications, an accurate
analysis of the usefulness and applicability of the presented
coscheduling techniques in Cluster computing is performed.