PPVC: A P2P VOLUNTEER
COMPUTING SYSTEM
Sara Tena García
Sistemas Distribuidos
Índice
2
Introducción
Trabajos relacionados
BOINC
Bayanihan
Xtremweb
Entropia
PPVC
¿Que és?
Asignación de trabajos
Distribución de trabajos
Respuesta al cambio de condiciones de la red
Implementación
Caso de estudio
Conclusiones de los autores
Conclusiones propias
A P2P VOLUNTEER COMPUTING SYSTEM
Introducción
3
Computación Voluntaria: una forma de computación distribuida que puede que
aprovechar capacidad de procesamiento de miles de ordenadores inactivos.
El proceso de trabajo es:
1) Un servidor descompone una aplicación en pequeños trabajos
2) Los voluntarios descargan los trabajos del servidor
3) Los voluntarios ejecutan los trabajos
4) Los voluntarios devuelven los resultados al servidor
5) El servidor compone los resultados
Proponen computación voluntaria con la organización de una red P2P.
NO existe un servidor central
Cada voluntario tiene la misma función
Es escalable
Cada voluntario solo tiene que comunicarse con sus vecinos pero la aplicación puede
distribuirse a todos los voluntarios.
Método de planificación de tareas utilizado logra una aplicación eficiente bajo los
cambios dinámicos de una red P2P
A P2P VOLUNTEER COMPUTING SYSTEM
Trabajos relacionados (I)
4
BOINC
Servidor que utiliza un mecanismo de alimentación
(feeder) para enumerar desde los trabajos de la cola de
trabajo (job queue) que tiene en su base de datos hasta
los trabajos de la cache de trabajo (job cache) en
memoria compartida periódicamente.El planificador
(scheduler) distribuye los trabajos a los voluntarios. El
método de recopilación de resultados es la replicación
adaptativa, que envía cada trabajo a dos hosts
diferentes y mira si los dos resultados coinciden.
A P2P VOLUNTEER COMPUTING SYSTEM
Trabajos relacionados (II)
5
Bayanihan
Crea un gestor de trabajo (work manager) para la
selección trabajos y un reloj gestor (watch manager)
para la recogida de resultados. Se pueden compartir
datos a través del pool de datos de trabajo (work data
pool) y el pool de relojes de mensajes. En la recogida
de resultados, utiliza una técnica de validación de
resultados llamada spot-checking parecida a la
replicación adaptativa de BOINC.
A P2P VOLUNTEER COMPUTING SYSTEM
Trabajos relacionados (III)
6
Xtremweb
Proporciona uncoordinador de servicio, que tiene un
planificador para la selección de trabajos y un
servidor de resultados para la recogida de resultados.
tareas son enviadas al coordinador y despues al
Las
planificador.
A P2P VOLUNTEER COMPUTING SYSTEM
Trabajos relacionados (IV)
7
Entropia
Usa un enfoque de tres capas:
Capa de gestión de trabajos: responsable de la
descomposición de las aplicaciones, la monitorización de los
trabajos y la agregación de resultados.
Capa de programación de recursos: responsable de la
selección y distribución de los trabajos.
Capa física de gestión de nodos: gestiona los cambios
dinámicos de la red física.
A P2P VOLUNTEER COMPUTING SYSTEM
Red P2P de computación voluntaria (I)
8
¿Qué es?
Computación voluntaria organizada como una red P2P
Tiene las condiciones cambiantes de una red P2P
Todos los voluntarios tienen las mismas funciones y pueden
añadirse o dejar la red cada vez que quieran
Solo se permite la ejecución de una aplicación si no se
está ejecutando otra.
A P2P VOLUNTEER COMPUTING SYSTEM
Red P2P de computación voluntaria (II)
9
Asignación de trabajos (I)
PPVC requiere que la aplicación sea recursivamente
divisible
La aplicación empieza en un nodo como un trabajo grande
y se va dividiendo y distribuyendo a los nodos vecinos de
manera recursiva.
La comunicación entre nodos consume muchos recursos
debido a que es dificil encontrar la posición de un sub-
trabajo al no ser una red centralizada. Sin embargo no son
necesarias frecuentes comunicaciones entre nodos (esto
reduciría el beneficio de la velocidad de ejecución)
A P2P VOLUNTEER COMPUTING SYSTEM
Red P2P de computación voluntaria (III)
10
Asignación de trabajos (II)
A P2P VOLUNTEER COMPUTING SYSTEM
Red P2P de computación voluntaria (IV)
11
Distribución de trabajos (I)
Distribución descentralizada
División en N+1 sub-trabajos con la misma cantidad de
cálculo (N es el número de nodos libres).
EFICIENCIA Ejecución en paralelo en el máximo
número de ordenadores posibles.
Política de planificación: cada nodo distribuye las
divisiones del trabajo una vez que el vecino está libre.
A P2P VOLUNTEER COMPUTING SYSTEM
Red P2P de computación voluntaria (V)
12
Distribución de trabajos (II)
A P2P VOLUNTEER COMPUTING SYSTEM
Red P2P de computación voluntaria (VI)
13
Respuesta al cambio de condiciones de la red (I)
Nuevos nodos pueden unirse a la red y los nodos
existentes pueden separarse de la red. El mecanismo
de planificación de tareas de PPVC puede adaptarse
a estos cambios.
Cuando un nuevo nodo se une a la red, su vecino divide
su trabajo y se lo distribuye al nuevo nodo.
A P2P VOLUNTEER COMPUTING SYSTEM
Red P2P de computación voluntaria (VII)
14
Respuesta al cambio de condiciones de la red (II)
Cuando un nodo se separa de la red, su trabajo debe ser
redistribuido a otros nodos para completar el trabajo completo.
Esto lo hace su vecino, el que le ha distribuido el sub-trabajo.
Si el nodo que se ha separado tiene sub-trabajos distribuidos a
otros nodos, los nodos establecerán una nueva relación.
A P2P VOLUNTEER COMPUTING SYSTEM
Red P2P de computación voluntaria (VI)
15
Implementación Threads que
ejecutan los
Nodos trabajos y su
vecinos y su estado
estado
Trabajos y
su estado
Registros de distribución
Sub-trabajos del trabajo
del trabajo
seleccionado Archivos
necesarios para
el trabajo
Mensajes de
salida
A P2P VOLUNTEER COMPUTING SYSTEM
Caso de estudio (I)
16
N-Reinas (I)
Consiste en situar N reinas en un tablero de NxN sin que
se amenacen entre ellas.
Este tipo de problema puede ser resuelto con métodos
distribuidos, dividiendo la búsqueda en múltiples partes y
buscando la solución por múltiples ordenadores en
paralelo.
A P2P VOLUNTEER COMPUTING SYSTEM
Caso de estudio (II)
17
N-Reinas (II)
A P2P VOLUNTEER COMPUTING SYSTEM
Conclusiones de los autores
18
Computción voluntaria es una manera barata de conseguir una elevada
capacidad de procesamiento similar a la de los superordenadores, clusters
o grids.
En PPVC no es necesario un servidor central y cada voluntario cumple la
misma función. El planificador de trabajos permite conseguir la ejecución
de una aplicación eficientemente, ante los cambios dinámicos de una red
P2P.
El caso de estudio de las N-Reinas buenos resultados de eficiencia, y
asumen que se pueden construir sistema de cualquier escala (organización
interna,entre organizaciones, internet…)
Trabajos futuros:
Planificación adaptativa: mejorar la eficiencia del sistema, ya que distribuye el
trabajo de cómputo de acuerdo a la capacidad de los voluntarios.
Mecanismos de comunicación entre sub-trabajos: ampliará el ámbito de aplicación
de PPVC .
Seguridad: para mejorar la fiabilidad del sistema con la prevención de los ataques.
A P2P VOLUNTEER COMPUTING SYSTEM
Conclusiones propias
19
Eficiente política de distribución.
Deberían de haber realizado más casos de estudios.
Realizar el caso de estudio de las N-Reinas con grid o
cluster para comparar la eficiencia.
No es suficiente el caso de las N-Reinas para
determinar que se puedan hacer sistemas de cualquier
escala.
No se explica como un nodo sabe cual es el vecino al
que tiene que enviarle los resultados. Y cómo soluciona
esa búsqueda.
A P2P VOLUNTEER COMPUTING SYSTEM
¡GRACIAS!