stringtranslate.com

Tecnología cliente-servidor BOINC

Diagrama visual de la estructura cliente-servidor de BOINC

La tecnología cliente-servidor BOINC [1] se refiere al modelo bajo el cual funciona 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 del 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 se adapte 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 base de datos .

Los cálculos científicos se ejecutan en las computadoras de los participantes. Después de cargar los datos 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 computadoras de los participantes y comparar los resultados.

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

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

El programa CGI del planificador maneja las solicitudes de los clientes, recibe los resultados completados y envía nuevos trabajos para su procesamiento. El planificador no obtiene los resultados disponibles directamente de la base de datos. En su lugar, un demonio alimentador carga las tareas de la base de datos y las guarda en un bloque de memoria compartida , que el planificador lee. El alimentador llena periódicamente los "espacios" vacíos en el bloque de memoria compartida después de que el planificador haya 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 aproximada 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, se les otorga crédito a los usuarios que devolvieron resultados legítimos y se elige un "resultado canónico". Si los resultados no concuerdan, 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 encuentra un quórum de resultados coincidentes o se alcanza un límite en la cantidad 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, mientras que 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 de las unidades de trabajo cuando se crean por primera vez y cuando se necesitan más (por ejemplo, si un resultado resulta no ser 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 que se comunican entre sí mediante el mecanismo de llamada a procedimiento remoto (RPC) de BOINC.

Estas aplicaciones de componentes son:

Dado que BOINC tiene características que pueden volverlo 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 los créditos BOINC.

Plataformas de clientes

Véase 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 computación voluntaria". Simposio internacional IEEE sobre procesamiento paralelo y distribuido de 2007. págs. 1–8. doi :10.1109/IPDPS.2007.370667. ISBN 978-1-4244-0909-9.S2CID15164675  .​