stringtranslate.com

Tecnología cliente-servidor BOINC

Diagrama visual de la estructura cliente-servidor BOINC.

La tecnología cliente-servidor BOINC [1] se refiere al modelo bajo el cual trabaja BOINC . El marco BOINC consta de dos capas que operan bajo la arquitectura cliente-servidor . Una vez que el software BOINC está instalado en una máquina, el servidor comienza a enviar tareas al cliente . Las operaciones se realizan en el lado del cliente y los resultados se cargan en el lado del servidor .

Diseño y estructura de BOINC.

Estructura del servidor

Una parte importante del sistema BOINC es el servidor backend. El servidor puede ejecutarse en una o varias máquinas para permitir que BOINC escale fácilmente a proyectos de cualquier tamaño. Los servidores BOINC se ejecutan en computadoras basadas en Linux y utilizan Apache , PHP y MySQL para sus sistemas web y de bases de datos .

Los cálculos científicos se ejecutan en las computadoras de los participantes. Después de cargar desde el cliente del usuario a la base de datos de un investigador científico, el servidor backend valida y analiza los resultados. El proceso de validación implica ejecutar todas las tareas en varias PC de los contribuyentes y comparar los resultados.

Los servidores BOINC también ofrecen estas características:

El servidor consta de dos programas CGI y (normalmente) cinco demonios , escritos en C++ . Los cálculos que deben realizar los clientes se denominan unidades de trabajo . Un resultado describe una instancia de una unidad de trabajo, incluso si no se ha completado. Un proyecto no crea resultados explícitamente; el servidor los crea automáticamente a partir de unidades de trabajo.

El programa planificador CGI maneja las solicitudes de los clientes, recibe los resultados completos y envía nuevos trabajos para calcular. El programador no obtiene resultados disponibles directamente de la base de datos. En cambio, un demonio alimentador carga tareas desde la base de datos y las mantiene en un bloque de memoria compartida , que el programador lee. El alimentador llena periódicamente "espacios" vacíos en el bloque de memoria compartida después de que el programador ha enviado esos resultados a un cliente.

Cuando se completan y devuelven todos los resultados de una unidad de trabajo, el validador los verifica. Un método popular sería comparar los resultados entre sí. El validador puede tener un código de proyecto personalizado para realizar una comparación difusa entre los resultados o puede realizar una comparación bit a bit. Si el validador determina que al menos algunos de los resultados son válidos, marca la unidad de trabajo y los resultados válidos como válidos, los usuarios que arrojaron resultados legítimos reciben crédito por ello y se elige un "resultado canónico". Si los resultados no coinciden, o si uno de los resultados no se informa antes de la fecha límite, el servidor genera una instancia adicional del trabajo y la envía a un tercer host. Esto se repite hasta que se encuentre un quórum de resultados coincidentes o se alcance un límite en el número de instancias. [3]

A continuación, el demonio asimilador procesa el resultado canónico utilizando código específico del proyecto. Por ejemplo, algunos proyectos pueden analizar el archivo y almacenar información en una base de datos, otros pueden simplemente copiar el archivo en otro lugar. Un asimilador también puede generar más unidades de trabajo en función de los datos devueltos.

El demonio file_deleter elimina los archivos de salida después de que el asimilador los haya procesado y elimina los archivos de entrada que ya no son necesarios.

El demonio de transición maneja las transiciones de estado de las unidades de trabajo y los resultados. También genera resultados a partir de unidades de trabajo cuando se crean por primera vez y cuando se necesitan más (por ejemplo, si un resultado no es válido).

Estructura del cliente

Una captura de pantalla de la aplicación del administrador BOINC.

BOINC en el cliente está estructurado en varias aplicaciones independientes. Estos se intercomunican mediante el mecanismo de llamada a procedimiento remoto (RPC) BOINC.

Estas aplicaciones componentes son:

Dado que BOINC tiene características que pueden hacerlo invisible para el usuario típico, existe el riesgo de que se produzcan instalaciones no autorizadas y difíciles de detectar. Esto ayudaría a la acumulación de puntos de crédito BOINC por parte de aficionados que compiten con otros por el estatus dentro de la subcultura de crédito BOINC.

Plataformas de clientes

Ver también

Referencias

  1. ^ "Tecnología cliente-servidor BOINC | Semantic Scholar". www.semanticscholar.org . Consultado el 14 de agosto de 2022 .
  2. ^ La transición de SETI @ home a BOINC
  3. ^ Anderson, David P.; McLeod, John (2007). "Programación local para informática voluntaria". 2007 Simposio internacional de procesamiento distribuido y paralelo del IEEE . págs. 1–8. doi :10.1109/IPDPS.2007.370667. ISBN 978-1-4244-0909-9. S2CID  15164675.